2012-03-21

以瀏覽器控制Mindstorms NXT

若要以瀏覽器來控制NXT,會需要透過Web Server處理來自Client端的HTTP Request,主要是解析HTTP Header中對NXT的控制資訊。 而能使用瀏覽器的最大優點在於不限裝置,只要能支援TCP/IP,則無論是電腦蘋果(iOS)還是芒果(Windows Mobile7.5),都能用來控制NXT,而且只需要Arduino開發環境,也不需要XCodeVisual Studio,簡單又容易。
(All Devices)




2012-03-07

還未上市的新版Arduino WiFi Shield初灠

Arduino2011.9Maker Fair中,曾發佈了即將要推出的Arduino WiFi Shield,不過,直到現在都還沒有任何上市的訊息。
最近由Making Things Talk (2nd Edition)這本書Chapter 6. Wireless Communication的章節中,發現了以這個Shield作為WiFi通訊功能的說明,內容附有照片與程式庫運用範例,應該是由Arduino原廠所提供的測試板,剛好可以初灠一下這個即將上市的官版無線網路介面擴充板的功能。

根據書中的內容, WiFi ShieldEthernet Shield有相同的Network Stack,程式庫也一樣具備了Server
ClientClass定義。因此,就如同當初在Maker Fair中對Arduino WiFi Shield描述的一樣,對於原來在Ethernet環境所開發的程式碼,只需稍微修改一下,就可以移轉至WiFi無線網路環境中運作。
WiFi shield連接Arduino也與Ethernet Shield一樣使用SPI介面,並提供有:WEP(含:40-bit128-bit兩種)WPAWPA2等加密方式。
以上這些都是由書中所提到的,並非Arduino正式釋出的最終規格。
API功能
書中的程式範例,說明了部份的API功能在程式庫方面,Arduino sketch與使用Ethernet
Shield
時一樣,也需要Include SPI.h>,同時新增了一個WiFi Shield使用的程式庫<WiFi.h>。

依據書中的說明,WiFi.h同樣定義有ServerClientclass,而在Arduino 1.0新增的DHCPDNSUDP等功能也都可以使用。
在網路初始化程序,在Ethernet.h,至少須提供MAC address作為網路設定:
Ethernet.begin(mac);其餘的IPGatewaysubnet等可以由dhcp取得。
至於WiFi.h則至少須提供SSID以及加密資訊作為初始化設定:
WiFi.begin(ssid, key);
而同樣也可以由dhcp來取得IP
無線網路診斷
在使用電腦或手持裝置的無線網路介面時,都會有提供查詢網路狀態的功能,而WiFi.h也具有診斷網路狀態的工具,以下是書中的範例程式。
l   掃瞄並列示鄰近無線網路的SSIDbyte numSSID = WiFi.scanNetwork(); // Scan nearby networks
for (int cnt=0; cnt<numSSID; cnt++) {
   Serial.print(cnt);
   Serial.print(“. Network: “);
   Serial.println(WiFi.SSID(cnt)); // Print network name
}

l   顯示信號強度
long rssi = WiFi.RSSI();
Serial.print(“RSSI: “);
Serial.println(rssi);

2012-03-04

使用Mindsensors的Magic Wand來呈現LED特效

MindsensorsMagic Wand是依據Extreme NXT這本書中的I2C專題所製作的套件,原設計是藉由連接在一個搖擺機構以及控制8LED的輸出作出能夠顯示圖案的視覺暫留”(POV)效果。
兩年多以前,曾經由Mr. Deepak提供了一組作測試
(
加油)

(Lego)
 
控制方式
控制Magic Wand 8LED開與關的方式是透過I2C寫入8 bits(1Byte)的資料到裝置位址 (0x70) 中。
每個bit(b0 ~ b7)分別對應一顆LED(D0 ~ D7),當bit值為0時會ON該顆LED1則為OFF。所以,若寫入byte值為0時,8LED全亮,而0xFF時則全部OFF
視覺化應用
按照前面的控制方式,就可以運用Magic Wand來作為NXT的視覺化輸出,例如,當使用超音波感應器偵測障礙物時,以顯示的LED數目來表示接近物體的程度,愈近LED亮的愈多,非常的直覺與有提醒效果。
LED特效
另外,還可以用來製作一些有趣的特效,以下影片共展示了三種效果:
霹靂車(Knight Rider)
煙火(Firework)
心跳(Heart Beats)
((Video))