Tag Archives: arduino

[雙A計劃] Part9:藍牙遙控機器手臂車

整合性的範例就來一台機器手臂遙控機器人吧,把機器手臂裝在雙馬達車體上就完工了,一樣可以透過 App Inventor 來編寫。使用多個按鈕來控制機器人的各個動作。來看看之前的雙A計畫內容:

[雙A計畫] 常見問題整理

[雙A計劃] Part0:App Inventor 透過藍牙傳送訊號給 Arduino

[雙A計劃] Part1:App Inventor 經由藍牙控制 Arduino LED 亮滅

[雙A計劃] Part2:App Inventor 經由藍牙控制 Arduino LED 漸明漸暗

[雙A計劃] Part3:Android 手機透過藍牙接收 Arduino 類比腳位狀態

[雙A計劃] Part4:App Inventor 藍牙遙控 Arduino 雙輪機器人

[雙A計劃] Part5:Paperduino 藍牙控制 LED 閃爍

[雙A計畫]Part6:Arduino 傳兩筆資料到 Android 手機

[雙A計劃] Part7:Arduino超音波感測距離回傳數值給Android手機

[雙A計劃] Part8:Android 手機對 Arduino 同時進行資料收發

範例程式請點我下載(App Inventor中文學習網檔案庫)

準備以下材料:

1 Android系統智慧型手機

2.Arduino相容開發板 (本文使用 86Duino Educake)

3.藍牙收發接收器(本系列使用JY-MCU04 或 JY-MCU05)

4.麵包板

5.MeArm 或其他相同配置的四自由度機器手臂,使用四個伺服馬達

6.雙輸出行動電源或電池

IMG_0373

台南 Maker Faire 現場展示很受歡迎喔

本範例使用 86duino Educake來製作電路,您可使用各種相容 Arduino 板子。以下是主程式流程,還需要匯入其他函式庫,在此就不列出囉,請直接下載檔案即可。

2015-12-25 13.40.54

Continue reading

Vernier三軸加速度感應器控制RGB LED

今天要來和大家分享一個Vernier公司的三軸加速度感應器(3-Axis Accelerometer),可以透過轉接頭連接麵包版,以Arduino UNO控制。Vernier是一家美國的科學儀器公司,提供了各式平台、感應器與軟體。Vernier公司將感應器分成類比BTA與數位BTD兩種,這一顆三軸加速度感應器屬於類比式(BTA)的感應器。

12054

感應器需要先接上轉接頭,再與麵包板連接(也可以選擇用Vernier推出的arduino相容擴充板),轉接頭亦分為類比與數位兩種。

12050

12051

Analog Protoboard Adapter(BTA-ELV)

轉接頭上共有SIG2.GND.VRES.ID.5V.SIG1六個腳位,在接下來的範例中,我們只會使用到其中的三個,分別是5V.GND.SIG1

12053

以三軸加速度感測器控制RGB LED燈

這是一個簡單但是非常有趣的專題,運用Vernier的三軸加速度感測器,透過三個BTA轉接頭,持續的監控由感測器所回傳的的電壓值,並將這些讀值轉為LED的紅色、綠色、藍色的亮度值。

所需材料:

Vernier 3D BTA三軸加速度感測器 一個

Vernier BTA-ELV轉接頭 三個

Arduino UNO或相容板 一個

400孔麵包板 一個

5mm RGB LED (共陰極)一個

¼ W 220歐姆電阻 一個

跳線或是杜邦線 一批

電源(7-12V也可以透過USB埠供電)

 

軟體:

Arduino IDE

可於https://www.arduino.cc/en/Main/Softwarey9 下載,截稿時的最新版本為1.6.6。各大作業均可安裝Windows、OS X、Linux。

 

工具:

已安裝好Arduino IDE與驅動程式的電腦

USB線(需配合使用的Arduino板)

撥線鉗(使用單芯線時才會用到,使用杜邦線就不用)

 

說明:

透過讀取感測器原始電壓值(0~1023)後,轉換成PWM參數(0~255)( 除以4),再分別以三個PWM腳位(代表RGB三種顏色)輸出x. y. z三軸的電壓值。程式碼可以在Vernier官方網站以及官方Github找到。

http://www.vernier.com/engineering/arduino/projects/control-led-with-accelerometer/

https://github.com/VernierSoftwareTechnology/arduino/blob/master/Vernier3DAAutoscale/Vernier3DAAutoscale.ino

Vernier官方也提供了其他arduino的範例,程式碼也都在Vernier官方的Github,也可以利用加速度規讀取未校正的原始數值,或是以規格說明書上提供的數值進行校正。

 

 

 

參考資料:

http://www.vernier.com/engineering/arduino/connect/breadboard/

圖片來源:

http://www.vernier.com/products/sensors/accelerometers/3d-bta/

http://www.vernier.com/products/interfaces/bt-ard/

http://www.vernier.com/products/accessories/protoboard-adapters/bta-elv/

 

Arduino Serial Plotter 玩玩看~ 一元二次函式圖形

Arduino 1.6.6 的新功能就是 Serial plotter,可以把數值直接顯示成圖表了,QQ。這個功能讓好多玩家望穿秋水啊,不然要做資料視覺化只能使外部程式例如 Processing  或 python 進行後續處理。

今天就來玩玩看吧,以下是使用 Serial plotter 繪製一元二次函式圖形的結果,很棒吧

001

可看到語法一樣是 Serial.println(),只是要用Serial plotter 才能看到畫面。

實際測試的狀況下如果同時用 Serial.print 顯示字串的話,Serial plotter 會沒有畫面,另一方面,Serial monitor 與 Serial plotter 無法同時開啟,請注意喔

002

// please open serial potter to see the sine wave~
#include "math.h"

void setup() {
  Serial.begin(9600);
}

void loop() {
  for (double i = -10.0; i <= 10.0 ; i += 0.1) {
    Serial.println(pow(i, 2) + 2 * i + 1);
    delay(10);
  }
}
Arduino serial plotter example

延伸閱讀:Arduino 軟體更新,命令列工具與序列資料繪圖器新登

[LabVIEW for Arduino] 感測器的移動平均與加權平均結果

大家好,今天的小範例要告訴您如何使用 LabVIEW 的 shift register 來平滑 Arduino A0腳位上的光敏電阻值,使用的移動平均法與加權平均法取歷史的3筆資料來平均。

Front Panel 執行結果如下圖,菱形方格是光敏電阻原始值,紅線是移動平均法,黑線是加權平均法

所謂的移動平均法是指所有資料的比重相同,因此計算方式就是把所有資料相加之後除以總筆數就好。

換言之加權則代表每一筆資料的權重 (weight) 不同,您可以根據需求來調整。以本範例來說,時間愈近的資料權重愈高。

ave_03

程式畫面,上段是 Arduino 指令,可能看到我們要使用 A0 腳位上的光敏電阻值,與 Arduino IDE 不同的地方在於回傳值是 0~ 100 而非 0~1023。

中段是移動平均法,您可看到我們使用 shift register 抓到光敏電阻值的前三筆資料,相加之後除以4就好。下段是加權平均法,在此加權平均法採用 Formula node 讓畫面更簡潔,不然以下算式容易讓畫面雜亂喔

最後使用 Bundle 指令將這兩筆資料匯集以來之後丟給 Waveform chart 來顯示就可以了。

ave_01

Formula node 內容,可以看到愈久的資料權重就愈低 (0.4 > 0.3 > 0.2 >0.1),請注意權重相加需等於 1

ave_02

Genuino UNO 開賣了 $650元

Arduino.cc 與 Adafruit 共同設計的 Genuino 開發板,開賣了。

至於為什麼 Arduino.cc 會新弄一個 genuino 產品線出來,請參閱這一篇報導。只能說:商標很重要,慎選創業夥伴也很重要…  簡單來說,在美國本土還是叫做 Arduino,在美國以外的國家就叫做 Genuino,使用上與原本的 Arduino.cc 系列開發板無不同。

我們的商城已經開賣囉,特價 $650,歡迎搭配相關書籍一起選購

延伸閱讀:Arduino 101:具感測器套件且處理器為 Intel Curie的30美元控制板

Continue reading

Artec Robotist日本彩色積木開箱文-Sensor Car

最近入手一款Artec日本彩色積木,有很多不同的系列,每一盒都可做出四、五種主題,本篇介紹的Sensor Car,主要是組裝成車子做循跡或是迷宮機器人,感測器有觸碰感測器與紅外線反射感測器,讓我們先來看一下使用P控制的循跡。

效果很棒吧!,讓我們來介紹這盒Sensor Car裡面的零件:

artec

零件

studuino

1.主體:

DC motor & Parts:直流馬達*2和組件

