小編今天介紹的項(xiàng)目是通過(guò)使用CY8CKIT-048 PSoC模擬協(xié)處理器先鋒套件和樹(shù)莓派,進(jìn)行全天24小時(shí)不間斷的環(huán)境數(shù)據(jù)監(jiān)控。
本文轉(zhuǎn)自Hackster.io網(wǎng)站(點(diǎn)擊文章末尾的“閱讀原文”訪問(wèn)該網(wǎng)站相關(guān)頁(yè)面),由小編編譯,歡迎拍磚。
項(xiàng)目簡(jiǎn)介
通過(guò)使用CY8CKIT-048 PSoC模擬協(xié)處理器先鋒套件和樹(shù)莓派(Raspberry Pi),進(jìn)行24小時(shí)不間斷的環(huán)境數(shù)據(jù)監(jiān)控。
準(zhǔn)備材料
硬件:
-
賽普拉斯PSoC模擬協(xié)處理器先鋒套件×1
(https://www.hackster.io/cypress/products/psoc-analog-coprocessor-pioneer-kit)
-
樹(shù)莓派2代B型或其他運(yùn)行Linux的設(shè)備 ×1
(https://www.hackster.io/raspberry-pi/products/raspberry-pi-2-model-b)
-
USB-A至微型USB線纜
構(gòu)建系統(tǒng)
賽普拉斯CY8CKIT-048 PSoC?模擬協(xié)處理器先鋒套件是個(gè)很有趣的開(kāi)發(fā)板,可與PSoC Creator 集成開(kāi)發(fā)環(huán)境(IDE)輕松配合使用。
其中包括用于與主板之間通信的工具——Bridge Control Panel。
Bridge Control Panel允許用戶(hù)使用I2C協(xié)議與相關(guān)應(yīng)用設(shè)備之間雙向接收/發(fā)送數(shù)據(jù)。數(shù)據(jù)可用于繪制數(shù)據(jù)圖表或存儲(chǔ)到文件。
該工具的“問(wèn)題”在于,其僅限在Windows系統(tǒng)中使用,而不適用于運(yùn)行Linux系統(tǒng)的設(shè)備,例如Raspberry Pi。
下面,我們創(chuàng)建二十四小時(shí)環(huán)境數(shù)據(jù)監(jiān)控的應(yīng)用實(shí)例。
試想,如果可以用兼容的Linux / Raspberry Pi的東西來(lái)替代Bridge Control Panel會(huì)有怎樣的效果?
首先,來(lái)看看I2C通信協(xié)議是如何通過(guò)USB連接工作的。
主板上有兩個(gè)微控制器:
-
主芯片是CY8C4A45LQI,用來(lái)運(yùn)行我們的應(yīng)用程序,譬如說(shuō),收集一些傳感器數(shù)據(jù),并傳輸?shù)?strong style="">I2C接口上。
-
CY8C586LTI作為輔助芯片,通過(guò)一個(gè)USB接口連接到I2C上獲取相關(guān)數(shù)據(jù),以實(shí)現(xiàn)I2C-USB bridge。
這塊主板的USB HID接口具有一些專(zhuān)有協(xié)議。
幸好,該協(xié)議與Cypress 3240 USB to I2C bridge基本相同,Kevin Kirkup已經(jīng)創(chuàng)建了一個(gè)相關(guān)的庫(kù)。
https://github.com/kevinkirkup/cy3240-i2c-bridge
把項(xiàng)目從已經(jīng)淘汰的libhid遷移到libhidapi,并利用Wireshark檢測(cè)來(lái)自Bridge Control Panel的USB命令:
將上述設(shè)置進(jìn)行更新,使其適用于CY8CKIT-048PSoC?模擬協(xié)處理器先鋒套件。
主要的改變?nèi)缦拢?/p>
-
調(diào)整USB產(chǎn)品和供應(yīng)商ID
-
調(diào)整協(xié)議,使其適用于CY8CKIT-048PSoC?模擬協(xié)處理器先鋒套件
-
把項(xiàng)目從已經(jīng)淘汰的libhid遷移到libhidapi
-
確保代碼可兼容64位系統(tǒng)
欲查詢(xún)代碼,可訪問(wèn)我的GitHub賬戶(hù)
https://github.com/bluetiger9/cypress-usb-i2c-bridge.git dd
使用方法
在Raspberry Pi / Linux設(shè)備上安裝電路板的操作步驟:
需要為CY8CKIT-048PSoC?模擬協(xié)處理器先鋒套件的開(kāi)發(fā)板上添加一些udev規(guī)則。
這樣,即使非根(non-root)用戶(hù)也擁有訪問(wèn)的權(quán)限。
為此,我們創(chuàng)建出49-hid-development.rules文件:
內(nèi)容如下:
重新啟動(dòng),使新的設(shè)置生效:
構(gòu)建項(xiàng)目之前,首先要安裝所需的依賴(lài)項(xiàng):
然后,從我的GitHub資源庫(kù)克隆項(xiàng)目:
項(xiàng)目配置:
現(xiàn)在這個(gè)代碼已經(jīng)準(zhǔn)備好編譯,運(yùn)行“make” 程序了。
但是,還需要再等一下。在src目錄里有一個(gè)main.c文件:
所以,我們需要根據(jù)應(yīng)用程序發(fā)布的數(shù)據(jù)類(lèi)型先對(duì)此進(jìn)行編輯。
例如,我的項(xiàng)目要發(fā)布包含四組傳感器值的數(shù)據(jù)結(jié)構(gòu)(Struct),包括:土壤阻力(水分)、溫度、濕度及照度:
從你的PSoC Creator項(xiàng)目中如實(shí)復(fù)制此struct。
我們還需要根據(jù)已經(jīng)獲得的字段,編輯打印數(shù)據(jù)的代碼:
現(xiàn)在可以使用“make”來(lái)編譯代碼了:
接下來(lái),我們要檢查一下這個(gè)應(yīng)用程序能否正常運(yùn)作:
如果一切正常,我們可以利用ts指令創(chuàng)建一些時(shí)間戳、改變輸出方式為“輸出到文件”,然后可以通過(guò)“nohup”指令運(yùn)行該應(yīng)用程序。這樣,即使用戶(hù)從SSH退出后仍可以保持運(yùn)行狀態(tài):
輸出到文件的狀態(tài)顯示如下:
至此,這個(gè)應(yīng)用程序即可全天24小時(shí)運(yùn)行。經(jīng)過(guò)一段時(shí)間后,就可以對(duì)該文件進(jìn)行處理,比如繪制數(shù)據(jù)圖表。
OK,盡情享用吧!
原理圖
將賽普拉斯開(kāi)發(fā)板連接到樹(shù)莓派
https://halckemy.s3.amazonaws.com/uploads/attachments/258660/cypr_rpi_C2Drgfd4mm.png
可利用USB纜連接兩者。通過(guò)Micro USB線纜給樹(shù)莓派供電。
代碼
Cypress USB-I2C bridge
-
bluetiger9
https://github.com/bluetiger9
-
cypress-usb-i2c-bridge
https://github.com/bluetiger9/cypress-usb-i2c-bridge
-
Linux
+關(guān)注
關(guān)注
87文章
11320瀏覽量
209840 -
樹(shù)莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105719
原文標(biāo)題:如何在Linux/樹(shù)莓派(Raspberry Pi)上使用賽普拉斯I2C-USB Bridge
文章出處:【微信號(hào):CypressChina,微信公眾號(hào):Cypress教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論