2013年11月2日 星期六

Amarino 密技 - isCorrectAddressFormat 函數

Amarino 有一個不為人知的函數  isCorrectAddressFormat,
你可以用它來判斷使用者所輸入的藍芽位址格式是否正確,
我發現這個還蠻好用的,
它的原始碼如下:

public static boolean isCorrectAddressFormat(String s)
{
        if(s.length() != 17)
            return false;
        else
            return Pattern.matches("[[A-F][0-9][:]]+", s.toUpperCase());
}

用法:

if(Amarino.isCorrectAddressFormat(strBluetoothAddress))
{
  Log.d("xxx", "Correct BT Format.");
} else {
  Log.d("xxx", "Uncorrect BT Format.");
}

反編譯 Android apk


你可以參考底下這一篇文章逐步將 .apk 檔反編譯成 .jar
網址 http://stackoverflow.com/questions/3593420/android-getting-source-code-from-an-apk-file

Procedure for decoding .apk files, step-by-step method:

Step 1:

Make a new folder and put .apk file in it (which you want to decode). Now rename the extension of this .apk file to .zip (eg.: rename from filename.apk to filename.apk.zip) and save it. Now you get classes.dex files, etc. At this stage you are able to see drawable but not xml and java files, so continue.

Step 2:

Now extract this zip apk file in the same folder (or NEW FOLDER). Now download dex2jar from this linkhttp://code.google.com/p/dex2jar/  and extract it to the same folder (or NEW FOLDER). Now open command prompt and change directory to that folder (or NEW FOLDER). Then write dex2jar classes.dex and press enter. Now you get classes.dex.dex2jar file in the same folder. Then download java decompiler from http://java.decompiler.free.fr/?q=jdgui  and now double click on jd-gui and click on open file. Then open classes.dex.dex2jar file from that folder. Now you get class files and save all these class files (click on file then click "save all sources" in jd-gui) by src name. At this stage you get java source but the xml files are still unreadable, so continue.

Step 3:

Now open another new folder and put these files
  1. put .apk file which you want to decode
  2. download apktool v1.x  AND apktool install window  (both can be downloaded at the same location) and put in the same folder
  3. download framework-res.apk  file and put in the same folder (Not all apk file need framework-res.apk file)
  4. Open a command window
  5. Navigate to the root directory of APKtool and type the following command: apktool if framework-res.apk
  6. apktool d "fname".apk ("fname" denotes filename which you want to decode)
now you get a file folder in that folder and now you can easily read xml files also.

Step 4:

It's not any step just copy contents of both folder(in this case both new folder)to the single one
and now enjoy with source code...






2013年10月6日 星期日

開始進入 Arduino 的殿堂

開始進入 Arduino 的殿堂

只要您依照下面的步驟做,就可以輕鬆地進入 Arduino 的奇幻世界。


1. 取得 Arduino 模組和 USB 連接線。


2. 下載 Arduino 軟體。
您可以到 Arduino 官網下再軟體,網址 http://arduino.cc/en/Main/Software
下載完畢後要解壓縮,並將 arduino.exe 傳送到桌面建立捷徑。


3. 用 USB 連接線將電腦和 Arduino 模組連接起來。


4. 安裝驅動程式。
電腦會要求安裝兩個驅動程式,USB Serial Port 驅動程式和 FT232 晶片驅動程式。
如果電腦找不到驅動程式,您可以改手動到 <Arduino>\drivers\ 資料夾裏尋找。


5. 啟動 Arduino 軟體。
快點兩下 arduino.exe 就可以啟動 Arduino。



6. 開啟範例程式。
您可以點選下拉功能表開啟範例程式 File > examples > 01.Basics > Blink。





7. 選擇 Arduino 模組型號。
您可以點選下拉功能表開啟範例程式 Tools > Board > Arduino Uno。
如果您的 Arduino 不是 Uno,請選擇您自己的 Arduino 型號。



8. 選擇連接埠。
您可以點選下拉功能表開啟範例程式 Tools > Serial Port > COM3。
如果您的 Arduino 不是接在 COM3,請選擇您自己的連接埠。



