Tag Archives: app inventor

[課程紀錄]Arduino_AppInventor雙A計畫@高雄大港自造

作者/攝影 曾吉弘
課程時間  2017 3/18
課程講師 曾吉弘
課程場地  高雄大港自造

大港自造位於高雄西子灣駁二特區的自造空間,去年辦了大港自造節,開啟了不一定要掛 Maker Faire 牌的 Maker 活動,很多不一樣的發想就此展開。

言歸正傳,CAVEDU的專長是開課嘛,所以我們把招牌課程搬到大港囉。

我覺得Maker的能量就是從拿起工具的那一剎那開始,我真的覺得人人都會喜歡動手做些什麼,不管是鋼彈、小餅乾或是拿筆胡畫一通,總是對於指尖下的無限可能有著各類型的憧憬。

阿吉老師國高中就很喜歡工藝課,還記得當時要自己做一個書架,從切木板開始,到鑽孔、打磨拋光與上色都是新鮮的新鮮。為了讓木頭表面可以順利上漆,我還特別去五金行挑選各式各樣的砂紙,竟然發現了五金行老闆喜歡自己改造軍事模型–>因為工具應有盡有所以開五金行嗎?我不知道,但我看得出來他很快樂。自己做東西這件事也無所謂好不好,甚至”business model“(聽說大家最討厭被問到這句話,哈哈)。這個成品就代表了當下的自己,心境、技術等各方面的自己。

雖然說雙A計畫已經是老牌課程了,但是打底的工作還是很重要的。讓Android手機使用藍牙去與Arduino溝通之後,手機就能作為控制與顯示之用,Arduino也能藉由手機得到更多原本難以企及的功能,例如連接社群網路、拍照以及更好的計算能力等等。

來看上課照片(上課投影片於本文末)

 

 

小班教學,其實外面玻璃有很多有興趣的民眾在看呢

學員很認真地嘗試老師不同的題目

感謝大港的美麗攝影師把我拍得這麼滄桑…

最後來感受大港自造的熱鬧吧!

最後是本日上課投影片,歡迎多多分享喔


 

文章的結尾,來到了工商服務時間

未來Cavedu教育團隊也會不定期在大港自造舉辦課程~最近一期的課程在4/15的樹莓派課程喔!想要報名的朋友可直接在下方連結報名喔!

報名連結:http://www.accupass.com/event/register/1703240957416260981710

 

相關文章:

[101專題計畫分享] Arduino101(Genuino 101)&App Inventor – RGB LED控制

本文延伸自 App Inventor 中文學習網的[取得像素顏色]範例,將觸碰點的RGB值經由藍牙丟給Arduino 101 去點亮 RGB 燈,您可以擴充多顆RGB LED或其他彩色模組來達到更有趣的效果,可以說是極簡易版的 Philip HUE 照明系統喔!

本範例使用 Arduino 101,如果您是使用HC05 06 這類型的藍牙模組,則需使用 App Inventor 的 BluetoothClient元件,兩者不可混用。

程式碼請由此下載

 

作者/攝影  曾吉弘
時間  3~4小時
成本
  • Arduino 101 $1575 (購買連結)
  • RGB LED模組(本範例使用共陰) $30~50
  • 跳線  (一綑單芯線,$100左右,也可以買公公/公母杜邦線)
  • 400孔麵包板 ($80~100)
難度  * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Arduino 101開發板
  • RGB LED模組(本範例使用共陰)

本文將介紹如何取得觸碰點的 RGB 參數之後透過 BLE 送給 Arduino 101 來點亮 RGB LED。

先來看影片吧

App Inventor

Designer

  • 使用 Canvas 來取得觸碰點座標。
  • 兩個連線斷線用的按鈕:Btn_Connect /  Btn_DisConnect
  • 三個用來呈現RGB值的 Slider (無法拖動)
  • BletoothLE:處理BLE通訊
  • Clock:定期要求 BluetoothLE 將資料(RGB參數)發送給 Arduino 101

Blocks

1.初始化

宣告相關變數,其中addr 代表您所要連線之Arduino 101 藍牙位址,印在板子背面。程式初始化時,要求BluetoothLE元件開始掃瞄。

2.連線與斷線

按下連線按鈕,BluetoothLE元件對指定位址裝置(Arduino 101)連線,並設定相關畫面元件是否可操作,並顯示”Connected”於螢幕狀態列。

斷線則剛好相反,斷開與Arduino 101之BLE連線之後將相關畫面元件恢復原狀,這樣才能重新操作。

 

3.滑動手指取得觸碰點RGB參數

使用 Ball.Dragged 事件,當拖動這個小球(代表您手指的位置)時,會執行以下動作:

  1. 清除畫面
  2. 將該觸碰點的GetPixelColor結果顯示在Canvas上,會是一個相當大的負整數後續使用select list item 去解出來之後就會是 0~255 的整數了。
  3. Ball 移動到觸碰點位置
  4. 使用select list item 搭配 split 指令去分別取得該點的紅色、綠色與藍色值,顯示於Label上即可。

接著在 Ball.Dragged 事件的下半,分別更新每一個 Slider 的指針位置(ThumbPosition)以及更新 r g b 三個變數的內容為該觸碰點的 r g b 顏色強度,準備要發送出去囉!
如果您覺得這裡的程式碼相當冗長的話,可以用一個副程式包起來讓主程式流程更簡潔易讀。

4.發送訊號

使用 Clock 元件每1秒鐘觸發一次 Clock.Timer事件,其中會使用 BluetoothLE.WriteIntValue 將 r g b 值的組合結果發送出去,例如 (128, 34, 255) 的組合結果就是 128034255,Arduino 收到之後再拆解即可。
Clock.Timer 事件的1秒鐘您可以自行修改為較小的數字,看看是否有比較好的操作體驗。

 

Arduino 101 code

重點在於 line 53~67 之間的if (LEDStatus.written())判斷式中,使用 incom = LEDStatus.value(); 來取得 App Inventor 送過來的整數值,並以 1000 為單位來拆開並顯示於 Serial Monitor,最後使用 analogWrite 指令去控制對應的 RGB LED 腳位就完成囉!

#include <CurieBLE.h>
#include <stdlib.h>
#define LEDr 6
#define LEDg 5
#define LEDb 3

BLEPeripheral blePeripheral;  // BLE Peripheral Device (the board you're programming)
BLEService ControlLED("19B10010-E8F2-537E-4F6C-D104768A1214"); // BLE AnalogRead Service

