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

分享

體驗(yàn)MicroBlocks的HC-SR04超聲測(cè)距驅(qū)動(dòng)庫(kù)

 新用戶5228KeDY 2022-01-26

放假多日了,沒再到學(xué)校去;每個(gè)學(xué)期都有累屁了的感覺,天天腦袋上戴個(gè)帽子。所有的小傳感器們都放在了學(xué)校,手邊只有一個(gè)還沒有組裝的51小車上面的HC-SR04超聲波傳感器,而MicroBlocks恰好自帶了HC-SR04的傳感器Libraries庫(kù),正好試試。調(diào)入HC-SR04之后會(huì)發(fā)現(xiàn),就一個(gè)Block,按照Block上標(biāo)記的triggerecho引腳接上指定的引腳就行了。默認(rèn)的是24,這兩個(gè)數(shù)字本質(zhì)上相當(dāng)于自定義函數(shù)參數(shù)的默認(rèn)值,一會(huì)兒能看到原理。

1 MicroBlocks內(nèi)置的HC-SR04庫(kù)

我們把24改一下,接Wemos D1 R32IO14IO27。實(shí)際Wemos D1 R32的引腳為了與Arduino UNO長(zhǎng)的一樣,它們被安排在原來UNO板的Digital數(shù)字引腳的區(qū)域那里,但是使用的時(shí)候,我們不能用D7D6來引用它,也不能7、6或其它數(shù)字來引用,只能老老實(shí)實(shí)用IO上的標(biāo)記。

2 Wemos D1 R32管腳分布

之后把HC-SR04VCC接到5VGND對(duì)著GND。拖拽幾個(gè)Blocks。Wait 50個(gè)milliseconds的目的,是為了減少一些毛毛刺刺的數(shù)據(jù)噪聲。

3 MicroBlocks編寫的ESP32下超聲測(cè)距程序

打開數(shù)據(jù)表格,運(yùn)行,到HC-SR04的兩只大眼睛前面擺幾下手,記錄下來曲線一條。

4 MicroBlocks記錄的超聲測(cè)距數(shù)據(jù)曲線

現(xiàn)在回頭看一下圖3MicroBlocks得到的HC-SR04程序,它沒有傳統(tǒng)Arduino里面的pinMode指定引腳狀態(tài)的語(yǔ)句。再與MixlyHC-SR04程序比較一下,則要顯得復(fù)雜一些。

5 Mixly創(chuàng)建的HC-SR04測(cè)距程序

如果在Mixly窗口里展開代碼窗口,就可以看到Mixly雖然只給擺放了一行Block,但它在背后已經(jīng)默默做了很多Arduino下的代碼工作,代碼窗口里面我們不但看到了熟悉的pinMode,還看到了puseIn函數(shù)。

6 MixlyArduino代碼窗口

那么MicroBlocks為我們默默做了什么呢?我們到HC-SR04提供的Block上面去右鍵,看到show blocks definition…,點(diǎn)開它,窗口砰的一聲展開來一大堆BlockHC-SR04的驅(qū)動(dòng)原理一下子展示出來了。(仿照MicroBlocks內(nèi)置的驅(qū)動(dòng)庫(kù),是不是就可以模仿著寫自己的驅(qū)動(dòng)庫(kù)了呢?)

7 MicroBlocks內(nèi)置的HC-SR04驅(qū)動(dòng)庫(kù)

define提示我們前面用過的驅(qū)動(dòng)庫(kù)的Block塊,就是這兒的一個(gè)函數(shù),如果有第二個(gè)define,那就有第2個(gè)Block了。然后是默認(rèn)參數(shù),注釋。這個(gè)define里面包含的set read pin顯然就是MixlyArduinopinMode的動(dòng)作了。它們不是沒做。做了,使用者感覺不到。再向后面,就會(huì)看到ArduinopulseIn函數(shù)重新實(shí)現(xiàn)的過程,是通過兩個(gè)時(shí)間戳計(jì)算的,所以它當(dāng)然會(huì)在適用于各種各樣的板子時(shí),還能適用于ESP32板子的開發(fā),因?yàn)樗男K塊兒們都是用最底層的函數(shù)實(shí)現(xiàn)的。而這些最底層的函數(shù)由誰(shuí)來支持呢?大概就是那個(gè)支持各種各樣板子的“固件”——虛擬機(jī)。我們?cè)?/span>update firewire的時(shí)候,ESP32的固件被MicroBlocks重新燒寫,這個(gè)新固件支持的函數(shù)就是最底層的,用它們拓展出來的庫(kù),作用于新的板子,就滿足一次編寫,到處運(yùn)行了。再挖下去,寫到ESP32里面的固件在哪里?應(yīng)該是在MicroBlock自身的執(zhí)行程序里面,這很容易測(cè)試:①斷網(wǎng),更新固件,仍然能夠更新成功;②MicroBlocks除了一個(gè)exe可執(zhí)行程序再什么也沒有了。

8 HC-SR04驅(qū)動(dòng)庫(kù)內(nèi)幕

被MicroBlocks更新過固件后的ESP32一下子到了夏天,它們仿佛再不承認(rèn)自己是蝙蝠蛾的后代,它們的腦門上因?yàn)殚L(zhǎng)著小草而無(wú)所不能。

后面的事情,是有閑的時(shí)候,學(xué)習(xí)一下內(nèi)置庫(kù)們(畢竟硬著頭皮去改寫ADS1115INA219驅(qū)動(dòng)庫(kù)我還沒那個(gè)能力哈。MicroBlocks只有拓展出這些電壓、電流、霍爾傳感器的驅(qū)動(dòng)庫(kù),才可能使它應(yīng)用于ESP32的物理實(shí)驗(yàn)開發(fā)領(lǐng)域里面去;但是顯然,MicroBlocks一定沒有想到自己作為比Mixly還要傻瓜而友好的環(huán)境,對(duì)于普及和推廣它到達(dá)從來沒有任何編程經(jīng)驗(yàn)和滿身是隨想隨編、隨編隨試的不良編程習(xí)慣的人群中的重要意義——物理實(shí)驗(yàn)使用ESP32+傳感器模塊,極少有龐大的代碼量,只要接收到I2C和SPI模塊的數(shù)據(jù)就夠了~~)

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

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

    類似文章 更多