Tag Archives: lego

150402 木柵國中EV3機器人體驗課程

木柵國中輔導室為了讓小朋友接觸不同的課程、吸收更多的資訊,特別開了一天半的機器人課程,本日只有半天三小時,時間相當緊湊,參加的小朋友人數多達15位,EV3七套,只好採用分組方式,2-3人一組,雖然如此,小朋友還是很認真的在「玩」積木、學程式,透過不斷的嘗試錯誤,小朋友和機器人都愈來愈進步,讓我們來看看過程吧:

首先當然要組裝車子,透過觀察事先準備好的範例車體來進行組裝,看似簡單,實則考驗耐心與細心,而且有限時二十分鐘喔!!!

3

分組的好處就是每個人透過討論都能有參與感,壞處就是要討論出一個共識需要花很久的時間,而範例提供了一個清楚的目標讓組員去達成,目標有了,所有的討論都會集中於一點,每個人的參與度提高,效率不錯!!

1

 

加上有限定時間二十分鐘,緊張度提高,在最後五分鐘的時候,幾乎每一組都拿著積木跑到台前來組裝!!

2

 

再來就是讓車子動起來,透過EV3-G的馬達方塊,除了基本的前進、後退、轉彎外,還利用差速方式讓車有擁有三種轉彎方式,最後再加裝觸碰感測器,做出讓車子碰到牆壁後能再走回來的效果。

4

 

透過不斷地嘗試錯誤,慢慢修改出聰明的車子

5

 

回車競賽:看誰的車子碰到牆壁後最先跑回起點!!

6

 

車子衝出去的瞬間,大家都笑了…

7

 

第二回合稍微調換了一下位置後,再出發!!

9

8

雖然只有短短的三個小時,但大家都玩得很高興,過程中甚至大家都還會改裝車子,期待下次再相會囉!!

[2015 3月號 Robocon雜誌專欄]輕鬆使用Android 裝置控制樂高機器人:

感謝各位讀者的支持,連載終於邁入最終回了!本期專題要介紹如何使用Android 手機上的姿態感測器來控制樂高EV3 機器人。有接觸過App Inventor 的師長朋友們,歡迎從App Inventor 中文學習網的檔案庫下載本程式的aia 原始檔與apk 安裝檔。

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


什麼是Direct Command?為什麼需要它?

根據樂高官方文件, 您可以使用Direct Command做到的重要功能有:

• 啟動/停止主機上指定檔名的程式。
• 控制馬達啟動、停止、轉向、電力與角度上限。
• 取得感測器值與狀態

其餘功能,請參考官方文件(註1)。

開始玩機器人

本範例的機器人與2013 年1 月號的「翻轉控制」專欄是一樣的,只是由NXT 換成EV3 機器人而已。機器人不須加裝任何感測器,只要用兩顆馬達組裝成雙輪機器人即可。本範例是將馬達接在EV3 主機的輸入端A 與B。請確認EV3 主機的藍牙已啟動,接著將EV3 主機與Android 手機進行藍牙配對(註3),完成之後就可以把機器人放到一邊了。啟動藍牙之後,您可以從EV3主機的螢幕左上角看到藍牙的符號。

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

STEP1 登入畫面:

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

圖1a 程式首次執行的畫面。 圖1b 點選連線按鈕後進入藍牙裝置清單。 圖1c 連線成功後的畫面。

STEP2 程式初始化:

在點選連線清單之前(ListPicker_EV3 清單選取器的BeforePicking 事件),需先將清單內容指定為Android裝置上的藍牙配對清單(圖2a),其中connected 這個布林變數是用來指示現在手機是否已和機器人成功連線。

圖2a 指定藍牙配對裝置清單。

點選之後, 會先測試連線是否成功,成功則將「EV3 裝置/ 連線」按鈕設為不可點選,「斷線」等按鈕設為可點選(圖2b)。

圖2b 連線成功後啟動相關元件。

STEP3 直接控制副程式start與stop:

直接控制的奧妙之處在於直接對EV3 發送位元陣列, 只要按照樂高官方文件(註1)的說明,以正確的格式來發送資料即可。以 start 副程式來說, 它可接受兩個參數:port/ speed。您可以看到每次呼叫它時, 都會初始化一個名為 data 的空清單,以本範例來說,每一個清單元素代表一個位元組長度的內容。格式為:(13, 0, 0, 0, 128, 0, 0, 165,
0, port , 129, speed , 166 ,0, port),如圖3a。這當然需要您去查找官方文件中各個欄位所代表的意義。在此我們是將port 與 speed 用變數來控制, 代表所要控制的馬達與其轉速。最後透過BluetoothClient 元件將整個data 清單經由藍牙發送給EV3 機器人即可。

圖3a start 副程式

到了stop 副程式,資料格式當然也有所改變。我們還用一個if 判斷式去檢查stop 參數是否為true , 如果是則在data 清單最後加入1 ,反之則加入0。這樣發送出去之後就能控制機器人是否要停止動作(圖3b)。

圖3b stop 副程式。

藉由這樣的架構,當您要改用姿態控制、觸碰點控制、語音控制時,整體架構是不變的,差別只在於如何修改speed 變數值而已。

STEP4 姿態感測器:

當手機的姿態發生變化時,就會自動呼叫它的姿態改變(OrientationChanged) 事件, 並會把XYZ 的軸向變化以pitch、roll 與azimuth 這三個事件變數呈現, 供我們取用。由圖4a 可知, 我們要透過X 軸向傾斜來控制機器人前進,Y 軸向傾斜來控制左右轉彎等。在本範例中我們使用另外一個Angle 參數(回傳一個角度代表手機往哪個方向傾斜)求出兩顆馬達的轉速。

圖4a Android 手機軸向示意圖。

在此有兩個重要的變數angle 與power:angle 代表手機的傾斜角度,這是由姿態感測器的Angle 參數再減去45 所決定,45 代表座標軸的偏移量。接著是power 變數,這是一個介於0 ∼ 1 之間的小數,代表手機的傾斜程度,數字愈大代表愈斜。power 變數值是由姿態感測器的Magnitude 變數再乘上200 所決定,200 是一個調控用的參數,數字愈大,代表在同樣的傾斜度下,機器人會跑得愈快,但是也更敏感而不好操控。樂高EV3 機器人的馬達電力範圍為100(正向全速旋轉)到-100(反向全速旋轉),數值超過上下限則就限制在100 或-100 ,如圖4b。

圖4b 姿態感測器的姿態改變事件(上半)

這四個重要的參數(pitch、roll、左馬達轉速與右馬達轉速)都會更新在畫面中間的四個Label 標籤元件上。先呼叫一次 stop 副程式,讓馬達先短暫停頓。接著呼叫兩次start 副程式,分別傳入「port =1;speed = cos(angle x power)」與「port =2;speed= sin( angle x power)」這組參數,代表根據姿態感測器的姿態變化量,進行三角函數運算結果,來決定左右馬達的轉速。

最後,把夾角與左右輪轉速捨去小數點之後(round 指令),將計算結果更新在Screen 的狀態列上,如圖4c。

圖4c 姿態感測器的姿態改變事件(下半)。

STEP5 斷線:

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

操作

實際執行的時候,請先確認EV3 已經開機且藍牙也啟動了。接著在您的Android 裝置上點選畫面中的「EV3裝置/ 連線」按鈕, 會進到如圖1b的藍牙清單畫面,點選您所要的EV3主機名稱並連線成功後,試著把手機左右搖晃看看。朝前方傾斜,機器人就會前進,傾斜愈多,機器人跑得愈快(圖5a)。左右傾斜的話則是控制機器人左轉或右轉(圖5b)。在App Inventor 官方推出EV3 的元件之前,您也可以用這樣的方法來直接控制樂高EV3 機器人喔!

圖5a 手機朝前方傾斜43 度,X 軸向姿態發生 變化(pitch),機器人朝前方移動,左右馬達電力(38, 39)。

圖5b 手機朝左方傾斜44 度,Y 軸向姿態發生變化(roll),機器人原地左轉,左右馬達電力(-37, 41)。

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

註1:樂高EV3 直接控制指令的相關文件請參閱此網頁:http://botbench.com/blog/2014/02/19/ev3-buildyour-own-block-and-hdksdk-docs-available/

