首頁 > 評測 > 一板兩用,這個可以有!——GrovePi+擴展板使用手記
一板兩用,這個可以有!——GrovePi+擴展板使用手記
- [導(dǎo)讀]
- GROVE模塊眾多,類型豐富,但是對于大部分樹莓派用戶來說,使用杜邦線來連接設(shè)備,有點不勝其煩。如果有個能提供標(biāo)準(zhǔn)GROVE接口的擴展板,而且又能與樹莓派引腳兼容的話,使用起來就方便多了!
GROVE模塊眾多,類型豐富,但是對于大部分樹莓派用戶來說,使用杜邦線來連接設(shè)備,有點不勝其煩。如果有個能提供標(biāo)準(zhǔn)GROVE接口的擴展板,而且又能與樹莓派引腳兼容的話,使用起來就方便多了!
GROVEPI+能滿足你的需求。
GROVEPI+的口號就是:連接樹莓派及GROVE傳感器!
GROVEPI+起源于Dexter公司的BrickPi,其初衷是將LEGO Mindstorms與樹莓派連接起來,項目以眾籌的方式發(fā)起,項目最初的目標(biāo)是針對愛好者、黑客、工程師及創(chuàng)客等用戶群體,隨后發(fā)起者發(fā)現(xiàn)了更大的目標(biāo)即教育市場。
GROVEPI+擴展板是GROVEPI+ START KIT套件中的一部分,該套件除了擴展板之外,還提供了大量的GROVE傳感器模塊,配合擴展板使用,在樹莓派上能完成大部分的學(xué)習(xí)及原型驗證任務(wù)。
擴展背面是26pin的GPIO連接器,其中包括電源接口等,GROVEPI+通過樹莓派的供電輸出來取電。
GROVEPI+擴展板中間部分的MCU是一顆ATMeg328p,提供了Arduino擴展功能,在MCU四周排列的GROVE接口均由這一顆MCU提供。GROVEPI+與樹莓派之間的通信通過I2C接口進行,所有Grove模塊通過通用4針連接器電纜連接到GrovePi +上的通用Grove連接器。
Grove Pi +上的ATMEGA328微控制器,充當(dāng)Raspberry Pi和Grove傳感器之間的解釋器,通過I2C接口來發(fā)送,接收和執(zhí)行RaspberryPi發(fā)送的命令。ATMEGA328中預(yù)先寫入了控制代碼,具體詳情可以參考GROVEPI+在Github上的代碼。
如果想對這顆MCU進行編程,重新定制擴展板的功能,可以使用擴展板上的ISP接口來進行。該ISP接口只引出了焊盤,沒有焊接排針。
另外一種更直接的方式是使用avrdude直接對其進行編程,這是命令行方式的編程操作,需要預(yù)先將代碼編譯成.hex格式的二進制文件,這種方法適合用來對固件進行升級。參考代碼如下
avrdude -c gpio -p m328p -U flash:w:.build/uno/firmware.hex
參考官方給出的原理圖,其中Arduino部分的內(nèi)容如下
可以看到擴展板上引出的所有接口均來自ATMEG328,至于樹莓派本身的GPIO等接口,只引出了1~26pin(物理接口),參考原理圖如下
接下開始安裝配置軟件部分。
只需要使用一條簡單的命令就可以,如下
curl -kL dexterindustries.com/update_grovepi | bash
該腳本程序會下載并配置好所有相關(guān)的軟件依賴及硬件配置,該命令會從網(wǎng)絡(luò)上下載相關(guān)的軟件包,所以先要保證樹莓派能正常連接Internet。
接下來使用git將演示代碼下載到本地,命令如下
git clone https://github.com/DexterInd/GrovePi
我們先來研究下相關(guān)的python代碼,看看樹莓派是如何與擴展板通信的,部分代碼如下
上述代碼中的digitalRead及digitalWrite函數(shù)都使用了I2C操作,默認(rèn)的I2C地址為0x04,我們可以通過i2cdetect命令來查看設(shè)備狀態(tài)
可以看到0x04地址,這就是擴展板上I2C設(shè)備的地址。為什么不使用串口來通信呢?我們都知道,樹莓派上的串口默認(rèn)讓BLE占用了,所以要使用BLE的話,就不能使用該串口了。
接下來就可以使用C#、Python語言通過I2C接口來控制Arduino了。一段簡單的代碼及程序運行效果,如下
from grove_rgb_lcd import *
setText("Hello world\nLCD test")
setRGB(0,128,64)
# Slowly change the colors every 0.01 seconds.
for c in range(0,255):
setRGB(c,255-c,0)
time.sleep(0.01)
setRGB(0,255,0)
setText("Bye bye, this should wrap")
程序運行效果如下
此時的ATMEG328充當(dāng)一個解釋器,接收來自樹莓派的命令,然后忠實的執(zhí)行,當(dāng)然此時的ATMEG328也不能另作它用了。
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍牙數(shù)字耳機找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設(shè)計
預(yù)算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時前
- PLC項目調(diào)試修改
預(yù)算:¥100001天前
- 起動電機控制器開發(fā)
預(yù)算:¥1100001天前