ROHM感測器評估套件的3D外殼以及RohmMultiSensor程式館更新

RohmMultiSensor Library

不久前,我創建了RohmMultiSensor – Arduino程式館,利用該程式館可以輕鬆控制ROHM感測器評估套件中的多個感測器。第一篇文章發佈以來,程式館API發生了一些變化,使得測量更加容易。此外,RohmMultiSensor現在為每個感測器和擴展板提供3D列印外殼!

硬體

  • Arduino UNO 或 Mega
  • ROHM 感測器評估套件
  • 3D 列印感測器外殼,詳細資訊請參閱 Thingiverse

軟體

  • Arduino IDE
  • RohmMultiSensor 程式館,詳細資訊請參閱 GitHub

工具

  • 3D 印表機

在本文中,我們將介紹該程式館的一些新功能和改進功能。我們還會介紹感測器和擴展板的3D列印外殼。

 

新測量方法

首先解釋一下我如何——也許更重要的是為什麼——改變了測量方式。在之前版本的程式館中,您調用了一個函數,其返回值如下所示:

雖然這種方法非常直觀,而且對於大多數感測器來說效果很好,但對於返回多個值的感測器而言並不方便。比如,加速度計會返回三個值:X、Y和Z軸的加速度。然後,該函數必須返回一個包含三個值的陣列。用C/C++術語來說,這意味著返回一個指向陣列的指標,動態地分配一個新的陣列。陣列用完之後,我們需要手動釋放該陣列以釋放記憶體。

在C/C++中動態分配陣列並重新分配陣列在C/C++中並不少見,但對於剛剛開始程式設計且尚未完全理解記憶體管理和指標等內容的人來說,這並不是最直觀的。

為了讓Arduino初學者便於使用該程式館,測量系統發生了以下變化:每個感測器仍然具有原始 .measure() 函數。但是,這個函數不帶參數,不返回任何東西。感測器測量的值被存儲一個測量變數中,該變數是感測器類的一部分。

這個新系統也意味著程式館能夠更好地處理非同步測量和中斷。

 

改進的中斷支援

更新程式館還改進了對中斷的支援。在舊版本中,唯一支援——實際上是需要——中斷的感測器是BM1422GMV地磁感測器。但是,幾乎所有使用I2C匯流排的感測器都有某種形式的中斷。這就是為什麼現在程式館可以支援KX022加速度計的中斷功能,後續我會提供更多支援!

現在,實現中斷的方式非常簡單:每次Arduino接收到感測器的中斷後,測量變數就會被更新。這個值一直有效,直到新中斷到達。此時,系統從感測器讀取一個新值並保存。

以下代碼展示了如何將BM1422GMV和KX022與中斷一起使用。

由於KX022不需要中斷工作,因此可以禁用中斷!

 

感測器外殼

除了RohmMultiSensor程式館,我們還為感測器製作了重要的外殼!憑藉這些裝置,您可以將感測器安裝在任何位置,然後使用線將它們連至擴展板。如果您需要確保像加速度計和磁力計這樣的感測器牢固安裝並提供精確測量,或者需要將感測器擴展板放在單獨的外殼中,這將非常有用。
將感測器安裝到外殼中非常簡單。所有外殼都由兩部分組成:下半部分和上半部分。

RohmMultiSensor Library

圖1 KX022-1020或BM1422GMV等感測器的通用外殼。左邊為下半部分,右邊為上半部分。

只需將感測器插入外殼的下半部分,讓引腳突出另一側即可。

RohmMultiSensor Library

圖2 插入外殼下半部分的感測器,底視圖(左)和頂視圖(右)

然後,用兩個M3螺栓將感測器固定到位。

RohmMultiSensor Library

圖3 裝有兩個M3螺栓的感測器,底視圖(左)和頂視圖(右)

現在只需要用M3螺栓將外殼的上半部分固定到下半部分。完成!外殼現在可以自由安裝在幾乎任何東西上。

RohmMultiSensor Library

圖4 裝配完成的感測器外殼

有些感測器,比如紫外線感測器或顏色感測器,需要與外界進行光學接觸。這些感測器的外殼設計能夠實現這種光學接觸,如下圖所示。

RohmMultiSensor Library

圖5裝配完成的UV感測器外殼

當然,如果沒有擴展板外殼,那麼這個外殼清單就不完整!擴展板外殼可以讓您將Arduino和ROHM感測器評估擴展板放入一個非常方便的箱子中,同時仍然能夠在上面安裝感測器!

RohmMultiSensor Library

圖6 擴展板外殼

RohmMultiSensor Library

圖7 感測器擴展板的頂蓋

RohmMultiSensor Library

圖8 感測器擴展板的底蓋

當然,還有很多需要改進的地方。如上文所述,許多其他感測器也可以使用中斷,實現這些功能也不錯。另外,我們可以設法在運行程式(sketch)時重新配置感測器設定,該功能也很有用。目前,這個過程只能在Arduino啟動、構建感測器類時完成。

如果您想查看更詳細的程式館檔案,請訪問以下連結: RohmMultiSensor Wiki。該網頁將始終為您呈現最新的變化和程式館更新。與往常一樣,非常感謝您閱讀本文,如果您有任何改進建議,請在我的GitHub留言或在本文下方進行評論!