Studuino控制板

Battery box:電池盒(需三顆AA電池)

2.感測器:

Touch Sensor:觸碰感測器x2

Infrared Sensor:紅外線反射感測器x2

Cable:連接線x4

Mini USB線

3.積木:

Block Parts:方形積木塊*39

4.配件:

拆積木夾*1

塑膠輪框*2

橡皮外輪*2

圓形眼睛片*2

這盒Sensor Car主要的感測器有紅外線與觸碰感測器,可做循跡與走迷宮機器人。軟體安裝非常簡易,只需安裝Studuino驅動程式與Studuino軟體,請依照以下步驟:

Step1:點此至Artec網站的Studuino下載頁面

Step2:點擊下載驅動程式(USB device driver)與Studuino Software。有Windows版與Mac版,軟體可選擇web版與單機版。

step2

Step3:安裝驅動程式。下載好的驅動程式檔案為壓縮檔,解壓縮後在資料夾內找到檔名為PL2303_Prolific_DriverInstaller_v1.11.0後點擊執行,按下一步後就能直接安裝完成囉!

step3-1

Step4:安裝Studuino軟體。若是選擇下載web版,則只要執行下載的檔案即可;若選擇單機版,則將下載的Studuino解壓縮後,找到資料夾中的檔案setup_ch點擊執行,接著就可以看到Studuino的程式畫面囉。

step4-1

step4-2

硬體組裝可以參考Artec網站上的說明書,底下還有霸王龍套裝,超酷!!!

硬體組裝

接下來介紹程式的編譯,Studuino軟體主要有二套程式介面,左邊是小圖示編輯程式,右邊是類似scratch介面的積木拼接程式,讓我們來看一下吧!

Icon Programming Environment

icon

圖示一目瞭然,左上角動作區為馬達前後左右轉,以及DC直流、Servo、Led、蜂鳴器、聲音、計時器。

Sensor

1.無條件。在放入動作區圖示時,下方通常預設為無條件執行。

2.單一條件。有A0-A7七個腳位可選擇。

3.雙重條件。可同時執行二個條件。

4.重複執行的起點。在設定重複執行的第一個動作上放置。

5.重複執行的終點。在設定重複執行的最後一個動作上放置。

6.感測器設定。包含Studuino上的四個按鈕A0-A3、A4A5腳位、A6預設光感、A7預設聲音感測器。

7.立即執行與下載至Studuino。

8.程式編寫區。由上而下代表重複執行、動作、執行條件。

在編寫程式前,請先到Edit>Port Settings輸入輸出設定將A4-A7其中一個腳位設定為IR Photoreflector紅外線反射感測器,設定完後在腳位上才會有感測值。

輸入輸出設定

接下來我們可以利用Icon Programming馬上寫出二階段的循跡車,程式如下。車子擺在黑線的左側,設定當感測到的數值小於5則左轉;大於5則右轉。按下右邊圖示上傳上傳至Studuino即可看到機器人一左一右向前進囉!

二階段程式

按下工具列的運行>感測器值模式,或是按下感測器模式可以看到感測器的數值變化。

感測器數值

Block Programming Environment

在積木方塊環境下,類似像Scratch的介面,操作簡單。

介面

以下是程式積木區:

Motion動作區:未連接的感測器會以灰色標示,表示無法使用。動作區內有伺服馬達、DC馬達、蜂鳴器、LED方塊。

動作區

Sensing感測器區:感測器包含光感、觸碰、聲音、紅外線、3軸、按鈕方塊。

感測器

Control控制流程區:與Scratch類似,多了函數方塊。

控制流程

Operators運算區:與Scratch類似。

運算

Variables變數區:與Scratch相同。

有使用過Scratch的人應該對這個介面不會太陌生吧,寫出P控制也不會太難喔!在寫程式前,一樣要先進行感測器連接埠的設定,進入Edit>Port Settings,將A7打勾後,選擇IR Photoreflector,按下OK設定完成。

Portsetting

寫出P控制也不會很難喔!算式中的1.5為Kp值,可以按照實際狀況調整,中間值與70都可以再自行調整。

P控制2

寫好後點擊Run>Transfer上傳至Studuino板子上,打開電源就ok囉!!

循跡

151107 物聯網教學應用發表會@南港高工

市面上物聯網開發板何其多,您是否對於如何選擇感到困擾?本次分享會將介紹目前常見的物聯網開發板,並展示目前市面上各類型物聯網開發板的應用,誠摯邀請您一同來了解。

