Jeffrey Cross
Jeffrey Cross

PeerTalk, BeagleBone ve Ahududu Pi

Bu yazı ilk olarak 25 Ağustos 20012 tarihli The ACK The Daily ACK'da iki bölüm halinde [1,2] yayınlandı. MAKE sitesinde izin alınarak yeniden yayınlandı.

PeerTalk adında Rasmus Andersson tarafından mükemmel bir sihirbazlık bölümüne rastladım. TCP yuvalarını kullanarak iPhone ve Mac'iniz arasında USB bağlantı kablosu üzerinden iletişim kurmanıza olanak sağlayan bir Objective-C kütüphanesidir.

Benim doğrudan düşüncem, eğer bu yalnızca USB ana bilgisayar modu yeteneğinin uzak uçta olmasına bağlı olarak, aynı mekanizmanın sadece Mac'iniz değil, BeagleBone ya da Raspberry Pi gibi bir şeyle konuşabilmesi için kullanılması gerektiğiydi. Bu, telefonunuzu doğrudan mikro denetleyici anakartına bağlamanıza ve doğrudan Redpark kablosu gibi donanım kullanmanıza, ancak Apple’ın Harici Aksesuar çerçevesini atlamanıza olanak tanır.

Bu yüzden, OS X'e özgü herhangi bir şeye bağlı olup olmadığını görmek için kaynak kodun içinde araştırmaya başladım, PeerTalk’un USB Multiplex Daemon’un (gerçekten çok güzel bir soket kodu) üzerine oturtulmuş bir kod olduğu anlaşıldı.usbmuxd). Bu yazılım parçası iPhone'unuzla USB üzerinden konuşmaktan ve diğer uygulamalarla servislerine erişimi koordine etmekten sorumludur. Etkili bir şekilde, Mac'inizin USB bağlantı noktasına taktığınızda telefonunuzla konuşmak için iTunes ve Xcode'un kullandığı şey budur.

Bu nedenle, iPhone ile bu yöntemi kullanarak konuşmak isteyen herhangi bir cihazın ihtiyacı var.usbmuxd. Neyse ki benim için, iPhone'dan Linux ile nasıl konuşulacağını bilen bir sürü insan var.usbmuxd Linux için.

Ayrıca BeagleBone'umdaki hisse senedi Ångström Linux dağıtımında mevcut olmayan bir kaç bağımlılık daha var, hattaopkg, yapıusbmuxd benim BeagleBone gerektirirlibusb vecmake. Yani inşa etmeden önceusbmuxdİnşa etmek zorunda kaldımcmakeBu, Ångström ile birlikte gönderilen stok sıkıştırma kitaplıklarıyla ilgili bazı sorunların çözülmesi anlamına geliyordu.

Ancak birkaç saat sonra, yazılımın kurulmasını beklemekle birlikte, beni BeagleBone üzerinde ciddi bir gelişme yapmadan önce Mac'te bir şeyleri doğrudan tahtaya koymak yerine derlemek için derlemem gerektiğine ikna etmek zorunda kaldım….

… Basit bir şey almayı başardım"Merhaba" iPhone'umdan BeagleBone'a ve ardındanekran Mac’ime bağlantı noktası yönlendirmeyi kullanarak ve bu eski bekleme modunu kullanaraktelnet.

Bu çalışmayı almaktan kaçarken, yalnız değildim. David House, PeerTalk'un Raspberry Pi'siyle konuşmasını sağlamak için aynı arka sokakların bazılarına bakıyordu ve geceleri kodun derlenmesini beklerken bu sorunu Twitter'da ileri geri attık…

Bir ucunda çalışırken, David diğer ucunda çalışıyordu ve üstüne oturan Ahududu Pi'de bir müşteriyi bir araya getirdi. usbmuxd iOS'ta peertalk-python adını verdiği PeerTalk ile yerel olarak konuşurdu. Her iki ucun da kaynak koduna sahip olduğumuz için zor olmadı. Sadece yeterince zor.

Bunu BeagleBone veya Raspberry Pi'de çoğaltmak istiyorsanız, önce PeerTalk kütüphanesini indirip derlemeniz, ardından iOS ve OSX örnek uygulamalarını oluşturup dağıtmanız ve çalıştırmanız gerekir.

Ardından BeagleBone'unuzu bağlayın ve önyükleyin. Bir şeyleri derlerken olduğu gibi panoya bir ana adaptör kullanarak güç vermeniz gerekir. Bilgisayarınızın kendisini korumak için USB bağlantı noktasını kapatması ve bunun sonucunda BeagleBone'unuzu kapatması için yeterli amperi çizmeniz mümkündür. Sonunda ofis çekmecemden bir ana adaptör çıkarmadan önce birkaç kez başıma geldim. Ancak, kartı ana şebekeden beslediğiniz için, bir Ethernet kablosu bağlamanız gerekir.sSH [e-posta korumalı] ve pano üzerinden ağ üzerinden giriş yapın.

1. Devam edin ve BeagleBone'unuza root olarak giriş yapın. 2. İndirin, kurun ve kurunLibusb. Version 1.0.9 oluşturur, bağlantılar ve tamam yükler. 3. İndirme, oluşturma ve yüklemecmake,inşa etmeniz gerekenusbmuxd sonra. Eski sürüm sürümlerinin oluşturulmadığı ve stokta sorun yaşadığı için en son Git gecelik ödemeyi almanız gerekir.libbz2BeagleBone'da sıkıştırma.

4. Ayrıca ihtiyacımız var, libplistancak bu Ångström Linux'taki paket yönetim sisteminin bir parçası olarak mevcuttur, bu yüzden bunu kurmak için yapmanız gereken tek şey türdür.opkg libplist-dev yükle istendiğinde.

5. İndirme, oluşturma ve yüklemeusbmuxd. Sürüm 1.0.8'i kullanmak istemenize rağmen tamam, bağlantı kurar ve kurarccmake ve kullanmak yerine elle yapılandırıncmake, bulmak gibi görünmüyorlibusb içine kurulmuş dosyaları dahil et/ Yerel / usr. 6. oluşturunusbmux kullanıcı

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

7. BeagleBoard varsayılan olarak syslog özelliğini açmadığından ve hata ayıklamak için ihtiyacınız olacaksa,syslogd'nin ilgili komut dosyasından/etc/init.d.

8. Koşmakusbmux deamon, yazarakusbmuxd -v -vistendiğinde. 9. iPhone'unuzu BeagleBoard'unuzdaki (ana bilgisayar tarafındaki) USB’ye takın;/ Var / log / mesajları.

10. David House’u indirinpeertalk-piton ve onun bağımlılıkları.

11. iPhone'unuzda iOS için PeerTalk istemcisini başlatın.

12. BeagleBone'daki python istemcisini yazarak başlatın.python ./peertalk.py istendiğinde.

Komut istemine bir mesaj yazın ve böyle bir şey görmelisiniz…

Oradan bir inşa etmek oldukça önemsiz"Selam Dünya" Örneğin, sadece David’in koduyla uğraşarak ve BeagleBone herhangi bir mesaj aldığında kalp atışı LED’ini değiştirerek.

def run (self): framework = struct.Struct ("! IIII") ledOn = 'echo 1> / sys / class / leds / beaglebone :: usr0 / parlaklık' ledOff = 'echo 0> / sys / class / leds / beaglebone :: usr0 / brightness 'i = 0, self._running yaparken: deneyin: msg = self._psock.recv (16) eğer len (msg)> 0: frame = framestructure.unpack (msg) size = frame [3] msgdata = self._psock.recv (size) print "Alınan:% s" i == 0 ise% msgdata: os.system (ledOn) i = 1 başkası: os.system (ledOff) i = 0 hariç: pass Seni bu noktaya getiren…

Şimdilik ulaştığım yer oldukça güzel. Sonraki adımlar, BeagleBone’un başlık pinlerinin daha genel kontrolü ve BeagleBone’un üzerinde daha esnek bir Python arka ucuyla iOS ucunda uygun bir uygulamadır. David House ayrıca Ahududu Pi ile ilgili her şeyi ayarlayıp çalışmayı başardı.

BeagleBone kurulum prosedüründeki tek değişiklik, yakalamanız gereken şey.libplist kullanmaapt-get ziyadeopkg, ve root olarak giriş yapmadığınızdansudousbmuxd -v -v USB arka plan programı başlattığınızda. Bunun dışında gitmek için iyi olmalısın…

Hisse

Yorum Bırakmak