2014-04-06

紅衛兵、佔領立法院

有人說「學運的學生像紅衛兵」
有人說「怎麼可以容忍學生佔領立法院這麼久」

這是沒有邏輯的無腦語言。

首先,紅衛兵是統治當局在背後操作,用來壓迫百姓的工具。
然而,太陽花學運,是百姓反抗統治者蠻橫壓迫的自發行動。
是完全相反的兩回事。

再來,學生佔領立法院有很久嗎?

大家有沒有回顧一下,全國老百姓是不是一直容忍一個無能的孬種佔領總統府六年?
六年來經濟空轉、社會空轉、國會淪喪!

既然一個無能、無知的孬種都可以佔領總統府、敗壞國家到這種程度,

我們為什麼不能容忍有血有淚、有理想的青年學生佔領立法院六十天、六個月或更久,
來挽救快要滅頂的國家?

2014-03-25

學生、水加農炮、澳洲

這次中華民國立法院被學生佔領,肇事者鹿耳毛(或叫馬英九)避不見面,
對這樣麻木不仁的當權者,學生只好在廿三日進一步攻入行政院,
要鹿耳毛認真面對。

到了三月廿四日凌晨,國民黨政府一如往常鎮壓反政府民眾,啟用鎮暴警察
攻擊學生。

和以往不同的是,之前警察施暴的對象多是勞動階層,沒什麼人替他們發聲,
只有含怨受辱。

這次警察施暴對象,是大學生!

大學生還不打緊,裡面主要的還是台清交成政甚至師範大學等等學校的學生,
這下惹惱台灣各大學開明派的老師了!(警察還毆打包括台北醫學大學的醫護人員)

司改會董事長瞿海源說:「國家不能有暴力,學生是手無寸鐵,國家不能用暴力來
對付,噴水都已經過份了,何況用暴力………」

三月廿四日早上暴警用來向學生施暴的,除了用警棍盾牌毆打之外,還有一個動作
,那個不應該叫「噴水」,有的媒體甚至還說「灑水」,噴水或灑水聽起來像在過
泰國潑水節啊!是媒體白癡?還是更多的人不知?

那個東西英文叫 Water cannon,直譯應該叫「水的加農炮」,「加農炮」是俱有
相當催毀力的武器,不同的是這種加農炮不是用火藥跟金屬,它用「水」。

根據 wikipedia 的資料,它的射速達到 15 litres per second 的水量,有很強大的撞擊力。

wikipedia上的 water cannon 竟然沒有中譯,看來華人只想拿這東西來對付人民,
而完全不想知道這是啥咪碗糕?

澳洲新南威爾斯在2007年才買了「水加農炮」是為了APEC會議,但完全沒啟用,
這也是澳洲這個國家第一次有「水加農炮」!

啊!台灣在數十年前就已經有水加農炮了!

澳洲真是個落後國家呀!

2014-03-22

鳳凰衛視阮次山說出實話

香港鳳凰衛視總編輯阮次山說
「服貿18項協議沒有一條需要逐條審查,都是概括承受,
也就是打包,存查了事,沒有不通過的,不通過的話,等於
是你背叛了祖國,不是難看嗎?會造成現在的局面,要怪馬英九」

https://www.youtube.com/watch?v=3yITLmI847s  (香港鳳凰衛視的訪問)

鹿耳毛是全世界最乖的孩子

沒看過這麼大年紀的男人,還這麼孬種!
在一群小孩指著你鼻子罵你混蛋時,你躲起來不出聲!

如果那些小孩是不對的,你就出來把小孩一個一個
抓起來罵一頓、打一頓。

如果小孩是對的,你就該露出胸部、瞌頭、道歉!

可是你什麼都不做!
不道歉、不面對、不處理

然後跑回家找媽媽
「媽……小帆他們都欺侮我……說我沒有正當性……嗚嗚」

「乖……鹿耳毛………別人家都是壞孩子,亂說話,
他們連鹿的,耳朵的、那個毛,都不知道,
只有你是全世界最乖又最有創意的孩子……媽媽永遠挺你…」

2014-03-15

又要微調教科書