活動現場除了將陳列各式開發裝置與應用範例之外,還會有各家廠商的技術代表,為您即刻解答相關疑難。還可以跟各方高手一同切磋、交流,當然還有CAVEDU滿滿對科技教育的熱情。

開發版發表會

地點:臺北市立南港高級工業職業學校,臺北市南港區興中路29號

時間:2015/11/7 星期六,13:00~16:00,12:30 可入場

主辦單位:臺北市立南港高級工業職業學校翰尼斯企業有限公司

執行單位:CAVEDU 教育團隊

協辦單位:台灣嵌入式暨單晶片系統發展協會

媒體協辦:馥林文化MakerPRO

請點我報名

內容:

  1. 介紹市面上有哪些物聯網開發板、彼此的異同以及各種教學應用 –
  2. 各類物聯網開發板實品與專題展示,包含:
  3. 交流分享

簡介 Temboo 的 IoT 模式 – 支援 Arduino / Arduino Yun / Samsung ARTIK 與 TI LaunchPad

Temboo 是一個網路服務 API 大全集,幫各位省掉許多打通各階段認證的麻煩事 (但還是要做就是了)。本文要介紹 Temboo 的物聯網模式下支援了那些硬體平台。

請先登入 Temboo 之後,在此以 Facebook 的發布個人動態訊息頁面 (要先登入 Temboo)來說明,本文是介紹 Temboo 的 IoT 模式,如果您想知道如何用 Temboo 來發 Facebook 的話,請看以下相關文章

相關文章

物聯網裝置連線社群網站_使用Temboo取得Google的OAuth認證

Temboo – Arduino yun 發佈 Facebook 個人動態

ArduinoYun使用Temboo上傳照片至Dropbox

Continue reading

CAVEDU 9月份新課程招生中

課程分類

創意造型積木  適合五至六歲幼兒培養學員觀察力、加強平面轉換三度空間的能力、作品的平衡和結構對稱,以及手指細動作的強化練習,包含塞、擠壓、零件位置微調等動作。

簡易機械班  適合六至七歲幼兒以直覺的堆疊構建成機械模型,從創建過程中,體悟物理與機械的原理與運用。藉由實驗與競賽交織而成的課程活動,加強孩子對科技的認知及興趣。

動力機械班  適合國小中低年級 這是專門為學齡孩童設計的機械科學課程,使用丹麥樂高公司所研發的機械積木教具,從動手做中學習物力原理。(~ 需自備PF電池盒/馬達 ~)

機器人班  適合小學中高年級、學習過動力機械並檢測通過的學員。

~ 需自備EV3教育/電腦,課程中不再浪費時間組裝機構,充實學寫程式 ~

機器人專題班  適合小學中高年級、學習過機器人並檢測通過的學員。

~ 需自備電腦,充實學寫程式 ~

Arduino創作班   適合國中以上學員、學習過程式語言進階課程並檢測過關。

~ 需自備電腦,須另購買Arduino材料包 ~

西洋棋班   適合國小二年級以上學員


 

CAVEDU合作教室 (紅色字為暑假營隊)(藍色字為寒假營隊)

 開課地點開課課程/時間
機器人王國(02)2306-2900

臺北市中正區中華路二段165號

動力機械課程班-常態班每週五   18:30~20:00
機器人班( EV3) -常態班每週五   19:00~21:00
Arduino/LabView創作班-常態班每週五   19:00~21:00
機器人專題班( LabView )-常態班每週六   16:00~18:00
茱莉亞幼兒園(02)2581-2220

臺北市萬華區西藏路176號2樓

簡易機械班-常態班每週三   16:30~17:30
Otto 2古亭教室(02)2365-9467

臺北市大安區羅斯福路三段171號7樓

簡易機械班-常態班每週三   18:30~20:00
機器人專題班(Scratch for Arduino)-常態班每週三   19:00~20:30
動力機械課程班-常態班每週五  19:00~20:30
3D課程成人班~敬請期待
救國團敦化教室(02)2713-0902

臺北市松山區敦化北路214號(敦化財金大樓)

冬令營~敬請期待
諾仁美語(02)8789-8118

臺北市士林區永平街9巷8弄11號1 樓

動力機械課程班-常態班每週一   18:30~20:00
冬令營~敬請期待
  開課地點開課課程/時間
