• 沒有找到結果。

1050325 Arduino教師研習(大安高工林家德老師)

N/A
N/A
Protected

Academic year: 2021

Share "1050325 Arduino教師研習(大安高工林家德老師)"

Copied!
137
0
0

加載中.... (立即查看全文)

全文

(1)

AMA中級應用認證教師監評研習 1

AMA中級先進微控制器

應用認證Arduino教師研習

主講者:大安高工 林家德老師 105/3/25

(2)

AMA中級應用認證教師監評研習 2

講師個人學經歷介紹

• 姓名:林家德 • 學歷:師大工業教育研究所 • 經歷: – 81~ 大安高工電子科教師 – 92~94 大安高工系統管理教師 • 編著: – Arduino微電腦控制實習 – InnoBasic單板電腦專題製作 – 專題理論與呈現技巧 – 8051原理與實習 • 其它: – 建置Topic專題網,提供專題分享平臺 – 指導學生參加人工智慧鼠競賽線迷宮鼠 獲1,3名。TDK避障競速1,3名 Email: jiader168@gmail.com

(3)

AMA中級應用認證教師監評研習 3

課程大綱

105年3月25日 時間 課程內容 基礎 08:20~10:30 Arduino簡介/優勢分析 Arduino教學資源/程式語法 LED實驗:呼吸燈 實務 10:40~12:00 開關實驗+七段顯示器+類比 蜂鳴器實驗:音樂盒 家用紅外線遙控器簡介 遙控器+直流馬達控制

(4)

AMA中級應用認證教師監評研習 4

(5)

AMA中級應用認證教師監評研習 5

什麼是MCU?

• MCU (Micro-Controller Unit;MCU)

– 就是微控制器,為受控設備的核心元件。 – 將CPU、RAM、ROM、I/O 或A/D等周邊整 合在一起 – 簡單來說,MCU已經是一個微型的電腦, 麻雀雖小但五臟俱全,因此能夠搭配在任何 電子產品上。 – 依照規格的不同,具有不同等級的記憶與運 算功能。

(6)

AMA中級應用認證教師監評研習 6

MCU的分類

• MCU分類 – 根據處理能力的不同,MCU又可以分為 8位元、16位元與32位元。 • 微控制器無所不在 – 手機、遊戲機、家電(冰箱、冷氣、洗衣機、 攝錄相機等)、汽車行車電腦、交通號誌控 制

(7)

AMA中級應用認證教師監評研習 7

(8)

AMA中級應用認證教師監評研習 8

(9)

AMA中級應用認證教師監評研習 9

淺談Arduino

• Arduino是一塊基於開放原始碼所發展 出來的I/O微電腦控制板,使用類似C語 言的Arduino IDE整合開發環境,讓使 用者可以快速使用Arduino語言與Flash、 Processing或scratch...等軟體,作出互動 作品。

(10)

AMA中級應用認證教師監評研習 10

歷史

• Arduino是在2005年1月由義大利米蘭互 動設計學院的教授David Cuartielles 和 Massimo Banzi 所設計出來 • 原始構想是希望讓非電子背景的設計師 及藝術家們,亦可透過Arduino快速學 習電子和感測器的基本知識,縮短設計、 製作原型作品的時間,使虛擬與現實的 互動更加容易,且便宜好用。

(11)

優勢

• 價美物廉 • 跨平台(Windows,Macintosh和Linux) • 簡單、清晰的編程環境 • 開放源碼和可擴展的軟體 • 開放源碼和可擴展的硬體 • 具備標準的串列傳輸介面

(12)

AMA中級應用認證教師監評研習 12

優勢

•物理運算平臺,處理方便 •廣大社群,資源豐富

(13)

物理運算平臺

• Arduino內建ADC以及PWM方式輸出的 DAC,是個親和性很高的物理訊號處理 平臺。 • 透過感測器(sensor)可取得周遭生活中 的物理量,包含溫濕度、亮度等,經過C 語言處理後,以聲、光呈現,非常適合 藝術家、設計師、業餘愛好者。

(14)

AMA中級應用認證教師監評研習 14

(15)

15

自造者運動

改變人類未來生活的趨勢潮 傑瑞米.里夫金 (Jeremy Rifkin) http://www.books.com.tw/products/0010583876

(16)

創客經濟當道

• 創客經濟 • 代工已死 自製當道 16 「自已製造」時代來臨! Maker創客經濟發燒 https://www.youtube.com/watch?v=x_KUpB0v7IU Maker《自造世代》電影預告片 - 中文字幕 https://www.youtube.com/watch?v=VREirE8afgg

(17)

創意從小做起