2014-03-14,英明聖上馬英九在總督府迎賓門說道:
「各位都知道,紐西蘭還出一種東西,很有名的,叫做鹿茸,
鹿的…耳朵的…裡面的…那個…那個毛」
http://www.youtube.com/watch?v=f_LG7EdDRFE

記者問農委會主委陳保雞「鹿茸是不是毛?」
他回答說:「那個人很清楚,不會搞錯的,是你們聽錯了!」

接下來禮部尚書蔣痿檸又有得忙了,趕快召集大學士王ㄒㄧㄠˊ波
再把教科書『微調』一下,
「茸 == 耳朵裡面的那個毛」
一定要教到全國小朋友都會這樣回答為止!

不微調行嗎?

難道當今英明聖上馬英九、台灣領導人會腦殘到這種地步嗎?
一定是我們全弄錯了!我們從小沒把書讀好!
連農委會主委陳保雞都掛保證,那個人不會搞錯的!


一定是我們全弄錯了!我們從小沒把書讀好!

所以,教科書一定搞錯了! 
所以,教科書一定要微調啊!

2014-01-01

高公局掛保證 eTag 電磁波不傷身

這是元旦當天在高速公路上測試的抓圖
從發現ETC 訊號,到訊號消失,前後大約有一分鐘的時間。
如果以時速60公里(高速公路最低速限)來換算,ETC 電波可以函蓋約一公里。
「 高公局掛保證 eTag 電磁波不傷身」你相信這句話嗎?
恐怕連高公局自己都不知道自己在說什麼吧?








電波出現








再靠近一點








再來!再來!









越來越有型喔!









(右上角是抓圖時間)
卡嚓!經過讀取機下方






黃中帶紅十字就是那瞬間
還沒完喔!









看經過多久了?









遠離中








總算遠離了

2013-10-11

Arduino Pro Mini A6 A7

目前市面上較新的Arduino Pro Mini 似乎都多加了兩支Analog 腳 A6 及A7,
http://www.arduino.cc/en/Main/ArduinoBoardProMini

當我們燒了Firmata 協議而不是用一般Arduino sketch 來寫固定的程式時,這兩支
多出來的腳會讀不到。

這是因為較早官方Pro Mini 沒這兩支腳,所以當我們用Arduino IDE 燒錄Firmata 時,
這兩支腳是沒被定義的。如果需要用到這兩支腳,必須改一下Firmata 相關程式裡的定義:

1. Arduino IDE 的 libraies/Firmata/Board.h
  裡面的Arduino Duemilanove, Diecimila, and NG 下兩行的
  TOTAL_ANALOG_PINS 6 改成 8
  TOTAL_PINS        20 改成 22
  再用Arduino IDE 把Firmata 燒進Pro Mini 裡

接下來是電腦端所使用的程式庫
2. 使用pyFirmata 的話,需修改 pyFirmata/pyfirmata/boards.py
  'analog':tuple(x for x in range(6)),   <===改成 8
3. 使用pyduino 的話,需修改 pyduino.py
  self.analog = []
  for i in range(6):  <==改成8

目前使用經驗:
pyFirmata 支援PWM 及Servo 沒問題, 但要做 install 的動作
pyduino PWM 失敗, Servo 未支援, 單一支pyduino.py 可以不做 install,
直接跟執行程式放同目錄載入(import)即可。

2013-10-07

Arduino Firmata python 控

Physical computing 讓我們脫離數十年來電腦總是看得到摸不到的現象。
為什麼說看得到摸不到?螢幕上一朵花你摸得到嗎?一粒燈泡你摸得到嗎?

Physical compiting 讓我們可以跟實體的東西互動,最簡單的就是透過微控器
(MCU)加上一些電子零件,就可以讓我們把動作延伸到真實的東西上,像說可以
叫電腦幫你關電扇、開電燈……。

長久以來說到微控器總是讓人想到8051,不過這近十年來已經有更方便撰寫程式
的各種微控器在市面上流通。不管哪一種微控器,最普遍的用法就是把對應於各
種動作的程式(或說firmware)寫好燒進微控器的晶片,開動後它便會自主運作。

微控器最多的使用方式是讓它獨立運作,不過它也可以連接著電腦,成為電腦的
週邊設備,讓我們透過電腦跟實體物件進行互動式接觸。

只是每當你要改變微控器的用法時(例如接的感測器或訊號器要換腳位),都要重
新燒錄一次程式,就算只改一個bit 也都要重燒。

如果微控器是做為電腦的延伸器官來用,其實可以不用每次重燒程式,反正它一
直連接著電腦,就讓電腦來運算,最後只要丟出指令給微控器,或者讀取微控器
偵測到的數據,來電腦裡運算、紀錄,這樣就可以了。

也就是只要燒一個通用的協定(protocol),然後各種運算都在電腦裡進行,最後
傳送給微控器做出你要它做的動作。

以Arduino 來說,它的IDE 裡就附了一個通用協定 Firmata, 選其中的
StandardFirmata 燒進 Arduino 之後,便可以在電腦上寫程式來指揮 Arduino
運作而不必事先燒到 Arduino 裡面。

如果你要求用最新的,那 Arduino IDE 裡的就要換成 firmata 官方最新版
2.3.6, 可以在 http://www.firmata.org/wiki/Main_Page 下載。

網路上有多種支援 Firmata 的程式,個人覺得其中之一的 pyduino 蠻方便入手
,只要俱備基本python 語言知識,就可以立即把玩。這個版本比較新
http://pyduino.googlecode.com/svn/trunk/
最基本的 digital In/Out, digital PWM, analog In 立即可用。

另外一個也不錯的是 https://github.com/tino/pyFirmata
它除了上面的功能外,已經確認可以用它來控制 servo

但其它方面如I2C, PulseIn.... 目前似乎尚未成功支援,不過這幾項基本動作
也夠玩一些花樣了。

當然你也可以傳送raw command 給微控器,Firmata 是一種類似MIDI 的協定,
像說送出 serial.write(chr(0x90)+chr(0x08)+chr(0x00)) 來讓第三pin 的
LED 亮起來(其實 0x08 是mask來算的, 除了第三pin 之外的都不亮).

2013-09-27

網樂通連接 MCU UART 不能boot 的問題

這問題就是從網樂通 UART 的RX/TX/GND 接出來直接跟 MCU 的 UART TX/RX/GND
連線的話,不能同時開機或 MCU 先開機。必須網樂通先開機,再開 MCU,否則
網樂通會因不明原因卡住,無法開機。

以前就遇到這問題,只是沒再進一步使用,所以放著沒再試。中秋這幾天在家
閒閒就來嚐試解解看,順便整理一下,給可能會這樣玩的朋友一點參考。

或許你會問 MCU 不就是要用來獨立運作,為什麼要跟網樂通接連?其實 MCU 除
了獨立運作外,跟電腦連接著,就可以透過網路來傳送資訊或遠端遙控,除非利用
像是ethernet shield 或 wifi shield 的周邊,不過那是另外一回事,不在此
文討論,這裡針對利用免費的網樂通來跟 MCU 組合的問題。

我試過 arduino 及 MSP430G2 都有同樣的問題。

為什麼不走 USB ?
說來慚愧,因為在使用自己 make 出來的 cdc-acm.ko 載入後 /dev/ 下並未如期
出現 ttyACM0 (for Leonardo/MSP430G2), 所以無法使用,未再進一步試解。

於是想到何不直接拉網樂通的 UART 來接線?

一開始並沒遇到這個「不能boot」的問題,因為都是在網樂通開機後才接上 UART,
當程式弄好,一切都如預期動作後,想給它擺著進行自動運作時,才發現 MCU 不能
比網樂通先開機或同時供電開機。

先是想到會不會是 uboot 在那裡等候 user press Enter, 但實際連接 UART 經USB
到電腦的 terminal 時,發現它並不會等候,而是很順暢的一路往下開機,所以
問題不在 uboot.

要接到網樂通的 UART, 它不就有四條線,其中之一是Vcc 供電,那如果用 Arduino
Pro Mini 最好不過了!體積小、功能又跟大隻的一樣,又可以吃 3.3V 正好搭配網樂通,
價格又不到200台幣,真是值得推推的好物!