小領袖語文補習班(02)8789-8118

臺北市信義區莊敬路239巷12號2樓

動力機械班~常態每周六(9月份秋季班)
機器人班( EV3) -常態班每週六(9月份秋季班)
救國團景美教室(02)8663-3516

臺北市文山區羅斯福路六段136號4樓

創意造型積木班-常態班每週三   10:00~11:00(9/9秋季班開課)
動力機械課程班-常態班每週六   09:00~10:30(9/12秋季班開課)
機器人班( EV3 )-常態班每週六   10:40~12:10(9/12秋季班開課)
冬令營~敬請期待
 聖心幼兒園(02)2557-8119

臺北市大同區民生西路245號

創意造型積木班-常態班每週二 17:00~18:00(9/8秋季班開課)
創意造型積木班-常態班每週五 16:00~17:00(9/11秋季班開課)
立群幼兒園(02)2682-8810

新北市樹林區千歲街108號

動力機械課程班-常態班每週六   10:30~12:00(9月份秋季班開課)
冬令營~敬請期待
南山學園教育基金會(02)2245-3000

新北市中和區廣福路41號

動力機械課程班-常態課每週四   17:00~18:30 (9/10秋季班開課)

[雙A計劃] Part8:Android 手機對 Arduino 同時進行資料收發

雙A計畫第八篇來了!這次我們將告訴您如何在 Android 手機端與Arduino端藉由藍牙來互傳資料,本範例可同時控制 Arduino D13 腳位的高低電位 (有個板載LED,也可以自己接一顆 LED),並在手機畫面上看到 D13 腳位的狀態(High / Low)代表資料收發都完成了。

另外,想了解雙A計畫所有內容的朋友,請參考下面的連結

[雙A計畫] 常見問題整理

       [雙A計畫] 藍芽模組(HC05/06)常用指令教學

[雙A計劃] Part0:App Inventor 透過藍牙傳送訊號給 Arduino

[雙A計劃] Part1:App Inventor 經由藍牙控制 Arduino LED 亮滅

[雙A計劃] Part2:App Inventor 經由藍牙控制 Arduino LED 漸明漸暗

[雙A計劃] Part3:Android 手機透過藍牙接收 Arduino 類比腳位狀態

[雙A計劃] Part4:App Inventor 藍牙遙控 Arduino 雙輪機器人

[雙A計劃] Part5:Paperduino 藍牙控制 LED 閃爍

[雙A計畫] Part6:Arduino 傳兩筆資料到 Android 手機

[雙A計劃] Part7:Arduino超音波感測距離回傳數值給Android手機

!!!注意!!!

如果Arduino端太頻繁去傳送LED燈的亮暗狀態給手機的話,可能會造成藍牙通訊塞車。以本範例來說,Arduino端是每100毫秒會傳送一次訊息,但是筆者有試過如果幾乎不等待,就讓Arduino端一直傳送的話,那麼在接收Android手機端的命令時就會出現0與1以外奇怪的數值喔!

程式下載請點我  (aia檔是App Inventor的專案檔,apk檔是手機端的安裝檔,直接丟到手機安裝就可以使用了, ino檔則是給Arduino執行的)


手機端程式說明,使用 App Inventor:

Designer 頁面

Screen Shot 2015-07-23 at 4.47.24 PM

請注意,本範例中的Clock1 元件的 TimeInterval 設定為10毫秒,也就是每10毫秒手機端就會去啟動藍牙接收程式,查看Arduino端的D13腳位的電位高低狀態。

這個參數您可以自由修改,如果想要做到最即時反應那就可以把時間間隔改低一點,但是在這邊提醒一下,藍牙的傳輸資料還是多多少少會有些時間延遲喔!

Blocks 頁面

Screen Shot 2015-07-23 at 4.33.18 PM

區塊元件名稱功能
藍牙列表的設定when ListPicker1.BeforePicking在藍牙連線到裝置前,先將之前配對好的藍芽裝置匯入到準備連接的列表中
藍牙連線到裝置when ListPicker1.AfterPicking選好要連接的藍牙裝置後,將藍牙列表關閉、啟動計時器開始每隔一段時間讀值,並把斷線的按鈕設定為可執行
斷線按鈕的設定when Button3.Click按下斷線後就會斷開藍牙通訊,並把按鈕配置回到一開始的狀態

按鈕發送藍牙訊號來控制 Arduino 以及定期接收 Arduino 的回傳值來改變按鈕 (Button2) 的背景顏色

Screen Shot 2015-07-23 at 4.33.55 PM

區塊元件名稱功能
藍牙遙控LED燈when Button1.Click當按下ON之後就會透過藍牙傳送”1″的訊息給Arduino,如果Arduino成功接收到的話,就會亮燈當按下OFF之後就會透過藍牙傳送”0″的訊息給Arduino,如果Arduino成功接收到的話,就會熄燈每次按下手機螢幕上的開關時,按鈕上的文字都會在”ON”、”OFF”之間做切換

 

藍牙接收LED燈狀態when Clock1.Timer每隔一段時間(本次範例使用的是10ms),就會去接收Arduino透過藍牙傳送過來的LED燈狀態如果是”1″的話,就將旁邊按鈕2的背景顏色設為亮色,代表此時燈是亮的如果是”0″的話,就將旁邊按鈕2的背景顏色設為暗色,代表此時燈是暗的

 

 

150722 Arduino Plus 習作工坊六月份結訓囉~ 八月份招生中

10409087_852284608153142_1526573054653441836_n

Arduino Plus 習作工坊六月份結訓,這次參加的學員的背景很多元,有牙醫、工程師、設計師、服務業、還有媽媽與國中生母子檔。大家一起在 MakerBar Taipei 度過了五個有趣又豐富的實作夜晚,希望之後大家也能一直創作喔

上課投影片請點我

咱們八月份的 Arduino plus 習作工坊也開始招生囉~ 8/12 第一堂課開跑! 課程延伸到六堂課

arduino_plus2_large

上課時都會由講師以簡明易懂的投影片來說明腳位與各類接線的注意事項。

11791857_852442171470719_1792476845_n 11759062_852442138137389_1029518671_n 11721193_852442134804056_406805201_n

150613 海洋大學微處理機課程 期末展示-使用 LinkIt ONE

