Tag Archives: 程式教學

[樂高EV3機器人教學] 藍牙控制(雙觸碰感測器)

http://lab.cavedu.com/ev3_btbutton <- 程式碼由此下載

本篇是將 [雙觸碰感應器線控車 Switch 與 Multi-task 兩種寫法] 擴充成為藍牙遙控版本。程式碼請由以上頁面下載,分為 Handle 與 Car 兩個程式,您需將這兩個程式分別下載到兩台EV3主機上。先來看影片吧

[youtube=http://youtube.com/watch?v=nTTilwrme3Y] 
 
在執行程式之前,您需先將兩台 EV3 主機進行藍牙配對,執行時請先啟動 Car程式,再啟動 Handle程式。因為 Car 會被動接收來自 Car 的指令。
 
Handle:
 
兩個獨立的無窮迴圈,以左邊的迴圈來說,按下2號觸碰感測器之後會使用 Messaging 指令發送一個 TRUE(資料形態為 Logic,就是Boolean),反之則送出 FALSE。另一個迴圈也是相同的概念。在 Messaging 指令我們還可以設定這個 message 的 title,以左邊的迴圈來說就是 [right],右邊則是 [left],這樣一來同樣是送出 TRUE,但是 Car 就能藉由 title 來判斷要給誰來用了,不會搞混。
 
另外由Messaging指令中可看到我們指定的接收端是一台名為「EVA」的EV3主機。
 
注意:您可以在 Switch 後面加一個 Wait 時間,例如等候個 0.3 秒左右,因為事實上我們不需要這麼頻繁地發送藍牙訊息,有可能會造成當機。

 
手把的範例,您可隨意設計,拿得順手就好
 



Car:使用一般雙馬達車體即可。
 
一樣是兩個無窮迴圈,以左邊的來說,使用判斷條件為 Messaging / Compare / Logic 的 Switch,接收的 title 為 [right],如果接收到的內容為 TRUE,則要B馬達全速運轉,反之則停止。另一個迴圈則是去看 [left] 來控制 C 馬達轉動。
 



[樂高EV3機器人教學] 雙觸碰感應器線控車 Switch 與 Multi-task 兩種寫法

http://lab.cavedu.com/ev3_2touch <- 程式碼由此下載


本範例要使用兩個觸碰感測器來分別控制馬達轉動與否,在此設定#1觸碰感測器按下時,B馬達會轉動,放開就停止。另一組#4觸碰感測器與C馬達也是一樣。非常趣味的小遊戲,小朋友一定會喜歡!
 

 

While + Switch 的寫法:

無窮迴圈中先加入一個Switch:判斷 1號觸碰感測器是否被壓下,並分別在成立與不成立的 Case 中接續判斷4號觸碰感測器是否被壓下。

在此我們使用 Move Steering指令,您可以修改 Steering參數來調整轉彎的效果,或改用 Move Tank 指令。
兩個都壓下:直走
1壓下,3放開:右轉
3壓下,1放開:左轉
兩個觸碰感測器都放開:停止

 
Multi-tasking 多工的寫法:
 
使用兩個 Start 指令後面接無窮迴圈,01迴圈中使用一個 Switch :根據 1號觸碰感測器是否被壓下來控制B馬達。另一組也是一樣的概念。是不是很簡單呢?
 



[LabVIEW for Arduino] 使用可變電阻控制LED漸明漸暗

http://lab.cavedu.com/l4a_potentio_led <- 範例程式在此下載。
本範例使用一個可變電阻控制LED漸明漸暗,軟體為 LabVIEW 2009以後的版本,並搭配Arduino控制板。本範例使用 LabVIEW 2012編寫。
 
資源:

Lesson_1 BlinkM三色LED閃爍
Lesson_2 改寫Arduino經典範例Blink

 
硬體:請將可變電阻兩側的腳,一邊接到5V,一邊接GND,中間請接在 Arduino 的 A0 類比輸入腳。
 
接著將 LED 長腳接在 Arduino D13腳位,短腳接 GND,如下圖:

軟體:本範例使用 LabVIEW for Arduino 中的 Analog Read Pin 範例修改而成。執行畫面如下,圖中的紅色指針會隨著您轉動可變電阻而左右移動。
 
請注意:只要 Arduino 接電之後,所有的類比輸入腳位都可量到約 1.5V的電壓,加裝可變電阻是讓您將電壓的變化情形看得更清楚。
 
 
程式邏輯:使用 Analog Read Pin指令取得 A0 腳位的電壓之後,乘以40。接著將計算結果送給 PWM Write Pin 指令對 D13 LED 進行寫入。
 
程式指令簡述:
左一:Init:初始化LabVIEW與 Arduino的 serial communication,Arduino型號為 Mega 2560,通訊方式為 USB,COM port為60。這些資訊都要正確否則無法通訊。
左二:Set Digital Pin Mode:設定 D13腳位為輸出,因為我們在這接了LED。
左三:Analog Read Pin:讀取類比腳位電壓,在此為 A0。
右二:PWM Write Pin:對指定腳位 D13 寫入 0~255的值。在此為了避免數值超過上限,我們只乘以40,因此最大值不會超過255。
右一: Close:關閉 LabVIEW與 Arduino的 serial communication


[樂高EV3機器人教學] 自定義指令(My Blocks)

http://lab.cavedu.com/ev3_myblocks <- 程式碼請由此下載
本範例將介紹如何在 EV3 中自定指令(My Blocks),並可自由匯入(Import)與匯出(Export)。概念相當於 LabVIEW 的 SubVI。讓我們開始吧!
 
STEP1:首先先寫以下程式。本範例的功能是將行走距離(cm)換算為馬達角度(degree),方便我們更直覺地來控制機器人運動距離。計算式:  X * 450 / ( 7 * PI )。這是搭配 EV3 直徑56mm 的輪胎。這是約分後的結果,原式為 X * 360 / ( 2.8 * PI ) 。您可以自行算算看~
注意:EV3目前沒有 PI(π)常數可使用,本範例使用 3.1415926。
STEP2:將這三個指令選起來,接著點選工具列 Tools -> My Block Builder。會跳出以下視窗
 
請注意在包 MyBlocks的時候,不可以連 Start指令一起打包,
STEP3:進到 My Block Builder 頁面,選定 Icon,選自己喜歡的吧。也要幫這個 Block 取名字並加入相關敘述。在此將本指令取名為 CMtoDegree。

 

 
STEP4:設定輸入輸出欄位,請點選 [+] 號就可以增加欄位。並將畫面中間的標籤切換到 Parameter Setup 來設定這個欄位的屬性。
在此將第一個欄位設定為 Input,資料形態為 Number,預設值為1(cm)。
 
 
STEP5:設定 Output 欄位名稱為 Degree_Output,資料形態為 Number。
 
STEP6:完成了!您可在 My Blocks指令區看到這個指令,並新增出來使用。直接設定 x 再把 y 丟出去給馬達的 Degree 欄位就可以了。
 
小挑戰:如何新增欄位來調整 [輪胎直徑] 這個參數呢?
    
 
最後您可在本專案的設定頁面中的 Exportable Itmes 標籤中看到這個程式,點選畫面最下方的 Export 指令就可將其匯出到指定位置,可以分享給朋友或是讓其他的 EV3 專案使用。
 




[樂高EV3機器人教學] Brick Light 隨機燈光(Random隨機整數)

https://lab.cavedu.com/ev3_randombricklight <- 程式碼請由此下載

小挑戰:Random指令只能產生隨機整數,那如何讓Wait指令來等候隨機時間(例如1.33秒或 3.82秒?)

延續上一篇的[[樂高EV3機器人教學] Brick Light 跑馬燈 – Variable變數], 今天改用隨機指令讓EV3 主機隨機閃爍不童的顏色,算是應景的耶誕樹囉~

整體程式架構是無窮迴圈搭配 Switch 結構。請注意我們使用了 Random 指令,它可以在指定範圍之內隨機產生整數,在此我們將下限設為1, 上限設為3。並將輸出結果丟給 Switch 結構(判斷條件請改為 Numeric)。每次燈光閃爍的時間為1秒鐘。

001

Switch結構預設是 Boolean,因此只有兩個 case,請點選左上角的 [+] 符號新增更多 Case, 並將其號碼改為1, 2, 3,就是 Random 指令所產生的結果。這樣就能用 Random指令來控制 Switch結構囉!Case 1 2 3分別再放入不同顏色的 Brick Light指令就完成了。

002

如果要更進階的話,可以再多一個 Random指令來隨機指定每次燈光閃爍的時間

003

 

 

[樂高EV3機器人教學] Brick Light 跑馬燈 – Variable變數

http://lab.cavedu.com/ev3_bricklightswitching <- 程式碼請由此下載

本文將介紹如何運用變數來控制 EV3主機上的按鈕燈光,Ev3主機的按鈕燈光共有綠色,橘色與紅色三種顏色,分別以數字0, 1 ,2 來代表。

今天就是要利用變數的累加來控制按鈕燈光,每次進到無限迴圈之後,會先將變數值加 1(就是常見的 x++;)之後,接著進入一個邏輯 Switch分岔結構(判斷條件為 x>2),這樣當 x累加到 3的時候,就會進到 Switch分岔結構的上半,在此會先將變數 x 歸零,再去指定Brick Light 的顏色。反之如果 x 小於等於2的時候,就會直接根據變數x的數值來指定顏色。

螢幕快照 2013-12-23 下午4.20.35

程式可分為以下幾段

1. 初始化變數

螢幕快照 2013-12-23 下午4.20.35 4

 

2. 變數值累加 1

這裡說真的是圖形化程式比較笨的地方,就一個 x++ 要寫這麼長…   先讀出 x 的值之後,使用四則運算指令來加 1 ,再將計算結果指定為 x 的新值。

螢幕快照 2013-12-23 下午4.20.35

3. 根據變數值來控制Switch分岔結構

讀出 x 的值之後,使用 Compare指令來比較是否大於2,如果是則執行上段:先將變數 x 歸零,再去指定Brick Light 的顏色。反之則執行下段:直接根據變數x的數值來指定顏色。

請將Switch分岔結構的判斷條件改為 Logic,也就是根據所接收到的邏輯值來決定要執行哪一段程式。

螢幕快照 2013-12-23 下午4.20.35 3

4. 等候一秒

等候一秒來控制燈光持續的時間,您可以調整時間的長短來控制燈光效果。

螢幕快照 2013-12-23 下午4.20.35 2

另外在每一個 EV3 專題中都會有一個設定頁面(畫面左上角的扳手圖案),在此您可管理專案中的程式,圖像,聲音檔,自定指令(My BLocks),變數以及可輸出的項目(一般來說也是程式)。

由下圖可看到我們新增了一張EV3主機圖案作為專案的代表圖,另外本程式中有一個名為 x 的數值變數。

螢幕快照 2013-12-23 下午4.24.12

[2014 Robocon雜誌專欄]輕鬆使用Android 裝置控制樂高機器人:一步一步讓樂高機器人玩打鼓遊戲

2014 年第一篇 [輕鬆使用Android 裝置控制樂高機器人] 系列來了,要讓您的手機與樂高NXT機器人一起玩音樂,手機可以控制機器人發出四種音符,機器人也能藉由按下不同的觸碰感測器來改變手機畫面顏色。

7a

本文原文刊登於 Robocon 雜誌國際中文版 2014 1月號

文/曾吉弘(CAVE教育團隊

本篇文章將使用三個樂高NXT 觸碰感測器來進行有趣的聲光效果,按下不同觸碰感測器就會讓手機畫面變色, 除此之外,當您點擊手機畫面時,機器人也會發出音效與您同樂。有接觸過App Inventor 的師長朋友們,歡迎從App Inventor 中文學習網下載原始碼回去加入更多有趣的功能。

觸碰感測器

樂高NXT 套件中的觸碰感測器前端有一個橘色按鍵,可藉此偵測是否撞到物體或被壓下。由於內部構造是一個開關(switch),所以只能判斷前端是否被壓下而無程度上的區別。對應的資料型別是布林(boolean)。在App Inventor 中, 我們使用NxtTouchSensor 元件的IsPressed 指令(圖1)來偵測觸碰感測器是否被壓下,如果被壓下則為true ,反之為false。

圖1 App Inventor 偵測觸碰感測器是否按下

開始玩機器人

今天的機器人有點不一樣,不需要馬達,請拿出三個觸碰感測器分別接在NXT 主機的輸入端1 到3 ,組裝好如圖2(註1)。請確認NXT 主機的藍牙是啟動的,接著將NXT 主機與Android手機進行藍牙配對(註2),完成之後就可以把機器人放到一邊了。啟動藍牙之後您可以從NXT 主機的螢幕左上角看到藍牙的符號。

圖2 組裝好的樂高NXT 機器人。

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

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

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

STEP2 程式初始化:在點選連線清單之前(ListPicker Connect 的BeforePicking 事件),需先將清單內容指定為Android 裝置上的藍牙配對清單(圖4a)。點選之後則先測試連線是否成功,成功則將「斷線」按鈕設為不可點選、「斷線」按鈕設為可點選並顯示Canvas 畫布元件(圖4b)。

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

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

STEP3 使用副程式管理觸碰感測器狀態:我們宣告了三個變數t1、t2 與t3 來儲存三個觸碰感測器的狀態(圖5a)。接著宣告一個名為checkTouch 的副程式來管理這三個變數,只要某個觸碰感測器被壓下,就會將對應的變數改為1 ,反之則為0 ,最後回傳這三個變數的加總值(圖5b),我們就是根據這個加總值來改變Canvas 畫布元件的背景顏色。

圖5a 三個用來儲存觸碰感測器狀態的變數。

圖5b checkTouch 副程式。

STEP4 改變Canvas背景顏色:為了讓程式能夠持續監控三個觸碰感測器的狀態, 我們使用了一個Clock 元件,並設定其計時器更新頻率為100 ,代表每0.1 秒偵測一次觸碰感測器狀態。在Clock.Timer 事件中, 藉由呼叫checkTouch 副程式並根據它的回傳值(0、1、2、3) 將Canvas 背景顏色改為淺灰色、綠色。這裡回傳的數值代表被按下的觸碰感測器數目, 也就是說當您壓下1 號與3 號觸碰感測器時,這時與您壓下2 號與3 號以及1 號與2 號的意義是相同的,都會使手機畫面變為青綠色( 圖6 中的Cyan)。同時我們也會把目前偵測到被壓下的觸碰感測器個數顯示在手機畫面上。

圖6 每0.1 秒偵測一次觸碰感測器狀態。

STEP5 點擊畫面播放讓機器人播放不同音效:當我們點擊Canvas 元件時, 會根據點擊位置讓機器人發出四種音效。Canvas 元件長寬各為320 像素, 所以我們取中點(160,160) 將畫面分成四等分( 圖7a), 點擊左上、右上、左下與右下時,會讓樂高NXT 機器人發出La、Sol、Mi 與Do 四種音效(圖7b、圖7c), 每次播放長度為0.3秒,這是藉由NxtDirectCommand 的PlayTone 指令所達成的。

圖7a Canvas 元件切成四等分。

圖7b 左上播放La 音, 頻率440/ 右下播放Do 音,頻率262 。

圖7c 右上播放Sol 音,頻率392/ 左下播放Mi 音,頻率330 。

 

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

圖8 按下「斷線」按鈕時中斷藍牙連線。

 

操作

實際執行的時候,請先確認NXT 已經開機且藍牙也啟動了。接著在您的Android 裝置上點選畫面中的「連線」按鈕,會進到藍牙清單畫面,點選您所要的NXT 主機名稱並連線成功後,就能按下觸碰感測器來控制手機畫面顏色,或者點擊手機畫面來控制機器人發出不同的音效(圖9a ∼ 9c)。

圖9a 按下任一個觸碰感測器,畫面為綠色。
圖9b 按下任兩個觸碰感測器,畫面為青綠色。
圖9c 按下所有的觸碰感測器,畫面為紅色。

 

歡迎大家由此連結或掃描以下的QRCode 來下載本程式:

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

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

註2: 將Android 手機設定為可安裝非Google Play 下載的程式以及讓手機與樂高NXT 主機連線等說明請參考:http://www.appinventor.tw/setup。

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

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

131217 LabVIEW for Arduino 機電整合業界講師課程@亞洲大學

11/26 開始每週二下午,是亞洲大學資工系的業界講師課程,大學部的同學們很認真地在學習以下三種課程:

1. LabVIEW for Arduino   (健行科大電機系也正在學這個

2. Processing + Android 互動設計

3. Processing + Kinect 體感開發

現在1. 已經上得差不多了,即將進入2. 如果都能順利完成課程的話,我想同學們會變得更厲害喲!

請參考 CAVE實驗室的 LabVIEW for Arduino 分部 以及 Processing / Android分部

還有10月底剛出版的 [LabVIEW for Arduino 控制與應用的完美結合]

來看看上課實況,安裝環境,調參數總是最麻煩。

2013-12-17 16.05.56

不過順利 run 起來的時候就很有成就感啦。使用圖形化的 LabVIEW 來控制 Arduino,很多現成的指令就更輕鬆了。另一方面,LabVIEW各種豐富的人機界面,能讓 Arduino 所取得的訊號有更好地呈現。

下圖就是將接在 Arduino 類比 A0 的可變電阻顯示在畫面上,可以看到現在量到電壓是 2.6V左右,這個指針很漂亮喲!

2013-12-17 16.06.34 2013-12-17 16.06.44

大家正在想三周後的專題展示要做什麼

2013-12-17 16.35.26

玩一下 RGB LED燈,DIY樂無窮

2013-12-17 17.35.49

寫程式就是一種與自己對話的過程,只有最適合,沒有最好的程式環境。況且現在網路發達,很容易就能找到不錯的網路教學資源(例如CAVE系列網站…),同學們好好加油吧。

 

 

20131203_174418

[看似]認真在解決大家問題的阿吉老師

20131203_162816

131210 Arduino習作工坊 膜拜之夜@MakerBar Taipei

連續三周在MakerBar Taipei 舉辦的 Arduino 習作工坊, 第一天是燈光,第二天是馬達,最後一天的膜拜(mobile)之夜要教大家如何讓Arduino 與 Android 進行藍牙通訊。

這是我們第一次要在2.5小時之內教會學員以下3件大事:

1. Arduino 藍牙通訊原理

2. App Inventor如何收發訊號

3. Arduino 如何收發訊號與封包拆解

每一件事都不容易耶!大家辛苦了。如果您這次沒上到課,請留言索取投影片與程式碼。我們會寄給您。CAVE 與 MakerBar Taipei 即將於一月某個週末以相同主題再次開課,請不要錯過囉。

131126 Arduino習作工坊   燈光之夜@MakerBar Taipei

 

今日課程由 CAVE薛皓云老師主講,皓云老師很喜歡自己動手做,是個熱血的 maker啊

1472904_561818730555672_214201257_n

課程分成三段:

A. Arduino藍牙設定

B. App Inventor 控制 Arduino LED 亮滅

C. App Inventor 接收 Arduino 類比訊號

1475944_561818147222397_1268402266_n

1467331_561818420555703_1058383493_n

EV3資料擷取功能 – 10_列印實驗結果

開啟實驗,然後從文件選單選出您想列印的實驗,您也可以在Windows上使用快捷鍵ctrl+p或在Mac上選擇Command+P來選取資料。
 
開啟列印對話框,如下面例子所示


設置

1.顯示配置選項板(Show Configuration Palette):將連同目前的配置選項板(實驗配置、資料集合表、資料集計算或曲線圖設計)一併列印出。

2.隱藏配置選項板(Hide Configuration Palette):只列印曲線圖區域。

3.顯示說明(Show Legend):輸出時將包括每個資料集的說明指示

4.隱藏說明(Hide Legend):在列印輸出將不包括說明。

5.標準(Normal):使用影印機預設的的的頁面方向。

6.強制景觀(Force Landscape):強制將列印方向設為橫向。


選擇您想要的設定後點擊列印。

 

本文件部分係翻譯自LEGO MindStorms EV3 軟體中的說明頁面,一切資訊皆以此樂高公司官方資訊為準。

本團隊基於教學與分享,並無侵權之意,如有直接或間接損害他人權益行為,請不吝通知我們,我們將立刻移除有疑慮的文件,特此聲明

131130 Scratch 遇見外部感測器研習@花蓮稻香國小

11/30 也就是11月的最後一天, 來到風光明媚的花蓮稻香國小辦[Scratch 遇見外部感測器研習],有十多位花東地區的國中小老師全程參加。還有幾位校長,從頭一起做到最後,實在是非常感佩

教學內容有Scratch 、Arduino以及圖形化的Ardublock程式環境,早上是基礎的Arduino教學(大家一起來接接線),玩玩LED與感測器,到了下午則是組一台機器人,用鍵盤來控制出來

說到Scratch 與Arduino在教學上的應用,就一定是以苗栗蟠桃國小范老師的網站馬首是瞻了,請參考范老師的網站

更多資訊可以參考[台中市教育網路中心數位教學平台

IMG_2353

 

花蓮地區的Scratch與自由軟體推懬的老師們都會到稻香國小來開會,OpenLab Hualien,好響亮啊!

2013-11-30 09.18.42

這張照片真的是太棒了,幫爸爸鎖馬達線的妹妹,理工之花啊

2013-11-30 13.14.09  IMG_2332    IMG_2339 IMG_2340 

最近ArduBlock 有愈來愈紅的趨勢哩

 

 

IMG_2341 IMG_2342 IMG_2343 

另一位小朋友使用可變電阻(滑桿)來控制畫面上的溫度指針

 

IMG_2345 IMG_2349 

感謝主辦單位爭取經費與熱心,有非常豐富的後勤部隊

IMG_2334

來看看美麗的稻香國小吧,有好大的藍天與山啊

IMG_2328 2013-11-30 16.35.21

普悠瑪號只要兩小時就可以回到台北(票好難訂…),感謝交通便利,讓CAVE可以更方便地到各地上課

IMG_23571

EV3資料擷取功能 – 09_圖形化設計

圖形化設計能讓您的機器人依據實驗區紀錄的資料執行動作。1. 圖型化設計選項

2. 選擇感測器

3. 顯示/隱藏臨界值區

4. 臨界值區圖示

5. 開發區設計面板

建立臨界值區是使用圖形化設計的關鍵。開發區設計面板用於創造在感測器數值於特定的開發區內時執行的程式方塊時,透過臨界值可以分隔出各個開發區,並透過上下拖曳調整臨界值,或者在臨界值中鍵入一個特定的數字。

範例1:門口招待員

您的機器人測量門口的距離,當有人走過,超音波感測器量測到的距離較近,機器人會撥放「早安」的聲音檔

選擇星型標誌區及矩形標誌區以建立兩個開發區,調整開發區臨界值以檢測是否有人走過門口,在這案例中,我們選擇30公分,當感測器數值在星型區(即高於30公分),機器人將執行與星型區相關的設計塊,當感測器數值在矩形區(即低於30公分),機器人將執行與矩形區相關的設計塊。

1. 星型區

2. 矩形區

3. 臨界值

4. 臨界值選擇區

於矩形區域到圖形設計選項版,拖曳一個聲音塊到設計區,並選擇「早安」的聲音檔。

這會怎麼運作呢?如果您的機器人檢測到你走過門口,它會跟你打招呼說「早安」。

範例2 溫室控制器

您有一個小溫室與溫度感測器,馬達A連接到一個排風扇與馬達B連接到一個熱風扇。

在這個範例中我們使用三個區:星型、矩形、圓形,臨界值設在攝氏20和30度,

●星型區:溫度在攝氏30度以上,打開馬達A10秒(排風扇)。

●矩形區:溫度在攝氏20度和30度之間,什麼也不做(這在理想溫度範圍內)。

●圓形區:溫度低於在攝氏20度,打開馬達B10秒(熱風扇)。

這會怎麼運作呢?當溫度低於特定臨界值,熱風扇開啟溫暖溫室,如果溫度高於另一個臨界值,排風扇會開啟排除熱空氣。

多個感測器

當使用多個感測器時,每個感測器最多可已有三個臨界值區與設計塊到特定的區,點即選擇感測器區域來查看或編輯感測器的臨界值區。

本文件部分係翻譯自LEGO MindStorms EV3 軟體中的說明頁面,一切資訊皆以此樂高公司官方資訊為準。

本團隊基於教學與分享,並無侵權之意,如有直接或間接損害他人權益行為,請不吝通知我們,我們將立刻移除有疑慮的文件,特此聲明

EV3資料擷取功能 – 08_資料集計算

透過資料集計算功能,可以由來現有的資料集取得新的資料集。

例如您可能想取得下列這些新的資料集:

車輪的行走距離=車輪圓周*馬達旋轉圈數

平均光強度=(顏色感測器1的環境光強度+顏色感測器2的環境光強度)/2

最接近的對象=從{超音波感測器1、超音波感測器2、超音波感測器3}中取最小值

在以上每種情況下,您拿一個或多個現有的資料集執行數學函數建立一個新的資料集,參考公式區域得到更多訊息。

您可以透過點擊資料集計算選項開啟資料集計算

 

1. 資料集計算選項

2. 公式區域

3. 計算資料集名稱

4. 計算資料集單位

5. 計算

6. 函數列表

7. 資料集

>公式區域

公式區域被用來建立一個方程式來生成新的資料集,你收集的資料集可能有不同的名稱。

下表為上述例子中的公式:

 
新資料集公式
車輪的行走距離(假設圓周17.5公分)Motor_Rotation _pB *17.5
平均兩個顏色感測器的光強度Avg(Color_Sensor_p3; Color_Sensor_p2) 或
(Color_Sensor_p3 + Color_Sensor_p2) / 2
最接近的對象Min(Ultrasonic_Sensor_pB;
Ultrasonic_Sensor_pC; Ultrasonic_Sensor_pD)

>計算資料集名稱

這是您的資料集ID,您可以重新給予其一個更有意義的名稱。

>計算資料集單位

給您的新資料集測量單位,例如移動的距離可能為公分。

>計算

一旦在公式區域建立了一個公式,點擊計算生成一個新的資料集,並將它放在曲線圖區域,此資料即將有自己的Y軸,您可以使用資料集合表選項更改顏色和圖型樣式。

>函數列表

函數可以使用於執行計算你的資料集。

函數名稱函數術語定義
+加一個常數或資料集到原來的資料集
減一個常數或資料集到原來的資料集
*資料集乘以一個常數或資料集
\資料集除以一個常數或資料集
絕對值Abs傳回指定數字的絕對值
平均Avg傳回所有指定資料集的平均值
最低值Floor傳回最大整數小於或等於指定數字
最高值Ceil傳回最小整數大於或等於指定數值
最小值Min傳回指定的一組數字中最小者
最大值Max傳回指定的一組數字中最大者
最接近值Round傳回最接近指定數字者
平方根Sqrt傳回指定數字的平方根植
正弦Sin傳回指定數字的正弦
餘弦Cos傳回指定數字的餘弦
正切Tan傳回指定數字的正切
反正切2Atan2傳回該的角度是兩個指定數字的正切商數
自然對數Ln傳回指定數字的自然對數
常對數Log傳回以10為基數的指定數字
導數Slope測量如何指定功能變化為輸入變化

平均、最小值、最大值函數可以接受多個資料集,如下所示:

Avg(資料集1;資料集2;資料集3)

●提示和訣竅
函數的計算是重複使用Y軸數值(s)於每個X軸點,這建立了一組新的Y軸數值(計算資料集),看下面的範例。

 

範例

如果你有兩個資料集,測量馬達旋轉於馬達端口B和端口C 30秒內每10秒所產生的資料,資料即可能包含以下資料:

 0秒10秒20秒30秒
馬達旋轉,端口B0134
馬達旋轉,端口C0157

 

對兩個資料集使用平均、加、乘的函數,會產生以下計算資料集:

 0秒10秒20秒30秒
平均馬達旋轉01.545.5
麻達旋轉,端口B+端口C03811
馬達旋轉,端口B*1.501.54.56

 

>資料集

此列表顯示可以使用資料集計算的資料集,點擊列表上的資料集自動將其插入到公式區域。 

本文件部分係翻譯自LEGO MindStorms EV3 軟體中的說明頁面,一切資訊皆以此樂高公司官方資訊為準。

本團隊基於教學與分享,並無侵權之意,如有直接或間接損害他人權益行為,請不吝通知我們,我們將立刻移除有疑慮的文件,特此聲明

11/24 《Arduino移動型機器人控制工作坊》送FabCafe雷切體驗折價卷一張

1381807_662658177099345_1210036047_n

感謝  FabCafe 熱情贊助,凡參加「開放硬體研習營 – 《Arduino移動型機器人控制工作坊》」即可獲得FabCafe 鐳射切割體驗折價卷一張~有非常多有趣的應用,您想得到材質幾乎都可以經由鐳射切割來加入更多個人的效果,送禮自用兩相宜啊!

不過 FabCafe 和 CAVE 在11/14 的 Sansor Lamp 感應燈之夜已經額滿了,請期待下一次的活動囉。

 

600549_591355530896277_1954513084_n 644472_660704463961383_1857604847_n 935991_660704470628049_748986934_n 1380471_660704460628050_1505477573_n
對象:對開放硬體有興趣之軟硬體開發者、DIY玩家、設計師、教師及所有社群朋友

講師:CAVE教育團隊、李國豪

費用:$3000/人(參加學員現場將發送每人市值2000元Ardiuno開發物件一套)

地點:淡江大學台北校區三樓D304教室 (台北市大安區金華街199巷5號)

時間:2013年11月24日 (日) 上午9時20分

活動網址:http://www.ctimes.com.tw/cf/ShowCF-tw.asp?O=HJXBN5K1U0YCFA0RBB

報名洽詢:02-2585-5526 分機 225 戴小姐.vinky@ctimes.com.tw

1026-27 App Inventor / Arduino 研習營@樹德科大電通系

10/26 27 風光明媚好周末, 阿吉老師來到樹德科大電通系辦理 App Inventor / Arduino 研習營,感謝施教授與專題生們願利用週末的時間來認真學習啊!很感動哩~

以往使用 App Inventor 來控制樂高機器人時,由於樂高NXT 機器人支援了 NXT Direct Command,所以可以在不用編寫機器人端程式的情況下,只要與Android 手機藍牙配對完成之後,就能直接從手機來控制樂高機器人了。如果是其他的裝置就沒辦法這樣了,您必須自行編寫機器人端的接收程式,雖然不算太難,但能少一事就少一事囉~

在此我們要表達的是,要用行動裝置來遙控另一個裝置本來就不是一件簡單的事情,很多事情一牽涉到硬體與通訊就會變得很麻煩,需要反覆地測試調校才行喲!

請參考 CAVE 的 Robocon 全系列App Inventor / 樂高NXT教學系列文章

在此以一個簡單的範例來說明:點擊手機端的按鈕來開/關 LED

[youtube=http://youtu.be/_GhtpDEe5lY]

App Inventor 是使用 BlueToothClient 來發送 t 與 f 這兩個字元,Arduino端則是檢查由 Serial 通訊收到的內容,如果是 t 則開燈( digitalWrite(led, HIGH); )反之如果是 f 則關燈(digitalWrite(led, LOW);

Arduino Code:

int led = 13;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
Serial.print(“ready”);
}

void loop()
{
if (Serial.available())
{
char ch1=Serial.read();
if(ch1==’t’)
{
digitalWrite(led,HIGH);
}
if(ch1==’f’)
{
digitalWrite(led,LOW);
}
}
}

2013-10-26 10.38.14 2013-10-26 12.05.32 2013-10-26 12.05.36  2013-10-27 11.02.47 2013-10-27 13.46.34  2013-10-27 15.10.55  2013-10-27 15.45.582013-10-27 13.58.22