// BLE LED Switch Characteristic - custom 128-bit UUID, read and writable by central
BLEUnsignedIntCharacteristic LEDStatus("19B10011-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite  );

int incom = 0;
int r, g, b ;

void setup() {
  Serial.begin(9600);
  // set Light pin to output mode
  // set advertised local name and service UUID:
  blePeripheral.setLocalName("ControlLED");
  blePeripheral.setAdvertisedServiceUuid(ControlLED.uuid());

  // add service and characteristic:
  blePeripheral.addAttribute(ControlLED);
  blePeripheral.addAttribute(LEDStatus);

  // begin advertising BLE Light service:
  blePeripheral.begin();

  Serial.println("BLE RGBLED control.");

  pinMode(LEDr, OUTPUT);
  pinMode(LEDg, OUTPUT);
  pinMode(LEDb, OUTPUT);

}

void loop() {
  // listen for BLE peripherals to connect:

  BLECentral central = blePeripheral.central();
  // if a central is connected to peripheral:
  if (central) {
    Serial.print("Connected to central: ");
    // print the central's MAC address:
    Serial.println(central.address());


    // while the central is still connected to peripheral:
    while (central.connected()) {
      //Serial.println(LEDStatus.written());
      if (LEDStatus.written())
      {
        incom = LEDStatus.value();//110225101
        r = incom / 1000000 ;//110
        g = (incom / 1000 - r * 1000) ; //110225-110000=225
        b = (incom - r * 1000000 - g * 1000) ; //110225101-110000000-2250000=101
        Serial.println(incom);
        Serial.println(r);
        Serial.println(g);
        Serial.println(b);
        analogWrite(LEDr, r);
        analogWrite(LEDg, g);
        analogWrite(LEDb, b);
        delay(10);
      }
    }
    digitalWrite(LEDr, LOW);
    digitalWrite(LEDg, LOW);
    digitalWrite(LEDb, LOW);
    delay(100);
  }

  // when the central disconnects, print it out:

  Serial.print(F("Disconnected from central: "));
  Serial.println(central.address());
}

 

相關文章:

[App Inventor] LASS 測站資料查詢

LASS(Location Aware Sensing System)是一套開源和公益的「環境感測器網路系統」,是一群熱情的朋友針對空氣污染所建置的系統。由於空氣品質是小範圍的變化,例如校園內與十字路口可能只差50公尺,但空氣品質應該差很多吧!LASS就是讓有意願盡一份力的朋友,都能將感測器的資訊丟上LASS server,完全是 bottom-up 的概念,在一年多的時間之內就已經是相當知名的專案了。

LASS 針對許多物聯網開發板(Arduino、Raspberry Pi、LinkIt ONE、Realtek Ameba等等)都有現成的程式碼可以套用,裝置上線之後就能在LASS空汙地圖 看到各個測站的狀態。也可以購買套件包喔!

本文將說明如何使用 App Inventor 取得 LASS 各測站的資料,格式為JSON,網址為http://nrl.iis.sinica.edu.tw/LASS/last-all-airbox.json

Continue reading

Arduino 101結合 App Inventor 控制@海洋大學與台北商業大學

學期到了中段,阿吉老師在海洋大學機械系與台北商業大學數位多媒體系的相關課程也進入了應用的階段。我的概念很簡單,同樣學一種,當然是採用變化多的方案,手機(App Inventor)搭配各種硬體平台都有很棒的應用,不管是作為控制器(手機根據某些條件觸發與否來通知開發板)或是顯示器(手機顯示開發板感測器狀態) 都可以喔!

本系列課程的 Arduino 101 開發板感謝台灣 Intel 公司贊助

14938270_1187934111277461_6879868924925435470_n

1478146067382

14900477_1187934257944113_3656068376457863047_n

 








 

[新書出版]Arduino從入門到雲端

翰吉第二本新書:【Arduino從入門到雲端 】出版囉!本書內容為CAVEDU教育團隊於諸多自造者空間所開之「Arduino習作工坊」課程中彙整而成。針對使用者最常用到的周邊依序介紹,分為入門、燈光、動力(馬達)、聲音、通訊、機器人以及雲端應用等七個章節。其中通訊就是 blog 的人氣文章[Arduino x App Inventor 雙A計畫] 萃取而成,歡迎買來讓您的Arduino 結合 Android 手機之後作出更多有趣的專題喔!

購書請點我

列印

同仁在印刷廠看稿的時候,心中真的是滿滿的感動呢 (多少血和淚~)

14650615_1169016236502582_6302310216387314373_n

內容簡介

  ●本書為CAVEDU之Arduino習作工坊課程彙整而成,濃縮了開放硬體所需的基礎知識,包含電子電路、C語言程式入門與電子互動專題。
●教您如何一步步使用麵包板來製作各類型的電子互動專題,並自己寫程式來調整各種變化效果。
●結合MIT App Inventor 圖形化手機開發介面,您也可以輕鬆用手機App來與機器人互動。
●常見的雙輪機器人與桌上型機器手臂,在本書一口氣全部介紹。
●本書適合對於開放硬體有興趣的大小朋友、有意願導入自造者相關課程的教學單位以及科學才藝教室。

本書之範例程式檔、套件包內容與更多資訊,請上CAVEDU系列叢書官方網站:www.cavedu.com/books。

本書特色

1. 由實作課程歸納成的最精華內容
本書內容為CAVEDU教育團隊於諸多自造者空間所開設之「Arduino習作工坊」課程中彙整而得。針對使者最常用到的周邊依序介紹,分成入門、燈光、動力(馬達)、聲音、通訊、機器人以及雲端應用等七個章節。讀者可根據個人需求選讀適合的章節。

2. 介紹Arduino可用的雲服務
Arduino.cc 所推出的Arduino Cloud雲服務,可在網頁上檢視Arduino所上傳的感測器狀態。另一方面,本書也介紹另一個常用的雲服務-Temboo,可用來連接許多實用的網路服務,例如將感測器資料上傳到Google試算表或是發布Facebook個人動態等等,都能使用Arduino結合Temboo就能做到,輕鬆又方便。

作者介紹

徐豐智

淡江大學電機工程系畢業,淡江大學機器人研究所碩士。

現為:CAVEDU教育團隊 編號no.2雜工、講師

專業領域:
物聯網系統設計、Raspberry Pi、Linux系統軟硬體整合、Arduino軟硬體整合、App手機程式開發設計、Scratch程式設計、樂高機器人設計。

周子鈺

清華大學生醫工程與環境科學系畢業,台灣大學醫學工程所碩士班。

現為:
來一課未來教室 共同創辦人
CAVEDU教育團隊 講師

專業領域:
兒童程式設計入門、arduino軟硬體整合、app inventor程式開發、scratch程式設計、S4A互動設計、樂高機器人、ozobot軟硬體應用、kodu 3D遊戲設計

Continue reading

[App Inventor教學] 上傳照片到微軟認知服務Computer Vision API,使用 Makeblock CamVision

本範例可將所拍攝的照片上傳到微軟認知服務Computer Vision API,經辨識之後可取得以下資料:

  • 照片說明(text)
  • 前景主色(text)
  • 背景主色(text)
  • 相片標籤(list)

使用 Makeblock 所開發的 CamVision extension 檔,另外也有控制其 mBot 機器人平台的 extension,我們也在測試中喔

注意:

  1. 經實測只能使用在 MIT 所提供之測試伺服器,正式伺服器匯入時會有問題
  2. 點選 Prepare 按鍵時,會把相機開起來(這時並沒有跳到拍攝預覽畫面,但的確已經開啟),因此其他會用到相機的程式,例如條碼掃描程式(下載 apk 用) 會無法使用。請先關閉本程式再使用其他相機程式。

 aia 與 apk 下載請點我(App Inventor中文學習網)

使用的照片:

img20160917130103

辨識結果如下圖:

  • 照片說明(a cat laying on a bed)
  • 前景主色(灰色)
  • 背景主色(灰色)
  • 相片標籤(indoor, cat, wall, laying)
screenshot_2016-09-17-13-47-41-29

Continue reading

[翰吉新書] Arduino 從入門到雲端,即將出版

本書內容為CAVEDU教育團隊於諸多自造者空間所開設之”Arduino習作工坊”課程中彙整而得,針對使者最常用到的周邊依序介紹,分成入門、燈光、動力(馬達)、聲音、通訊、機器人以及雲端應用等七個章節。讀者可根據個人需求選讀適合的章節。

另一方面,隨著萬物聯網的時代來臨,大家都希望能從雲端來監測並控制開發板,當然如果能夠結合一些有趣的運算服務或是社群網站就更棒了。例如 Arduino.cc 所推出的Arduino Cloud雲服務,可在網頁上檢視Arduino所上傳的感測器狀態。另一方面,本書也介紹另一個常用的雲服務-Temboo,可用來連接許多實用的網路服務,例如將感測器資料上傳到Google試算表或是發布Facebook個人動態等等,都能使用Arduino結合Temboo就能做到,輕鬆又方便。期待您能從本書中找到喜歡的題目喔!

目錄:

第一章   Arduino 自造者的好朋友

第二章  燈光之夜

第三章  動力之夜

第四章  聲音之夜

第五章 無線控制之夜

第六章 機器人之夜

第七章 雲端之夜

列印

160819 App Inventor & Genuino 101@Intel Taiwan

8/19 中午,到Intel台北辦公室(在南港車站樓上)與40多位同仁一起使用 App Inventor 來控制 Genuino 101(到 Intel 教人家怎麼玩的板子…  聽起來有點怪怪的)

時間只有短短兩個小時,也感謝大家中午寶貴的休息時間都踴躍參加,希望日後還有機會去分享喔!分享的內容包含環境安裝、Genuino 101 基礎I/O控制以及App Inventor 透過 BLE 來控制開發板等等,呼,幸好2小時還算夠用囉。

2016-08-19 12.26.07

2016-08-19 12.05.38

2016-08-19 13.25.19

2016-08-19 11.42.26

2016-08-19 11.42.30

160820 手機App開發實作:App Inventor 結合open data@T客邦

8/20 咱們到T客邦開課的內容是 App Inventor + opendata,想要一窺究竟的朋友,歡迎報名喔!

需要設計手機App不知道該如何入門?想開發手機 App 來控制硬體?本次實作課為你而開。講師利用App Inventor圖像式程式設計軟體,課程中帶領你學習基礎程式邏輯,親手開發出App,並實際串連Open Data結合手機發送簡訊、email、推播至社群網站。

報名請按我(早鳥價 2,300 元,含午餐)

Continue reading

[新書預報] 物聯網雲端應用大全 – 使用 LinkIt Smart 7688 Duo

如果可以的話,就讓我們順利把這本書完成吧~  去年寫了 LinkIt ONE 的書之後,一轉眼一年已過,很感謝各位師長好友的支持,我們的 7688 新書終於有樣子啦,一本書裡面要把四種雲寫進去真的很不容易,所以希望大家多多支持囉

2016-07-18 21.56.28
寫到很悶就來玩樂高,結果貓在旁邊睡覺啊…

Continue reading

[App Inventor] 行政院環保署即時空污指標查詢 PM2.5

本範例由本年度實習生鄭秉恩設計並編寫,說明如何取得行政院環保署所提供的即時的空氣品質汙染指標資料,格式為 JSON。

http://opendata.epa.gov.tw/ws/Data/REWXQA/?$orderby=SiteName&$skip=0&$top=1000&format=json

您可使用 http://www.jsoneditoronline.org/ 這樣的網站幫助您更快理解 json 架構,它會把 raw data 排版完成

 aia 原始碼下載請點我

001

一共有 75 個站點可供查詢。您還可以結合 Sharing 元件,將空氣品質的狀況寄發 email 或是發佈到 Facebook 喔。或者用藍牙傳給 Arduino 或樂高機器人也是有趣的專題呢

 

操作方式如下

  1. 點選 [取得縣市清單]按鈕,會呼叫Web元件去爬一次上述網址取得最新資料。程式初始畫面如下

0022.  點選 [選取縣市] 清單選取器,會開啟縣市清單讓您點選想要檢視的觀測站。請注意這是原始資料中的   而不是 County

003

3. 點選您想要的縣市就會顯示當地的空氣品質

 

 

 


004

Continue reading

2016 暑期營隊資訊 @實踐大學教育推廣部

暑期我們有在實踐大學推廣部開課喔!有樂高動力機械、App Inventor 簡易手機程式設計以及 Scratch 結合 Arduino 互動專題,歡迎報名~

更多課程請點我

 

[App Inventor 物聯網應用-藍牙4.0 BLE] Lesson 5 – 讀取DHT22 溫溼度模組資料

App Inventor BLE 元件教學文第五發!本專題要告訴您如何讀取DHT22 溫溼度模組資料的狀態。BLE 與樂高EV3機器人控制元件已經正式發布,請多多使用吧!實際app執行畫面如下圖,先來看執行畫面吧:

[youtube=”https://youtu.be/rs5_5-LH2JA”]

Arduino 101 是 Arduino.cc (注意不是 .org) 與 Intel 合作的最新開發板,在美國以外的區域稱為 Genuino 101

延伸閱讀:

[Make雜誌國際中文版]Arduino 101 介紹

Arduino.cc 論壇的 callbackLED 教學(手機端並非使用 App Inventor )

Arduino 101 購買連結

Arduino 101 開箱文

Arduino 101 BLE 第一課 LED閃爍

Arduino 101 BLE 第二課 LED呼吸燈(PWM)

Arduino 101 BLE 第三課 讀取類比腳位A0

Arduino 101 BLE 第四課 控制機器手臂

Continue reading

App Inventor 新元件發布

發布了,MIT終於在 nb149 release中把我們做的 Lego EV3機器人元件列為正式元件。為了這件事,我三月還去了一趟 MIT,成為了所謂的 Master Trainer

這次發布的內容有三項重點:

  1. Extension:允許使用者自行開發 .aix 擴充檔來加裝功能,但目前僅限於非可視元件(non visible component)。如何使用 .aix 請點我
  2. BLE (Bluetooth Low Energy) 元件:MIT 會使用 Arduino 101 與 Grove Arduino Sensor Kit 做為物聯網基礎教學套件包。目前我們已經寫好的教學文:
    1. [App Inventor 物聯網應用-藍牙4.0 BLE] Lesson 1 – LED 閃爍

    2. [App Inventor 物聯網應用-藍牙4.0 BLE] Lesson 2 – LED PWM呼吸燈

    3. [App Inventor 物聯網應用-藍牙4.0 BLE] Lesson 3 – 讀取Arduino 101類比腳位狀態

    4. [App Inventor 物聯網應用-藍牙4.0 BLE] Lesson 4 – 機器手臂

  3. 樂高EV3機器人元件,這就不用多說啦。當年也是看到 App Inventor 可以這麼輕鬆就控制NXT,才一頭栽進去的。很高興MIT能採用我們所開發的元件呢
    1. 樂高EV3機器人元件說明 
    2. 樂高EV3機器人按鈕控制

以上的 2. 3. 項都會是CAVEDU 在未來與 MIT 的重點合作項目。這次算是非常重大的更新,期待大家一起來玩 App Inventor 喔!

未命名

[App Inventor 物聯網應用-藍牙4.0 BLE] Lesson 3 – 讀取Arduino 101類比腳位狀態

App Inventor BLE 元件搭配 Arduino 101 的教學文來了,本系列專文是介紹如何使用 App Inventor 的 BLE (Bluetooth Low Energy) 元件搭配 Arduino 101 開發板的各種互動專題。請用 http://ble-test.appinventor.mit.edu 這個測試用伺服器來測試,實際app執行畫面如下圖,先來看執行畫面吧:

[youtube=”https://youtu.be/uuapPq8GZYQ”]

Arduino 101 是 Arduino.cc (注意不是 .org) 與 Intel 合作的最新開發板,在美國以外的區域稱為 Genuino 101

延伸閱讀:

[Make雜誌國際中文版]Arduino 101 介紹

Arduino.cc 論壇的 callbackLED 教學(手機端並非使用 App Inventor )

Arduino 101 購買連結

Arduino 101 開箱文

Arduino 101 BLE 第一課 LED閃爍

Arduino 101 BLE 第二課 LED呼吸燈(PWM)

Arduino 101 BLE 第四課 控制機器手臂

 

Continue reading