9. 上載程式到 Arduino 模組。
您可以點選下拉功能表下方的「Upload」工具鈕。


如果程式都沒有錯誤並且成功上載到 Arduino 板子,編輯區下方會提示「Done uploading.」。




相關連結:

1. Arduino 官網 http://arduino.cc/en/Guide/Windows

漸亮漸暗(Fading)

漸亮漸暗(Fading)

目的: 讓 LED 持續地逐漸變亮後再逐漸變暗。


材料清單: 
1. Arduino 模組 x1
2. 麵包板 x1
3. 線材若干
4. LED x1
5. 220R 電阻 x1


電路圖:



接線圖:




程式碼:

/*
 Fade.pde 
 使用 
 analogWrite()  讓插在 9 pin 上的 LED 逐漸變亮後又變暗。
 */

int led = 9;           // the pin that the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup()  { 
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
} 

// the loop routine runs over and over again forever:
void loop()  { 
  // set the brightness of pin 9:
  analogWrite(led, brightness);    

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade: 
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  // wait for 30 milliseconds to see the dimming effect    
  delay(30);                            
}


相關連結:

1. Arduino 官網 http://arduino.cc/en/Tutorial/Fade


魚菜共生(Aquaponics system)

近日推出,敬請期待。

















參考資料:

維基百科 http://zh.wikipedia.org/wiki/%E9%AD%9A%E8%8F%9C%E5%85%B1%E7%94%9F



安裝 Processing

Processing 是一套自由贊助的軟體,它有強大的處理圖形和數字的能力,有不少科學家和藝術家用它來創作,而 Arduino 的使用者更用它來製作互動裝置。另外,你也可以使用 Processing 編譯器將程式編譯成 Android APP,有了
這項功能更是讓 Android 和 Arduino 可以緊密結合在一起。

官網 http://www.processing.org/


下載

切換網頁到 https://www.processing.org/download/,先選擇贊助金額,如果不贊助請選擇 No Donation,接著點擊下方的 Download,然後再依照您的作業系統版本點擊合適的下載。
我選擇的是 Windows 32bit 版本。


安裝

將 processing-2.2.1-windows32.zip 解壓縮,然後把 processing.exe 做出桌面捷徑。


函式庫

Processing 有很多函式庫可以使用,有處理影像、聲音、網路和動畫...等等,詳 http://www.processing.org/reference/libraries/。
其中有一個 Serial 函式庫,可以用它來聯繫 Arduino,在稍後的貼文將會介紹。



您可能也會喜歡

1. Arduino and Processing http://playground.arduino.cc/interfacing/processing

2. Servo motor + Arduino + Processing http://forum.processing.org/two/discussion/2469/servo-motor-arduino-processing/p1

3. Processing and Android https://github.com/processing/processing-android/wiki





安裝 Amarino

近日推出,敬請期待。

安裝 Eclipse

近日推出,敬請期待。

安裝 Python

Python 官網 https://www.python.org/


下載

下載頁面 https://www.python.org/downloads/


目前 Python 有  2.7.8 和 3.4.1 兩種版本,雖然 3.4.1 版比較新,但因為新版本仍有諸多地方不夠穩定,而且眾多的函式庫都只支援 2.7.x,所以我們最好下載 2.7.8 版。


安裝

快擊兩下 python-2.7.8.msi,然後依畫面指示安裝。預設資料夾是 C:\Python27。
它不會在桌面自動產生啟動圖示,因此你必須到安裝資料夾內,用滑鼠右鍵選取 python27.exe,選取 [傳送到] > [桌面(建立捷徑)]。如下圖:



快擊兩下啟動圖示,即可開啟 Python 操作視窗,如下圖:



設定


為了以後方便安裝其他函式庫,我們需要做一些設定,讓 Python 主程式可以在任意路徑下被執行,步驟如下:


1. 切換到 控制台 > 進階系統設定 > 環境變數 > 系統變數。
2. 點選變數 Path > 編輯。
3. 在變數值欄位最後面加入

    ;C:\Python27\