• 【親子天下】「創客精神」動手做,開啟真學習

https://www.youtube.com/watch?v=heItyp0VOzU

(18)
(19)
(20)
(21)

Arduino 32位元板

• 繼Due板後,Arduino再度發表基於32位 元的開發板,命名為Arduino Zero。 – 主打穿戴式與物聯網應用。 – 配備了Atmel的嵌入式除錯器(EDBG) – 內建Atmel的MCU • Due基於ARM Cortex M3(84MHz) • Zero基於較低階的 Cortex M0+(48MHz)

(22)

EDBG

基於

Cortex M0+ 的MCU

(23)

物聯網方案

(IOT)

電子科 跨領域課程 23

Intel Edison

(24)
(25)

擴展板(shield)

• Arduino標準版I/O及電源均可透過杜邦母 座與外部電路連接,除了可使用跳線連 接至應用電路外,更可採疊接的方式, 擴展出不同的功能 • 擴展板(shield)有很多,例如馬達控制 擴展板、乙太網路擴展板、RFID擴展板 、Wifi擴展板、GPRS擴展板、藍牙擴展 板、GPS擴展板、按鍵搖桿擴展板等。

(26)

擴展板(shield)

RJ45 接頭 UNO板 乙太網路擴 展板

(27)

Arduino系統架構

(28)

Arduino系統架構

• Arduino採用Atmel公司的AVR(Alf and Vegard’s RISC processor)系列晶片

• AVR主要應用在Atmel公司8位元的AT90 、ATmega、ATtiny系列的單晶微控制器 上,後期AVR還有應用在8/16位元的

(29)

通用串列傳輸介面

• ATmega328提供三種通用的串列傳輸介面

– USART介面 (universal synchronous asynchronous receiver/transmitter)

– SPI介面 (serial peripheral interface bus)

– TWI介面:即IIC介面(inter-integrated circuit; 內部整合電路)

(30)

開機載入程式bootloader

• Arduino之所以平易近人,主因還有 bootloader(開機載入程式)。 • bootloader屬於韌體(firmware),是一 支前置在程式記憶體起動區中的程式, 透過bootloader便可以直接把待燒錄的程 式上傳到晶片上,不需要額外的AVR ISP 燒錄裝置。

(31)

Bootloader的缺點

• 會佔用部分flash,UNO板占約0.5KB, Leonardo板占約4 KB (ATmega328的flash為32KB) • 因啟動時需先等幾秒判斷是否要燒錄的 動作,故正常應用時也無法一開機就動 作,此問題在UNO板R3已改善,但 Leonardo板仍可看到此問題。

(32)
(33)
(34)

AMA中級應用認證教師監評研習 34

(35)

整合開發環境Arduino IDE

