嵌入式系統(Embeded System)
圖片引用:梁文耀博士嵌入式智慧應用開源軟硬整合新趨勢
資料引用https://www.eettaiwan.com/20200109nt01-how-embedded-development-evolved-past-two-decades/
1.開放硬體及開源系統的價值
開放硬體的價值不是在學習哪一片電路板(不需拘泥在各種開發版硬體)而是學習自由軟體開源系統(Linux base)及參與社群
學習資源
https://www.youtube.com/watch?v=B4T8hzO0IYc&list=PLs9OF90VHRwFr6tp28re1Qn0LsnqiFx5S&index=2
2.MPU及MCU
3.IOT學習脈絡地圖及資源
資料引用:MicroPython 陳會安老師
趙英傑老師
4.電路原理(基本迴路)
5.開發板硬體三核心
S = signal = 訊號 V = Vin = 輸入電壓(USB供電時為5V或3.3V) G = GND = 接地 |
口訣:人要腳踩實地(G)先吃飯(V),才能接受指令做事(S)
6.數位/類比訊號(Digital/Analog)
7.模擬器(simulator)
其實模擬器的定義十分廣泛,只要以不同於被模擬端的設備,提供擬真的環境,讓使用者可以去模擬特定的需求,那就可以算是模擬器。
舉個例子來說,航空公司會在訓練機師時,使用專業的飛行模擬器,讓訓練中的機師在絕對安全的情況下模擬駕駛,而不用承擔實體飛機墜落的風險。
8.Arduino模擬器(simulator)
優點:工程模擬器能幫助工程師在實驗階段驗證不同的設計和演算法
缺點:使用模擬器忽略了物理計算的關鍵點,那就是與物理世界的聯繫
資料引用https://all3dp.com/2/best-arduino-simulators-online-offline/
活動設計:體驗線上Arduino模擬器-WoKwi
1.簡介
Wokwi 是一個線上電子模擬器。您可以使用它來模擬 Arduino、ESP32 和許多其他流行的開發板和感測器器。
2.範例
以下是您可以使用 Wokwi 製作的一些簡單示例:
3.特色
Why Wokwi is the Best Arduino Simulator in 2021?
https://hackaday.io/project/175329-why-wokwi-is-the-best-arduino-simulator-in-2021/details
4.參考網站
初探開發版(Arduino.ATtiny85.ESP32)概念
1.硬體
2.開發程式軟體
開發Arduin及ESP32 程式,有幾種語言選擇:
(1)C/C++
最正統資源最豐富,有數不盡的程式庫與範例。用 C/C++ 開發還可細分為使用 Arduino Framework 或樂鑫自己研發的 ESP-IDF(Espressif IoT Development Framework))。 Arduino 簡單易入門,資源豐富,但如果你要玩真的,不該被 setup()、loop() 框住,Task 導向才是王道,IDF 跑 freeRTOS 更符合嵌入系統的標準。IDF 相對複雜許多,能做到一些 Arduino 做不到的事,例如:偵測 WiFi 訊號。 但 Arduino 仍可整合互通,例如在 IDF 引用 Arduino Library、在 Arduino 呼叫 IDF API。
(2)Lua
Lua 是一種腳本語言,把 ESP32 韌體換成內含 Lua 直譯器的版本,便可在 ESP32 上跑 Lua 程式,跟以前可以用 JavaScript 寫程式的 Espruino概念相近。
(3)C#
微軟的物聯網解決方案包含 nanoFramework,把 .NET CLR 精簡到 32K RAM、256K Flash 就能跑,故能支援一堆低階開發板,包含 ESP32! 但建置 nanoCLR 及燒錄的步驟頗複雜,另外一點是雖然 nanoFramework 可整合原生 C/C++ 程式庫,要整合其他硬體少不了將 Arduino 程式庫翻成 nanoFramework 相容的程序
(4)MicroPython
精簡版 Python3,只需 256K 儲存空間跟 16 KB RAM 的硬體上執行
資料引用:https://blog.darkthread.net/blog/esp32-for-iot/
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html
(5)積木式程式語言
3.Arduino與ESP32差異性
4.開發版的選擇-專案(你想做甚麼)
初探開發版(Arduino.ATtiny85.ESP32)實作
一.Arduino
活動設計: Arduino Simulator - LED Blink(閃爍)
程式執行成果
教學影片
教學網頁
實作步驟
1.硬體接線
2.撰寫Led Arduino程式
程式碼:下載
3.按一下模擬器畫面的三角形(開始模擬)鈕,紅色LED將重複一閃一滅
4.思考問題(Wokwi教學文件)
進階思考問題:如何完成以下的作品
程式執行成果1-跑馬燈1(霹靂燈2)(教學時間不足可自行減少LED數)
提示:依圖接線.然後寫程式參考程式碼(非完整.需自行增加程式碼).測試之
程式優化(程式碼簡潔及執行效率高)
資料引用:
https://wokwi.com/arduino/projects/279897423635022344
https://www.instructables.com/LED-Chaser-With-7-Patterns-wokwi-Arduino/
程式執行成果2-跑馬燈2(霹靂燈2)
資料引用:
https://wokwi.com/arduino/projects/279890929738842636
其他範例
二.ATtiny85
範例
https://wokwi.com/arduino/projects/283019827166052872
三.ESP32
使用(C/C++) |
Wokwi_ESP32簡中版
https://wokwi.com/projects/new/esp32?template=esp32&lang=zh
程式執行成果
教學影片
教學網頁
https://create.arduino.cc/projecthub/Hack-star-Arduino/how-to-simulate-esp32-projects-online-ad21d9
實作步驟
1.硬體接線
2.撰寫Led Arduino程式
程式碼:下載
3.按一下模擬器畫面的三角形(開始模擬)鈕,藍色LED將重複一閃一滅
進階思考問題:如何完成以下的作品
活動設計: ESP32 Simulator ( Arduino Core) -紅綠燈
程式執行成果
實作步驟
1.硬體接線
2.撰寫Led Arduino程式
程式碼:下載(非完整.需自行增加程式碼)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試紅綠燈LED
Ref:https://wokwi.com/arduino/projects/324205863907623506
體驗MicroPython |
活動設計: ESP32 Simulator ( MicroPython Core) - ESP32內建 LED Blink
範例
https://wokwi.com/arduino/projects/305452627045384768
資料引用:康軒九下生科CH2
活動設計: ATtiny85 Simulator -RGB閃滅
程式執行成果
實作步驟
1.硬體接線(RGB共陽極)
2.撰寫程式
程式碼:下載
資料引用:康軒九下生科CH2
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試
資料引用:康軒九下生科CH2
https://wokwi.com/arduino/projects/325018289191256660
活動設計: ATtiny85 Simulator -RGB呼吸燈(單顆)
程式執行成果
脈衝寬度變調(PWM:Pulse Width Modulation)
程式碼:下載
進階挑戰
程式執行成果
https://wokwi.com/arduino/projects/325173779693044307
一. Arduino
活動設計: ESP32 Simulator (Arduino Core)-WS2812
Wokwi_ESP32簡中版
https://wokwi.com/projects/new/esp32?template=esp32&lang=zh
程式執行成果
1.硬體接線
2.撰寫NeoPixel Arduino程式
使用(C/C++) |
Wokwi模擬器環境已內建Adafruit_NeoPixel程式庫,請將底下的程式碼(C語言)貼入Wokwi程式編輯器窗格:
程式碼下載
3.按一下模擬器畫面的三角形(開始模擬)鈕,NeoPixel模組的RGB LED將輪流發光
修改RGB顏色
https://esp32io.com/tutorials/esp32-rgb-led
進階應用-呼吸燈
程式碼下載
資料引用趙英傑老師
https://sites.google.com/a/nsysu.kksh.kh.edu.tw/tg02-1/arduino-lesson-plan
體驗MicroPython |
活動設計: ESP32 Simulator (MicroPython Core)-WS2812
範例
https://wokwi.com/arduino/projects/305569065545499202
專題四-OLED液晶模組 0.96吋 白色 12864點陣 SSD1306驅動 3.3V-5V 4線IIC介面
活動設計: ESP32 Simulator (MicroPython Core)-SSD1306
教學影片
1.硬體接線
2.程式碼撰寫
體驗MicroPython |
3.修改測試
Ref:https://wokwi.com/arduino/projects/305568836183130690
進階實作
Temperature and Humidity using Franzininho, DHT22 and SSD1306
在OLED螢幕顯示天氣概況(Wifi)