開發板介紹
Esp32-Max3010x-A 此塊開發板,左邊已插入 ESP32-S 晶片(NodeMCU-32s),右上可插入「0.96寸OLED顯示器模塊128x64 」 ,右下可插入 「MAX30102血氧濃度傳感器」。
左邊的按鍵 Reset (在板子上是寫 EN),讓ESP32重新開機來執行程式。
右邊的按鍵 Flash (在板子上是寫 IO0,有些會標示為BOOT),「工作模式」和「下載模式」切換鈕。要上傳時,先按此鍵直到出現上傳開始再放開,我的 ESP32 已經取消這個機制,上傳時不用先按IO0 鍵,一鍵下載。
下載 BlocklyDuinoF2
請到 「吉哥的分享- 如何安裝吉哥自製積木 」此網站。往下移,看到 程式下載處:https://reurl.cc/W4j6x9,檔案:BlocklyduinoF2.zip,按超連結下載。
檔案很大 (1.3GB)。
選已下載的檔案,按右鍵,解壓縮到 磁碟的根目錄( C:\ 、D:\或E:\ 等 ),不可放到其它非根目錄的地方。
我電腦有裝 WinRAR ,所以你的畫面可能跟我不一樣。
解壓縮後的結果如下,以我的例子來說, BlocklyDuinoF2此資料夾 是在 E:\ 下,而 BlocklyDuino.exe 是在 E:\BlocklyDuinoF2 。
更新檔的下載及安裝
當左下方出現黃色的文字 ,表示有更新的版本,可以下載更新。
在「吉哥的分享」網站中,有提及 更新檔的下載及安裝,找到更新檔的網址,如:
檔名內有 update,表示更新檔。檔名後面的日期,你看到的可能跟我不一樣,因為祇放最新的版本。
上面沒有update 的檔名,是原始檔,已經下載過了。
選此更新檔,按右鍵,選「下載」。
選已下載的更新檔,按右鍵,選 「7-Zip」(如果按右鍵,直接看到 7 -Zip 的「開啟壓縮檔」,此步驟可以省略,我有裝 WinRAR和 7-Zip,所以要另選 7-Zip )
記得不是選 「解壓縮檔案」,因為會在 目的資料夾下面,再建另一個新資料夾,沒有覆蓋舊的檔案。
請先退出 BlocklyDuino 程式,因為要覆蓋舊的程式。
按「複製」,按「...」,選要複製到那個資料夾,請確認複製到 BlocklyDuino安裝的資料夾,再按按下面的「確定」。
有出現「確認取代檔案」,選「全部皆是」。(如果沒有出現 「確認取代檔案」對話視窗,表示選錯資料夾 )
重新執行 BlocklyDuino,左下方沒有出現黃色要更新的訊息。
原始版本,若沒有更新,在編譯某些功能會出現錯誤(如 吉哥積木/ESP32/類比寫入及音調,有Tone.h的錯誤) ,請記得要更新。
下載 CH340/CH341 USB to serial port Windows driver
Google 輸入 ch341 driver,找到下列的網站:
按「Driver&Tools」,往下移 ,看到 「CH341SER.ZIP」
按 「download」,下載 CH341SER.ZIP。
將 「CH341SER.ZIP」解壓縮,執行「setup.exe」。
按「INSTALL」,安裝 驅動程式。
使用 USB 連接線,將 ESP 32接到電腦的USB埠,最好連接到 USB3.0,電力比較穩定。
滑鼠移到螢幕 左下方 Windows 視窗圖示,按右鍵,選「裝置管理員」。
按「連接埠(COM和LPT)」,看到 USB-SERIAL CH340(COM4)。
每個人所連到的 COM 編號不一樣,我的是 COM4。
在 BlocklyduinoF2 資料夾內 執行 BlocklyDuino.exe。
開啟 BlocklyDuino Editor ,本來是 Linkit 7697 ,請選擇 「ESP32 Dev Module」。
連接埠,請選擇在「裝置管理員」所看到的COM,我的是「COM4」。
(一開始,我祇有出現 COM1,經過重新開機,才看到 COM4。)
點選左側「數位I/O」,選 「數位寫入 Pin 」。
右邊藍燈會亮 (左邊的紅燈 表示有電源)。
LED燈:長腳接正,短腳接負。
NodeMCU-32s線路圖
腳位說明, 請參考 夜市小霸王:ESP32 Arduino開發環境架設(取代Arduino UNO及ESP8266首選)GPIO(General Purpose Input Output),通用型輸入或輸出。
8 x Analog-to-Digital:可接類比或數位感測(粉紅色標示)
GPIO 34,35,36,39:Input only (僅當輸入)
GPIO 1,2,3,6,7,8,9,10,11:系統用,勿使用(灰色標示)
GPIO 18:重開機
將紅色led 接到ESP32 的PIN16 (右邊編號8)。
長腳 (紅色線)接到 S(Signal),短腳(褐色線)接到G(GND,Ground)。
使用什麼顏色的線,自己看得懂就好了。
( 不要1個接到 V (VCC) , 1個接到 G,這樣LED可能燒掉,會有怪味出現)
程式如下:
上傳程式後,紅色LED會亮起來。
題目
模擬紅綠燈,綠燈亮5秒,黃燈亮2秒,紅燈亮3秒,循環不止。
接法
綠色 led 接 PIN17,黃色 led 接PIN2,紅色 led 接 PIN16。
以 綠色 led 接 PIN17 為例:
3個led燈接完如下圖:
程式
說明:
每個block(積木)都有顏色,可按左邊的類別,看顏色是否一樣。
從時間,拿出「延遲毫秒 1000」block,再將 1000 改成想要的數值,如 3秒鐘,就寫 3000。
PIN 17 高電位,綠燈亮。
延遲毫秒 5000,即亮 5秒。
PIN 17 低電位,綠燈暗。
相似的block,可按右鍵,選「複製」,再修改。
延遲毫秒 此 block,從 「時間」類別拿出來的。
結果
綠燈亮5秒:
黃燈亮2秒:
紅燈亮3秒:
存檔:
選目的資料夾,按「確定」。
輸入檔名,不可為中文,按「OK」。
會建一個 以上述檔名 的資料夾,內有2個檔案。
threelight.ino 的內容:
/*
* Generated using BlocklyDuino:
*
* https://github.com/MediaTek-Labs/BlocklyDuino-for-LinkIt
*
* Date: Wed, 10 Aug 2022 00:53:51 GMT
*/
void setup()
{
pinMode(17, OUTPUT);
pinMode(2, OUTPUT);
pinMode(16, OUTPUT);
}
void loop()
{
digitalWrite(17, HIGH);
delay(5000);
digitalWrite(17, LOW);
digitalWrite(2, HIGH);
delay(2000);
digitalWrite(2, LOW);
digitalWrite(16, HIGH);
delay(3000);
digitalWrite(16, LOW);
}
跟在BlocklyDuinoF2 編輯畫面,切換到 ARDUINO 一樣的內容。
也可 按程式碼的右邊。
會看到ARDUINO的程式碼:
threelight.xml 是Block 的描述內容。
跟在BlocklyDuinoF2 編輯畫面,切換到 XML 一樣的內容。
另存新檔:
開啟舊檔:
新建,重新建立1個新程式。
按 「Putty 序列埠監看視窗」鈕。(本程式沒用到,以後常利用此方法,偵錯各種感測器輸出的結果是否正確。)
按「開啟PUTTY」。
若要把感測的結果送到序列埠,利用「Putty 序列埠監看視窗」 可看輸出到序列埠的結果。
不要的Block,按 Del 鍵直接刪除,或者移到垃圾筒刪除。
暫存積木
選1個block(中文稱 積木),按右鍵,選「新增到暫存積木」。
選「暫存積木」,可從裏面選一個block,放在目前的程式專案中。
不同的檔案,要把 block 複製到另1個檔案內,可透過「暫存積木」來達成。
可以 把暫存積木的某1 個block刪除,如下圖: