2015年3月30日 星期一

鑑定你的 bootloader 是哪一個版本


這裡有一個 Arduino 程式,它可以試著幫您找出 Arduino 板子的 bootloader 是哪一種版本。

我的板子是 Pro mini,經過鑑定之後顯示如下資訊:

[bootCheck.2]

 CRC 2048b @ 0x7800 = 489C

Boot loader: Duemilanove


程式碼

//bootCheck.ino

// Detect which type of boot loader is present, using a fixed built-in table
// http://opensource.org/licenses/mit-license.php

#include <avr/pgmspace.h>
#include <util/crc16.h>

#define VERSION "2"

// list of all known boot loaders with their unique signatures
struct { word crc; const char* desc; } signatures[] = {
0x489C, "Duemilanove",
0xF1A0, "Nanode (Duemilanove mod)",
0xFD70, "OptiBoot 4.4",
0, 0
};

static word CalculateChecksum (word addr, word size) {
  word crc = ~0;
  prog_uint8_t* p = (prog_uint8_t*) addr;
  for (word i = 0; i < size; ++i)
  crc = _crc16_update(crc, pgm_read_byte(p++));
  Serial.print(" CRC ");
  Serial.print(size);
  Serial.print("b @ 0x");
  Serial.print(addr, HEX);
  Serial.print(" = ");
  Serial.println(crc, HEX);
  return crc;
}

static const char* IdentifyBootLoader (word addr, word size) {
  word crc = CalculateChecksum(addr, size);
  for (byte i = 0; signatures[i].desc != 0; ++i)
    if (signatures[i].crc == crc)
      return signatures[i].desc;
      return 0;
}

void setup () {
  Serial.begin(9600);
  Serial.println("\n[bootCheck." VERSION "]");

  const char* message = IdentifyBootLoader(0x7800, 2048);
  if (message == 0)
    message = IdentifyBootLoader(0x7E00, 512);
  if (message == 0)
    message = "(UNKNOWN)";

  Serial.print("Boot loader: ");
  Serial.println(message);
}

void loop () {}



2015年3月18日 星期三

用 Arduino UNO 板子將程式上傳到 Arduino Pro mini

Arduino Pro mini 缺少一個可以將 USB 轉 TTL 的電路,然而 Arduino UNO 卻有這個電路,所以我們可以利用 Arduino UNO 上面的 USB 轉 TTL 電路將程式上傳到 Arduino Pro mini。

步驟如下:

1. 小心地移除 Arduino UNO 上面的 ATmega328 晶片。



2. 為 UNO 和 Pro mini 接線,方式如下:

UNO            Pro mini
5V                VCC
GND            GND
RX               RXI
TX               TXO
RESET         DTR

3. 啟動 Arduino IDE,開始撰寫程式。或是開啟 Blink 範例檔案。

4. 設定板子型號。點擊下拉功能表 Tools > Board > Arduino Pro or Pro Mini (5V, 16Mhz) w/ Atmega 328


5. 點擊工具列按鈕 [Upload]。


完成。


這兒有一段影片您可以參考看看 https://www.youtube.com/watch?v=qqSLwK1DP8Q




2015年3月17日 星期二

Arduino IDE - SublimeText

這是一款多用途的編輯器,它具有關鍵字亮顯(Highlight)、自動彈出(Auto Popup)和可中文註解...等功能,對於用不慣陽春的 Arduino 編輯器使用者而言,這是個不錯的選擇。

官網 http://www.sublimetext.com/


下載

目前穩定版為 Sublime Text 2,下載網址 http://www.sublimetext.com/2
Sublime Text 3 為 beta 版,下載網址 http://www.sublimetext.com/3

我們還需要下載 Stino 插件,它提供一個類似 Arduino IDE 的編輯環境,下載網址
https://github.com/Robot-Will/Stino


安裝

此處我們以 Sublime Text 3 來說明。
雙擊 Sublime Text Build 3065 Setup.exe,然後依照視窗提示進行即可。您會發現它的安裝過程式是極為快速簡單的。


設定

1. 啟動 Sublime Text 3。

2. 點擊下拉功能表 Preferences > Browse Packages...,出現 Packages 視窗


3. 將剛剛下載的 Stino-new-stino.zip 解壓縮後複製貼到路徑 C:\Documents and Settings\USER\Application Data\Sublime Text 3\Packages 裏面。

4. 關閉並重新啟動 Sublime Text 3,您就可以在下拉功能表最右側看到 Arduino 的項目



5. 接著要指定 Arduino 的資料夾路徑,點擊下拉功能表 Arduino > Preferences > Select Arduino Application Folder,出現下列對話框後指定 Arduino 系統所在路徑。


如果正確,在下方的訊息欄內會出現已找到 Arduino 路徑的訊息。



撰寫 Arduino 程式

1. 點擊下拉功能表 Arduino > New Sketch,在下方的欄位輸入「my01」並按下<Enter>鍵,如下


接著在編輯區內會出現數行程式碼,您是不是覺得很眼熟? 沒錯,它就是「Blink」(註A)。


註A: 在為 Arduino 燒錄 Bootloader 時會一併將 Blink 程式燒錄到 ATmega328 晶片裏,以便讓使用者能透過觀察板子上的 LED 閃爍狀態來判斷 Bootloader 是否燒錄成功。

2. 您可以將 Blink 程式碼全部刪除,並編寫自己的程式碼 (此處我仍以 Blink 為例)。

3. 指定主板型號,點擊下拉功能表 Arduino > Board,在項目中挑選 Arduino 主板型號。

4. 指定主板連接埠,點擊下拉功能表 Arduino > Serial Port,在項目中挑選 Arduino 連接埠。

