網站作者:新北市立江翠國中呂天齡
聯絡方式: luti@ntpc.edu.tw或 luti0845@gmail.com
最新更新時間:20230108
本網站授權方式:
為什麼要學運算思維的物理計算?
抽象與真實的物理世界
資料引用
https://towardsdatascience.com/physical-computing-using-jupyter-notebook-fb9e83e16760
111會考
111分科測驗
Wokwi模擬器實作 |
1.它是什麼?
2.它應用在哪裡?
活動設計1-物聯網寵物衣
https://www.facebook.com/ImNightMarketKing/videos/890417579035000/?idorvanity=2468989666672920
栗子數位化的兩小時(手機掃QRCODE)
https://h5.badprinter.com/dog-cloth/
思考問題:上述的裝置是運用了哪一些資訊科技的技術?
老師補充說明:AIOT架構
資料引用:中研院陳伶志博士團隊
http://scimonth.blogspot.com/2014/05/20146534.html
活動設計1:民生物聯網
LASS開源公益環境感測網路 Location Aware Sensing System
空氣品質開放資料偵測源-空氣盒子(訊舟科技)
https://airbox.edimaxcloud.com/
g0v 零時空汙觀測專案專案小組
紫豹
小結
物聯網(Internet of Things,IoT)是由實體物件連結網際網路所形成的網路系統,目的是藉由感測與晶片控制的整合,增進資訊系統的自動化、智慧化 |
江翠國中資訊組製作
資料引用:MicroPython 陳會安老師
實體層
1.嵌入式系統(Embeded System)
圖片引用:梁文耀博士嵌入式智慧應用開源軟硬整合新趨勢
2.嵌入式系統的硬體-MCU
*小知識-開放硬體及開源系統
開放硬體的價值不是在學習哪一片電路板(不需拘泥在各種開發版硬體)而是學習自由軟體開源系統(Linux base)及參與社群
聯發科AI晶片
http://omnixri.blogspot.com/2022/10/icaiottinyml.html
2.嵌入式系統的硬體MCU開發軟體文字型
(1)C/C++
(2)MicroPython
ARDUINO BRINGS A MICROPYTHON IDE
*Arduino與MicroPython差異性
3.嵌入式系統的硬體MCU開發軟體積木型
(1)Blockly based(C語言)
(2)Scratch based
(3)MicroPython based
(4)Javascript
感測層-感測器(Sensor)
活動設計2-體驗Online嵌入式系統-MicroBlock
資料引用https://all3dp.com/2/best-arduino-simulators-online-offline/
活動設計3:體驗線上Arduino模擬器
1.簡介
Wokwi 是一個線上電子模擬器。您可以使用它來模擬 Arduino、ESP32 和許多其他流行的開發板和感測器器。
2.範例
以下是您可以使用 Wokwi 製作的一些簡單示例:
3.特色
https://blog.wokwi.com/avr8js-simulate-arduino-in-javascript/
邏輯分析儀模擬器
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.參考網站
MicroPython on ESP32簡介
資料引用:張文宏老師
資料引用:https://www.youtube.com/watch?v=l9OhMBk_lUE&t=41s
小結
資料引用:陳豐生業師(豐爸)
資料引用:MicroPython for kids
實作先備知識
1.電路原理(基本迴路)
2.數位/類比訊號(Digital/Analog)及輸入/輸出(Input/Output)
(1)數位:0、1(off 、on)不是0就是1
(2)類比:數位以外的就是類比,像溫度有高低、聲音有大小
(3)輸入(讀取):取得外面的訊息(好像外面控制電腦,如電腦的輸入裝置,如:鍵盤(按鍵)
(4)輸出(寫入):輸出訊息給外部(好像對外部的控制,如電腦的輸出裝置,如:開關LED燈
教學影片(3小時)
https://jasonworkshop.com/b20220801/
原理篇
模擬器實作篇
程式執行成果
實作步驟
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
程式執行成果
教學影片
1.硬體接線
平板手機同學(無法畫圖)
2.撰寫程式碼
程式碼:下載(程式除錯法+填補法)
https://wokwi.com/projects/333051415802937939
提示:紅色框處之程式碼(修改及增加)
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,外接LED將重複一閃一滅
思考問題1:如何控制LED閃滅的時間?
思考問題2:
(1)LED的顏色可以改變嗎?
(2)電阻的值可以改變嗎?
(3)導線的顏色可以改變嗎?
(4)電阻的方向可以改變嗎?
A.選取電阻物件按R鍵
B.點導線變虛線刪除
教學影片
思考問題:
上述電路圖一定要這要接嗎?
程式執行成果
實作步驟
1.硬體接線
(若教學時間不足將圖先畫完然後分享給學生.運算思維(程式設計.才是我們資訊科技教學的核心.而非硬體接線)
平板同學
2.撰寫程式
程式碼-下載(非完整.需自行增加程式碼)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試紅綠燈LED
程式執行結果
1.硬體接線
專案分享(半成品)
2.修改程式碼
3.測試
4.自行創作
思考問題:
1.這樣的程式碼寫法好嗎?有無改進的空間(優化)?
專案分享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)
程式執行結果
原理篇
1.按鈕種類
2.按鈕接點
3.按鈕彈跳訊號
範例-無上拉電阻
https://wokwi.com/projects/333687372925370962
4.消除按鈕彈跳訊號
(1)上拉(提升)電阻(Pull-up resistors)
(2)下拉電阻(Pull-down resistors)
資料引用:https://www.youtube.com/watch?v=I4Rbh-7RgYs
範例-有上拉電阻
https://wokwi.com/projects/333687135739576914
實作篇
1.硬體接線
2.撰寫程式
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,按下開關LED是否會亮?
思考問題:
2.多開關控制霹靂燈
VR(可變電阻)
ADC(類比訊號轉為數位訊號)
PWM(脈衝寬度調變)
程式執行結果
實作篇
1.硬體接線
手機平板筆電PC
https://wokwi.com/projects/333865133477462610
2.撰寫程式
3.測試.按一下模擬器畫面的三角形(開始模擬)鈕,改變電阻值大小看LED是否會漸亮?
蜂鳴器(Buzzer)
利用PWM產生音頻,驅動蜂鳴器讓空氣產生震動,便能發出聲音
實作篇
1.硬體接線
手機平板筆電PC
https://wokwi.com/projects/333866298216809044
2.撰寫程式
3.測試
MicroPython音樂
程式執行成果
實作步驟
1.硬體接線(RGB共陽極.COM接點接VCC)
2.撰寫程式
專案分享(修改程式碼方法.調整frq.duty)
ESP32的duty取值範圍為0 <= duty <= 1023
ESP32的PWM頻率範圍為0 < freq <= 78125
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試RGB LED
RGB燈條的應用
原理篇
實作篇
1.硬體接線
2.撰寫程式
16顆WS2812循環亮
程式碼:下載
修改程式中RGB顏色代碼
3.按一下模擬器畫面的三角形(開始模擬)鈕,NeoPixel模組的RGB LED將輪流發光
通信——物聯網之魂
(1)串列通訊匯流排(Universal Asynchronous Receiver/Transmitter)
實作步驟
1.硬體接線
2.撰寫程式
程式碼:下載(程式仿作或程式碼識讀)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試是否有顯示出溫溼度
(2)I²C(積體電路之間.積體匯流排電路 Inter-Integrated Circuit)
I²C通訊只需要2條雙向線:
SDA(serial data:串列資料線)
SCL(serial clock:串列時脈線)
實作11:OLED液晶模組 0.96吋 白色 12864點陣 SSD1306驅動 3.3V-5V 4線I2C介面規格書
教學影片
1.硬體接線
2.程式碼
3.修改程式碼修文字內容(中文無法顯示)測試
進階-物聯網實作
1.程式庫安裝與管理
實作13:OLED溫溼度蒐集及警報系統
其他
https://wokwi.com/projects/333864909661012562
2.物聯網專案分享
Temperature and Humidity using Franzininho, DHT22 and SSD1306
參考資料
MicroPython on ESP32
https://docs.micropython.org/en/latest/
https://hackmd.io/@Zoyam/ByeHHYDKv
https://techtotinker.blogspot.com/2020/09/micropython-tutorial-what-is-micropython.html
https://towardsdatascience.com/micropython-on-esp-using-jupyter-6f366ff5ed9
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