為了 Kobo 硬體翻頁器的設計,最後選擇了這一塊開發版,這個開發版的好處是包含了 18650 電池座,也有供電及燒錄模組,我只要自己焊幾根線,3D 列印設計外殼,剩下的就是純軟體的工作了,應該可以加快開發速度。另外,其電路設計會讓 CHIP RESET 時進入燒錄模式,故不需要按下 FLASH 按鈕,似乎開發板都有內建這個功能。原理似乎是利用 UART 傳輸時,會觸發 RESET 並讓 GPIO0 拉 Low 好讓 CHIP 進入燒錄模式。下面是取自 NodeMCU 的電路圖。
下面是板子示意圖,隨手畫畫,元件相對位置是對的,但可能水平位置不一定有對齊。
相關 IC 概略
AMS1117 - 電源轉換 IC,負責將 5V 轉成 ESP8266 需要的 3.3V。
CP2102 - USB 轉 UART 的 IC,SILABS 網站上有提供驅動程式。
TP5400 - 負責電池充電,也會將電池的 3.7V 轉成 5V 輸出。
前置作業準備
01. 下載 Arduino IDE。
02. Arduino IDE -> 檔案 -> 偏好設定 -> 額外開發板管理員網址,輸入 http://arduino.esp8266.com/stable/package_esp8266com_index.json。
03. Arduino IDE -> 工具 -> 開發板管理員 -> 搜尋 ESP8266 並下載套件。
04. 開發板選擇 LOLIN(WEMOS) D1 R2 & mini,似乎選別的也無妨,重點自己是用那根 GPIO 要搞清楚。
第一個 Hello Word (控制 LED)
#define LED_BUILTIN 16
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
編譯及上傳訊息
Executable segment sizes:
IROM : 228640 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 26756 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1248 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 688 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 24880 ) - zeroed variables (global, static) in RAM/HEAP
草稿碼使用了 257332 bytes (24%) 的程式儲存空間。上限為 1044464 bytes。
全域變數使用了 26816 bytes (32%) 的動態記憶體,剩餘 55104 bytes 給區域變數。上限為 81920 bytes 。
esptool.py v2.8
Serial port COM6
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 24:62:ab:00:00:00
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 2MB
Flash params set to 0x0230
Compressed 261488 bytes to 193147...
Wrote 261488 bytes (193147 compressed) at 0x00000000 in 4.4 seconds (effective 475.9 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
實際測試結果,這樣的一個小程式,耗電量約為 40 ~ 80 mA 左右。
2020/08/28 更新
早上趁著上班前,量測了一下腳位,確認板子上的 D1 ~ D8 是對應到那些 GPIO。
2020/08/29 更新
焊接技術真的很糟!看來自己是沒辦法把線焊到開發板上,程式已經大致 OK,雖然是用 polling 的方式,不是用中斷。非常克難的用一根線模擬按鍵的功能,意思到了就好。
沒有留言:
張貼留言