BV1AL 之無所不記

2012-11-13

MSP430 Launchpad vs Arduino Leonardo

經過一個禮拜以來的使用,感覺Leonardo 還是略勝一籌。

首先是IDE 方面Launchpad用的energia 會有抓不到板子的問題,以致
拖累整個OS, 讓系統hang住,而且相當嚴重。後來改用command line
方式compile 以及upload, 是可以避開IDE 這個問題,不過還不是根本解決。
有時在command line 跟Launchpad 溝通還是不通,要再次插拔。

最後根據 http://www.43oh.com 討論文章去抓另外的 cdcacm 來compile
取代Linux 系統原有的cdc-acm, 情況才有改善。在這裡:
https://github.com/energia/Energia/wiki/Linux-Serial-Communication

再來就是energia 給Linux 的只有32-bit 版本, 無法在64-bit Linux 使用,
為了寫Launchpad 的程式就必須另外跑一套32-bit Linux, 還好有各種Live
Linux system 可用,還不是太大的問題。

arduino 則是32/64 都有提供,IDE 作業時也很穩定的可以抓到板子。

發現另一個問題就是同樣程式碼的一個程式,在兩塊板子表現出來的結果卻
不一樣。我遇到的是自己寫的一個Morse 程式,它可以從電腦傳送「字串」
給這兩塊板子,讓它轉換成人耳可聽的電報碼,在使用tone 這個函數時
tone(x, y, z); delay(n); 
'z' 跟 'n' 關係人耳的感覺,Leonardo 很快就調好比例,但是Launchpad
調很久聽起來還是不順,我指的不是音調而是節拍,沒調好的話對聽得懂
電報碼的人來說,會覺得是一種困擾。

這同時又發現Launchpad 在接收指令方面有問題, 就是第一次送出指令後,
Launchpad 沒有動作, 例如我送出 "green blink" 是要它閃綠色LED, 但是
要在送第二次時才會閃,之後比這串指令短的指令是沒問題,但是比這串字
更長的指令,在第一次傳送時一樣又是沒有反應動作,要傳第二次才會動。

Leonardo 則是很誠實的有指令來,不分長短,送來就有動作!很穩定。

Launchpad 不曉得會不會還有什麼其他類似的潛在問題?

Leonardo 還有一個好處,就是只需插上USB, 就有3.3V及5V兩種電源輸出,
Launchpad只有3.3V, 有一些SSRelay 最低需求是4V 以上電源,這時用Leonardo
就不需額外的電源。

看來如果要做一些比較重要的工作,可能還是用Leonardo 比較方便可靠。

不過Launchpad 有一些方便的地方,像是onboard 紅、綠各一粒LED, 而
Leonardo 只有一粒黃色LED(User可定義的), Launchpad 也比Leonardo 多
一粒按鍵可以自行定義。

然而Launchpad 的LED 很刺眼,反觀Leonardo 的LED 顏色柔和。

最後就外觀的工藝來看,Leonardo 在藍色板面上用白色點標示Analog pin,
而在白色背面上也標示出Analog pin, Launchpad 背面什麼都沒標。

Leonardo 看起來乾乾淨淨的,Launchpad 板子上可以看到一些像是膠或是
漆的黏著物,感覺有點髒髒的,我想畢竟Leonardo是Made in Italy 而不
是Made in China 吧!

標籤:

2012-11-05

MSP430 Launchpad 俗擱大碗

之前有玩過ARM SBC 上面的DIO/AIO, 最近玩MK802一陣子後就覺得不太
好玩了,因為它沒有任何I/O 可以與別的東西互動,壹電視網樂通也是同樣
的問題,網樂通的好處是可以藉由lirc 用遙控器指揮它,但也僅限於此,無法
再與其它週邊連結。

最先想到是找USB GPIO 來裝,小小一支隨插隨用,網路上看到大約20 美元,
有了I/O 透過SSR(繼電器)就可以控制像是電扇,電燈等家電的開關。

後來又想到今年很紅的Raspberry Pi, 露拍售價是NT$1850, 它除了像MK802
一樣可以跑正常Linux 之外,還有GPIO 可用,而且有豐富的python 支援,
確實是個好物,甚至劍橋大學都開了搭配Raspberry Pi 的電腦課程,任何人
都可以透過網路修課,更可貴的是512M RAM 的Rev B 可是道地
"Made in the UK" 英國貨,連貴參參的Apple產品相較之下都變得很粗俗
(Apple 產品都是 Made in China 吧?)。

只是想到它跟MK802 的重疊性太高,於是轉向己經流行多年的義大利國寶
Arduino(沒錯!就像Raspberry Pi 是英國國寶一樣,Arduino 可是Made in Italy)
,像較新款的Leonardo 大約台弊八百多,它的好處是流行多年累積的資源
很多,加上arduino IDE 的方便讓不會寫C 的人也能輕鬆入門。

Arduino 不只是software open source, 它連硬體都是open source, 甚至可以
按圖施工,自己生產Arduino, 因此也有很多所謂百分之百相容的clone, 看來
如果手上沒有英國國寶,至少也該擁有一隻義大利國寶才對,光就它的
"Made in Italy" 拿在手上也會自我感覺良好吧!

不過最後殺出來一個德州之寶, TI 的 MSP430 Launchpad, 這東西會不會被
義大利黑手黨追殺呀?它顯然是衝著Arduino 來的,產品定位幾乎跟Arduino
一樣,都是微控開發板,最殺的是它價格低到像用送的一樣,四塊多美元,
上網訂購也不收運費,露拍大約NT$160。包裝裡附USB線、再送一粒主控
晶片、兩個10pin 母座、一粒水晶振蕩,弄得好像你不買就對不起德州佬。

起初以為這東西一定要會玩C 才有辦法上手,沒想到由於arduino IDE 是
open source software , 竟然有人己經把它port 過來給Launchpad 用,名字
叫做energia, 有些 arduino 的程式甚至不必改什麼就可以透過energia 讓它
在Launchpad 上面跑。

聽說它內建的展示程式就是展示板子上內建的溫度感測器,可惜我拿到時
第一時間試不出來,就試用energia 別的sample 把展示程式蓋掉了,之後
也找不到溫度感測的sample 於是參考範例語法自己DIY, 只用了簡單幾行
就能動了!
const int tempSen = TEMPSENSOR;
int sensRead = 0;

void setup(){
  pinMode(tempSen, INPUT);
  Serial.begin(9600);
}

void loop(){
  if (Serial.available()){
    sensRead = analogRead(tempSen);
    Serial.println(sensRead);
    delay(3000);
  }
}

成功之後插拔一下Launchpad ,再開個terminal 指定
port /dev/ttyACM0 9600 baud 就可以讀到三位數的數值,這兩天天氣的
氣溫讀到的大約在三百上下。

以今天日落後室外大概不到24度,讀到的數值是296, 297, 室內還不到27度
,讀到 的數值約302, 303。推測它是以流經某一粒二極體的電流,但還沒
找出正確對應的 換算公式。

標籤: