這裡是Jimmy的實驗室用來發表Jimmy的Scratch程式作品,還有LEGO WEDO & NXT機器人設計 & Android, (本部落格引用圖文為教育教學目的合理使用) 想與我(Jimmy的爸爸 )聯絡 jimmyscratchlab@gmail.com
2010年9月30日 星期四
Puzzlebox Brainstorms--用腦波控制NXT機器人
Puzzlebox Brainstorms是一個以Python程式語言開發的開放原始碼專案,
目的是希望教育界可藉由此開放平台,讓學生們在課堂上可以很方便地研究如何以頭戴式腦機介面(BCI)蒐集玩家的腦波數據,並透過藍芽遙控LEGO Mindstorms NXT機器人,也希望各路英雄好漢能貢獻己力,壯大此"石頭湯"效應,有興趣的台灣教師們或許可以跟他們的專案負責人聯絡看看喔,其實如果能採用小喵咪Scratch作為使用者介面(UI),那就可以讓更多的小朋友受惠此專案了
我想,未來的世代不只是要手指頭靈活外,頭腦裡頭的腦神經更要靈活,才能精確地操控更先進的腦機介面
這是使用者的畫面
以下是相關DEMO影片
2010年9月28日 星期二
測試Scratch Board Serial Communication Protocol
根據ScratchBoard_Tech_InfoR2.pdf技術說明文件,Scratch會主動詢問感應板,而感應板會丟出長度為18個Byte的封包,內含韌體版本ID及8個偵測器值,以下的Python程式可以模擬Scratch詢問目前感應板偵測值
1: import serial
2: def testScratchBoard():
3: ser = serial.Serial('/dev/ttyUSB0', 38400, timeout=1)
4: ser.write(chr(0x01))
5: b=ser.read(18)
6: ser.close()
7: print "Packet : "
8: for l in xrange(len(b)):
9: print bin(ord(b[l]))
10: if __name__=='__main__':
11: testScratchBoard()
以下是感應板送出的封包資料,共有18個Byte,每個偵測器值由一對HighByte & LowByte組成,而HighByte最左端位元為1,而LowByte最左端位元為0,封包的最前面兩個Byte為韌體版本ID
Packet :
0b11111000
0b00000100
0b10000111
0b00001000
0b10001110
0b01111000
0b10010110
0b01111101
0b10011000
0b01111111
0b10100111
0b00000010
0b10101100
0b00001110
0b10110000
0b00000000
0b10111110
0b01011000
寫到這裡,當初ScratchBoard的設計理念,好像沒打算讓小朋友理解電腦最基礎的0與1的概念,否則應該加進幾個小LED,讓小朋友在某個位元設0或1,就能看到光滅或光亮,不過或許與Scratch沒有位元操作的Block也有關
2010年9月27日 星期一
ThinkGear Socket Protocol & JSON
花了些時間研讀有關ThinkGear相關開發文件,先留下這份筆記,待日後回顧
由於ThinkGear Socket Protocol是基於JSON資料交換格式的協定
所以ThinkGear傳出來的封包字串大概像這樣
{"poorSignalLevel":0,"eSense":{"attention":39,"meditation":42},"eegPower":{"delta":1.15e-4,"theta":1,"highAlpha":1}}
{"rawEeg":239}
{"rawEeg":281}
{"rawEeg":233}
其中有各項腦波數據,專注力及冥想狀態,可運用這些數據來控制遊戲物件甚至是機器人
由於目前BYOB/Scratch無法decode JSON文件,勢必自己動手打造解譯JSON文件的Block
,以下是Block程式碼
未完........
訂閱:
文章 (Atom)