註2: 想學如何開發App Inventor 程式嗎? 請到App Inventor 中文學習網(http://www.appinventor.tw)與
我們一同學習。

註3: 與EV3 連線後如果出現「Error 402」之錯誤訊息請不必理會,程式依然能正確執行。

 

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

創意造型積木之三種車款、一次滿足

學期末的時候,總是會有一些與平常不一樣的活動,這次是要讓小朋友手作創意造型車,並且還可以帶回家喔!一聽到可以帶回家,小朋友總是會特別興奮,就讓我們來看看本學期末有哪些車款吧。(其實也才三種…)

經典跑車款(透明積木後方黑紅積木可拆裝放至前方車底)

跑車

 

仿賽車款(加蓋)

 

賽車

 

(偽)警車無蓋款

警車

三車款

三款車都有車門以及座椅,有變化的部份是車頂和前車身,後座則統一墊高並加上座椅,使用相同的零件做出三種不同的車款並不是件容易的事,尤其底盤固定的情況下,大致上的車體也就被限制在一個範圍內,以下附上零件表以及組裝圖供下載:

零件表

車車零件表

組裝圖(經典跑車款)

組裝圖(偽警車款)

組裝圖(仿賽車款)

希望大家也能做出自己的創意車款喔!

python on EV3 機器人 – 整理好的 img 檔送給您!

本篇要介紹如何燒錄給樂高EV3 機器人開機用的SD卡,內含的作業系統是 Debian,並已經掛好版本相當新的 Python2 與 Python 3。本文是按照 ev3dev 網站來操作,歡迎您與我們一起來玩玩看喔!

先讓大家看看成功的畫面,讚啦!在這個 terminal 下面可以玩的事情實在是太多了。要做到以下畫面,您需要兩件事:

1. 下載 img 映像檔並燒錄到 micro SD 卡中,插入EV3的SD卡插槽即可開機(無需更改原本的作業系統)2. 完成 Ethernet over USB,讓這台EV3模擬成一個網路裝置。我們就是這樣透過 SSH 來登入它,它也能利用電腦的網路來上網更新套件等等。本文以 Windows 來示範(說真的在 Linux / MAC 上來處理簡單多了)

009

1. 請下載我們幫您包好的 img 檔,與官方的差別在於我們有幫大家把一些python 套件與官方開發的 EV3 library 整理得更好一點。這個解壓縮完會有 15G,所以您需要16G 的記憶卡喔。使用 Win32DiskImager 燒錄,燒錄完畢插入 EV3 的 micro SD slot 即可開機。開機完成畫面如下:

 

2. 請進入 USB 選單,啟動RNDIS(Remote Network Driver Interface Specification、遠端網路驅動程驅動規格… 好拗口)。接著回到上一層,進入 Networking 選單,啟動 Gadget 選項即可。

    

 

3. 接著請將您的 EV3 接上電腦,並開啟控制台 / 裝置管理員。在此由於 Windows 會自動安裝好 driver ,但這不是我們要的,所以在此要重新做一遍。請在網路介面卡下找到 Remote NDIS based Internet Sharing Device

004

4. 請對它點選右鍵來更新驅動程式,並選擇[從指定位置來安裝]。接著選擇網路介面卡,製造商選擇 Microsoft,並在右側找到 Remote NDIS Compatible Device。這時就會您是否確定要更新 driver,點選確定後即可,在此需要等一下(約1~2分鐘)。

5. 最後一步是把我們聯外的網路分享給 EV3 使用。請回到控制台 / 網路與共用中心,請點選畫面左側的[變更介面卡設定]。您在其中會看到一個 USB Ethernet/RNDIS Gadget,這就是 EV3 啦。

005

6. 請回到控制台/網路與網際網路/網路連線,找到您聯外的網路名稱(下圖為 ROBOTKINGDOM-WIRELESS),對它點右鍵,找到[共用]選項。

006

7. 請勾選其中的選項,這樣就能讓 EV3 藉由這個網路來聯外了。

 

008

 

8. 電腦設定完成了,請回到EV3 主畫面。Networking / Manage connections,會看到一個 Wired 選項,請點選它

在 IPv4 標籤下點選 Change…

選擇 Load Windows Defaults,藉此仔入我們之前辛辛苦苦做好的設定啊 QQ

這時還沒有連線,所以您會看到 State 顯示為離線(offline)。請切到 Conn. 標籤,點選 Connect automatically,這樣 EV3 就會在每次開機時試著去用這組設定去連上網路。

最後點選Connect,一切順利的話就可以在 IPv4 標籤下看到您的 EV3 取得的 IP了!下圖為 192.168.137.3,我們就是透過這個 IP 來登入 EV3。

 

9. 請用 putty 或其他類似功能的連線程式,使用 SSH 連到這個 IP。預設帳密為 root / r00tme <- 兩個 zero 不是O。登登登!登入之後的歡迎畫面如下:

009

 


 

 

 

 

登入之後就來玩看看,首先切換到  /sys/class 裡面看看有什麼,相關的硬體都有:gpio (EV3的按鈕好像是歸類在這,還要確認一下)、leds、tacho-motor 與 i2c 裝置等等。再進入 /tacho-motor 資料夾看看:有一個 motor0 ,這代表一個實體樂高EV3馬達。

請注意您必須真的接上一個馬達才會在 /tacho-motor 資料夾下看到 motor0

013

輸入 cat /sys/class/tacho-motor/motor0/position 即可讀取馬達角度感測器值,下圖讀了兩次:-33 與 239

011

要直接這樣子讓馬達轉起來也是可以的:請先 echo 50 > ~/duty_cycle_sp,代表設定馬達電力為 50%,接著再 echo 1 > ~/run。馬達就會轉動啦!延伸閱讀:Python EV3 速記 – 控制馬達轉速與方向

012

[新書出版] LabVIEW 高階機器人教戰手冊 第二版 – 針對樂高EV3/NXT機器人

[LabVIEW高階機器人教戰手冊 第二版] 來了!內容適用於樂高EV3與NXT機器人套件。如果是EV3的話,您需要使用 LabVIEW 2012以後的版本並另外安裝對應版本的 LabVIEW Module for LEGO MINDSTORMS

本書第一版是2010年10月出版的,一轉眼已經過了4年了,很高興個還能收到許多讀者的支持與肯定,我們會更努力編寫優良的教材喔

請參考 CAVEDU 實驗室 LabVIEW 說明

2014-12-24 19.35.57

書名:LabVIEW高階機器人教戰手冊:打造智能與趣味兼具的機器人(第二版)

作者: 曾吉弘、官文絢、吳維翰、謝宗翰、顏義翔、薛皓云、翁子麟
出版社:碁峰
出版日期:2014/12/24
語言:繁體中文

定價:450元

內容簡介

  .使用LabVIEW高階圖形化程式環境,程式功能強大且指令豐富,可以讓您設計出各種不同的機器人。.支援最新的樂高EV3機器人平台,也向下相容樂高NXT機器人。

.適用LabVIEW 2009之後的版本。

.第二版新增:資料擷取與分析、Kinect 體感互動等專章介紹。

.包含了92個核心程式範例與4個進階專題,如:人機介面設計、影像辨識追蹤與高階機器人行為模式等,您可從中學習諸多重要技巧與概念。

.您將學到可運用哪些設備讓機器人更厲害,包含:Kinect 體感感測器、光感測器陣列與視覺處理模組等。

.本書作者群為LabVIEW專業教學團隊,實戰經驗豐富,帶領您從無到有建立起圖形化程式設計的基礎以及機器人技術,不僅適合機器人玩家閱讀,亦可做為機電整合、訊號分析量測與自動控制課程之先導教材。

.範例程式檔與本書更多

名人推薦

淡江大學電機系暨機器人研究所 翁慶昌教授
南台科技大學機器人研究中心 謝銘原主任
國家發展儀器股份有限公司 大中華區行銷總經理 郭皇志  聯合推薦!

作者介紹

作者簡介曾吉弘

CAVEDU教育團隊技術總監
Robocon雜誌國際中文版 專欄作者

官文絢

臺北市立大學物化系助理教授
國立交通大學電子物理博士

吳維翰(John)

學歷:美國麻省 Tufts University: 機械工程系學士、碩士(2002,2004)
現職:國家發展儀器股份有限公司

目錄

chapter 01 LabVIEW 緒論
chapter 02 樂高機器人發展發與零件介紹
chapter 03 LabVIEW 初體驗與撰寫準則
chapter 04 機器人初體驗與控制結構
chapter 05 機器人動作控制
chapter 06 感測器原理與應用
chapter 07 數值運算
chapter 08 其他 EV3 功能
chapter 09 直接控制模式
chapter 10 資料擷取與分析
chapter 11 LabVIEW 的延伸應用
chapter 12 終極循跡機器人
chapter 13 機器視覺
chapter 14 向經典致敬 – 圖靈機
chapter 15 Kinect 體感互動
appendix A 範例機器人組裝說明
appendix B LabVIEW 的 NXT/EV3 介面
appendix C LabVIEW 的其他樂高機器人周邊
appendix D 取得 LEGO MindStorms LabVIEW Module
appendix E 參考文獻

Python EV3 速記 – 控制馬達轉速與方向

EV3 改用 Linux 為核心之後,真是創意無限。只要燒錄好 SD 卡,就能讓 EV3 用不同的作業系統開機。繼 leJOS 之後,也可以用 Debian 開機了。既然是一台完整的作業系統,自然是寫什麼程式語言都可以,但 python 最近實在是太夯了,所以 ev3dev 這個網站就提供了全套的 python + EV3 教學。您只要燒錄好 SD 卡並設定好 Ethernet over USB 就可以了。(本文為速記,日後會補上完整的環境建置教學)

http://www.ev3dev.org/

先來看影片,下指令控制馬達轉動,停止還可以控制轉速

控制轉速:echo 50 > /sys/class/tach0-motor/motor0/duty_cycle_sp   (0為靜止,100為最高速)

轉動: echo 1 > /sys/class/tach0-motor/motor0/run

停止:echo 0 > /sys/class/tach0-motor/motor0/run

設定好 Ethernet over USB 之後,可以透過 Putty 小程式來 SSH 登入 EV3,下圖中的 192.168.137.3 就是 EV3 的 IP。登入後就能進行各種 linux command。

009

EV3 的各類硬體裝置(LED,發音器,馬達,感測器等等)是列在 /sys/class 中,馬達是位於 /tacho-motor 資料夾中

013

在 terminal 中輸入 cat /sys/class/tach0-motor/motor0/position 即可讀取指定馬達的角度感測器值。下圖共讀取兩次: -33 與 239

011

 

[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韌體

 

樂高EV3 與 MindSensors 系列周邊教學投影片

樂高EV3原廠的感測器不夠用怎麼辦?如果要用到4個以上的感測器或馬達怎麼辦?這時您需要一些協力廠商所生產的感測器以及擴充套件等等。讓您的機器人可以更厲害!

MindSensors 這家公司來說,它生產了許多機器人必備的感測器,例如NXTCam 視覺模組三合一加速度計與陀螺儀光感測器陣列循跡模組紅外線測距PS2 無線手把接收器感測器埠擴充器馬達埠擴充器等等,且樂高機器人主要的程式環境(EV3,NXTG,leJOS,LabVIEW,NXC 與RobotC 等)都有現成的函式庫與範例,方便上手。

針對這些設備的應用,我們先把投影片放上來了,也歡迎大家報名本週六的研習營喔

13-22

投影片搶先看


也可以看一下 NXTCam 實際用在物件追蹤上的效果影片

[樂高EV3機器人教學] 使用數學指令記錄馬達轉動角度後反轉

機器人在執行各種任務時,會用到許多數學指令,本篇要介紹的是 EV3 軟體中的 Math 指令,可執行基礎的數學運算:包含了四則運算,絕對值,平方根,指數以及進階運算。進階運算裡面就精彩了,包含了商餘函數,三角/反三角函數,自然對數等進階運算。並在此定義一個最多包含四個變數的公式,應該很夠用了。

本頁面程式請由此下載:http://lab.cavedu.com/ev3-1

螢幕快照 2014-10-14 下午11.29.31       螢幕快照 2014-10-14 下午11.51.33

如果要更複雜的指令,例如求一元二次方程式的公式解(還有人會背嗎?2a分之 -b 加減…),就要自己寫啦,這就是 EV3 這種圖形化程式的弱點,簡單的數學方程式寫起來卻很冗長。您可使用 My Blocks 來把這些數學公式定義成一個指令即可。

延伸閱讀:樂高EV3機器人- 自定義指令(My Blocks

來看一下簡單的應用吧:在一秒鐘之內用手轉動A馬達,再讓A馬達去轉動這個角度的負數(乘以 -1 )。執行起來就會讓馬達一直回到原本的位置。

螢幕快照 2014-10-14 下午11.29.16

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

先前曾經介紹以MindSensors的感測器LineLeader-v2SumoEyes所做出的循跡避障機器人。今天要為大家介紹一個也是Mindsensor所推出的好物 NXT-Cam-v4,並使用它來作出可辨視物件顏色的機器人。在EV3主機下方的那個看起來像單眼相機鏡頭的裝置就是 NXT-Cam-v4

IMGP2531

先來介紹 NXT-Cam,您可以把它想成是一台小型追蹤器,藉由擷取到的物件顏色來進行辨別並追蹤,最多可追蹤八個不同顏色的物件,要使用NXT-Cam之前,必須先進行以下步驟:

1.請先更新NXT-Cam的Firmware至3.8D版本:請點我前往下載(若使用NXT主機則省略此步驟,本篇使用EV3主機)

(有關感測器韌體更新可參考之前文章教學)

2.請至MindSensors官網下載NXT-Cam驅動程式:請點我前往下載(請選擇v4版本下載,下載後解壓縮)

3.請下載NXT-CamVIEW:請點我前往下載(請點擊最新版本下載,下載完直接點擊安裝)

要使用NXT-Cam進行物件追蹤,首先必須先建立Colormap,而Colormap就是上述的物件顏色,再將Colormap存到NXT-Cam的記憶體,因此我們需要使用剛才所下載的NXT-CamVIEW,請開啟它並將NXT-Cam以EV3的USB資料傳輸線接上電腦,並按下“Connect”,作用是與NXT-Cam連結,如下圖:

camviewstep1

 

接著請將NXT-Cam的鏡頭對準某單一顏色的物體(選擇單一顏色會簡單許多)再按下旁邊的“Capture”,會出現抓取物件的影像,如下圖:

camviewstep3

您會看到右方出現Colormap的視窗,目前是將物件顏色存在第1個欄位,共有八個欄位可儲存,接著在左邊的影像中點選該物件的顏色,會出現許多黃色的小點,這些小點便是NXT-Cam要追蹤的範圍,在此您可以調整右方三種顏色的色帶值,盡量讓黃色小點覆蓋整個物件表面,讓會讓後續的追蹤較容易。接著請點選右邊視窗上的”Upload”,將Colormap存到NXT-Cam的記憶體,點選左上角選單中的”Tracking”,按下”Start”便開始追蹤物件,如下圖所示,紅色區塊即為剛才所存的Colormap,將物件從NXT-Cam的鏡頭前移動,紅色區塊也會跟著移動,OK!追蹤成功。

camviewstep6

 

按下”Stop”和左上角選單中的”Disconnect”,將USB線拔除,現在該物件的顏色已儲存在NXT-Cam的記憶體中,可以使用它來撰寫程式,讓我們的EV3機器人追蹤物件了!以下影片是以黃色三角板為指定追蹤物件,在機器人偵測到物件後,便移動至物件面前停下,移動過程會修正路線讓物件保持在視線範圍:

本影片機器人程式可由此下載供參考使用

相關文章

141018 樂高EV3機器人與 MindSensors 感測器應用研習營@CAVEDU

[Mindsensor測試]-循跡避障的好幫手LineLeader-v2、SumoEyes-v2

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

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

141101 樂高EV3機器人與 MindSensors 感測器應用研習營@CAVEDU

樂高EV3機器人套件以豐富的零件與簡易的圖形化介面著稱,MindSensors 則針對樂高機器人平台推出了許多周邊,包含各類感測器與擴充埠等。本日研習將使用 熱門的樂高EV3 教育性機器人平台搭配 MindSensors 系列產品做各類進階的應用。包含 NxtCam 機器視覺、紅外線測距感測器、光感測器陣列循跡器、PS2搖桿接收器與馬達/感測器多工器等

報名網址請按我

2014-10-08 14.43.10

來看看使用 Lineleader + Sumoeyes 的避障循跡機器人影片吧

主辦單位:CAVEDU 教育團隊、翰尼斯企業有限公司

協辦單位:智能機器人研究所、《Make》國際中文版

時間 : 103年10月18日星期日 09:30~17:00

地點 : 翰尼斯企業有限公司 台北市中正區中華路二段165號1樓

備註: 請自行攜帶筆記型電腦,以便實際操作。。

收費:3,000 。名額有限,請儘早報名

匯款方式:
銀行名稱 :華南商業銀行 雙園分行
戶名 :翰尼斯企業有限公司
銀行代號 :008
帳號 :122-10-015315-3

超級好禮相贈:
1. [機器人程式超簡單-LEGO® MINDSTORMS® EV3動手作] 書籍一本
2. MindSensors 十字軸專用金屬軸承一組 (內含 3個)

活動議程:

9:30 CAVEDU 教育團隊簡介

9:50 樂高EV3 機器人套件
硬體介紹:主機操作選單
組裝雙輪機器人
控制馬達轉速與方向
匯入 MindSensors 指令集

10:30 紅外線測距感測器搭配光感測器陣列循跡器
循跡避障機器人

12:00 中餐

13:00 PS2搖桿接收器
遙控機器人設計
高階機器人行為設計

14:30 NxtCam 機器視覺
設定邊界值
辨識顏色與物體數量

16:30 馬達/感測器多工器
結語、賦歸

注意:主辦單位保留修改與解釋活動之所有權利。

服務電話:02-23062900
service@cavedu.com

[Mindsensor測試]-循跡避障的好幫手LineLeader-v2、SumoEyes-v2

循跡前進向來是機器人的重點,也是基本的課題之一。聽說掌握了循跡,你就已經得到了一半的天下(誤!)

一般使用光感測器來做循跡的效果還不錯,唯獨在過直角彎道時,有可能會修正不足或過頭而出界。本篇使用 Mindsensors 的產品LineLeader-v2 來進行測試。可以改善直角彎道的問題,並且在直線與小弧度彎道時可以更快更穩。下圖為範例機器人:

2014-09-20 23.03.38

上圖可以看到車子的前方裝有二個感測器,在下方的是LineLeader-v2,而上方的則是 SumoEyes-v2。加裝SumoEyes 的原因是讓車子遇到障礙物能避開。如果想要讓機器人有更好的避障效果的話,可以用SumoEyes-v2 搭配超音波感測器 (視野較小)。先用 SumoEyes 判斷哪個方位有障礙物之後,再用超音波感測器取得較精準的距離數值。

接著說明程式:

lineleader-pid

中間的程式方塊需 至Mindsensors 網站,可點此前往下載。使用 EV3 軟體的 Block Import Wizard 來匯入指令即可。首先,在感測器的校對(Calibrate) 選單中找到Calibrate-PID configuration (校正 PID 設定)

參數說明:

i2c:不作更動,程式預設為2

SP:標準值。測量值減去標準值即為誤差,故標準值為車子走黑線的參考值。

第一個kp:預設值為25,之後可依照測試調整,這裡測試為80。

第二個kp為kp factor:預設值為32,亦可自行調整。

(根據Mindsensor裡的LineLeader-UserGuide說明,Kp value = kp/kp factor,在這裡即為80/32=2.5)

第一個ki:預設值為0,在此設1。

第二個ki為ki factor:預設值為32,在此設64。

第一個kd:預設值為8,在此設0。

第二個kd為kd factor:預設值為32。

基本上可從程式預設值直接不作更動來進行循跡,建議先調整kp覺得ok後,再依照需求來調整 ki、kd。緊接著是躲避障礙物的設定

sumoeyes

可愛的青蛙方塊即為SumoEyes 雙紅外線感測器的 EV3 指令。SumoEyes可偵測前方以及左、右方範圍內的障礙物。短距15 cm,長距30 cm,具備測量和比較模式,上圖為比較模式。

參數說明:

v/x:可設定是否開啟遠距模式。

↑:方向,0為前方;1為右方;2為左方。

#:哪一個方向有障礙物。

最後的v/x:是否找到障礙物。

最後主要的概念是讓車子循跡時,遇到障礙物後轉彎,並繞著障礙物行走,直到遇到黑線時再次循跡。以下影片在 9/21 CAVEDU Day 現場展示的循跡避障車。遇到障礙物會固定往右轉,在直角彎道的表現也還算不錯。循跡時車頭有稍微搖晃二、三下,可能kp參數還需要調整

本影片中的EV3循跡避障車程式碼,如有需要可點此下載測試

有關PID控制的文章,可參考這篇文章,我覺得寫得相當淺顯易懂。或者請出GOOGLE大神,都能搜尋到許多相關的文章,

希望大家的循跡車都能愈來愈進步喔!

[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月號