一步一步確定問題,可能是在電路嗎?在拿到 Pro Mini 後便試著只接 Vcc/GND, 確實可以
同時(或MCU 先開)開機,開機完再手動接上 TX/RX, 但這樣一旦斷電,人又不在機器旁,就
不能動了。(warm boot 沒問題,cold boot 不行)

再來試試把 TX/RX 串連電阻,會不會就可以過關?

結果是用了幾百到 1K ohm 電阻, 網樂通仍不能開機,把電阻加更大,發現網樂通
是可以開機,但開機完成卻無法正常讀到 MCU 的 analog 訊號(digital 可以)。試了
幾次仍沒試出可以讓兩者都成功的電阻值,看來應該改想別的辦法。

最後想到『那就利用 MCU 本身的 digital 來當「斷/接」 TX/RX的開關好了』

先試了只接通網樂通的 TX 到 MCU RX, 而網樂通 RX 到 MCU TX 不接(開路)的情況下,
是可以順利讓網樂通開機的。那麼只要在開機完成再利用 MCU 來接通網樂通的 RX
到 MCU TX 應該就可以了。

先前利用 2N2222 做過一條兩段式給 Canon DSLR 的快門線,想到同樣的拿 2N2222 來做這個
RX 的開關線路就可以了,方式如下:

網樂通GND --------------- MCU GND
網樂通Vcc --------------- MCU Vcc
網樂通TX  --------------- MCU RX

       2N2222
       E B C
       | | |
網樂通RX ----/ | \----- MCU TX
        /
        \--2K電阻-- MCU digital pin

2N2222 的 B 通過電阻接 MCU digital pin
2N2222 的 C 接 MCU TX
2N2222 的 E 接 網樂通 RX

經實測,cold boot 後可以順利讀取 MCU analog。

以上內容無法保證你的網樂通或 MCU 不會產生任何問題,請自行斟酌嚐試。

2013-09-12

「九月政爭」是啥小?

媒體又在耍白爛了!啥是「九月政爭」?

政爭的戲碼應該是「馬英九插王金平的菊花,王金平插馬英九的喉嚨,然後
馬英九射在王金平花心,王金平射在馬英九的食道」這才稱得上政爭呀!

我們看到的是
「馬英九從頭到尾不斷插王金平的菊花,王金平只發出幾聲呻吟,動都不敢動
,然後馬英九很快就射了」

這哪政爭?

所以請各媒體別再錯誤百出的下標題,正確標題是
「九月雞姦」

許多689 們心裡一定想著『啊………被皇上雞姦………好幸福呀!』

2013-08-03

忠烈祠、旌忠狀,再來呢?

國防布對於虐殺義務役士官洪仲丘一案,一直在腦力激蕩,從最早說要把
洪仲丘放到忠烈祠,洪家卻對國防布的認真考量覺得很無腦,因為洪仲丘
又不是為國作戰死亡。

對於洪家不願接受奉伺忠烈祠一事,國防布再度發揮創意,提出要頒給
洪仲丘旌忠狀,洪家再度覺得國防布十分腦殘,因為旌忠狀是頒給因公
作業死亡的軍人。

國防布覺得很納悶,他們已經提出這麼好的優惠,為什麼洪家都不接受?

其實國防布可以再次發揮創意,向日本政府申請,讓洪仲丘神位奉祀進入
日本最高級的靖國神社,或許洪家可以接受!

為什麼可以接受?我也不知道,反正國防布一直無理頭的腦殘,認為隨便
發想,就認為可以擺平虐殺義務役士官這件事。

如果洪家再不接受,國防布還可以向美國政府申請阿靈頓公墓、越戰陣亡
將士紀念碑、韓戰陣亡將士紀念碑……

2013-07-23

國防部真笨,我教你們!

最近中華民國陸軍269旅因為虐殺義務役士官一事鬧得雞飛狗跳,陸軍方面不斷
面對質疑,然後不斷淹滅證據,一下要淹滅大兵日記,一下要淹滅錄影帶,忙得
不可開交!