• Arduino IDE軟體(integrated development environment,具有在一個程式環境下即 可完成所有系統開發,而不需切換至其 它程式環境的優點,非常方便。

(36)

認識USB傳輸線

• 電腦端接頭:Type A USB • UNO板:Type B USB

• Nano板與OZONE板:Mini-B USB • Leonardo板:Micro-B USB

(37)

安裝IDE軟體

• 下載:Arduino官方網站 http://arduino.cc • 解壓縮(C:\arduino-1.0.6)目前最新版為1.6.8 • 資料夾 – drivers:Arduino開發版第一次插上電腦時,需要的 USB驅動程式 – hardware:此資料夾存放bootloader的原始檔,也可 存放第三方廠商的硬體描述檔。 – libraries:包含了基本的函式庫,也可包含網路上其 它玩家或第三方廠商的函式庫 • 執行arduino.exe

(38)
(39)

第一次接上Arduino裝置時的硬體

安裝精靈

(40)

查看裝置管理員中的連接埠狀態

• 找到硬體後,可透過電腦管理→裝置管 理員查看USB連接後的使用COM埠狀態

(41)
(42)
(43)

編寫程式 燒錄程式 編譯及 建立燒錄檔 程式除錯 有錯誤 正確 正確 有錯誤 編輯原始檔案 *.ino 將原始檔→機器碼→ 燒錄檔 *.hex 將燒錄檔上傳至 Arduino 利用Serial Monitor 偵錯,或從實作中驗 證 結束

(44)
(45)

Arduino程式架構

• Arduino採用類似Java、C語言的語法,也參考 了Processing(是一個可對影像、動畫、聲音進 行程式編輯的開放原始碼開發環境)的架構 • 因此不像標準的C語言一樣程式是從main()開始 執行,而是由設置區setup()與重複執行區loop() 組成的結構,查看Arduino底層的程式可了解它 們之間的關係。

(46)

Arduino Core

int main(void) // Arduino內部的主程式 { init(); setup(); // 執行IDE中的設置區程式 for (;;) // 永久迴圈 loop(); // 執行IDE中的重複執行區程式 return 0; }

(47)

Arduino程式架構

• Arduino程式可分為標頭檔區、宣告區、 設置區setup()、重複執行區loop()、副程 式與函數區。 • 主程式區、副程式與函數區內又可分為 宣告區、程式區。 • 所有程式區塊皆可省略,但setup()與 loop()不可少 。

(48)
(49)

Arduino的程式語言

(50)

特殊用途保留字

• HIGH、LOW:表示數位腳的高準位、低 準位 • INPUT、OUTPUT、INPUT_PULLUP: 指定Arduino數位腳位的電氣特性 • true、false:用來指示一個條件或表示式 為真或假。 • 整數常數:不同進制表示的特殊前導關 鍵字

(51)

特殊用途保留字

• 整數常數 – 十進制:直接以數字表示者,皆為十進制 – 二進制:以0b或B開頭者均代表二進制 – 八進制:以0(數字0)開頭者代表八進制 – 十六進制:以0x開頭者代表十六進制 例如a=0x4A=4×161+10=74 =B1001010=0112

(52)
(53)

AMA中級應用認證教師監評研習 53

(54)

Arduino學習工具

• Arduino圖控程式

– ArduBlock

– S4A(Scratch for Arduino) – S2A+Transformer

– mBlock

• Arduino線上電路與程式模擬軟體123D

(55)
(56)

圖控程式 S4A

• Scratch是圖形化程式的優質作品,適合當做學 習程式設計、訓練邏輯概念的入門軟體。 • Scratch主要可以設計動畫、遊戲及音樂。 • 開放源碼的兩者Scracth與Arduino,一軟一硬的 結合剛剛好,很容易做出會動會叫的互動故事 、動畫、遊戲和藝術等,蹦出創意的火花,這 就是S4A 。

(57)
(58)

Arduino線上電路與程式模擬軟體

• 123D Circuits是一個免費的程式模擬軟體 ,除了可使用麵包板佈線、畫電路、程 式模擬,還可進行PCB佈線,為一款可 線上編碼協作的電子設計工具。 • 網址為http://123d.circuits.io/

(59)
(60)
(61)

方塊圖

Arduino UNO板 或 Leonardo板 LED USB 介面 D10

(62)
(63)
(64)
(65)
(66)
(67)
(68)

選擇板子及串列埠

• 選擇微控制器板 – 請點選Tools→Board→Arduino Leonardo • 選擇微控制器板使用的串列傳輸埠 – 每臺電腦配置給Arduino Uno板的埠號不 一樣相同,請依實際情況選取

(69)

上載燒錄

(70)

透過電腦端的Serial Monitor控

制閃爍時間

(71)

Serial Monitor串列傳輸溝通介面

• 除錯 – 可由Arduino微控制板傳送運算值或感測值 至電腦顯示,方便程式的除錯 – 使用的指令為Serial.print(val, format)、 Serial.println(val, format) – format為指定數值型態的格式,可為DEC、 BIN、HEX

(72)

Serial Monitor串列傳輸溝通介面

• 傳送控制命令 – Serial.available():取得串列埠可用的字元數 ,我們可透斷此指令的字數判斷電腦端是否 有傳送字元過來。 – Serial.read():從串列埠中讀取電腦端傳送過 來的一個字元。 – Serial.parseInt():從串列埠緩衝區中讀取下 一個有效的整數資料。

(73)

串列傳輸

• 串列傳輸的速度通常是以每秒傳輸幾個 bit的方式來衡量,一般稱為鮑率(baud rate),單位為bps,目前常使用的鮑率 有4800、9600、19200、38400、57600等

(74)

chap5_2_set_delay_time.ino

int led = 10; // 宣告延遲時間的變數名稱,預設為 500 ms int delaytime=500; // 此 setup 程序只有在微控制器按 reset 時執行一次 void setup() { // 初始化指定的數位腳位為輸出模式 pinMode(led, OUTPUT); // 設定串列埠的鮑率為 9600 bps Serial.begin(9600); } void loop() { // 判斷串列埠緩衝區有無資料 if (Serial.available()) { delaytime=Serial.parseInt(); // 從串列埠緩衝區中讀取整數資料

Serial.print(delaytime); // 在 Serial Monitor 中顯示訊息

Serial.println(" ms"); }

digitalWrite(led, HIGH); // LED滅 (led輸出高準位)

delay(delaytime); // 等待一段時間

digitalWrite(led, LOW); // LED亮 (led輸出低準位)

delay(delaytime); // 等待一段時間

(75)

延伸思考:LED亮度控制

(76)
(77)

呼吸燈流程

1. 初始值亮度brightness=0、增減量fadeAmout=5 2. 利用analogWrite(led, brightness)指令,送出 PWM控制LED亮度 3. 計算brightness=brightness+fadeAmout,亦即 fadeAmout為+5或-5時,可決定brightness是遞 增或遞減。 4. 判斷brightness是否到達最大值或最小值,若 是,則fadeAmout=-fadeAmout。 5. 延遲一小段時間 6. 接著周而復始進行步驟2到5即可。

(78)

呼吸燈程式

• File→Examples→01.Basics→Fade • 開啟後,請將led改為10(接D10接腳) • 將程式燒錄後,我們可看到LED慢慢變 亮,然後慢慢變暗,呈現蠻有趣之呼吸 燈的燈光變化。

(79)

AMA中級應用認證教師監評研習 79

講題第一部分告一段落! 請先休息一下!

(80)

輸入控制~開關實驗

LED 按鈕開關 (Push Button) Arduino UNO板 或 Leonardo板 D10 D2 USB 介面

(81)
(82)
(83)
(84)

程式

練習底下三個程式 1. 基本 File→Examples →02.Digital→Button。 2. 解決彈跳問題 1) 利用delay指令:第6章→chap6_3.ino 2) 使用millis()函式解決彈跳問題 File→Examples→02.Digital→Debounce

(85)
(86)

七段顯示器

USB 介面 a b c d e f g D11~D5 Arduino UNO板 或 Leonardo板 七段顯示器

(87)
(88)
(89)
(90)
(91)

程式

• 檔名:chap8_1.inb int seg7[] = {11, 10, 9, 8, 7, 6, 5}; // 共陰七段顯示器編碼表 char TAB[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x 27,0x7F,0x67 };

(92)

輸出一byte的副程式想法

• 例:字碼

• 94=B1011110 =0x5E

(93)
(94)
(95)
(96)

程式

• chap8_5_2_4digit.ino – 固定顯示2013的簡易掃描程式 • chap8_5_23.ino – 可透過Serial Monitor下達顯示延遲時間。 • chap8_5_24.ino – 可透過Serial Monitor下達顯示數字。

(97)

類比電壓量測:可變電阻

Arduino UNO板 或 Leonardo板 可變電阻 分壓電路 USB 介面 A0

(98)
(99)

配線圖(AMA實驗板)

(100)
(101)

程式

1. 開啟Arduino IDE的範例 File→01.Basics→ReadAnalogVoltage 2. 從A0讀入可變電阻的分壓值,然後經 由 map 的映射函式,將0~1023的類比 值映射到0~9,方便顯示在七段顯示器 上。 範例:第10章→Analog2seg7

(102)

蜂鳴器

Arduino UNO板 或 Leonardo板 D10 USB 介面 蜂鳴器 Buzzer

(103)
(104)

發音方式

• 低音La(440Hz)的聲音頻率示意圖

(105)

音調產生指令 tone

• tone(pin, frequency, duration)

– 此指令可在指定的pin腳輸出一個工作週期 50%,頻率為frequency Hz的方波,持續輸出 duration(單位ms)後自動關閉 – tone指令背景動作,執行tone指令後主控權 會立即交回主程式,並非等待duration後才 交回) – 參數duration可省略,代表會持續發聲,直 到執行noTone(pin)指令時關閉。

(106)
(107)
(108)

程式

• 功能:在Serial Monitor偵錯視窗中,逐 字讀入資料並發聲的控制。 – 文字列的1~7代表要讓蜂鳴器發出第4八度 音的Do~Si – 字母C、D、E、F、G、A、B代表要發出第5 八度音的Do~Si – 每個單字音的音長固定為200ms

(109)

程式

• chap9_1.ino:此程式包含二個檔案 – 音調標頭檔:pitches.h – 主程式chap9_1.ino • 字元資料型態的運算 – 判斷字元是否介於'1'~'7'之間 if ((chr-'1')>=0 && (chr-'7')<=0)

(110)
(111)

上載燒錄測試

• 單音測試

• 連續音調測試

(112)
(113)

紅外線接收模組

• 1. 特點 – 體積小 – 內建專用濾波IC – 半角寬長接收距離 – 高抗光環境干擾 – 高保護電磁干擾能力 – 電源電壓範圍:2.7V~5.5V • 2. 應用範圍 – AV儀器(音響,電視機,錄像機,光盤) – 家用電器(空調,電風扇,光。) – 無線遙控裝置 VCC Output GND

(114)

紅外線接收模組

• 紅外線接收模組的 output 在沒有收到紅 外線信號時,其輸出為 high,當收到紅 外線信號輸出為 low。 紅外線接 收二極體

(115)
(116)

紅外線訊號分析

• 每一家遙控器的訊號格式大都類似,一 般每一按鍵的編碼為4bytes~5bytes,其 中最前面2碼或3碼為廠商固定代碼,最 後2碼為按鍵值代碼

(117)
(118)

IRRemote 函式庫

• 到 Ken Shirriff 的部落格或到這裏下載

IRRemote 函式庫 。

(119)

練習一:讀取練習

• 請開啟

File→Examples→ IRremote →IRrelay

(120)

實驗結果

• 以右圖的遙控器為例: 按了1後的編碼結果

• Decoded NEC: FF30CF (32 bits)

• Raw (68): 29090 8950 -4450 600 -600 550 -550 600 -500 550 -600 550 -550 600 500 550 600 550 550 600 1600 600 -1650 550 -1700 600 -1600 600 --1650 550 -1700 600 -1600 600 -1650 550 -550 600 550 600 1600 600 1650 550 550 600 550 600 500 550 550 600 1650 550 1700 600 500 550 550 600 1650 550 -1700 600 -1600 600 -1650 550

(121)

• 29090 • 8950 -4450 600 前導碼 • -500 550 -550 600 -550 600 -500 550 • -550 600 -550 600 -500 550 -550 600 • -1650 550 -1700 600 -1600 650 -1600 550 • -1700 600 -1600 600 -1650 500 -1750 600 • -500 500 -600 600 -1650 500 -1750 600 • -500 500 -600 600 -550 600 -500 500 • -1750 600 -1600 600 -550 600 -500 500 • -1750 600 -1600 600 -1650 500 -1750 600 • 0000 0 • 0000 0 • 1111 F • 1111 F • 0011 3 • 0000 0 • 1100 C • 1111 F

編碼解析

(122)

其它遙控器的編碼

(123)
(124)

相關知識:直流馬達

• 直流馬達方向控制 – 一般直流馬達有兩個線端,紅色為正端,黑 色為負端,只要在這兩線端輸入額定的直流 電壓VIN,便可使馬達轉動 – 若輸入電壓極性相反,則可使馬達反轉 – 若需兼具馬達正/反轉的控制能力,則需使 用由電晶體構成的H橋電路(H-bridge)來 達成,而VIN的電壓大小決定馬達的轉動速 度。

(125)

H橋電路動作原理

(126)

專用IC介紹

• 一般H橋都會採用電晶體或MOSFET作為 開關元件,由於控制四個開關元件需要 保護電路及速度控制的電壓調節(穩壓 )電路,故為了方便使用,大都使用專 用IC來完成,例如實驗板上使用的 HT6751 。

(127)

HT6751

• HT6751為盛群半導體所開發的晶片,具 有1.5顆馬達的控制能力,HT6751的外觀 為8pins的SOP包裝。

(128)
(129)
(130)
(131)

功能

• 能利用紅外線家用遙控器 控制風扇馬達的啟動、停 止。啟動後,可以+、-兩 個按鈕控制速度。 加速 0xFFA857 減速 0xFFE01F 停止 0xFF6897 啟動 0xFF30CF 正/反轉 0xFF906F

(132)
(133)

程式

(134)

程式

(135)
(136)
(137)

AMA中級應用認證教師監評研習 137

參考文獻

相關文件

分 享:臺南市裕文國小 陳孟訓老師 簡報設計:嘉義縣興中國小 侯雪卿老師 模組設計:高雄市大仁國中

戶外考察活動 是歷史 科教師於課堂教學 以 外評估學生的常見方法。教師 在外 出之前應為學 生提供 明確的學習目標和 評 估準則。教師可以從以

學校有策略及計劃地推動和發展教師團隊,建立學習型組織,為教 師營造積極學習的文化。學校成立了

香港道教聯合會圓玄學院第三中學 馬碧雯副校長 17-10-2019... 支援教師教授初中學生學

設計者 姓名:鄧雅莉老師 學校:粉嶺禮賢會中學 學科/學習領域 中國歷史A.

本計劃旨在根據修訂初中中國歷史課程的調適 課程大綱,發展適合非華語生使用的學與教資

實習老師 教 甄試教者 實 習老師 輔導 老師 正式教 師 教授,研 究員 同事..

(authentic)與互動式學習情境 教師為主體,獎勵服從一致性 師生平等對待,學習者為主體 教師為知識傳遞者