如圖



4. 一直按下「確定」,關閉控制台。

PS. 必須重新開機,系統變數 Path 才會生效。

建立並執行第一個 Python 程式

你可以在 >>> 右側鍵入

print 'Hello World.'

Python 解譯器將會在下一行回應「Hello World.」,表示您的程式碼正確無誤。
如果有錯誤,它將會回應「Syntax Error: invalid syntax」。

您也可以鍵入

12+34

Python 解譯器將會在下一行回應「46」。

以上操作過程如下圖所示:









虹吸管(Bell Siphon)

虹吸作用是利用大氣壓力讓水在管內保持流動。

魚菜共生介質床植栽法為什麼要做虹吸管,讓介質床裏的水持續地淹滿後再排放( flood and Drain) ? 這是因為水位上升時可以讓植物的根吸收水分與養分,在水位下降後石子內部已經吸飽水分,而石子與石子之間的空隙包覆著空氣,這樣的狀態適合硝化菌等微生物生長。硝化菌牠會把魚便便裡的氨轉化為氮,這樣的養分對植物的生長有比較良好的效果。

虹吸管裝置圖







虹吸管裝置注意事項

1. 應依據您的植栽床的介質高度來設計虹吸管的高度。
虹吸管的內管高度大約等於水淹滿的高度(事實上水淹滿的高度會高於內管高度一些些),也就是最高水位。
假設植栽床的介質高度是 20cm(註1) ,為了讓植栽床表面的介質保持乾爽,表面乾爽可以減少病蟲害和青苔的產生,所以虹吸管的內管應低於20cm,大約低 3~5cm,那麼虹吸管的內管可以做 15~17cm 左右即可。至於外管的高度只要高於內管 2~3cm 皆可。
虹吸管的外管下端開口高度大約等於排水後的高度,也就是最低水位。

2. 應依據您的進排水量來設計虹吸管的管徑。
進排水量跟您的植栽床蓄水容積與沉水馬達的抽水能力有關。

3. 虹吸裝置下方的排水彎頭不要垂直往下,最好偏約 45 度左右,在水將排盡時以利空氣進入破壞虹吸作用。
有些虹吸裝置外管的上端會加裝一條小管插入到土裡,這是用來加速破壞虹吸作用的。
當水即將排盡時,空氣會由此進入虹吸鐘內破壞壓力的不平衡。小管末端的高度就是低水位的高度。

4. 進水量的大小會影響虹吸管的正常作用。
進水量太小會讓虹吸作用在高水位時緩慢溢流,無法開始虹吸作用。
進水量太大會讓虹吸作用在低水位時持續吸水,無法停止虹吸作用。

5. 淹滿後再排放的頻率是多少? 有人說是 4~5  次/天,也有人說是 400~500 次/天。筆者以為這跟您種甚麼菜有關,有些菜嗜水性高吃水的時間就可以長些;反之,有些菜嗜水性低吃水的時間就應該短些。
另外,淹滿水與排放的時間比率也要注意一下,應該調整到讓硝化菌達到最佳的轉化狀態為宜。


註1: 植栽床的介質高度應依據所栽種蔬菜的種類而定,一般來說是 20~30cm,最好不要低於 10cm。因為介質的高度愈高在過濾及淨化水質的效果上會愈佳。








閃爍(Blink)

閃爍(Blink)

目的: 讓 LED 亮 1 秒暗 1 秒,持續地閃爍。


材料清單: 
1. Arduino 模組 x1
2. 麵包板 x1
3. 線材若干
4. LED x1
5. 220R 電阻 x1


電路圖:


接線圖:

LED 比較長那一支腳是(+)極,須先接上 220 歐姆電阻,再接 Arduino 的 13 pin,LED 比較短那一支腳是(-)極,直接接 Arduino 的 Gnd pin。


程式碼:

/*
Blink.pde
點亮 LED 1 秒鐘,然後關閉 1 秒鐘,如此持續地閃爍。
*/