像陸軍政戰主任曾有福,就向記者說他有問了269旅政戰主任陳毅銘
『有沒有銷毀錄影帶?』 
陳毅銘告訴他『沒有』,所以他要記者在媒體上報給全國人民知道
「269旅政戰主任是『沒有銷毀錄影帶』」

這件新聞真的可以列入『珍氏世界最大笑話』紀錄!

不相信,大家可以去問問「白院長」(或者叫白副總統)
『請問白院長,你講話有沒有白賊?』
白院長一定答覆你『沒有』

國防部啊!你們真是笨到連豬看到都會笑,這麼簡單的事還要搞到焦頭爛額!

就直接 delete 洪仲丘的入伍紀錄就好了啊!

就說洪仲丘根本沒入伍當兵,哪來的被虐殺!這樣你們269旅那些人不但馬上
無罪釋放,說不定還可以申請國家貼償呢!

2013-04-15

什麼是炸彈客?

媒體又在一面倒的用「炸彈客」三個字!
到底什麼是炸彈客?

那媽媽嘴咖啡店謝依涵是不是應該叫「殺人客」? 

這個腦殘用詞大概始於「偷渡客」,什麼叫「偷渡客」?

明明偷渡就是犯罪,就應該叫「偷渡犯」,某些媒體為了幫中國偷渡犯漂白,
所以發明了「偷渡客」。

如果行為者所做的事觸及犯罪,就該叫「犯」才對,這是基本常識呀!

想想看使用暴力達到性交目的叫「性侵客」,
賣海洛、K他命叫「毒客」,

法國那個用火藥炸開五道門,還挾持人質越獄成功的叫「越獄客」,
到超商搶錢的叫「搶客」, 
被法院通緝的叫「通緝客」,

嘿!以後就統一這樣用好了!

2013-03-19

濫用「往生」之無理頭播報

這幾年「往生」兩字被濫用到一種新境界,連新聞報導都會說「小狗往生了」,
不曉得播報記者是不是太無知了?還是太神通廣大了?

說無知,是因為播報者分不清什麼是「往生」什麼是「死亡」?

說太神通廣大,是因為播報者能夠知道亡靈(如果有的話)到哪裡去了!那不是跟
中國政府一樣嗎?
中國政府能夠掌控密教喇嘛能否投胎轉世,比閻王還強大呀!

一開始大概是一些心態不健康的人,不敢說「死亡」兩字,所以就拿「往生」兩字
來填塞,久而久之以訛傳訛,變成無理頭的濫用「往生」。

但是,往生兩字是出自佛教淨土宗,指的是「往生西方極樂世界」,也就是
「去西方極樂世界報到了」。
那「西方極樂世界」是什麼?就是淨土宗提出的「阿彌陀佛的天國」,所以「往生」
兩字就是佛教淨土宗的「去天國了」的意思,這完全是宗教專用詞啊!

就像基督宗教用詞「蒙主召」「去見上帝了」「上天堂」同樣的意思。

「往生」兩字既不等同「死亡」,更不該被亂用、濫用。基督宗教的信徒怎麼能
被你說成「去阿彌陀的天國」?
人家要去也是「去耶和華的天國」啊!換個角度來想,你可以把佛教徒說成是
「蒙主召」「去耶和華的天國」嗎?

「死亡」是中性名詞不用,反而去用俱有價值意味的「往生」,真是莫明其妙!

「死亡」就像說「下車」,而「往生」類似說「去搭高鐵」,「下車」之後有很多
情況會發生,「去搭高鐵」只是一種情況,你可以騎腳踏車、搭計程車、跑步或甚至
去搭波音七四七。

死亡之後有沒有一個恆久不變的「本體」會到處亂跑、上天堂下地獄、當阿貓阿狗?

用時間線來比喻一下,有一個在時間點5出生的人,某甲,到時間點7死亡,那是某甲
死掉。然後在時間點16又有一個人出生,某乙,到時間點22死亡,某乙死掉。又有一個
人在時間點32出生,某丁,到時間點55死亡。

這時某些宗教就告訴你說那個某甲、某乙、某丁都是同一個人!
咦?同一個人?
喔!不!不是同一個人,是同一個靈魂。

咦!同一個靈魂!