今年的海洋大學微處理機課程順利完成了,本文要來看看各位同學的作品。與去年不一樣的是,今年使用 LinkIt ONE (去年是 Arduino UNO),因此上課內容針對物聯網所需之WiFi、藍牙與GPS (GPRS需要SIM卡所以沒有使用) 都設計了不同的專題讓同學可以逐步學習。當然也必須要整合到期末專題中喔。再次感謝 MediaTek Labs 贊助上課所需的 LinkIt ONE 開發板 (看到這句話的老師,您也可以向他們提出教學計畫來申請板子喔!

認識阿吉的師長朋友們都知道,我希望學生能夠具備一定的口頭表達能力,因此每一位同學都一定要開口講話,也要說明在組裡的分工(變成吉祥物就不好了…)。畢竟你得先打造一個夢,或是現實生活中的某個問題。接下來才是為了做到這件事,我需要怎樣的技術以及過程所碰到的困難等等。所以報告時不要拿一堆程式碼出來嚇人啊,嚇不倒我的。

在這些過程中,你一定會有很多想法與錯誤的累積,好好把他們記錄下來吧,這就是別人拿不走,屬於你的養分。總有一天這些隱性的東西會大大幫你一把的。

另一方面,在一組裡面一定有人投入多,有人會找機會摸魚(說不定還會捅你一把)。如何學習人和,這也是之後出社會的真實縮影,試著體會吧。

學無速成,重在踏實

Continue reading

[LA計畫] App Inventor 接收 LinkIt ONE 兩筆可變電阻值,還可做磁力畫板

本文介紹如何使用 App Inventor 擷取 LinkIt ONE 上的兩筆可變電阻資料,作法與 [雙A計畫]Part6:Arduino 傳兩筆資料到 Android 手機 是一樣的,只是 LinkIt ONE 在藍牙設定上有一點點不一樣,因此寫一篇分享一下。

除了可在Android 手機畫面上看到 LinkIt ONE 兩個類比腳位變化之外,還可畫線,類似小時候的磁力畫板(啊,暴露年紀…)

本文感謝 CAVEDU 實習生施力維完成

檔案請點我下載


 

 

 

 

 

 

延伸閱讀

[雙A計畫] 常見問題整理

[雙A計劃] Part0:App Inventor 透過藍牙傳送訊號給 Arduino

[雙A計劃] Part1:App Inventor 經由藍牙控制 Arduino LED 亮滅

[雙A計劃] Part2:App Inventor 經由藍牙控制 Arduino LED 漸明漸暗

[雙A計劃] Part4:App Inventor 藍牙遙控 Arduino 雙輪機器人

[雙A計劃] Part5:Paperduino 藍牙控制 LED 閃爍

[雙A計畫]Part6:Arduino 傳兩筆資料到 Android 手機


 

 

 

程式說明

在此只列出 Clock.Timer 事件,首先送出一個 122 數字,LinkIt ONE接收到之後就會把 A0, A1 值丟給 App Inventor。變數X是 LinkIt ONE 傳來的 A0腳位值,Y則是A1.

由於 Canvas 的大小是 320  x 320,因此我們設定把 A0原本的 0~ 1023 範圍透過 map 指令轉為 0~ 320,對應到 X 軸座標。A1 則是對應到 Y 座標,最後使用 Canvas.DrawLine 指令就可以隨意畫圖囉!

01

對應的片段如下

if(LBTServer.connected()){
      a1 = analogRead(A0);
      a2 = analogRead(A1);
      a1 = map(a1,0,1023,0,320);
      a2 = map(a2,0,1023,0,320);
      Serial.printf("%d\t%d\n",a1,a2);
      if(LBTServer.read() == 122){
        BTwrite = LBTServer.write('j');
        BTwrite = LBTServer.write(a1/256);
        BTwrite = LBTServer.write(a1%256);
        BTwrite = LBTServer.write(a2/256);
        BTwrite = LBTServer.write(a2%256);
      }
      delay(10);
  }
LinkIt ONE 端透過 LBTServer 將 A0, A1 依序送出

 

 


 

 

LinkIt ONE 端完整程式

#include <LBT.h>
#include <LBTServer.h>
#define serverName "BTserverTest"
#define serverWaitTime 5

char BTwrite;
void setup() {
  Serial.begin(115200);
  while (!Serial);
  LBTServer.begin((uint8_t*)serverName);
  Serial.printf("[%s] is waiting for any client...\n",serverName);
  
  while(!LBTServer.accept(serverWaitTime)){
    Serial.println(" ... ");
  }
  Serial.println("===Connected!===");
}
int a1,a2;
void loop() {
  if(LBTServer.connected()){
      a1 = analogRead(A0);
      a2 = analogRead(A1);
      a1 = map(a1,0,1023,0,320);
      a2 = map(a2,0,1023,0,320);
      Serial.printf("%d\t%d\n",a1,a2);
      if(LBTServer.read() == 122){
        BTwrite = LBTServer.write('j');
        BTwrite = LBTServer.write(a1/256);
        BTwrite = LBTServer.write(a1%256);
        BTwrite = LBTServer.write(a2/256);
        BTwrite = LBTServer.write(a2%256);
      }
      delay(10);
  }
  else{
    Serial.println("===Disconnected!===");
    Serial.printf("[%s] is waiting for any client...\n",serverName);
    while(!LBTServer.accept(serverWaitTime)){
      Serial.println(" ... ");
    }
    Serial.println("===Connected!===");
  }
}
LinkIt ONE 送出 A0 , A1 類比腳位給 App Inventor

 

執行畫面

從 Serial Monitor 可以看到 A0, A1 目前的狀態

11713381_783552385096897_1979904894_n

轉動 A0, A1 的可變電阻就可以畫出隨意線條,是不是和磁力畫板很像呢?左側是 A0 數值,右側是 A1

 

11739516_783552328430236_792456203_n 11668094_783552338430235_89140845_n

 

[新翻譯書準備出版] Arduino 自作專案大百科

11724633_917730288266196_232203574_o

 

新翻譯書「Arduino 自作專案大百科」準備出版,看書名就知道這是一本專題大全。Arduino 讓我們運用各種電子元件變得簡單多了,想做的專題說真的在網路上也不難找到(只需要去買零件就可以了)。

在此列出一些阿吉覺得有趣的專題:盆栽觀測器(檢測您的小植物是否還活著)、記憶遊戲(就是“請你跟我這樣做”,程式相當長…)、測謊機、電子式骰子、拆彈遊戲等等。畢竟電子元件的原理是那樣,關鍵就在於各位的創意囉~

有興趣的讀者可以先下載本書範例程式碼來玩玩看

全彩印刷在閱讀上也舒服多了~ (先分享兩張內頁)

螢幕快照 2015-07-06 下午11.43.08

螢幕快照 2015-07-06 下午11.43.29