void setup() {
  // 初始化數位腳槽作為輸出用。
  // 將 13 pin 設為輸出。
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH); // 將 LED 點亮
  delay(1000); // 持續 1 秒
  digitalWrite(13, LOW); // 熄滅 LED
  delay(1000); // 持續 1 秒

}


討論:

Q1: LED 和電阻的位置對調,這樣的線路接法可以嗎?












A1: 這樣是可以的。


Q2: 直接將 LED 插在 Arduino 插槽上,這樣可行嗎?

A2:
這樣做雖然也可以讓 LED 正常閃爍,但這樣做會有極大的風險,小則燒掉 LED,大則燒掉 Arduino 模組。所以最好還是要加上限流電阻。

在這裡要提醒您,必須把 LED 的工作電壓和所能承受的最大電流時常謹記在心。不同種類的 LED 有不同的工作電壓和所能承受的最大電流,一般紅色 5mm LED 的工作電壓是 1.8V,安全工作電流是 15mA~20mA。

Arduino 每一個插槽的輸出電壓是 5V,這電壓很明顯超過 LED 的工作電壓,為什麼 LED 不會被燒毀? 這是因為 Arduino 輸出的電流非常小, LED 還可以承受這樣的電流量。


相關連結:

1. Arduino 官網  http://arduino.cc/en/Tutorial/blink














2013年6月1日 星期六

AutoCAD程式 - 變更「標註(DIMENSION)」物件到指定圖層

本程式含有2個好用的指令,都是用來變更「標註(DIMENSION)」物件到指定圖層。
它們在選取物件時會自動過濾「標註」物件。
執行碼                說明
DimChgLay     變更選到的「標註(Dimension)」物件到指定圖層。
QdimChgLay   快速變更所有「標註(Dimension)」物件到指定圖層,詳註。
註: 1.DimChgLay.ini 必須放在AutoCAD路徑下。
      2.圖層名稱預設為「標註」,顏色預設為4。如果要變更預設的圖層名稱與顏色,可以修改DimChgLay.ini 內容。

AutoCAD程式 - 檢查兩個圖面是否相同

功能: 檢查兩個圖面是否相同,位於目標圖面內不同的物件會被亮顯。

說明:
要被檢查的圖形稱為「目標圖面」。如果原始圖面與目標圖面分別在不同的圖檔裏,
必須將目標圖面複製貼上到原始圖面中,最佳的位置是擺放在原始圖面旁邊。
指定基準點的用意在定義被檢圖面的座標原點,原始圖面與目標圖面都有各自的座標原點。
所以在選擇基準點時應當要選取相對應的參考點,如此才有檢查的依據。
程式只對圖形物件檢查是否異同,不會檢查物件的圖層、顏色、線型...等性質是否一致。


使用步驟:
選取原始圖面...
指定原始圖面基準點:
選取目標圖面...
指定目標圖面基準點:

註: 被檢查出的物件會被置入變數「sl」,它是一個選集(Selection)。如果您要編輯它們,可以在出現「選取物件:」時鍵入「!sl」即可選取到它們。

2013年5月31日 星期五

AutoCAD應用軟體 - 出圖大師


[軟體名稱] 出圖大師
[軟體版次] v2013.12.17
[修訂事項]
1.修訂批量出圖之列印到 PDF 功能。
[適用平台] AutoCAD 2004(含)以後之版本。
[下載網址]
[功能簡介]

「出圖大師」 它可以用來將 AutoCAD 圖面連續出圖,其特點如下:

1.可以選取許多圖檔實施批次出圖。點我觀看教學影片



2.可以對圖面內的圖塊參考, 群組,視窗(自訂的矩形範圍), 視景和配置出圖。點我觀看教學影片





解決Windows7下在AutoCAD內無法建立功能表的權限問題?

在AutoCAD內無法建立功能表這個問題,
最主要是Windows7限制了使用者的權限,
解決這個問題的方式如下:

不可以直接用滑鼠雙擊桌面的啟動圖示來開啟AutoCAD,
而應使用滑鼠右鍵點擊啟動圖示,
然後選取快顯功能表內的「以系統管理員身分執行」。