5. 上傳程式,點擊下拉功能表 Arduino > Upload (註B),如果訊息欄顯示「[Stino - Done uploading.[」表上傳成功。

註B:如果點擊「Upload by Useing Programmer」,會出現錯誤訊息

avrdude: stk500_getsync(): not in sync: resp=0x00
[Stino - Exit with error code 1.]


您可能也喜歡

Sublime Text 線上說明手冊 http://docs.sublimetext.tw/
Sublime Text 台灣臉書粉絲專頁 https://www.facebook.com/SublimeTextTW



2015年3月12日 星期四

Library - Hermes

Hermes 核心提供一個獨特的系統用來管理遊戲。除了核心框架,它還包括有碰撞檢測,物理,鍵盤,鼠標,聲音和動畫等控制模組。

您可以到官網並移動滑桿到網頁最底端,就可以看到 Hermes 做出的一些動畫效果。

官網 http://rdlester.github.io/hermes/


下載

有數種下載的方式:
1. 這個網址下載函式庫 http://rdlester.github.com/hermes/downloads/hermes.zip
2. 這兒也可以下載 https://github.com/rdlester/hermes/
3. 個人比較建議用 Processing IDE 下載與安裝。步驟如下:
點擊下拉功能表 Sketch > Import Library...> Add Libary...,移動滑桿到 Hermes 項目並點擊該項目與 Install 按鈕。




手動安裝

如果不是使用上述第3種方式下載,您也可以手動安裝,步驟如下。
將 hermes-master.zip 解壓縮後,將該資料夾名稱更名為 hermes 並將整個資料夾複製貼到 <Processing 路徑>\libraries 裏。
記得要關閉 Processing 系統並重新啟動後,Hermes 這個函式庫才會出現唷。


教學

教學說明在下方的網址
https://github.com/rdlester/hermes/wiki/Tutorial-Pt.-0:-Before-Getting-Started

或是您也可以開啟範例檔案先執行看看 Hermes 它有哪些令人驚喜的地方,
點擊下拉功能表 File > Examples...> Contributed Libraries > Hermes,雙擊 tutorialA


點擊工具列按鈕 Run,接著您就可以看到執行的結果,如下圖



問題與對策

執行時如果出現如下圖之訊息,有可能的原因是您使用的 Processsing 版本太老舊了,建議您換用最新版本執行。


2015年3月11日 星期三

使用者介面 - G4PTool

這是一款視覺化的圖形介面編輯器,它使用的方式跟一般圖形介面建構軟體差不多,都是使用拖拉方式將工具拖拉到視窗內。它雖然操作簡單方便,但不適用於 Android。如果只是想寫 JAVA 程式,是可以考慮這個。

官網 http://lagers.org.uk/g4ptool/index.html


下載與安裝

下載網址 http://sourceforge.net/projects/guibuilder/files/?source=navbar。
我比較建議您使用下列方式下載與安裝。
1. 點擊下拉功能表 Tools > Add Tool...
2. 往下拉動滑桿並點擊 G4PTool 這一項,再點擊 Install 按鈕


3. 如果出現 Remove 按鈕,表示已安裝完成。
4. 退出 Processing 並重新啟動。


範例

1. 點擊下拉功能表 Files > Examples...,出現視窗


2. 展開 G4P,快擊二下 G4P_ImageButton 開啟文件
3. 點擊 Run 工具列按鈕,即可看見如下畫面



設計自己的 GUI

1. 點擊下拉功能表 Tools > GUI builder,出現視窗


2. 點擊工具列的 Button 鈕,用滑鼠將 Button 稍微移動到旁邊,並再點擊一次 Button 鈕。您可以看見如下圖


3. 點擊 Processing IDE,您可以看見新增兩個頁籤,其中一個是 gui。另外,原本空白的編輯區裏面已經佈滿了程式碼,這是自動產生的。
如果您對 gui 頁籤裏的程式碼還不熟悉,建議您不要隨意變更該程式碼內容。


4. 點擊主頁籤 sketch_xxxx,再點擊工具列按鈕 Run,即可看見如下畫面


使用者介面 - ControlP5

ControlP5 算是比較多人使用的 GUI 其中一種,它也可以適用於 Android 模式,鄭重推薦給您。

官網 http://www.sojamo.de/libraries/controlP5/


下載

下載網址 http://www.sojamo.de/libraries/controlP5/download/controlP5-2.0.4.zip。
我比較建議您使用下列方式下載與安裝。
1. 點擊下拉功能表 Sketch > Import Library...> Add Library...
2. 往下拉動滑桿並點擊 ControlP5 這一項,再點擊 Install 按鈕


3. 如果出現 Remove 按鈕,表示已安裝完成。
4. 退出 Processing 並重新啟動。


範例

1. 點擊下拉功能表 Files > Examples...,出現視窗


2. 展開 ControlP5/controllers,快擊二下 ControllP5button 開啟文件
3. 點擊 Run 工具列按鈕,即可看見如下畫面










使用者介面 - pUI

一個好的使用者圖形介面可以讓您的程式更加好用,我想這個就是您迫切需要的吧?



官網 http://martinleopold.com/pui/
下載 https://github.com/martinleopold/pUI


安裝

將 pUI-master.zip 解壓縮後,將資料夾 pUI-master 更名為 pUI,再將整個資料夾放到 LIbraries 裏,退出 Processing 並重新啟動。




2015年3月7日 星期六

Android 版的 Procesing

終於可以直接在 Android 作業系統上面使用 Procesing IDE 寫程式了。

下載 Android APP https://play.google.com/store/apps/details?id=com.calsignlabs.apde


您可能對這個也有興趣

Android 版的 Processing 編輯器 https://play.google.com/store/apps/details?id=com.kwipi.processing_free