顯示具有 LEGO NXT 標籤的文章。 顯示所有文章
顯示具有 LEGO NXT 標籤的文章。 顯示所有文章

2014年7月16日 星期三

【Jimmy暑假機器人程式探索4】簡易NXT顏色英文教學器

很簡單的程式題目,要Jimmy小朋友寫程式讀取顏色感應器偵測值,並將數值翻譯為對應的顏色英文單字,顯示在NXT的小螢幕上,作品完成後,Jimmy便迫不及待地找目標測試囉!!!

2014年7月12日 星期六

【Jimmy暑假機器人程式探索3】可愛又滑稽的毛毛蟲

最近看到元生國小機器人社團--毛毛蟲車,看來非常簡單又可愛,很適合Jimmy小朋友組裝,剛好拿來測試馬達轉動指令,Jimmy測試了許久,後輪只要動力或角度太大,常常會踢到前輪而摔跤,相反前輪衝太快就會一字馬的屁股跌坐在地上
這是我們參考的毛毛蟲車

2014年7月7日 星期一

【Jimmy暑假機器人程式探索2】向左走向右走兩個碰撞感應器當按鈕

這次的題目,是運用兩個碰撞感應器作為按鈕,控制NXT機器人向左向右,重點是讓Jimmy小朋友學會使用邏輯控制積木判讀感應器回傳的數據,而碰撞感應器超簡單只回傳兩個值,1與0代表感應器有按或沒按兩種狀態。Jimmy注意到我的迴圈控制積木的中文命名很囉唆,但是為了讓他對指令積木的用途能立即理解,目前我還是傾向讓積木中文名稱保持又臭又長的命名方式,讓整段程式碼閱讀起來可以很清楚順暢

【Jimmy暑假機器人程式探索1】繞著正方形磁磚走一回

題目出的很簡單,因為我也才做好幾個馬達指令而已,用Blockly做中文指令真的有點小麻煩,不過讓NXT機器人繞著地板磁磚走一圈,也夠Jimmy小朋友來回測試修正忙了許久,Jimmy處理機器人轉彎不是運用兩個馬達一快一慢,而是一馬達保持前進而另一個馬達後退,感覺上不是很流暢,但是有達到基本要求,過關!!!

2014年6月24日 星期二

Blockly NXC for my Mindstorms NXT

很久沒有接觸Blockly,有些生疏了,Jimmy小朋友前陣子也學過一些NXC,趁暑假快來臨,將NXC比較常用的指令轉為Blockly積木,讓小朋友有個充實的暑假^ ^

2014年5月15日 星期四

如何在Linux上編譯NXC並透過USB下載到樂高Mindstorms NXT

  1. 增加名為legonxt的群組.命令列視窗輸入如下指令
    sudo addgroup legonxt
  2. 將你的帳號加入legonxt群組.
    sudo adduser YourUserName legonxt
  3. 建立檔名為45-legonxt.rules的文字檔.檔案內容如下
    # NXT brick
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0694", ATTRS{idProduct}=="0002", SYMLINK+="legonxt-%k", GROUP="legonxt", MODE="0666"
  4. 複製此檔到 /etc/udev/rules.d.
    sudo cp 45-legonxt.rules /etc/udev/rules.d
  5. 重開機後將NXT連上電腦的USB槽,應該會看到目錄/dev會出現一個檔案
    /dev/legonxt-x-y
    x與y值會依你插入的USB port而定
  6. 下載nbc-1.2.1.r4.tgz並解壓縮
  7. 編譯程式並將執行檔透過USB載入NXT
    nbc -d -S=usb program.nxc
  8. 也可以在wine上執行bricxcc IDE編輯並編譯程式碼,再透過上個步驟載入NXT
以上資料參考自這裡這裡

2012年6月8日 星期五

MINDdroid 1.3

其實Jimmy's papa有點孤陋寡聞,直到最近才知道於2010年老早就有MINDdroid這個東東,可在Android上操控NXT機器人,原本還打算以Android NDK打包C/C++ Library的方式,不過既然有了MINDdroid這套java函式庫,拿來開發Android App就直接了當多了也比較容易除錯

Jimmy's papa想看看有無法子整合到Scratch或Waterbear,不過整合到Scratch應該會比較麻煩,因為還要懂得squeakvm-tablet的FFI寫法

MINDSTORMS官網介紹MINDdroid 1.3
GitHub下載

2012年2月17日 星期五

Jimmy終於組好了變形(MORPH)機器人

寄件者 scratchlab01

這個變形(MORPH)機器人,是過完農曆年派給Jimmy小朋友的寒假作業,讓他挑戰這個複雜度蠻高的機器人作品,是因為他最近很喜歡看變形金剛卡通, 想藉此給他足夠的動力完成,而且小孩子難免會弄丟一些小零件,若不趁早組裝以後可能就沒法子組裝了,原本預期Jimmy開學前能完成,不過Jimmy覺得組這個機器人很難,要求每天只組一兩個部位 ,所以大概花了兩個星期多才完成,組裝到最後階段,哈哈,跟我先前預料的一樣短少了幾個零件,Jimmy向我求救問我是不是沒辦法組裝了,我跟他說"我們可以一起動腦筋想辦法以其他零件代替啊!!!" 於是我看他開心的摸著頭,努力地用他的小腦袋想著.....

寄件者 scratchlab01

寄件者 scratchlab01

寄件者 scratchlab01

變形(MORPH)機器人原始出處
http://mindstorms.lego.com/en-us/News/ReadMore/Default.aspx?id=136782

2012年1月15日 星期日

Talk2NXT beta released!!!

能夠以Smalltalk/Squeak/Pharo操控LEGO MINDSTORMS NXT 2.0樂高機器人,一直以來是Jimmy's papa的夢想,直到最近與Squeak FFI奮戰多日後,終於將Talk2NXT的部份功能實作出來,同時也寫了測試MotorA,MotorB以及port2的Color Sensor的簡單範例,提供給有興趣的網友鑑賞,目前我僅在Ubuntu 10.10的環境下測試過,這段時間讓我對Smalltalk有更深一層的理解,敲下程式碼毫不遲疑,然後不斷地重構(Refactoring)再重構,收穫不少!!!

ps.Jimmy's papa擅長寫又臭又長的程式碼命名(美其名所謂的"程式即說明文件"),但是請不要害怕,善用Tab key就讓Jimmy's papa撰寫Smalltalk的過程輕鬆不少


1.Unzip Talk2NXT-beta-XXXXXXXX-linux32-OneClick.app.zip
2.Run talk2nxt.sh
寄件者 scratchlab01

3.Scan NXT MAC address.Please wait for 30 second.....
寄件者 scratchlab01

4.Copy your NXT MAC address
寄件者 scratchlab01

5.Paste your NXT MAC address to Test1 and Do it
寄件者 scratchlab01

6.Paste your NXT MAC address to Test2 and Do it
寄件者 scratchlab01

7.Try it with your NXT Robot
寄件者 scratchlab01

2012年1月1日 星期日

迎接2012年 啟動talk2NXT新計畫

Jimmy's papa終於等到2012年的到來,這個傳說中充滿挑戰的一年

Jimmy's papa新年的新計畫打算將JNXT的middleware(以nxt-python開發的)換掉,改以暫名為talk2NXT的新專案代替,讓Pharo/Smalltalk直接透過FFI存取C Library,將可提供更多細部指令且更有效率的驅動LEGO Mind Storms NXT機器人

哇咧!想不到原本只是想改寫Scratch添上遙控NXT的陽春功能給我兒子玩玩的,想不到越搞越專業囉!!!

2011年12月16日 星期五

Catroid--用Android操控NXT機器人除了App Inventor的另一選擇

Catroid是一套類似Scratch的積木式程式碼開發工具的Android APP,之前Jimmy's papa曾下載Catroid到我的Android平板小玩一下,那時覺得它的功能跟Scratch對照之下實在非常陽春,不過最近釋出的版本讓Jimmy's papa眼鏡一亮,想不到已經進化到能支援藍牙操控NXT機器人了,改天安裝到我的XOOM平板讓我兒子Jimmy玩玩看

Catroid官網
http://www.catroid.org/catroid/index
Catroid專案
http://code.google.com/p/catroid/

2011年12月15日 星期四

Lestat--用來開發控制Lego NXT機器人軟體的C++函式庫

Lestat: Lego STandard AbsTraction layer (LEGO標準的抽象層)從它的全名可以知道,其實它只是個將通訊底層封裝起來的陽春函式庫,在這個基礎上還可以依自己的需求再進一步加入馬達及偵測器等C++類別,不過Jimmy's papa覺得目前這樣就挺好用了,有些NXT的C++函式庫,封裝得太複雜反而不易除錯

以下是Jimmy's papa在我的linux環境,依Lestat官網指示的測試過程
下載程式碼
https://csrg.inf.utfsm.cl/twiki/pub/ACS/LesTat/lestat-0.2.tar.gz
需求
* 以藍牙控制,則需確定bluez-libs-3.20 已安裝
* 以USB連接線控制,則需確定libusb-0.1.12 已安裝
* 確定編譯工具 scons 已安裝

安裝及使用
* 解壓縮 lestat-0.2.tar.gz
* 在解開的程式碼目錄底下執行編譯 run scons
* 若編譯無誤則執行測試範例./main_test

這是更簡單的C++測試程式碼
int main()
{
    BlueComm nxt;//以藍牙通訊
    try{
        nxt.connect("xx:xx:xx:xx:xx:xx");//用hcitool scan可查出NXT編號
    }catch(NxtEx &ex){
        cout<<ex.toString()<<endl;
        return -1;
    }

    try{
        Opcodes op(&nxt);
        op.playTone(523,500);//音頻
        op.playTone(587,500);//音頻
        op.playTone(523,500);//音頻
        printf("Battery level: %hu [mv]\n",op.getBatteryLevel());//顯示目前電池電力
        
        unsigned char status=1;
        op.setOutputState(0x00,80,0x01,0x00,50,0x20,980,true,&status);//驅動A馬達
        sleep(1);
        op.setOutputState(0x01,80,0x01,0x00,50,0x20,980,true,&status);//驅動B馬達
        sleep(1);
        nxt.disconnect();

    }catch(NxtEx &ex){
        cout<<ex.toString()<<endl;
        nxt.disconnect();
        return -1;

    }
    return 0;

}

2011年11月2日 星期三

Physical Etoys--用Smalltalk EToys玩機器人

Physical Etoys這套軟體,讓小朋友可藉由Etoys簡易的開發環境,以物件導向的方式拖拉腳本程式碼區塊,就能玩多種教育性機器人與硬體

目前支援的硬體有
Arduino
Nintendo Wiimote
Parallel port
RoboSapien v2
Roboquad
I-Sobot
Lego Mindstorms Nxt

下載軟體
Physical Etoys 1.8.1 for Windows
Physical Etoys 1.7 for Linux

進入主畫面,會出現Physical Etoys目前支援哪些機器人,Jimmy's papa當然選小兒Jimmy平常在玩的NXT機器人

寄件者 scratchlab01

會出現NXT機器人的簡單範例,此時顯示EToys尚未連結到機器人
寄件者 scratchlab01

先確認你的藍牙使用的serial port,再按Connect,如果手邊正好有聲音偵測器的話,便可試試畫面下方的簡單測試腳本(script)
寄件者 scratchlab01

到Object Catalog的LegoNxt分頁,可看到幾個常用的馬達及偵測器物件
寄件者 scratchlab01
這是Jimmy's papa測試時的畫面
寄件者 scratchlab01

這是Physical Etoys團隊在ESUG的簡報影片

2011年10月4日 星期二

ROS(Robot Operating System) on Android

以下是jimmy's papa整理的相關資料連結,如果能深入研究的話 對機器人操作平台基礎架構會有一定的概念,Jimmy's papa已經安裝好SL4A(Scripting Layer for Android)在平板上,改天再找時間研究看看如何安裝ROS

ROS的介紹
http://www.ros.org/wiki/ROS/Introduction

VMI Android Mobile Main Package
http://www.ros.org/wiki/android

rosjava
http://code.google.com/p/rosjava/
http://www.ros.org/wiki/rosjava

Get ROS running on Android
https://vmi.lmt.ei.tum.de/svn/vmi-ros-pkg/trunk/vmi_android/android/README

Android running ROScore
https://vmi.lmt.ei.tum.de/projects/ros/wiki/Androidinstall

Using Lego NXT with ROS
http://www.ros.org/wiki/Robots/NXT
http://www.ros.org/wiki/nxt/Installation

2010年10月20日 星期三

JNXT--My Scratch Mod

JNXT是我為了產出NXT機器人專屬執行檔.rxe而修改的Scratch改裝版, 目前僅是構思階段,許多指令是借自NBC(NeXT Byte Codes),我並不打算實作 所有的NXT ByteCodes,目標是讓NXT機器人藉由JNXT化身為Advanced LEGO WEDO, 讓Jimmy不需要懂太複雜的程式觀念,也能寫出NXT機器人程式 由下圖的JNXT操作畫面,可以看到多了兩個指令積木分類,Jnxt & Other,左下框中的紅色指令積木就是目前暫定規劃的Jnxt指令
寄件者 scratchlab

2010年10月11日 星期一

新的PuzzleBox腦控機器人影片

PuzzleBox又上傳新的影片,不同於前兩次腦控者像藏鏡人般隱身幕後,讓NXT機器人孤孤單單的唱獨角戲,這次則有師生在課堂上的互動,學生們戴上MindSet腦機介面,運用腦波專注與放鬆兩種狀態,遙控NXT機器人前進及後退 也許該拿給Jimmy玩玩看,讓容易分心的他自我訓練如何專注