靈魂是怎麼辨識的?靈魂有綠卡嗎?還是有Google帳號?或是靈魂有DNA?
難不成是在中國國家檔案局有靈魂編號可以列管追蹤?
不然中國政府怎麼掌控密教喇嘛投胎轉世?

2012-12-31

網樂通遙控器好用

朋友送的網樂通有兩支遙控器,這下遙控器多了,就拿來遙控電腦吧!

原本給arduino 用的 IRremote library 可以在這裡下載
https://github.com/shirriff/Arduino-IRremote
而msp430 用的energia 也已經內含 IRremote
http://energia.nu/download/

網樂通新、舊這兩支遙控器都是使用NEC protocol, IRremote 裡已有支援,
可以直接解碼出來,兩支有一些鍵同碼,一些鍵不同碼。

參考這個例子
https://github.com/shirriff/Arduino-IRremote/blob/master/examples/IRrecvDump/IRrecvDump.ino
把它寫入msp430 G2553|G2452 (或Arduino) 就可以解網樂通遙控器的碼。

那支長得像Wii 的我稱它做舊式,另一支跟一般電視遙控器相似的我稱它為新式。
舊式多了「扳機」鍵,新式多了方型的「紅、藍、綠、橘」及「加、減、向上、向下」

 舊式  新式
紅鍵 CE941AE5 CE9454AB
藍鍵 CE9402FD CE94D42B
綠鍵 CE9400FF CE9434CB
橘鍵 CE94C03F CE94B44B
上   CE94906F CE9404FB
下   CE94807F CE94847B
左   CE9450AF CE9444BB
右   CE9410EF CE94C43B
扳機 CE9432CD
紅(方)        CE945AA5
藍(方)        CE94BA45
綠(方)        CE94DA25
橘(方)        CE943AC5
加            CE945CA3
減            CE94DC23
向上          CE9452AD
向下          CE94D22D
 
電腦這一端可以用 py-serial module 來建立呼叫動作,搭配 xdotool 就可以控制電腦了。

import os
from serial import Serial
ser = Serial("/dev/ttyACM0", 9600)

while 1:
    L = ser.readline()
    if L[4:8]=='906F' or L[4:8]=='04FB' or L[4:8]=='5CA3':
       os.system('xdotool key Up')
    # 選一個鍵來啟用mouse cursor, 例如 Mute
    elif ..................
    elif L[4:8]=='40BF':
       # 再利用 xdotool getmouselocation 來讀取 mouse cursor 的x, y 值
       X = os.popen('xdotool getmouselocation').read().strip().split()
       mx=int(X[0][2:])
       my=int(X[1][2:])
       N = ser.readline()
       V=15
       if N[4:8]=='FFFF': # 當按住鍵不方時,它會丟出 FFFFFFFF, 就可以利用它來加速
   N='xxxx'+LAST
   V=W*1.5
       if N[4:8]=='906F' or N[4:8]=='04FB':
   os.system('xdotool mousemove %s %s'%(mx, my -V))
   W=V
   LAST=N[4:8]
       elif ...............
       # 當按下紅鍵或藍鍵就中止 mouse cursor
       elif N[4:8]=='54AB' or N[4:8]=='1AE5':
    os.system('xdotool click 1')
   break
    elif L[4:8]=='06F9': # 利用 Search 鍵來輸出數字
       while 1:
   M = ser.readline()
   if M[4:8]=='708F':
      os.system('xdotool key 1')
   elif ............
    # 利用「紅、藍、綠、桶」四個方鍵來搭配輸出英文字母
    elif L[4:8]=='5AA5':
       C = ser.readline()
       if C[4:8]=='F00F': # 數字鍵 2
   os.system('xdotool key a')
       elif C[4:8]=='30CF': # 數字鍵 3
   os.system('xdotool key d')
       elif ...........
    elif L[4:8]=='DA25':
       C = ser.readline()
       if C[4:8]=='F00F':
   os.system('xdotool key b')
       elif C[4:8]=='30CF':
   os.system('xdotool key e')
       elif ........... 
 其他像是可以用 os.system('xdotool key ctrl+Right') 或
os.system('xdotool key ctrl+Left') 來做出按鍵

