|
ADS1115和INA219還不能在microBlocks下正常工作,所以心里總惦記是個事兒。早起想再琢磨一下,怕影響別人,沒開燈,黑咕隆咚看不清接線。VL6180X的接線還沒拆,正好在microBlocks下測試一番。Wemos D1 R32號稱是最像Arduino UNO的板子,手上的這個是仿制板,排母不但有印錯了IO的,而且絲印和母座偏離,看著插孔會插錯位置的。幸虧Arduino UNO的引腳比較熟悉,模模糊糊都能摸出來正確位置。 本來以為吹氣般容易的事兒,結果整死出不來正常測量來:microBlocks自帶的VL6180X驅動太魔性了?。?! 最初調入的時候,只顯示了常用的3個Block塊。沒注意看,第1個是vl8161 connected。因為直接say不出來vl6180x read(mm)數據來,總提示“Error:I2Cvalue must be between 0 and 255”,于是強行去給vl8161connected賦值,總無法拖動;保存出去ubp用文本格式改寫,直接返回來就是錯誤。 再去怎么做?顯示高級積木,然后打開setup、setup1、setup2去看原理,吼!差點兒嚇癱了,光list就好幾坨,去核對一個一個自定義的write和read,有點兒說不過去了。
琢磨microBlocks干啥?簡單啊;這是簡單嗎?顯然不夠簡單了。取出來Arduino IDE看看是不是模塊出問題了。直接編譯AdaFruit自帶的例子,打開串口監(jiān)視器,VL6180X是正常的。 看來問題就在microBlocks自帶的驅動庫上面了。到wiki上找一找,microBlocks沒有提供這種傳感器的例程。想了N久。還是得梳理一下自帶vl6180x庫的邏輯,沒懂作者的邏輯,但是明顯的_vl6180x initalized是個開關量:如果自己是0,就去折騰,折騰完了再把自己置為非0…………
問題出現了,_vl6180x initalized在什么地方置為非0的呢?好像沒看見。那我們自己先設一個_vl6180x initalized非0應該就可以了吧?一試果然,菜刀呢?這個庫的作者在搞什么啊?! 在代碼區(qū)放四個“當啟動時”程序塊,_vl6180x initalized分別設為100、-1000、280和0,依次點擊,點到右上角的_vl6180x initalized為0的程序塊時,microBlocks殺死了VL6180X模塊,數據也不再采集。
在_vl6180x initalized非0的情況下畫圖,一切正常。microBlocks自帶有VL53L0X和VL53L1X的驅動庫,只是手邊沒有這兩個模塊。不管怎么說,microBlocks可以做不少事兒了,現在。
是該總結總結、體會體會的時候了: 1.microBlocks例程太少。一少是官網learn那里,就少有這種傳感器模塊的例子應用,這可能是microBlocks定位不在這個調調上的原因。它首先是針對小朋友們用著是否有趣和活潑去的,這種裸傳感器不易引起小朋友的樂趣,可能不是開發(fā)團隊的關注點。二少是雖然這些驅動庫改寫于Arduino下的例子,但是改寫完畢,原來的Arduino例程多數參考不上了。一邊看Arduino代碼一邊用microBlocks能是開發(fā)者的本心嗎?三少是microBlocks的wiki訪問速度比較慢,好像不番茄是看不到的。 2.microBlocks學習資料少。這個可以理解,畢竟是正在完善中的工具。但是一些應用的傳感器就需要慢慢慢慢的積累經驗,比如這里的VL6180X傳感器,剛開始想破腦袋也想不到把開關量先初始化個非0即可,另外象ESP32直接測引腳上的模擬電壓,microBlocks大概是為了統(tǒng)一標準吧,竟然全部統(tǒng)一成了8位轉換的。還有就是沒有的驅動,硬撐著要自己寫,這個就失去了“低代碼”的意義了。人們選擇低代碼工具,不只是編程的門檻問題,還有一個代碼的健壯問題,就是容錯能力,低代碼工具如果沒有足夠強的健壯性,非專業(yè)使用者拖拉之后不能直接用,就不太好玩了。 microBlocks當前不那么讓人滿意,但我還真祝愿它千萬別“鴿”了,象前面測試時在代碼區(qū)直接放4個程序片,然后piapia點誰誰運行,誰運行誰出效果,這玩意還真的是太神仙了!還真沒哪個IDE能干出這種喪心病狂、神乎其技的事兒來!因為過度的方便以致microBlocks萬一不完美就會痛恨它的亞子就這樣,這和足球完全不同。 3.目前microBlocks能使用來做的關于物理實驗的事情——測距:超聲波傳感器HC-SR04、VL6180X。測正電壓:直接用引腳。溫度和壓強:DHT11和22、BMP280。欠缺HX711測力及ADS1115、INA219。其它的可慢慢增補。 4.是否可以硬件虛擬化的問題。當microBlocks升級固件失敗的時候,就會跳出來debuger,可以看到升級固件的內幕,是把vmData數據寫入到它所支持的ESP32等開發(fā)板里。既然能夠制作各種板子的固件和虛擬機了,那么是否也能把硬件也虛擬了,即使沒有硬件或不方便把硬件接入電腦的時候,也能用microBlocks做點兒事呢? 對了,忘了記一下接線腳了:Vin-5V;余下SDA、SCL、GND一一對應即可,VL6180X上面有個2V8,是專門用于穩(wěn)壓輸出給別的東西使用的。也不知道什么東西需要用2.8V穩(wěn)壓。 |
|
|
來自: 新用戶5228KeDY > 《待分類》