Tag Archives: nxt

[課程紀錄] Arduino+樂高機器人研習@萬大國小

作者/攝影 曾吉弘
課程時間  2017 3/16
課程講師 曾吉弘
課程場地  台北市萬大國小

3/16 來到了CAVEDU旁邊的萬大國小,學生們想要參加今年台北市校際盃的公開賽(主機不可使用樂高原廠主機)。這樣一來多數人會改用Arduino作為控制主機。不過馬上就會遇到的問題就是機構問題,總是要組裝出一台機器人車身的嘛。自行設計機構零件的話,在組裝和修改上的彈性就比樂高弱了一點。樂高的積木式零件能讓學生可以馬上修正上次測試中不滿意的地方。

所以啦,MindSensors這家與HiTechnic齊名的電子周邊廠商早早在NXT時代就推出了NXShield-D/ M 可以搭配 Arduino Uno 與 Mega 2560,到了EV3也推出了 EVShield。讓Arduino Uno 可以使用樂高EV3的原廠感測器,當然MindSensors推出的周邊(例如本次研習用到的Lineleader 光感測器陣列)也可以用,回頭還能繼續擴充各種 Arduino 的擴充板,一舉多得呢。

EVShield購買連結請按我

(樂高強大的地方並非只有主機而已,應有盡有零件庫才是關鍵。說來很現實,但多數人離不開樂高的原因的確是如此。)

先來看一下EVShield的外觀,左右各有四個接頭,可以同時連接4顆感測器與4顆馬達,EVShield另一面還有6個 servo 的 3 pin 接頭,除非要做二足步行機器人,不然這樣的I/O數量應該很夠了。

真的不滿足的話… 還有馬達多工板NXT感測器擴充板可以用,舊款的NXT一樣不會浪費喔。

疊上一片小螢幕的樣子

接著說明一下 Lineleader,這是MindSensors 特別針對刁鑽的直角彎、髮夾彎甚至斷線等設計出的神兵利器:八個光感測器整合成一個陣列。每個可獨立回傳0~100的光值變化,並且已經有 PID 函式庫讓您直接修改相關參數就可以有很好的循跡效果,希望能讓小朋友過程中建立一些機器人控制所需的數學基礎。讓他們知道原來線性方程式以及三角函數真的有用,而不是一直解一些無聊的題目(很可惜,阿吉老師的學生時代就是這樣過的…,無法體會數學之美)。

來看看執行的影片吧 (偵測障礙物是使用 MindSensors SumoEye紅外線感測器,您當然可改用樂高EV3的超音波感測器)。

 

圖說:阿吉老師分享使用一般光感測器與 Lineleader 在過十字路口以及色卡紅綠燈的一些小小心得

最後請看上課照片,祝各位小朋友、家長與老師,在比賽的過程與結果都能有滿滿的收穫喔!

 

圖說:老師們特別調課來上研習,真的超有動力

圖說:老師們對於機構已經有一定的研究了

 

相關文章:

[3/29_C-Day有什麼?]系列之四:台北市校際盃機器人選拔賽(三)- 使用Arduino uno與NXShield

[授權翻譯] NXT/EV3 Arduino I2C 終極指南 – 感謝Muhannad Al-Khodari

NXT/EV3 Arduino I2C 終極指南

註:本文經原作者 Muhannad Al-Khodari 同意 CAVEDU 翻譯成正體中文後用於教學推廣,歡迎註明出處後轉載。感謝CAVEDU實習生與台大自造者社長張德芯同學協助翻譯

本文將介紹如何連接LEGO EV3或NXT系列與Arduino UNO。過去幾年,筆者都是使用LEGO Mindstorms提供的圖形化程式與RobotC來控制NXT 和 EV3,但總覺得有些馬達、感應器會受到積木本身的限制,或是希望能擴充一些積木不支援的功能。本文將會告訴您如何按部就班地掌握解決上述問題。未來會再增加 LabVIEW 的做法。

在繼續深入前,請注意這不是”五分鐘掌握NXT/EV3與Arduino的I2C”,您需要投入一些時間,大約2~3天閱讀、消化並測試,之後才能應用到自己的專案上。當然也與耐心和投入的時間有關。

Continue reading

[五十川芳仁老師來台] 150813 體驗工作坊 台南場

今天早上的台南下了一場大雨,幸好到了九點半,老天爺非常賞臉,給了來參加五十川老師樂高講座的各位大朋友小朋友一個涼爽舒適的好天氣。 本日講座是體驗工作坊,地點在晶英酒店采風廳,飯店人員非常熱心地佈置會場,工作人員們也非常認真地講解展示各作品給孩子們看。

撰文&日文口譯 沈佩誼

IMG_7003

新聞連結:[自由時報]高市創客工作坊 樂高大師秀經驗 / [中時電子報]創客工作坊邀樂高大師與創客見面

[五十川芳仁老師來台] 150814 體驗工作坊&教師工作坊高雄場

[五十川芳仁老師來台] 150812 體驗工作坊&教師工作坊台中場

[五十川芳仁老師來台] 150811 體驗工作坊新竹場

[五十川芳仁老師來台第一天] 150810 台北漫遊美食之旅

五十川老師來台體驗工作坊與教室工作坊,活動說明與報名頁面請按我

Continue reading

[五十川芳仁老師來台] 150814 體驗工作坊&教師工作坊高雄場

今天我們來到了豔陽高照的高雄舉辦兩場工作坊。本次活動地點在光線充足、寬敞舒適的高雄市勞工教育生活中心,裡面的文創相關展品也十分有特色,用色大膽的作品也呈現了高雄人的鮮明個性。

撰文&日文口譯 沈佩誼

IMG_7304

本次活動感謝高雄市政府勞工教育生活中心的大力支持,也感謝徐主任到場一起同樂

IMG_7244

新聞連結:[自由時報]高市創客工作坊 樂高大師秀經驗 / [中時電子報]創客工作坊邀樂高大師與創客見面

[五十川芳仁老師來台] 150812 體驗工作坊&教師工作坊台中場

[五十川芳仁老師來台] 150811 體驗工作坊新竹場

[五十川芳仁老師來台第一天] 150810 台北漫遊美食之旅

五十川老師來台體驗工作坊與教室工作坊,活動說明與報名頁面請按我

早上十點準時開始的「體驗工作坊」來了四十幾位小朋友,大家對於老師的作品都十分感興趣,個個都迫不及待想要親自操作。小朋友對於五十川老師相當生活化的提問都踴躍回答,老師覺得高雄的小孩子個個都好活潑好可愛喔!

IMG_7264  IMG_7286

下午的「教師工作坊」從兩點開始,今天的創作題目也是非常有趣 (台中場的題目是 “15 秒的魔術秀” ,五十川老師為高雄的學員特別發想的唷(早上才決定!熱騰騰的題目!)。五十川老師要大家以MINDSTORM EV3這套組合結合小時候常見的色紙,創造出充滿個人特色的作品。雖然一公佈題目時台下的學員有些一頭霧水,但是經過不到一小時的製作時間,每位學員呈現的作品都令老師十分驚艷呢!比如有學員用色紙做成一隻魚,再結合MINDSTROM EV3,表現魚兒在水中自在悠遊的景象。老師說這個作品也讓他聯想到日本兒童節時家家戶戶卦在外面的鯉魚旗!

IMG_7419

IMG_7450   IMG_7467

IMG_7443

今天最令老師開心的事,就是五十川老師的兩本新書以急件包裹送到活動會場了!甫一得知老師新書即將發行,CAVEDU立即和台灣的基峰出版社聯絡,希望能在五十川老師來台的時候搶先發行,因此這兩本集結了各式各樣實例的樂高結構參考書的中文版甚至比將在美國、日本發售的英文版還要提早兩個月出版了呢!今天參加工作坊的學員也非常捧場,一下子就將兩冊共四十本書全數銷售一空!五十川老師非常開心地為大家簽名,也把熱騰騰的新書拍照上傳到臉書與全世界的粉絲一起分享!

IMG_7478

IMG_7302

7月24日-7月25日_新北高工NXT研習營

20150724_103604

這次針對國中高中的高一新鮮人舉辦一連串的研習營,目的要讓同學體驗上了高中之後,有各式各樣的新知識、新技能等帶著他們來學習,研習營第一彈:NXT機器人研習

這次教學內容有:

觸碰遙控車、倒車雷達與避障機器人、光感應循跡機器人、相撲機器人還有足球機器人,兩天給你豐富的享受。

從7/27開始,還有APP設計體驗、3D繪圖、電路設計等體驗可以參加,地點在新北高工~

20150724_103623 20150724_103639

20150724_103652 20150724_103709

20150724_103716 20150724_103724

[成就達成] 魔動王顏色對對碰

我承認這篇真無聊,只是在玩玩具的時候,突然想到好像可以把魔動王與書的顏色搭起來,來吧!知道魔動王的朋友,應該和阿吉老師差不多年紀喔

超級火王 – LabVIEW 高階機器人教戰手冊 (第二版 EV3 + NXT)

2015-04-20 18.56.21

超級水王- LabVIEW for Arduino 控制與應用的完美結合

2015-04-19 23.01.50

超級風王:LabVIEW 高階機器人教戰手冊(初版 for NXT)

2015-04-20 18.57.57

[Mindsensors測試]馬達與感測擴充(NXTMMX-v2、SensorMUX-v1、TouchMux、SPLIT-Nx-v2)

Mindsensors有許多有趣的感測器與擴充,但並不是每個都可以讓EV3使用,而有些長得一樣,功能並不一樣,近日也被人問到這些東西到底有哪裡不一樣,今天我們就以這四款擴充器來一一比較解釋:

T1

觸碰感測器擴充(TouchMux),顧名思義就是專門來裝觸碰感測器用的,EV3/NXT都可使用,範例和使用者手冊可點此前往查看。

touchmux1touchmux

感測器擴充(SensorMUX-v1),顧名思義也是讓你裝感測器用,如果裝馬達,則全部的馬達會同時動,但裝馬達則需要額外接電池,NXT用,無EV3專用的BLOCK,相關範例及使用者手冊點此前往。

mux1mux

馬達與感測器擴充(NXTMMX-v2),有二個馬達埠和一個感測器埠,需額外裝電池,EV3/NXT可用,相關範例及使用者手冊可點此前往。

mmx1mmx

最後一個分接器,只能接數位感測器,支援的裝置這裡有說明,目前並沒有專用的BLOCK,而是需要輸入感測器的I2C值來讀取,點此前往查看使用者手冊,目前測試分接器接NXT超音波感測器可以讀得到值。

MindSensors 推出的 Grove Sensor Adapter,可用於樂高 EV3 與 NXT 機器人主機

Grove 感測器系列是 Seeed Studio 推出的感測器套件包,搭配自家的擴充板,讓複雜的接線變得簡潔許多。現在 MindSensors 推出了 Grove Sensors 轉接頭,可將各種Grove 感測器轉接到樂高 EV3 與 NXT 主機上使用。

 

GSAwithsensorsw1024

 

當然,也提供了 EV3 的指令,請在本頁面下載後匯入 EV3 環境即可使用。但由下圖可知,提供的是底層的讀寫指令,並未針對特定的感測器提供專屬的讀寫指令。分別有 I2C Read, I2C Write, Analog 與 Digital 等四大類指令。

螢幕快照 2015-02-28 下午11.53.39 螢幕快照 2015-02-28 下午11.53.50

[Mindsensors] NXTTouchPanel測試-小鋼琴七音階

Mindsensors有出一款觸碰面板叫作NXTTouchPanel,可觸碰對應液晶螢幕的像素點並提供8個虛擬按鍵,今天我們就要用它來做成 NXT-小鋼琴,先來看一下我們的主角長什麼樣子

nxttouchpanel

就像這樣固定在NXT的螢幕上,感覺像小時候在玩GameBoy…

nxt+touchpanel

要做出NXT-小鋼琴,要先下載以下三個程式

1.NXTTouchPanel NXT-G Block:觸碰面板程式。要使用NXTTouchPanel的必要Block

2.NXTRICedit V2:圖片編輯程式。因為本篇使用的是NXT-G 2.1版,不像2.0版有內建圖片編輯程式,所以要額外下載

3.Wav 2 Rso:音效轉檔程式。將下載的音效檔轉為可在NXT播放的sound檔(進入網頁後往下找到Wav 2 Rso)

下載安裝好之後,首先我們需要使用NXTRICedit V2來編輯出鋼琴的琴鍵,程式的使用介面如下:

ricedit

NXTRICedit算是滿好上手的圖片編輯程式,且本篇重點不在此,故不多加介紹,可自行上NXTRICedit的網站閱讀相關教學,繪製完成的琴鍵圖如下:

pianokeyboard

編輯好的圖片可另存到NXT-G目錄下的engine\picture資料夾中,接著使用Display加上Loop顯示在螢幕上

piano2

執行後顯示

keyboard

接下來要能夠觸碰琴鍵發出聲音,這邊可以分為1.觸碰到琴鍵的座標位置  2.發出聲音,先來解決第一個觸碰琴鍵的問題,在這邊要使用到剛才下載的Touch Block,有分為Read Current Stylus Point(讀取目前座標點)、Read Buttons(讀取按鍵),本篇是使用Read Current Stylus Point讀取座標點來對應琴鍵的座標,概念是希望觸碰琴鍵下半部白色區域範圍

PIANO4

PIANO3

使用Range讓x與y在琴鍵範圍內時就觸發條件,再加上Logic讓x與y同時成立(選擇and)才觸發

piano5

在這邊的x與y座標範圍是剛才所編輯的琴鍵座標,每一個琴鍵分別需要範圍內左下角和右上角的二點座標,使用nxtRICedit的好處就是它會顯示出座標位置,不必再一點一點去算座標,再來加上聲音條件,本篇是網路上的wav音效檔,再使用Wav 2 Rso轉成nxt可用的聲音檔,先讓第一個琴鍵發出Do的音

piano6

最後將其餘的六個音按此法寫入,更改x的座標範圍即可,本篇是將七個音分別用My Block包起來後再用多工執行,以下影片示範完成後的NXT-小鋼琴

最後附上NXT-G的小鋼琴程式piano七個音的wav檔,希望大家可以做出更多好玩的樂器。

舊文章連結

[MindSensors測試]追蹤物件顏色的利器-NXT-Cam-v4

麻花救星 – MindSensors 滾珠軸承座,特價$750

MindSensors 系列產品 更新 MindSensors for EV3韌體

 

141115 App Inventor研習@雲科大資管系

上次去雲科大是什麼時候?從 2011 年開始就蒙雲科大資管系古老師的邀請,到系上與同學分享 App Inventor 的各種應用。系上也有樂高機器人,所以機器人控制也是課程的內容喔!

也感謝同學的配合,把每週 3 小時的課改到周末一天 6 小時,這樣我可以省去移動的時間哩

P1070607.min

大家可以回顧一些我們上課的有趣範例

141101 雲科大資管系App Inventor研習

121013 雲科大 App 課程 Day 3 – 遙控機器人爬坡夾罐賽

121006 雲科大 App 課程 Day 2 – Qrcode座標系統.

111015 雲科大資管系 嵌入式系統課程 – 搬罐子大賽

111001 雲科大資管系 嵌入式系統課程 – App Inventor 開發Android程式

P1070596_mini P1070591_mini P1070585_mini

[2014 7月號 Robocon雜誌專欄]輕鬆使用Android 裝置控制樂高機器人:超音波感測器掃描雷達圖

2014年7月號的Robocon雜誌專欄是:超音波感測器掃描雷達圖。本期專題是延伸自2014 年3 月號的〈機器人感測器結合Google 雲端圖表〉,會讓感測器砲塔進行一次掃描後,以雷達圖的方式來呈現資料。有接觸過App Inventor 的師長朋友們,歡迎從App Inventor 中文學習網下載原始碼回去加入更多有趣的功能。

泛科學文章連結:http://pansci.tw/archives/62019

請注意本範例需用到網路連線,請確認您的手機是使用Wifi 或3G行動網路來連上網路, 否則將無法顯示Google 雲端圖表。

超音波感測器砲塔

NXT 超音波感測器是一種I2C 數位感測器,它能讓機器人「看到」物體並在撞上去之前避開,這是觸碰感測器所辦不到的。超音波感測器會發出一連串的超音波,並記錄超音波被物體反射後所需要的時間,再轉換成距離回傳給NXT。請注意:超音波感測器的預設單位是公分。實際使用時,超音波感測器可測到的最短距離約為5 公分,最遠距離約為220 公分。

請將馬達組裝在NXT 主機側面,並超音波感測器安裝在馬達上,當馬達轉動時,超音波感測器也會隨著馬達掃視水平面。在App Inventor 中, 我們使用NxtUltrasonicSensor 元件的GetDistance 指令來取得超音波感測器值(圖1)。

002

開始玩機器人

範例的機器人只要將一個超音波感測器接在NXT 主機的4 號輸入端,再將馬達接在輸出端B 即可。請確認NXT 主機的藍牙已啟動,接著將NXT主機與Android 手機進行藍牙配對(註2),完成之後就可以把機器人放到一邊了。啟動藍牙之後,您可以從NXT主機的螢幕左上角看到藍牙的符號。

接下來依序介紹程式的各個功能:

STEP1 登入畫面:

首次進入程式的畫面如圖2a, 這時只有「連線」按鈕可以按,其它所有按鈕都無法操作。點選「連線」按鈕後進入藍牙裝置清單(圖2b),請找到剛剛配對完成的NXT 主機名稱(本範例為abc), 點選之後就會由Android 裝置對NXT 主機發起藍牙連線。順利連線成功的話,「連線」按鈕會變成不可按的狀態,其他按鈕則都可按(圖2c)。

2abc

STEP2 程式初始化:

在點選連線清單之前(ListPickerConnect 的BeforePicking 事件),需先將清單內容指定為Android 裝置上的藍牙配對清單(圖3a)。點選之後則先測試連線是否成功,成功則將「連線」設為不可點選,「開始記錄」、「位置歸零」與「斷線」等按鈕設為可點選(圖3b)。

005a

005b

STEP3 開始掃描:

每當我們點擊一次「開始記錄」按鈕時, 就會讓B 馬達轉動2cm , 這是根據預設輪胎直徑計算出的距離,在此是一個經驗值,您可能需要根據實際狀況來調整這個參數。接著將超音波感測器當下的數值搭配一個半形逗號組合到sensorValue 這個字串中。count 變數是用來計算一共記錄了幾筆資料,累計到五筆資料之後,count 變數值會設定為1 ,代表要重新開始記錄新的五筆資料(圖4a)。

006a

接著「產生圖表」這個按鈕會變為可按。您可以調整count 變數值來修改在圖表中所要呈現的資料筆數。每次掃描完之後,您可以點選「位置歸零」按鈕, 讓B 馬達反向轉動10cm以回到原來的位置(圖4b)。

006b

在此難免會有轉過頭或不足的狀況發生,這時可用手把砲塔對正。

STEP4 按鈕取得Google雲端圖表:

Google Chart 雲端圖表讓我們可用超連結的方式來取得各式圖表。以本範例來說,我們只要將五筆超音波感測器值組合到chart 字串變數的後方,再由WebViewer 元件去取得這個超連結就可以了。說穿了就是去操弄這個字串,就能取得我們所需要的圖表。

讓我們來看看chart 這個字串中的一些重要參數(圖5a):

  • http: //chart.googleapis.com/chart?
  • chs=320×320:圖片尺寸為320 x320像素。
  • cht=r:圖表類型為雷達圖(radar)。
  • chm=s ,CC3366,0, -1,12,0| s ,FFFFFF,0,-1,8,0:以紅色空心方格來呈現資料點。
  • chls=4:兩點之間連線的粗細。
  • chxt=y,x:以同心圓方式顯示格線。
  • chxp=0,0,30,60,90,120:格線之間的數值距離。
  • chd=t : : 圖表資料, 我們就是把sensorValue這個變數組合在chart變數之後來組成一個完整的超連結。每筆資料之間需使用半形逗號隔開。按下「產生圖表」按鈕,會先把sensorValue最後一個字元(就是半形逗號)刪除,接著使用WebViewer.GoToUrl來載入chart與sensorValue兩者所組合成的超連結,在此就會順利載入圖表了。為了讓下次也能順利執行,最後要把sensorValue內容清空(圖5b)。

圖6a

圖6b

STEP5 斷線:

按下「斷線」按鈕之後,會中止藍牙連線(BluetoothClient.Disconnect指令),並使畫面上的各個元件恢復到程式一開始時的狀態(圖6)。

008

操作

實際執行的時候,請先確認NXT 已經開機且藍牙也啟動了。接著在您的Android 裝置上點選畫面中的「連線」按鈕,會進到如圖3b 的藍牙清單畫面,點選您所要的NXT 主機名稱並連線成功後,就能點選「開始記錄」按鈕來取得超音波感測器值,每次點選都會將數值顯示在標題列上,如下圖紅框。點選五次之後才能點選「產生圖表」按鈕(圖7a),這時就可以看到精美的雷達圖了(圖7b、7c)。操作一次之後,請點選「位置歸零」按鈕,讓砲塔回到初始位置。

請注意:您的手機需要有網路連線,否則無法取得Google Chart 雲端圖表。

7abc

本期專欄介紹了如何製作一個感測器值砲塔, 並結合Google 雲端圖表來產生漂亮的雷達圖。請參考GoogleChart API 的官方網站來看看更多有趣的圖表範例,也請繼續關注CAVE的機器人專欄!

本程式已上架Google play,請到Google Play搜尋「CAVEDU教育團隊」就找得到我們的樂高機器人系列app了。歡迎大家到App Inventor 中文學習網的檔案庫下載本程式的aia原始檔與apk安裝檔。

註:

  1. 想學如何開發App Inventor程式嗎?請到App Inventor 中文學習網與我們一同學習。
  2. 將Android手機設定為可安裝非Google Play下載的程式以及讓手機與樂高NXT主機連線等說明請參考此處
  3. 與NXT連線後如果出現[Error 402]之錯誤訊息請不必理會,程式依然能正確執行。

文章原文刊載於《ROBOCON》國際中文版2014/7月號

[2014 5月號 Robocon雜誌專欄]輕鬆使用Android 裝置控制樂高機器人:把機器人感測器值與座標用電子郵件寄送

2014年5月號的Robocon雜誌專欄是:從上一期3月號的專欄開始,Android裝置控制樂高機器人專欄將改用App Inventor 2來編寫。App Inventor 2在指令上與前一版的App Inventor 是差不多的,相信您可以很快上手。請到App Inventor 中文學習網來登入App Inventor 2 開發網站並認識更多新功能。

泛科學文章連結:http://pansci.tw/archives/59193

本期專題將會把樂高NXT光感測器值,每十筆為單位更新到Google Chart雲端圖表來取得折線圖。只要熟悉基本語法就可以產生各式各樣的圖表,非常方便!有接觸過App Inventor的師長朋友們,歡迎從App Inventor中文學習網下載原始碼回去,加入更多有趣的功能。

請注意本範例需用到網路連線,請確認您的手機是使用Wi-Fi或3G行動網路來連上網路,否則將無法顯示Google雲端圖表。

超音波感測器

NXT超音波感測器是一種I2C數位感測器,它有內建的晶片可以分析並送出資料。利用超音波感測器,我們可以讓機器人「看到」物體並在撞上去之前躲開,這是觸碰感測器所辦不到的。 超音波感測器使用了聲納技術,它會發出一連串的超音波並記錄超音波被物體反射後所需要的時間,再轉換成距離回傳給NXT。請注意,超音波感測器的預設單位是公分。實際使用上,超音波感測器可測到最短的距離約為5公分,最遠距離約為220公分(圖1)。

002

開始玩機器人

本範例的機器人只要將一個超音波感測器接在NXT主機的4號輸入端即可。請確認NXT主機的藍牙是啟動的,接著將NXT主機與Android手機進行藍牙配對(註2),完成之後就可以把機器人放到一邊了。啟動藍牙之後您可以從NXT主機的螢幕左上角看到藍牙的符號。

接下來依序介紹程式的各個功能:

STEP1登入畫面:

首次進入程式的畫面如圖2a,這時只有「連線」按鈕可以按,其它所有按鈕都無法操作。點選「NXT主機/連線」按鈕後進入藍牙裝置清單(圖2b),請找到剛剛配對完成的NXT主機名稱(本範例為abc),點選之後就會由Android裝置對NXT主機發起藍牙連線。順利連線成功的話,「NXT主機/連線」按鈕會變成不可按的狀態,其他按鈕則都可按(圖2c)。

4aa

STEP2程式初始化:

在點選連線清單之前(ListPickerConnect的BeforePicking事件),需先將清單內容指定為Android裝置上的藍牙配對清單(圖3a)。點選之後則先測試連線是否成功,成功則將「NXT主機/連線」設為不可點選,「寄信」、「取得座標」與「斷線」等按鈕設為可點選,並啟動Clock元件來取得超音波感測器值(圖3b)。

005a

005b

STEP3 按鈕記錄GPS坐標:

每當我們點擊一次「取得座標」這個按鈕時,就會要求LocationSensor元件來取得手機當下的座標(圖4),並顯示在Label_GPS標籤上。由於Google Map的座標格式為「緯度,經度」。所以我們在此也是這樣顯示。

006

STEP4 使用Clock元件定時更新超音波感測器值:

接著使用Clock元件來每秒更新一次超音波感測器值,如圖5。如果在尚未與NXT主機連線之前就要取得超音波感測器值的話,會顯示錯誤畫面。因此我們在圖5b中,會確認藍牙連線成功之後才做這件事。

007

STEP5 寄送電子郵件:

我們將寄送電子郵件的指令包成一個副程式,將寄送電子郵件的指令設定成ActivityStarter元件的DataUri屬性內容。「mailto:」是收件人電子郵件,這裡油使用者自行填入。「subject=」是郵件主題,「body」是信件內容,在此我們填入座標與感測器值等內容(圖6)。 接著按下「寄信」按鈕之後,會先呼叫email副程式,再透過ActivityStarter元件來啟動手機上的電子郵件程式(圖7)。

008a

008b

STEP6 斷線:

按下「斷線」按鈕之後,會中止藍牙連線(BluetoothClient.Disconnect指令),並使畫面上的各個元件恢復到程式一開始時的狀態(圖8)。

009

操作:

實際執行的時候,請先確認NXT已經開機且藍牙也啟動了。接著在您的Android裝置上點選畫面中的「NXT裝置/連線」按鈕,會進到如圖2b的藍牙清單畫面,點選您所要的NXT主機名稱並連線成功後,就能自動取得超音波感測器值。按下「取得座標」按鈕之後,就可在畫面上看到手機目前的GPS座標(圖9a)。請注意您當下所在的位置有可能無法取得座標,例如地下室等密閉空間。

在TextBox中輸入收件人的電子郵件之後,例如aa@bbb,請點選「寄信」按鈕。這時系統會詢問您要使用哪個電子郵件軟體來寄送,例如Android預設的email軟體或Gmail或任何其他的電子軟體等,在此我們選用Gmail(圖9b)。接著就會跳到圖9c的電子郵件畫面,按下寄送按鈕就發信出去了!快去問好朋友有沒有收到信吧。

請注意Android系統中,無法自動發送email、簡訊或撥打電話,因為這樣一來您的手機很容易被惡意使用。所以最後的送出都要由我們親自來執行喔。

9

本期專欄介紹了如何將機器人的感測器值與手機的GPS座標,透過電子郵件的方式發送出去。這樣有一天您派機器人遠征的時候,就能用這樣的方式來報平安。請繼續關注CAVEDU的機器人專欄唷!

本程式已上架Google play,請到Google Play搜尋「CAVEDU教育團隊」就找得到我們的樂高機器人系列app了。歡迎大家到App Inventor 中文學習網的檔案庫下載本程式的aia原始檔與apk安裝檔。

註:

  1. 想學如何開發App Inventor程式嗎?請到App Inventor 中文學習網與我們一同學習。
  2. 將Android手機設定為可安裝非Google Play下載的程式以及讓手機與樂高NXT主機連線等說明請參考此處
  3. 與NXT連線後如果出現[Error 402]之錯誤訊息請不必理會,程式依然能正確執行。

 

文章原文刊載於《ROBOCON》國際中文版2014/5月號

[好書介紹] Build Your Own Teams of Robots with LEGO® Mindstorms® NXT and Bluetooth®

最近翻到了一本新書,機器人平臺雖然是用 NXT,但其實裡面講的概念挺好的。很想買一本來看看,重點是以群體的概念來介紹機器人協同運算( collaborative computing),與 ROS 是相當類似的概念。

http://www.amazon.com/Build-Teams-Robots-Mindstorms-Bluetooth/dp/0071798560 <- 在此可試讀一些章節

書名:Build Your Own Teams of Robots with LEGO® Mindstorms® NXT and Bluetooth® 

作者:Cameron Hughes, Tracey Hughes, Trevor Watkins, Bob Kramer

章節:

CHAPTER 1 It Takes Two to Tango (機器人協同導論)

CHAPTER 2 Bluetooth for MINDSTORMS NXT: A Closer Look (深入認識NXT主機的藍牙,能與不能)

CHAPTER 3 One for All and All for One (認識機器人硬體)

CHAPTER 4 Creating a Team of Movers and Shakers (馬達)

CHAPTER 5 Bluetooth programming in NXT-G and LabVIEW (使用 NXTG/ LabVIEW 編寫藍牙通訊程式)

CHAPTER 6 robot environments, Teamwork Strategies, and Goals (機器人團體合作)

CHAPTER 7 Give Your Team of robots Java power with leJOS (Java 與機器人)

CHAPTER 8 Got Linux and Darwin on Your Team of Robots? (機器人作業系統、NXC 語言與檔案系統)

CHAPTER 9 Advanced Teamwork: One for All! (魔術方塊專題)

CHAPTER 10 Together We Stand: The Robot Convoy (機器人藍牙網路專題)

CHAPTER 11 The CSI project (機器人救援專題)

下載

 

 

[新品上市]Line Follower Sensor (LineLeader-v2) EV3/NXT都適用

 

 

 

 

 

 

 

 

 

http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=111

LineLeaderw400

MindSensors 的當家產品:Line Follower Sensor 推出新款了,EV3、NXT都可以使用。對應的程式環境也很完整,除了樂高官方環境之外,LabVIEW、NXC與 RobotC 也都直接有函式庫可以用。

“人”如其名,它就是用來解決各種麻煩的彎道:U型彎,直角彎與左右混合彎等等。這些都會讓傳統的二階段(if/else)循跡法很容易出錯。請參考 CAVEDU 的 [實做比例控制方法之循跡機器人],頁面中有 EV3 與NXC的程式碼可以下載。

簡單來說,它是八個光感測器的集合體,除了個別的讀數之外,還內建了 PID 控制器,只要調整Kp, Ki, Kd 等參數就可以了,剩下就讓感測器自己去算吧。還能根據哪些光感測器被遮斷來判斷感測器與軌跡的相對位置(偏左、偏右與剛好在中間),很方便呢。

有興趣的朋友請留言、來信或來電洽詢。 service@cavedu.com / 02 23062900

來看執行影片,主機是用 Arduino + NXShield 擴充板

[youtube=http://www.youtube.com/watch?v=tMXys7t-_KQ]

這是NXT的版本

[youtube=http://youtu.be/i–ZGQLSnWQ]

也可以獨立取得各個光感測器的讀數

[youtube=http://www.youtube.com/watch?v=Ozmv9nsmqag]

也把MindSensors 提供的 NXC 範例程式放上來給大家參考

const byte SensorPort  =  IN_1;
#define ADDR     0x02
#include "LL-lib.nxc"

char last_steering = 0;

task RunAlongLine()
{
	char steering, result;
	int c_speed, a_speed;

  while (true ) {

    steering = LL_ReadSteering(SensorPort, ADDR);

		steering = steering / 2;
		c_speed = 50 + steering;
		a_speed = 50 - steering;

		if ( c_speed > 100 ) c_speed = 100;
		if ( a_speed > 100 ) a_speed = 100;
		if ( c_speed < -100 ) c_speed = -100;
		if ( a_speed < -100 ) a_speed = -100;

		/*
		// print line status
		//
		// WARNING: TextOut functions take too much CPU
		// causing robot to behave sluggish
		//
    result = LL_Read(SensorPort, ADDR, LL_READ_RESULT);
    msg = "bin:             ";
    x = LL_format_bin(result);
    msg = StrReplace(msg, 4, x);
    TextOut(0, LCD_LINE1, msg, false);

		// print power
    msg = "p:               ";
    x = NumToStr(c_speed);
    msg = StrReplace(msg, 2, x);
    x = NumToStr(a_speed);
    msg = StrReplace(msg, 7, x);
    TextOut(0, LCD_LINE2, msg, false);

    msg = "steering:             ";
    x = NumToStr(steering);
    msg = StrReplace(msg, 10, x);
    TextOut(0, LCD_LINE3, msg, false);
		*/

		//c_speed = c_speed /2;
		//a_speed = a_speed /2;
		OnFwdReg(OUT_A, a_speed, OUT_REGMODE_SPEED);
		OnFwdReg(OUT_C, c_speed, OUT_REGMODE_SPEED);
  }

}

task main ()
{

  string msg;
  string x;
	int s, i;

  byte message[];
  unsigned byte buf[20];
  int count, l;
  byte nByteReady = 0;

  SetSensorLowspeed(SensorPort);
  Wait(10);

	/**
	 * The following parameters (kp,ki,kd) are specific
	 * to your robot. They will change based on robot design,
	 * it's traction with mat, weight, wheel size, wheel spacing,
	 * sensor distance from wheels, etc, etc.
	 *
	 * Tune them as best as you can for your robot.
	 * Note, in general,  ki will be zero.
	 *
	 * If you wish to learn more about Kp, Ki, Kd, please
	 * read the user guide.
	 * An excellent explanation of PID is also offered at:
	 * http://en.wikipedia.org/wiki/PID_controller
	 *
	 */

	LL_Write_KP(SensorPort, ADDR, 25, 32);
	LL_Write_KI(SensorPort, ADDR, 0, 200);
	LL_Write_KD(SensorPort, ADDR, 8, 32);

	StartTask (RunAlongLine);

}
NXC LL

140503 機器人體驗營@國立中興大學附屬高級中學

5/3 星期六, CAVEDU小黃老師,同時也是積木星球球長來到了台中的國立中興大學附屬高級中學辦理一日機器人體驗營。

興大附中以及鄰近學校的同學們都可以自由報名,就用陽光普照的周六下午來玩機器人吧。參加的女同學不少喔,表現也相當不錯

SONY DSC  SONY DSC SONY DSC

先從簡單的來,機器人左去右回

SONY DSC

進階一點則是使用觸碰感測器來走出一個ㄇ字型迷宮。需要注意不要讓機器人撞到牆壁就解體或是卡在牆角

SONY DSC

最後則是軌跡車,大家都走的很不錯喔

SONY DSC