PeerTalk,BeagleBone和Raspberry Pi - 💡 Fix My Ideas

PeerTalk,BeagleBone和Raspberry Pi

PeerTalk,BeagleBone和Raspberry Pi


作者: Ethan Holmes, 2019

這篇文章最初發表於20012年8月25日的The Daily ACK上的兩部分[1,2]。它在MAKE網站上經過許可轉載。

我遇到了Rasmus Andersson稱為PeerTalk的精彩魔法。它是一個Objective-C庫,允許您使用TCP套接字通過USB底座電纜在iPhone和Mac之間進行通信。

我的直接想法是,如果這真的只依賴於遠端的USB主機模式功能,那麼應該可以使用相同的機制來與BeagleBone或Raspberry Pi進行對話,而不僅僅是Mac。這樣您就可以直接將手機連接到微控制器板並直接驅動硬件,就像Redpark電纜一樣,但繞過Apple的外部附件框架。

所以我開始深入挖掘源代碼,看它是否依賴於任何特定於OS X的東西,很明顯,PeerTalk主要是一些非常好的套接字代碼,位於USB Multiplex Daemon之上(usbmuxd)。這個軟件負責通過USB與iPhone通信,並協調其他應用程序對其服務的訪問。實際上,這是iTunes和Xcode在您將手機插入Mac的USB端口時與手機通信的方式。

因此,任何想要使用此方法與iPhone通信的設備都需要usbmuxd。幸運的是,有很多人已經研究過如何通過Linux與iPhone通信,並且有一個工作usbmuxd 對於Linux。

還有一些其他依賴項,這些依賴項在我的BeagleBone上的庫存ÅngströmLinux發行版中沒有,甚至包括opkg, 建造usbmuxd 在我的BeagleBone上需要libusb的cmake的。所以在建設之前usbmuxd,我不得不建立cmake的,這意味著解決Ångström附帶的庫存壓縮庫的一些問題。

然而幾個小時之後,等待了足夠的軟件來構建以說服我在BeagleBone上進行任何認真的開發之前,我真的不得不在我的Mac上構建一個ARMv7工具鏈來交叉編譯而不是直接在板上構建它們....

......我設法變得簡單了“你好” 從我的iPhone到BeagleBone然後通過屏幕 到我的Mac使用端口轉發和舊的支持,遠程登錄.

雖然我一直在努力讓這個工作,但我並不孤單。大衛之家俯視一些相同的後巷,讓PeerTalk與他的Raspberry Pi交談,我們在Twitter上來回打擊問題,同時等待代碼編譯到深夜......

當我在一端工作時,David正在另一端工作,將一個客戶端放在Raspberry Pi上 usbmuxd 這本來是與iOS上的PeerTalk本地交談,他稱之為peertalk-python。既然我們有兩端的源代碼,那就不那麼難了。夠硬了。

如果要在BeagleBone或Raspberry Pi上複製它,首先應下載並構建PeerTalk庫,然後構建和部署iOS和OSX示例應用程序並啟動並運行。

然後連接並啟動BeagleBone。在編譯時,您需要使用電源適配器為電路板供電。您可能會獲得足夠的安培數,計算機將關閉USB端口以保護自身,從而降低BeagleBone的電量。在我最終從我的辦公室抽屜裡挖出一個電源適配器之前,我曾經發生過這種情況。但是,由於您從主電源為電路板供電,因此您還必須連接以太網電纜SSH [電子郵件保護] 並通過網絡登錄電路板。

1.繼續以root身份登錄BeagleBone。 2.下載,構建和安裝libusb的。 Version 1.0.9構建,鏈接和安裝好。 3.下載,構建和安裝cmake的,你需要建立的usbmuxd 後來。 你需要獲取最新的Git nightly checkout,因為舊的發行版本沒有建立,有庫存問題libbz2BeagleBone上的壓縮。

我們也需要libplist,但是這可以作為ÅngströmLinux上的軟件包管理系統的一部分提供,所以你需要做的就是輸入opkg install libplist-dev 在提示。

5.下載,構建和安裝usbmuxd。版本1.0.8構建,鏈接和安裝沒關係,儘管您可能會使用ccmake 並手動配置,而不是使用cmake的, 因為它似乎無法找到libusb的 包含已安裝到的文件在/ usr /本地. 6.創建一個usbmux 用戶

groupadd -r usbmux -g 114 useradd -r -g usbmux -d / -s / sbin / nologin -c“usbmux user”-u 114 usbmux

7.由於BeagleBoard默認情況下沒有啟用系統日誌,而您需要它進行調試,請啟用syslogd的 來自相關的腳本/etc/init.d中.

8.跑上去usbmux deamon,打字usbmuxd -v -v在提示。 9.將iPhone插入BeagleBoard上的(主機端)USB,您應該看到一些調試滾動在/ var / log / messages中.

10.下載大衛之家peertalk,蟒蛇 及其依賴性。

11.在iPhone上啟動適用於iOS的PeerTalk客戶端。

12.鍵入,在BeagleBone上啟動python客戶端python ./peertalk.py 在提示。

在提示符下鍵入消息,您應該看到類似這樣的內容......

從那裡建立一個非常微不足道的“你好,世界” 例如,當BeagleBone收到任何消息時,只需查看David的代碼並切換心跳LED。

def run(self):framestructure = struct.Struct(“!IIII”)ledOn ='echo 1> / sys / class / leds / beaglebone :: usr0 / brightness'ledOff ='echo 0> / sys / class / leds / beaglebone :: usr0 / brightness'i = 0而self._running:try:msg = self._psock.recv(16)if len(msg)> 0:frame = framestructure.unpack(msg)size = frame [3] msgdata = self._psock.recv(size)print“Received:%s”%msgdata if i == 0:os.system(ledOn)i = 1 else:os.system(ledOff)i = 0除外:傳遞 這讓你到了這一步......

這幾乎就是我現在所處的位置。接下來的步驟是iOS端的正確應用程序,對BeagleBone的標頭引腳進行更通用的控制,以及BeagleBone本身更靈活的Python後端。 David House還成功完成了所有工作並開始使用Raspberry Pi。

BeagleBone設置程序的唯一變化是你應該抓住libplist 運用apt-get的 而不是opkg,因為你不會以root身份登錄,所以你應該記得須藤usbmuxd -v -v 當你啟動USB守護進程時。除此之外,你應該好好去......



您可能感興趣

方法:製作閃光頭帶

方法:製作閃光頭帶


製作卡丁車和車輪比賽:發布!

製作卡丁車和車輪比賽:發布!


讓它持久:完成機器人工廠

讓它持久:完成機器人工廠


2010年節日禮品指南:Maker給Cyber​​ Santa的信件

2010年節日禮品指南:Maker給Cyber​​ Santa的信件






最近的帖子