日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

漲姿勢(shì),MCU也可以玩Javascript?

 西北望msm66g9f 2019-02-13

漲姿勢(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!
主角登場(chǎng),光芒四射!

然而光芒是沒有的,ESPRUINO PICO這個(gè)板子太小了!小到什么程度,如下

作為對(duì)比,拿個(gè)Micro SD卡套與之比較下,ESPRUINO PICO開發(fā)板尺寸大小約33mmX15mm,可謂將Pico演繹到了極致! 
ESPRUINO PICO開發(fā)板一側(cè)直接就是USB接口,數(shù)據(jù)線也省了。開發(fā)板上的GPIO采用郵票孔+過(guò)孔結(jié)合方式,這下老鐵們想抱怨也找不到借口了,想怎么用就怎么用!

Espruino Pico的核心就是一個(gè)STM32F401,ST愛好者看到這個(gè)LOGO,不由長(zhǎng)舒了一口氣,找到隊(duì)友的感覺真好!潛意識(shí)了想到了一個(gè)問(wèn)題,既然JS是跑在ST的MCU上,是不是我的核蛋白板子也可以?!想想都很激動(dòng),是真的雞動(dòng)!
Espruino Pico的規(guī)格,實(shí)際上也就是STM32F401的規(guī)格如下:
·22個(gè)GPIO引腳:9個(gè)模擬輸入,21個(gè)PWM,2個(gè)串行,3個(gè)SPI,3個(gè)I2C
·所有GPIO均可承受5伏電壓(Arduino兼容)
·2排9個(gè)0.1“針腳,末端帶有第3個(gè)0.05”排8針
·板載USB A型連接器
·兩個(gè)板載LED和一個(gè)按鈕。
·STM32F401CDU6 32位84MHz ARM Cortex M4 CPU
·384kb閃存,96kb RAM
·板載3.3v 250mA穩(wěn)壓器,可接受3.5v至16v的電壓
·睡眠時(shí)的電流消耗:<0.05mA - 使用2500mAh電池超過(guò)2。5年
·板載FET可用于驅(qū)動(dòng)高電流輸出


GPIO及外設(shè)的布局如下

各位老鐵對(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)行交互。


Espruino Pico與PC連接后,通過(guò)串口可以直接與硬件交互

直接使用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)題。


IDE提供了設(shè)備連接,REPL環(huán)境及腳本窗口環(huán)境,另外也可以通過(guò)IDE來(lái)對(duì)設(shè)備進(jìn)行固件升級(jí)等功能。點(diǎn)擊窗口左上角的連接圖標(biāo),選擇Espruino Pico所在的串口,如下

連接過(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了。
JS開創(chuàng)性的使用了異步非阻塞編程模型,非阻塞I/O是程序執(zhí)行過(guò)程中,I/O操作不會(huì)阻塞程序的執(zhí)行,也就是在I/O操作的同時(shí),繼續(xù)執(zhí)行其他代碼(這得益于Node的事件循環(huán)機(jī)制)。

在I/O設(shè)備效率還遠(yuǎn)遠(yuǎn)低于CPU效率的時(shí)代,這種I/O模型(非阻塞I/O)為程序帶來(lái)的性能上的提高是非??捎^的。 
下面以一段代碼來(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ì)有更多的收獲!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多