or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
![image alt](https:// "title") | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | Emoji list | ||
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
mPython with ESP32 / Thonny
社團介紹/總課綱/上課影片/範例程式/mPython讀書會
0-1、參考資料
1-1、材料包
1-2、ESP32認識
本次課程使用左下角DOIT ESP32
IO介紹
Ref.Github
IO腳位功能
– 雙核心 Tensilica 32 位元 LX6 微處理器
– 高達 240 MHz 時脈頻率
– 520 kB 內部 SRAM
– 28 個 GPIO
– 硬體加速加密(AES、SHA2、ECC、RSA-4096)
– 整合式 802.11 b/g/n Wi-Fi 收發器
– 整合式雙模藍牙v4.2 BR/EDR (傳統和 BLE)
– 支援 WiFi 802.11 b/g/n
– 支援 10 個電極電容式觸控
– 4 MB 快閃記憶體
-GPIO 34,35,36,39:Input only(不能作為輸出腳位)
-GPIO 0,6,7,8,9,10,11:系統用,勿使用(淺灰色標示)
-GPIO 18:重開機
參考自:夜市小霸王
開發板基本知識
五分鐘了解開發板應用(I/O觀念)
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →十五分鐘了解microPython與Arduino差異(編/解譯器)
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →重要模組
參考資料1
參考資料2
2-1、環境設置
micro-USB 連接 ESP32 與 USB port(NB、PC)-使用UART介面溝通
安裝Thonny IDE、CP210x driver
Tools-Options開啟設定
選擇開發板/COM port/韌體版本
mpython下載最新韌體
官網點選下載
選擇ESP32 module
選擇最新穩定且有支援BLE LAN的韌體版本 並下載
Port:選擇電腦認到這片開發板的COM port(可以去Windows裝置管理員看)
Firmwave:選擇剛下載好的最新版韌體
並點選安裝
第一次燒錄需要在燒錄過程出現___的時候按壓BOOT_button按鍵(約一秒)即可看到程式繼續燒錄
自動會第二次跑出視窗
並開始寫入韌體 會看到1%~100%的過程 需要約10sec
燒錄完成後先按一次Stop
等待開發板重新開機啟動到下方Shell區有顯示>>> 就算完成 可以開始寫microPython了
為了方便記得開啟以下欄位,在View(檢視)-Files(檔案)、Variables(變數)
2-2、電路原理
基本迴路
開發板硬體三核心
開發板使用方法
S = signal = 訊號
V = Vin = 輸入電壓(USB供電時為5V)
3V3 = 3.3v
G = GND = 接地
口訣:人要腳踩實地(G)先吃飯(V),才能接受指令做事(S)
數位/類比訊號(Digital/Analog)
3-1、mPython基本語法
個人淺見:寫程式學技能就像寫一張國小國文考卷
Level 1-變數與基本運算
終端機試打
1 + 1
print("OpenRobotClub")
print("OpenRobotClub" * 3)
print("OpenRobotClub" + "1+1")
Open = 100
print(Open)
Open = Open + 100
print(Open)
1 == 1 判斷是否等於 等於時回傳 True
2 == 1 判斷是否等於 不等於時回傳 False
可以嘗試!=
True False 屬於布林值
Open = "開"
print(Open)
Level 2-資料結構與轉換
數值型態:int, float, bool
字串型態:str, chr
容器型態:list, dict, tuple
Level 3-條件判斷
如果…就___
注意:前方有四個空格(mPython兩格)為縮排使用,此為Python特色必須要精準無誤
C語言不同有: {}、;、宣告方式
範例:
巢狀if敘述(兩層迴圈)
3-2、系統介紹
4-1、LED應用
接線方法
RGB LED 介紹
共陰腳位
請把R接D4 G接D2 B接D15 -接GND
接腳金屬不能互相碰觸到會產生短路燒毀LED
基本控制方法(Digital)
進階控制方法(PWM)
運行測試
接腳金屬不能互相碰觸到會產生短路燒毀LED
4-2、內建觸摸電容
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →控制方法
運行測試
範例程式:2_1
4-3、內建溫度感測
控制方法
運行測試
範例程式:2_2
4-4、蜂鳴器
接線方法
控制方法
from machine import Pin, PWM
pwm2=PWM(Pin(2)) #建立 GPIO 2 的 PWM 物件
pwm2.freq(300) #設定 PWM 物件之頻率
pwm2.duty(512) #設定 PWM 物件之工作週期
PWM 方法 說明
freq([Hz]) 傳入 0~1000 設定方波頻率 (決定音高) , 否則為讀取
duty([cycle]) 傳入 0~1023 設定 Duty cycle (512 為 50%) (決定音量) , 否則為讀取
deinit() 關閉 PWM 功能
運行測試
範例程式:3_1 1KHz
範例程式:3_2 Alarm
範例程式:3_3 119
4-5、超音波
接線方法
控制方法
匯入hcsr04.py到ESP32 microPython Device內
運行測試
範例程式:4_1
4-6、蜂鳴器x超音波綜合應用
接線方法
控制方法
移動手掌於兩個眼睛前方
運行測試
範例程式:4_2
4-7、WS2812 RGB LED
接線方法
控制方法
運行測試
4-8、Wifi連線
運行測試
範例程式:6_1_0
4-9、IFTTT設定
*
*
*
*
4-10、IFTTT-Line Webhooks with Ultrasonic
Webhooks介紹
接線方法
搭配超音波模組 進行觸發測試
運行測試
範例程式:6_1_0
4-11、IFTTT-Google Sheet Webhooks
可再修正相關設定
運行測試
範例程式:6_3_0
4-12、IoT-Web Server in MicroPython
操作影片
運行測試
實作影片
範例程式:6_4_0
Web Server Tutorial
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →microcontrollers
randomnerdtutorials
課程問卷
QR code
Arduino vs. microPython
Arduino使用C语言编写,是没有命令行模式的,每次更改代码都需要重新编译,下载。
micropython是脚本语言,解释执行,可以执行文件,也可以命令行交互,在有线通信,无线通信,音视频,图像处理等方向比arduino方便很多倍。
由于当前高速cpu已经越来越廉价,比如8266能跑80M,160M,才十元钱,这在以前是无法想象的。所以硬件革命了,相应的软件使用方式会更多元,以前在PC上才能使用的功能和语言,以后直接可以在单片机上使用。
以前需要编写很多代码才能实现的功能,现在一两个命令就能实现了。(比如i2c扫描外部设备)目前micropython国内还处于起步阶段,后续应该会有一个长足的增长。所以,micropython相对arduino的优势: