12 Web:Bit V2測試
(2024/01/04)
https://blog.itpub.net/69966964/viewspace-2843922/
https://circuitpython.org/board/bpi_bit_s2/
一、燒錄micropython韌體測試
Web:Bit V2採用的晶片是ESP32-S2
micropython韌體下載:
下載點:https://micropython.org/download/ESP32_GENERIC_S2/
最新穩定版為V1.22.0版,可下載.bin檔備用 (ESP32_GENERIC_S2-20231227-v1.22.0.bin)
燒錄韌體的方法:
方法一:使用Thonny
下載Thonny (目前4.1.4版) https://thonny.org/
安裝
開啟
點擊【工具】/【選項】/【直譯器】
在燒錄前先確認ESP32-S2晶片是否已經設置為【韌件下載模式】(BOOT按不放,再按RST一下,再放開BOOT)
可從裝置管理員連接埠看到其連接的埠號
選擇【MicroPython(ESP32)】及連接埠
最後點擊【安裝或是更新MicroPython(esptools)】(如下圖)
點擊下圖【安裝】旁的三條線可得更多的選項
會主動從官方下載韌體檔,不知道如何使用自己準備的韌體檔?
ESP32-S2的存放位址要設0x1000
速度可以調最快的
最後點擊【安裝】
最後會出現如下結果,有一個警告
Downloading from https://micropython.org/resources/firmware/ESP32_GENERIC_S2-20231227-v1.22.0.bin
Writing to C:\Users\新上國~1\AppData\Local\Temp\tmpexcnyvd8\ESP32_GENERIC_S2-20231227-v1.22.0.bin
100%C:\Users\新上國小教學人員\AppData\Local\Programs\Thonny\python.exe -u -m esptool --port COM5 --chip esp32s2 --baud 460800 write_flash --flash_mode keep --flash_size keep --erase-all 0x1000 C:\Users\新上國~1\AppData\Local\Temp\tmpexcnyvd8\ESP32_GENERIC_S2-20231227-v1.22.0.bin
esptool.py v4.6.2
Serial port COM5
Connecting...
Chip is ESP32-S2FNR2 (revision v0.0)
Features: WiFi, Embedded Flash 4MB, Embedded PSRAM 2MB, ADC and temperature sensor calibration in BLK2 of efuse V1
Crystal is 40MHz
MAC: 7c:df:a1:96:8e:ec
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 16.3s
Compressed 1418304 bytes to 928478...
Writing at 0x00001000... (0 %)
Writing at 0x00002278... (0 %)
.....
Writing at 0x0015a2e8... (99 %)
Writing at 0x0015afba... (100 %)
Wrote 1418304 bytes (928478 compressed) at 0x00001000 in 11.9 seconds (effective 952.9 kbit/s)...
Hash of data verified.
Leaving...
WARNING: ESP32-S2FNR2 (revision v0.0) chip was placed into download mode using GPIO0.
esptool.py can not exit the download mode over USB. To run the app, reset the chip manually.
To suppress this note, set --after option to 'no_reset'.
Command returned with error code 1
最後按下主板的【RST】鍵
這時再到裝置管理員觀察,會發現有一新的連接埠(如下圖)
重新連接新的埠,並做簡單的測試,成功!!
方法二:使用flash_download_tool
下載flash_download_tool (目前3.9.5版) https://www.espressif.com/zh-hans/support/download/other-tools
解壓縮
執行flash_download_tool_3.9.5
在燒錄前先確認ESP32-S2晶片是否已經設置為【韌件下載模式】(BOOT按不放,再按RST一下,再放開BOOT)
先選取上面官網下載的韌體
位址要設0x1000
先抹除舊資料
再點擊【START】
最後再按下主板的【RST】鍵就可以用了!
測試亞柏老師提供的V2韌體
按照前面的燒錄方式,都成功
但按下主板的【RST】鍵後,並沒有產生一個可使用的埠號
二、microBlock IDE測試
先使用官網的韌體來測試,等亞柏老師的韌體修改後再用亞柏韌體來測試
使用microBlock IDE v2.2c版
基本測試
列印Hello World
讀取光敏感測器的值
左上:GPIO12
右上:GPIO13
結果:一開始失敗,後經亞柏老師的指導已成功了,如後說明
把程式碼中的adc.width(ADC.WIDTH_12BIT) 改成adc.width(ADC.WIDTH_13BIT)就好了
可得最大亮光的類比值為8191(2的13次方-1)
結果:修改後成功
讀取A、B鍵的值
A鍵:GPIO38
B鍵:GPIO33
結果:成功
燈條測試
燈條(全彩LED矩陣)腳位:GPIO18
結果:成功
測試蜂鳴器
蜂鳴器:GPIO17
結果:成功
測試OLED
SCL:GPIO16
SDA:GPIO15
結果:失敗
上網測試
結果:失敗
三、測試登月小車
登月小車在Web:Bit V2使用到的腳位
請參考 03 登月小車離線版
右輪1:GPIO6、右輪2:GPIO36;左輪1:GPIO8、左輪2:GPIO37
循跡感測器:右方:GPIO35、左方:GPIO34
超音波測距感測器:TRIG:GPIO3、ECHO:GPIO9
補光燈:GPIO11
WS2812:GPIO10
紅外線接收器:GPIO1
小車前進、後退、原地左轉、原地右轉基本測試
結果:成功
2.小車避障測試
測試【超音波測距感測器】
發現:當距離超過一定範圍後,其值顯示-1
修正超音波模組積木沒有3及9腳位
結果:成功
3.循跡小車測試
測試【循跡感測器】
發現:
車右邊感測器的腳位35、車左邊感測器的腳位34 (這邊的方向好像剛好相反,34應該在右輪邊、35在左輪邊)
感測器在白線上:感應燈滅、數位值為0
感測器在黑線上:感應燈亮、數位值為1
結果:成功
4.紅外線遙控測試
測試【紅外線接收器】
使用【紅外線解碼器】積木
上傳檔案時失敗
結果:失敗
使用【IR NEC Remote】積木
取得【KEYES遙控器】的方向鍵編碼值
上:ff629d
下:ffa857
左:ff22dd
右:ffc23d
OK:ff02fd
結果:成功
5.藍牙測試
藍牙+V7RC(手機APP)
上次亞柏老師說:ESP32-S2好像沒有藍牙
結果:失敗
Wifi+UDP伺服器+V7RC(手機APP)
結果:成功