這裡可以 chmod 666 /dev/ttyACM0 讓一般user 的權限就能遙控

這樣就可以當成鍵盤使用了,不過感覺舊式遙控器比較好按,但新式遙控器鍵比較多。

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。推測它是以流經某一粒二極體的電流,但還沒
找出正確對應的 換算公式。

2012-10-12

諾貝爾獎 幹射中國內政

長久以來,每次諾貝爾獎預計或正式頒給中國人,中國政府就像潑婦罵街一樣的
跳出來,不斷大罵這是「粗暴幹射中國內政」。

好像一個有嚴重精神病的男人,一天到晚懷疑自己的女人被別的男人幹射,一天
到晚要對別的男人叫囂,任何男人看他女人一眼,都是「粗暴幹射我的女人」。

終於,今年由中國人莫言獲得諾貝爾文學獎,中國政府一反常態,不再靠腰
「歪果仁幹射中國內政」,很快就把這則新聞在中央電視台報導出來,這反
倒不免讓人懷疑起中國政府是不是用了什麼貞操套,把全國人民都套起來了?
不然怎麼一夕之間不怕再被歪果仁幹射?

原來莫言的作品對中國政府一切違反人權的作為都採取「閉嘴」,難怪一得獎,
中國政府態度一反常態。

不曉得下一次又有中國人得諾貝爾獎時,中國政府會不會又再反今次的態度而
高叫頒獎是「粗暴幹射中國內政」?

===後續===
果然又看到新聞報導,莫言這個人,如下
1.莫言(本名管謨業)為共產黨員,也是官方作家協會副主席。
2. 艾未未昨重批:「莫言會一直站在權力那邊。」

2012-10-11

蘋果要倒了,網樂通改機

蘋果集團因為壹電視因為被NCC 官僚刁難很久,加上有線系統業界的各種利益
阻撓,燒了很多錢之後,黎光頭受不了,於是台灣這棵蘋果樹要倒了。

在可以預期的未來,滿街都是林益世!

蘋果媒體之所以能爆出林益世貪污案,不是這個媒體特別有能力,而是蘋果的
老闆黎智英是外國人。
如果蘋果的老闆是台灣人,像林益世這種案子一定被壓下來,不會報。

所有台灣現有的媒體都是有相當程度的政商關係,就算有人拿到像林益世這種
案子的證據,交到媒體,在老闆的考量下終必丟進馬桶沖掉。

蘋果倒了,第一高興的是那些貪官污吏!再也不會出事了!
(看來蘋果要倒了,2559 也會很高興,因為到時候沒人爆料,直接無罪釋放了)

蘋果倒了,第二高興的是手上有網樂通機上盒的人了!

原本網樂通規定你不可以亂玩這個盒子,不然到時候他們可能向你索賠3000元
,這個小盒子絕對值不到3000元,所以不要跟錢過不去,要玩去買支像是MK802
或Raspberry Pi 或beagleboard 什麼的。

現在蘋果要倒了,他們也寄出信函說這台小機機不用還,所以大家來給它開開機吧!

照著網路上的教學想改機,卻遇到問題,就是按住reset 再插power 後完全找
不到機子的IP 可以telnet 進去,所以這一步是行不通的。

看到教學說要自行接UART出來以debug的方式進行改機,這好像有點麻煩,其實
在拆開機盒後,把那一粒8G USB DOM拆下來,可以看見它有四支腳,而且都有
標示+5V, GND, DP(data plus), DM(data minus), 這四腳都是母孔位,只要接
線到麵包板再拉線到工作的電腦USB 插座,當一般USB 隨身碟處理就可以改裡面 
的內容了。

fdisk -l /dev/sdb 可以看到

Disk /dev/sdb: 8027 MB, 8027897856 bytes
160 heads, 19 sectors/track, 5157 cylinders, total 15679488 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
   /dev/sdb1              19      617119      308550+  83  Linux
   /dev/sdb2          617120     1234239      308560   83  Linux
   /dev/sdb3         1234240    13819839     6292800   83  Linux
   /dev/sdb4        13819840    15622559      901360   83  Linux

mount 之後可以看到四個partitions 都是ext3 格式。

