# MicroPython version 1.12 released
版本異動紀錄參考 Change Log :
# https://micropython.org/resources/micropython-ChangeLog.txt
主要更新摘要如下 :
- a reduction in overall bytecode size
- Bluetooth (BLE only) support is added via the "ubluetooth" module and provides the ability to implement the four BLE roles
- Support for littlefs filesystems is added through the MicroPython VFS interface, and it works on the unix, stm32, esp8266 and esp32 ports
- A new "machine.ADC.read_u16()" method is defined and implemented on stm32, esp8266, esp32 and nrf ports, providing a consistent way to read an ADC that returns a value in the range 0-65535
- The esp32 port has the following new features: native code generation, machine.SDCard, hardware I2C, mDNS queries and responder, esp32.Partition, esp32.RMT, BLE (requires IDF v4), and built-in support for VfsLfs2
更多 ESP32 上的 MicroPython 測試參考 :
# MicroPython on ESP32 學習筆記索引
1. 下載韌體 :
下載網址 :
# http://micropython.org/download/#esp32
我下載的是最新的 esp32-idf3-20200211-v1.12-156-g0852acfc7.bin 檔, 將其放在工作目錄 d:\esp32 下.
ESP8266 韌體下載位置 :
# http://micropython.org/download/#esp8266
2. 燒錄韌體 :
將 ESP32 板子插入筆電 USB 後先用裝置管理員查詢連接埠, 例如 COM8, ESP32 韌體燒錄參考 :
# MicroPython on ESP32 學習筆記 (一) : 燒錄韌體
燒錄新韌體之前先清除舊韌體, 下指令前要按住 USB 槽右邊的 flash 鈕 (即 IO0), 直到 Connecting ... 後面的 Chip 編號出來才可放掉 :
D:\test>esptool.py --chip esp32 --port COM8 erase_flash
esptool.py v2.6
Serial port COM8
Connecting........_____....._____....._____....._____....._____....._
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 80:7d:3a:b7:a7:5c
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 4.6s
Hard resetting via RTS pin...
燒錄韌體前一樣要按住 USB 槽右邊的 flash 鈕 (即 IO0), 直到 Connecting ... 後面的 Chip 編號出來才可放掉 :
D:\ESP32>esptool.py --chip esp32 --port COM8 write_flash -z 0x1000 esp32-idf3-20200211-v1.12-156-g0852acfc7.bin
esptool.py v2.6
Serial port COM8
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 80:7d:3a:b7:a7:5c
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 1433616 bytes to 912935...
Wrote 1433616 bytes (912935 compressed) at 0x00001000 in 81.3 seconds (effective 141.1 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
這樣就燒錄完成了.
3. 用 PuTTY 連線 ESP32 :
開啟 PuTTY 以 Serial 串列 115200 速率連線 COM port 即進入 REPL 介面 :
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:5008
ho 0 tail 12 room 4
load:0x40078000,len:10600
ho 0 tail 12 room 4
load:0x40080400,len:5684
entry 0x400806bc
I (530) cpu_start: Pro cpu up.
I (530) cpu_start: Application information:
I (530) cpu_start: Compile time: Feb 11 2020 00:37:56
I (534) cpu_start: ELF file SHA256: 0000000000000000...
I (540) cpu_start: ESP-IDF: v3.3.1
I (544) cpu_start: Starting app cpu, entry point is 0x400836ec
I (0) cpu_start: App cpu up.
I (555) heap_init: Initializing. RAM available for dynamic allocation:
I (562) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (568) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (574) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (580) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM
I (586) heap_init: At 3FFCC810 len 000137F0 (77 KiB): DRAM
I (592) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (599) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (605) heap_init: At 40099A80 len 00006580 (25 KiB): IRAM
I (611) cpu_start: Pro cpu start user code
I (294) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
MicroPython v1.12-156-g0852acfc7 on 2020-02-11; ESP32 module with ESP32
Type "help()" for more information.
>>>
4. 藍芽模組 ubluetooth :
前一版的 v1.11 並未支援藍芽, 參考 :
# MicroPython on ESP32 尚未支援藍芽
但到 v1.12 版就開始支援藍芽 (僅 BLE) 了, 模組名稱為 ubluetooth 或 bluetooth, 參考 :
# https://docs.micropython.org/en/latest/library/ubluetooth.html
以下為依據官網 API 資料的簡單測試 :
MicroPython v1.12-156-g0852acfc7 on 2020-02-11; ESP32 module with ESP32
Type "help()" for more information.
>>> import ubluetooth as ub
>>> dir(ub)
['__class__', '__name__', 'BLE', 'FLAG_NOTIFY', 'FLAG_READ', 'FLAG_WRITE', 'UUID']
['__class__', '__name__', 'BLE', 'FLAG_NOTIFY', 'FLAG_READ', 'FLAG_WRITE', 'UUID']
>>> ub1=ub.BLE()
>>> type(ub1)
<class 'BLE'>
>>> dir(ub1)
['__class__', 'active', 'config', 'gap_advertise', 'gap_connect', 'gap_disconnect', 'gap_scan', 'gattc_discover_characteristics', 'gattc_discover_descriptors', 'gattc_discover_services', 'gattc_read', 'gattc_write', 'gatts_notify', 'gatts_read', 'gatts_register_services', 'gatts_set_buffer', 'gatts_write', 'irq']
>>> ub1.active()
False
>>> ub1.active(True)
I (2569560) BTDM_INIT: BT controller compile version [5aed448]
I (2589284) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
W (2589294) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
I (2589424) phy: phy_version: 4102, 2fa7a43, Jul 15 2019, 13:06:06, 0, 2
GAP procedure initiated: stop advertising.
True
>>> ub1.config('mac')
b'\x00\x00\x00\x00@\x00'
>>> ub1.config('mac')
b'\x00\x00\x00\x00@\x00'
沒有留言:
張貼留言