MicroPython on ESP32簡介
資料引用:張文宏老師
資料引用:https://www.youtube.com/watch?v=l9OhMBk_lUE&t=41s
小結
資料引用:陳豐生業師(豐爸)
資料引用:MicroPython for kids
實作先備知識(國中九年級理化電學及資訊科技數位化原理.基礎程式設計Scratch...)
1.電路原理(基本迴路)
2.開發板硬體三核心
S = signal = 訊號 V = Vin = 輸入電壓(USB供電時為5V或3.3V) G = GND = 接地 |
口訣:人要腳踩實地(G)先吃飯(V),才能接受指令做事(S)
3.數位/類比訊號(Digital/Analog)
Wokwi模擬器實作
實作1: -ESP32內建 LED Blink(閃爍)
原理篇
模擬器實作篇
程式執行成果
實作步驟
1.硬體接線
REPL(Read–Eval–Print- Loop)-交互式直譯器環境
每一種腳本語言都擁有自己的直譯器
1.寫一句程式碼如print("Hello, ESP32!")(read讀入)
2.按下模擬器後執行一句(evaluate執行)
3.印出輸出"Hello ESP32!"(print印出)
4.繼續循環以上步驟(loop循環)
每次新的REPL循環開始的時候,總會有>>> 在一行的最開始,我們把>>>稱作命令提示符號
文字型程式設計的方法
1.嘗試一點點.動手打出來.一行一行打.熟能生巧(刷題)
2.程式出錯(bug)怎麼辦?專家也是由失敗中不斷地修正
3.將大問題拆解成小問題.觀察錯誤在哪裡.縮小錯誤的範圍
4.培養失敗及挫折力(容錯力).細心耐心之培養
2.撰寫程式碼
程式碼:下載(程式補填法)
平版同學
程式流程圖講解:
程式碼講解:
資料引用:https://www.geniopy.com.tw/index.html
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,內建藍色LED將重複一閃一滅
存檔.下載及分享
思考問題:
如何控制LED閃滅的時間?
程式碼可以優化嗎?
專安分享I
實作2:外接 LED+電阻 Blink
程式執行成果
教學影片
1.硬體接線
平板手機同學(無法畫圖)
2.撰寫程式碼
程式碼:下載(程式除錯法+填補法)
提示:紅色框處之程式碼(修改及增加)
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,外接LED將重複一閃一滅
思考問題1:如何控制LED閃滅的時間?
思考問題2:
(1)LED的顏色可以改變嗎?
(2)電阻的值可以改變嗎?
(3)導線的顏色可以改變嗎?
(4)電阻的方向可以改變嗎?
A.選取電阻物件按R鍵
B.點導線變虛線刪除
教學影片
思考問題:
上述電路圖一定要這要接嗎?
實作3: 紅綠燈
程式執行成果
實作步驟
1.硬體接線
(若教學時間不足將圖先畫完然後分享給學生.運算思維(程式設計.才是我們資訊科技教學的核心.而非硬體接線)
平板同學
2.撰寫程式
程式碼-下載(非完整.需自行增加程式碼)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試紅綠燈LED
實作4:霹靂燈
程式執行結果
1.硬體接線
專案分享(半成品)
2.修改程式碼
3.測試
4.自行創作
思考問題:
1.這樣的程式碼寫法好嗎?有無改進的空間(優化)?
如果led要這樣顯示則要如何修改程式碼?
2.上述的程式控制有一定的規律性無法任意控制(只能由最左或最右邊控制)?
Arduino sequential LED project | led chaser with 7 effects
專案1
https://wokwi.com/projects/279897423635022344
專案2
https://wokwi.com/projects/279890929738842636
專案3
https://wokwi.com/projects/332411280056910420
評量:心型燈
程式執行結果
電路圖忽略限流電阻
1.硬體接線
2.撰寫程式
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,12個LED構成的心型可否符合題目的要求
程式碼REF
專案分享2
實作5-Led+外接電阻+開關(Button)+上升電阻(Pull_up)
程式執行結果
原理篇
資料引用:https://www.youtube.com/watch?v=I4Rbh-7RgYs
實作篇
1.硬體接線
2.撰寫程式
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,按下開關LED是否會亮?
思考問題:
若將上升電阻刪除會如何?
實作6-可變電阻(VR)+PWM應用
可變電阻(電位器)
PWM(脈衝寬度調變)
程式執行結果
實作篇
1.硬體接線
2.撰寫程式
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,改變電阻值大小看LED是否會漸亮?
其他PWM的應用-蜂鳴器Buzzer
專案分享1
實作7-RGB呼吸燈
程式執行成果
實作步驟
1.硬體接線(RGB共陽極.COM接點接VCC)
2.撰寫程式
專案分享(修改程式碼方法.調整frq.duty)
ESP32的duty取值範圍為0 <= duty <= 1023
ESP32的PWM頻率範圍為0 < freq <= 78125
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試RGB LED
實作8: NeoPixel(霓虹像素)(WS2812)
RGB燈條的應用
原理篇
實作篇
1.硬體接線
2.撰寫程式
16顆WS2812循環亮
程式碼:下載
修改程式中RGB顏色代碼
3.按一下模擬器畫面的三角形(開始模擬)鈕,NeoPixel模組的RGB LED將輪流發光
實作9:DTH11(22)溫溼度感測器
通信——物聯網之魂
(1)串列通訊匯流排(Universal Asynchronous Receiver/Transmitter)
實作步驟
1.硬體接線
2.撰寫程式
程式碼:下載(程式仿作或程式碼識讀)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試是否有顯示出溫溼度
(2)I²C(積體電路之間.積體匯流排電路 Inter-Integrated Circuit)
I²C通訊只需要2條雙向線:
SDA(serial data:串列資料線)
SCL(serial clock:串列時脈線)
實作10:OLED液晶模組 0.96吋 白色 12864點陣 SSD1306驅動 3.3V-5V 4線I2C介面規格書
教學影片
1.硬體接線
2.程式碼
3.修改程式碼修文字內容(中文無法顯示)測試
實作11:OLED SSD1306+DTH11(22)
實作12:OLED溫溼度蒐集及警報系統
進階-物聯網實作
1.程式庫安裝與管理
2.物聯網專案分享
Temperature and Humidity using Franzininho, DHT22 and SSD1306
參考資料
MicroPython on ESP32
https://docs.micropython.org/en/latest/
https://hackmd.io/@Zoyam/ByeHHYDKv
https://sites.google.com/a/nsysu.kksh.kh.edu.tw/tg02-1/nodemcu-32-esp32-iot-inquiry-teaching
http://www.1zlab.com/wiki/micropython-esp32/micropython-introduction/
https://lastminuteengineers.com/esp32-arduino-ide-tutorial/
https://docs.singtown.com/micropython/zh/latest/esp32/esp32/tutorial/index.html
https://wolles-elektronikkiste.de/en/programming-the-esp32-with-micropython
https://sites.google.com/site/wenyuwebbit/13-micropython%E5%AF%AB%E4%BD%9C
http://yhhuang1966.blogspot.com/2018/09/esp32-bpibit.html
https://www.programcreek.com/python/example/101394/machine.RTC
https://nkust.gitbook.io/micro-bit/shi-shi-yong-micropython
https://atceiling.blogspot.com/
https://github.com/jumbokh/micropython_class/tree/master/ESP32/Lab/Lab