2012-10-01

用shell script 寫個輸入法

最近使用mk802 一開始是遇到microSD 速度的問題, 以致在量稍微大一點的寫入時,
會把系統檔案弄亂, 所以先不裝Xorg.

因為用debootstrap 做出來的初步系統不大, 要裝Xorg 的話會depend 很多檔案, 在
apt-get 進行安裝時會從幾十到上百MB, 這在Class 4 卡上面就會出亂子(屨試不爽).

另方面也是MK802 只能以framebuffer 方式跑 xserver-xorg-video-fbdev, 但是
framebuffer 之下的效率是不好的, 所以不如只用text mode 回到石器時代體驗
另一種人生 XD (要說我自虐也可以啦).

由於自己compile 的kernel 有支援fbcon, 因此只要跑fbterm 就可以顯示CJK,
這樣在沒有Xorg 環境的石器時代下, 己經可以有效閱讀漢字了, 就算只能用w3m 的
web-browser 也能夠收發gmail, 所以原始人在text mode 下也可以跟現代人通訊,
也能生存了, 只差最後一里路, 就是漢字的輸入法.

目前現成的漢字輸入法能用於UTF 環境的只有ucimf, 但是試了一下debian 裡的ucimf,
才打幾個字就crash 掉, 幾乎等同不能用, 這樣好像非裝Xorg 不可.

一開始想是不是可以從現有輸入法的table(xxxx.cin)裡, grep漢字的拆碼, 瀘出所要
的漢字出來再copy/paste, 不過這樣的人力耗費實在太多, 之後查閱tmux 的用法時,
發現它支援buffer copy/paste, 就是說可以利用tmux 來自動化.

tmux 幾乎可以說在text mode 下屬於必用的軟體, 這樣只要藉由tmux 的config 來
搭配grep 輸入法table 所產出的字串, 就可以自動把漢字copy/paste 到目的區,
這樣跟使用現成的漢字輸入法軟體幾乎相同.

開始試著寫一個shell script 來達到這個目的, 經過幾天慢慢修改, 終於完成與現有
Xorg 環境下輸入法主要功能相同的功能, 例如可以切換輸入法(注音table 還未完成)
以及可以打正出簡(只要用正體字的拆碼就可以打出簡體字).

S=輸入的一長串漢字的拆碼(英文字母中間有空白分隔,就像一般打倉頡那樣的打法)
  (例如:onf aj ym sbn ymy nn ene(你早上刷卡了沒))
for i in $S; do
   k=$(grep ^"$i " $CJKtable)
   if [ ${#k} -gt 0 ]; then # 這是有grep 出漢字
      j=$(echo -n $k|sed -e "s/$i //g" -e 's/ />/g')
      if [ ${#j} -gt 2 ]; then  # 如果grep 出超過一個以上的漢字
         再提示選字,再剪出所要的字
     echo -n $j; read J
     SELECT=$(echo -n $j|cut -d'>' -f $J)
     STR="${STR}$SELECT"
      else  # 只瀘出一個漢字的話
         就以grep 出來的漢字
   else
      如果沒有grep 出漢字, 那它就將原字串貼出(例如漢英混打)

最後將泣出的漢字整句推進buffer 裡
echo -n "$STR"|tmux loadb -
再藉由tmux 自動貼到目標區
tmux paste-buffer -t top-left

這裡其實還有稍微要施工的就是輸入法的table, 讓同碼字減少.

致於Ctrl-space 的切換鍵就由tmux config 來定義
bind-key -n C-Space select-pane -l

而tmux 工作區要切出像是一大塊跟一小塊
bind-key -n F1 run \
"tmux split-window -v -p 9 ; tmux split-window -h -p 40; tmux select-pane -U"
(右下側區塊留做其它用途)

這樣一個沒有Xorg 環境的Linux 幾乎像一部悍馬車, 可以在各種地型行駛,
如果用在server(大都沒裝Xorg 吧?) 也是很方便的.

其實在framebuffer 環境下(就是沒跑fbterm 的環境), 利用w3m-img 就可以顯示
網頁裡的圖片, 原始人過的生活也不是太原始啦!!