Arduino?是一個(gè)易于使用的軟硬件開(kāi)放平臺(tái),包括硬件 ——?多種型號(hào)的 Arduino?開(kāi)發(fā)板及擴(kuò)展板喻频,和軟件 —— Arduino IDE缩宜。在“創(chuàng)客”教學(xué)如火如荼進(jìn)行的當(dāng)下,Arduino?的名字如雷貫耳半抱。雖然很多同學(xué)聽(tīng)過(guò)脓恕,卻不一定用過(guò)。本系列教程窿侈,楊老師跟同學(xué)們從零開(kāi)始上手 Arduino IDE炼幔,然后學(xué)習(xí)使用 App Inventor 2 WxBit?漢化版與開(kāi)發(fā)板交互。本篇教程中我們并不使用 Arduino?開(kāi)發(fā)板史简,只借用 Arduino?IDE 來(lái)給我們的 ESP32?開(kāi)發(fā)板寫(xiě)入固件乃秀,以 Arduino?之名,點(diǎn)亮LED燈圆兵。選擇 Arduino?IDE 是因?yàn)椴僮鞑襟E簡(jiǎn)單跺讯,用其他工具寫(xiě)入固件也沒(méi)問(wèn)題,不在本教程討論殉农。
相比動(dòng)輒99刀脏,上百元的入門(mén)學(xué)習(xí)套件,本教程所用的元件價(jià)格便宜超凳,品質(zhì)不打折扣愈污。采購(gòu)安信可NodeMCU-32S(ESP32)開(kāi)發(fā)板(¥18.7)耀态,MB-102面包板(¥4.5)、KY-009 LED 模塊(¥0.79)暂雹、40P 彩色公對(duì)公杜邦線(¥1.6)首装,加上4元郵費(fèi)總計(jì)30元,即可開(kāi)始“Arduino”之旅杭跪。有興趣深入學(xué)習(xí)的同學(xué)仙逻,還可以順帶購(gòu)買(mǎi)DHT11溫濕度傳感器模塊、蜂鳴器模塊涧尿、光敏電阻模塊系奉、紅外發(fā)射/接收模塊等,帶焊針(敲黑板现斋,劃重點(diǎn))方便插在面包板上使用的模塊喜最。想節(jié)省成本,可以省掉面包板直接使用母對(duì)母杜邦線連接模塊庄蹋。
拿到元件后瞬内,將ESP32芯片和LED模塊插入面包板,并用杜邦線連好備用限书,效果見(jiàn)上圖右下角虫蝶。LED模塊的RGB針腳分別與芯片的27、26倦西、25針腳連接能真,“-”則連接芯片的GND地線。面包板中間區(qū)域豎向5個(gè)孔連通扰柠,外邊緣橫向5個(gè)孔連通粉铐,用法簡(jiǎn)單不再贅述。開(kāi)發(fā)板詳細(xì)介紹:NodeMCU-32S 核心開(kāi)發(fā)板 ——https://t.cn/ESBTKBJ?
接下來(lái)準(zhǔn)備編寫(xiě)芯片固件卤档,Arduino IDE 登場(chǎng)蝙泼。
首先,下載安裝 Arduino IDE劝枣,Windows 8.1/10 (https://dev.tencent.com/u/daoquan/p/arduino/git/raw/master/ide/arduino-1.8.9-windows.exe)汤踏,Mac OSX(https://dev.tencent.com/u/daoquan/p/arduino/git/raw/master/ide/arduino-1.8.9-macosx.zip)。Windows安裝包自帶USB驅(qū)動(dòng)舔腾,如果是Mac系統(tǒng)溪胶,還需另外下載USB驅(qū)動(dòng)安裝(https://dev.tencent.com/u/daoquan/p/arduino/git/raw/master/ide/FTDIUSBSerialDriver_v2_4_2.dmg)。Windows安裝USB驅(qū)動(dòng)時(shí)會(huì)彈出安全提示稳诚,一定要選擇“安裝”哗脖。
安裝完啟動(dòng) Arduino IDE,看到固件開(kāi)發(fā)及上傳(燒寫(xiě)固件到芯片)界面。代碼編輯窗口中的 setup?函數(shù)在開(kāi)發(fā)板啟動(dòng)時(shí)執(zhí)行一次懒熙,loop則是一個(gè)無(wú)限循環(huán)丘损,開(kāi)發(fā)板對(duì)硬件的讀寫(xiě)控制邏輯,一般都放在這里實(shí)現(xiàn)工扎。
為了支持 ESP32?的固件開(kāi)發(fā),先在文件菜單首選項(xiàng)設(shè)置中添加ESP32開(kāi)發(fā)板的支持衔蹲。在開(kāi)發(fā)板管理網(wǎng)站中輸入:https://github.com/espressif/arduino-esp32/releases/download/1.0.2/package_esp32_index.json
接下來(lái)在開(kāi)發(fā)板管理器中安裝ESP32的配置肢娘,然后選擇“ESP32 Dev Module”,其他選項(xiàng)保留默認(rèn)值舆驶。
到這一步橱健,使用 Arduino IDE 開(kāi)發(fā) ESP32?固件的準(zhǔn)備工作完成。使用Micro USB數(shù)據(jù)線連接開(kāi)發(fā)板到電腦前沙廉,先看看上圖“端口”中的有那些串口拘荡,連線后會(huì)增加一個(gè),就是我們的開(kāi)發(fā)板撬陵。選擇該串口珊皿,接下來(lái)就可以開(kāi)始編寫(xiě)固件代碼,其實(shí)是“復(fù)制”與“粘帖”巨税。代碼如下:
// 將LED燈的RGB針腳分別連到芯片的 25蟋定、26、27 腳草添,
// 部分LED模塊的R和G針腳標(biāo)注錯(cuò)誤驶兜,應(yīng)調(diào)換配置,PIN_R 配置為 26
const uint8_t PIN_R = 27;
const uint8_t PIN_G = 26;
const uint8_t PIN_B = 25;
void setup(){
? // 將LED針腳映射到通道并初始化
? setupLed();
}
void loop(){
? // 改變LED的顏色
? changeLedColor();
? // 延遲0.01秒
? delay(10);
}
void setupLed(){
? ledcAttachPin(PIN_R, 1);
? ledcAttachPin(PIN_G, 2);
? ledcAttachPin(PIN_B, 3);
? ledcSetup(1, 5000, 8);
? ledcSetup(2, 5000, 8);
? ledcSetup(3, 5000, 8);
}
// 設(shè)置隨機(jī)初始顏色
uint8_t red = randomColor();
uint8_t green = randomColor();
uint8_t blue = randomColor();
uint8_t randomColor(){
? return random(0, 256);
}
void changeLedColor(){
? ledcWrite(1, gradientColor(red++));
? ledcWrite(2, gradientColor(green++));
? ledcWrite(3, gradientColor(blue++));
}
// 漸變顏色
uint8_t gradientColor(uint8_t color){
? return color <= 128 ? color : 256-color;
}??
點(diǎn)擊“項(xiàng)目”菜單中的“上傳”將固件刷寫(xiě)進(jìn)芯片远寸,在 Arduino IDE 下方日志窗口看到 “Connecting........____” 時(shí)抄淑,按住開(kāi)發(fā)板的“Boot”按鍵(USB接口右邊),日志出現(xiàn)“Chip is ESP32D0WDQ6?” 后即可松開(kāi)驰后,等待刷寫(xiě)完成LED亮起肆资。效果如下:
下一篇倡怎,楊老師將跟大家學(xué)習(xí)迅耘,基于 App Inventor 2 WxBit 漢化版設(shè)計(jì)手機(jī)應(yīng)用,通過(guò)藍(lán)牙 4.2 連接 ESP32 開(kāi)發(fā)板监署,調(diào)節(jié) LED 燈的顏色颤专。