漲姿勢(shì),MCU也可以玩Javascript? --ESPRUINO PICO開發(fā)板評(píng)測(cè) 發(fā)布時(shí)間: 來(lái)源:21ic 查看 ![]() 21IC中國(guó)電子網(wǎng) 中國(guó)電子工程師的首選網(wǎng)站 Python借助人工智能火了一把!也是因?yàn)槿绱?,許多人認(rèn)識(shí)了MicroPython,原來(lái)在MCU上也可以玩的Python!而且隨著社區(qū)力量的加入,MicroPython也變得越來(lái)越強(qiáng)大了! 首先是MCU的支持類型越來(lái)越多,其次各種三方庫(kù)的驅(qū)動(dòng)程序也越來(lái)越多,如SSD1306,MPU6050等設(shè)備,都可以在MicroPython上順利驅(qū)動(dòng)了! 作為網(wǎng)絡(luò)前端的Java腳本似乎也不甘寂寞,在繼的NodeJS大獲用戶好評(píng)之后,似乎也開始在MCU領(lǐng)域嶄露頭角,準(zhǔn)備大干一場(chǎng)!今天要給大伙介紹的就是這樣一款開發(fā)板,在MCU上跑使用Javascript! 然而光芒是沒有的,ESPRUINO PICO這個(gè)板子太小了!小到什么程度,如下 作為對(duì)比,拿個(gè)Micro SD卡套與之比較下,ESPRUINO PICO開發(fā)板尺寸大小約33mmX15mm,可謂將Pico演繹到了極致! Espruino Pico的核心就是一個(gè)STM32F401,ST愛好者看到這個(gè)LOGO,不由長(zhǎng)舒了一口氣,找到隊(duì)友的感覺真好!潛意識(shí)了想到了一個(gè)問(wèn)題,既然JS是跑在ST的MCU上,是不是我的核蛋白板子也可以?!想想都很激動(dòng),是真的雞動(dòng)!
各位老鐵對(duì)硬件的評(píng)價(jià)大致就是如此:也就這樣! 所以接下來(lái)的時(shí)間,我們開始體驗(yàn)JS的神奇。Espruino是微控制器的JavaScript解釋器。 它專為具有128kB閃存和8kB RAM的設(shè)備而設(shè)計(jì)。這是Espruino在GitHub上對(duì)自己的介紹,不過(guò)隨著Espruino的發(fā)展,其硬件支持平臺(tái)已涵蓋了包括ESP32,ESP8266,ST NUCLEO等諸多廠商品牌。 JavaScript是解釋型語(yǔ)言,需要一個(gè)解釋器,網(wǎng)頁(yè)瀏覽器都內(nèi)置了JS解釋器,而在Linux / Windows的等操作系統(tǒng)平臺(tái),節(jié)點(diǎn)也是一個(gè)解釋器。 同樣,要在MCU上運(yùn)行JS,自然也需要一個(gè)解釋器。 而在MCU上的這個(gè)解釋器則是固件程序.Espruino Pico出廠時(shí)已預(yù)置JS解釋器,可以通過(guò)串口與PC進(jìn)行交互。
直接使用digitalWrite命令可以控制板載的LED燈,執(zhí)行上面兩條命令,會(huì)看到LED1燈的變化。正如MicroPython一樣,這種REPL適合做簡(jiǎn)單的代碼評(píng)估及測(cè)試。不過(guò)要寫一個(gè)完整的程序,還是使用IDE來(lái)得更方便。 Espruino提供了Web版和本地版的IDE編程環(huán)境,如果網(wǎng)絡(luò)速度不錯(cuò),Web IDE是個(gè)不錯(cuò)的選擇,畢竟不要考慮組件更新等問(wèn)題。
連接過(guò)程中會(huì)給出提示信息,顯示連接是否成功 這是連接過(guò)程中給出的信息,除了顯示連接是否成功外,IDE也檢測(cè)到當(dāng)前設(shè)備的固件版本號(hào),提示用戶是否需要更新固件,提示信息最下面顯示的是當(dāng)前設(shè)備的版本號(hào)等信息。 為了獲得更好的穩(wěn)定性及性能,官方建議及時(shí)更新固件版本,固件更新操作使用IDE提供的更新程序來(lái)完成,如下 點(diǎn)擊Flash Firmware按鈕,程序會(huì)自動(dòng)從網(wǎng)絡(luò)下載最新的固件,開始更新操作 更新過(guò)程中會(huì)提示用戶選擇相關(guān)的硬件版本,從這里也可以看出,Espruino家族已包括了不少產(chǎn)品,從WiFi到BLE,再到LORA,都有覆蓋,吾道不孤啊。 等固件更新進(jìn)度條走完,固件更新操作也完成了,當(dāng)前最新的版本號(hào)為1V99。 更新后發(fā)現(xiàn)版本號(hào)已變成了1v99,另外端口號(hào)從15變成了16了。 在I/O設(shè)備效率還遠(yuǎn)遠(yuǎn)低于CPU效率的時(shí)代,這種I/O模型(非阻塞I/O)為程序帶來(lái)的性能上的提高是非??捎^的。 程序輸出結(jié)果將會(huì)是 Main Program continues! File read completed! 代碼直接就是并行執(zhí)行的,沒有線程、進(jìn)程這些概念。 接下來(lái),以一個(gè)簡(jiǎn)單的程序?yàn)槔?,體會(huì)如何編寫代碼并上傳到開發(fā)板,程序代碼如下 在IDE的編輯窗口中輸入代碼,然后點(diǎn)擊 圖標(biāo), 將當(dāng)前代碼發(fā)送到Espruino Pico,然后就可以看到代碼開始運(yùn)行的效果了。不過(guò)此時(shí)掉電的話,代碼將不會(huì)保存,如果要保存當(dāng)前挖地道從,則需要在IDE左側(cè)交互窗口中輸入save() 命令,然后代碼就保存到內(nèi)部存儲(chǔ)器中了,下次上電,代碼將會(huì)從頭開始運(yùn)行。如下 要更好的讓Espruino Pico工作,接下來(lái)的工作需要好好的了解Javascript的基本語(yǔ)法,然后是Espruino的庫(kù),這個(gè)工作量其實(shí)也不小,好在官方提供了大量的參考代碼和完整的API參考,用戶可以通過(guò)從這些代碼入手,慢慢掌握Espruino的用法。 這是使用Espruino Pico連接Nokia 5110屏并顯示一個(gè)時(shí)鐘的畫面,具體代碼可以參考官方例程。 查看官方代碼時(shí),筆者發(fā)現(xiàn)一個(gè)很有意思的應(yīng)用,就是使用Espruino Pico連接鍵盤和VGA顯示器的應(yīng)用,如下 看到這里,不得不感嘆其強(qiáng)大! 以前筆者一直推崇使用Python語(yǔ)言,不過(guò)在接觸并使用Espruino Pico(Javascript)的過(guò)程中,忍不住感慨:除了Python,其實(shí)Javascript也照樣強(qiáng)大! 總而言之,Espruino將Javascript引進(jìn)了MCU的世界,目前除了支持STM32的許多MCU型號(hào)之外,還支持諸如ESP32/ESP8266等許多流行的MCU硬件平臺(tái),為用戶提供另外一種使用單片機(jī)的全新空間,具體的硬件平臺(tái)請(qǐng)參考官方的github代碼,你將會(huì)有更多的收獲! |
|
來(lái)自: 西北望msm66g9f > 《培訓(xùn)》