PeerTalk, BeagleBone og Raspberry Pi - 💡 Fix My Ideas

PeerTalk, BeagleBone og Raspberry Pi

PeerTalk, BeagleBone og Raspberry Pi


Forfatter: Ethan Holmes, 2019

Dette indlæg blev oprindeligt offentliggjort i to dele [1,2] på The Daily ACK den 25. august, 20012. Det er reposteret her på MAKE-webstedet med tilladelse.

Jeg kom på tværs af en fremragende smule troldmand af Rasmus Andersson kaldet PeerTalk. Det er et mål-C-bibliotek, der giver dig mulighed for at kommunikere mellem din iPhone og din Mac via USB-dockekablet ved hjælp af TCP-stik.

Min umiddelbare tanke var, at hvis dette virkelig kun afhænger af at have USB-hostfunktion i den fjerne ende, skal den samme mekanisme bruges til at tale med noget som BeagleBone eller Raspberry Pi, ikke kun din Mac. Dette ville gøre det muligt for dig at forbinde din telefon direkte til mikro-controllerkortet og at køre hardware direkte, meget ligesom Redpark-kablet, men omgå Apple Apples Eksterne Tilbehørsramme.

Så jeg begyndte at grave rundt i kildekoden for at se, om det var afhængigt af noget, der skulle være specifikt for OS X, viste det sig, at PeerTalk hovedsagelig var en rigtig god socketkode sidder oven på USB Multiplex Daemon (usbmuxd). Denne bit af software er ansvarlig for at tale med din iPhone over USB og koordinere adgangen til sine tjenester ved andre applikationer. Effektivt er det, hvad iTunes og Xcode bruger til at tale med din telefon, når du slutter det til din Macs USB-port.

Så enhver enhed, der ønsker at tale med iPhone ved hjælp af denne metode, har brug forusbmuxd. Heldigvis for mig er der en række mennesker, der har arbejdet ud, hvordan man snakker med iPhone fra Linux, og der er arbejdeusbmuxd til Linux.

Der er også Som et par andre afhængigheder, der ikke findes på lager Ångström Linux distribution på min BeagleBone, eller endda pakker viaopkg, bygningusbmuxd på min BeagleBone kræverlibusb ogcmake. Så før bygningenusbmuxd, Jeg var nødt til at byggecmake, hvilket betød at løse nogle problemer med de bestandskomprimeringsbiblioteker, der blev leveret med Ångström.

Men flere timer senere efter nok at vente på, at software til at bygge for at overbevise mig om, at inden jeg lavede en seriøs udvikling på BeagleBone, måtte jeg virkelig bygge en ARMv7 værktøjskæde på min Mac for at krydse kompilere ting i stedet for at bygge dem direkte på tavlen ....

... Jeg har formået at få en enkel"Hej" fra min iPhone til BeagleBone og derefter viaskærm til min Mac ved hjælp af port forwarding og den gamle standby,telnet.

Mens jeg havde hacking væk på at få det til at fungere, var jeg ikke alene. David House kiggede ned på nogle af de samme baggyder for at få PeerTalk til at tale med hans Raspberry Pi, og vi slog problemet frem og tilbage på Twitter, mens vi ventede på kode for at kompilere godt ind i natten ...

Mens jeg arbejdede i den ene ende, arbejdede David på den anden side og sammensatte en klient på Raspberry Pi sidder oven på usbmuxd det ville tale indbygget i PeerTalk på iOS, som han kaldte peertalk-python. Da vi havde kildekoden i begge ender, var det ikke så svært. Bare hårdt nok.

Hvis du vil replikere dette på BeagleBone eller Raspberry Pi, skal du først downloade og bygge PeerTalk-biblioteket, og derefter opbygge og implementere iOS- og OSX-eksempelprogrammerne og få det i gang.

Tilslut derefter og start din BeagleBone. Du skal bruge styret ved hjælp af en netadapter, som når du kompilerer ting. Det er muligt, at du tegner nok strøm, at din computer slukker for USB-porten for at beskytte sig selv og som følge heraf nedbryde din BeagleBone. Jeg havde det her sket et par gange før jeg til sidst tog en netadapter ud af min kontorskuffe. Men da du slår bordet ud af lysnettet, skal du også tilslutte et Ethernet-kabel, så du kanssh [email protected] og logge ind i bestyrelsen over netværket.

1. Gå videre og log ind på din BeagleBone som root. 2. Download, bygg og installerlibusb. Version 1.0.9 bygger, links og installerer okay. 3. Download, bygg og installerCMake,som du skal byggeusbmuxd senere. Du skal bruge den nyeste Git nightly checkout, da ældre versioner ikke opbygger, der har problemer med bestandenlibbz2kompression på BeagleBone.

4. Vi har også brug forlibplist,men dette er tilgængeligt som en del af pakkehåndteringssystemet på Ångström Linux, så alt hvad du skal gøre for at installere dette er typenopkg installer libplist-dev med det samme.

5. Download, bygg og installerusbmuxd. Version 1.0.8 bygger, links og installerer okay, selvom du måske vil brugeccmake og konfigurere manuelt, snarere end at brugeCMake, da det ikke kan synes at findelibusb inkludere filer, der blev installeret i/ Usr / local. 6. Opret enusbmux bruger

groupadd -r usbmux -g 114 useradd -r -g usbmux -d / -s / sbin / nologin -c "usbmux bruger" -en 114 usbmux

7. Da BeagleBoard ikke har syslog aktiveret som standard, og du skal bruge det til debugging, skal du tændesyslogd fra det relevante script i/etc/init.d.

8. Kør op adusbmux deamon, ved at skriveusbmuxd -v-vmed det samme. 9. Slut din iPhone til (værtsiden) USB på din BeagleBoard, du bør se nogle fejlfinding i/ var / log / messages.

10. Download David Housepeertalk-python og dens afhængigheder.

11. På din iPhone start PeerTalk-klienten til iOS.

12. Start python klienten på BeagleBone ved at skrivepython ./peertalk.py med det samme.

Indtast en besked ved prompten, og du skal se noget som dette ...

Derfra er det ret trivielt at bygge en"Hej Verden" Eksempel, bare ved at hackere med Davids kode og skifte hjerteslag LED, når BeagleBone modtager meddelelser.

def run (selv): framestructure = struct.Struct ("! IIII") ledOn = 'echo 1> / sys / klasse / leds / beaglebone :: usr0 / lysstyrke' ledOff = 'echo 0> / sys / class / leds / beaglebone :: usr0 / brightness 'i = 0 mens self._running: prøv: msg = self._psock.recv (16) hvis len (msg)> 0: frame = framestructure.unpack (msg) size = frame [3] msgdata = self._psock.recv (size) print "Modtaget:% s"% msgdata hvis jeg == 0: os.system (ledOn) i = 1 andet: os.system (ledOff) i = 0 undtagen: pass Hvilket får dig til dette punkt ...

Det er stort set hvor jeg har nået lige nu. Næste trin er en ordentlig applikation på iOS-slutningen af ​​ting med mere generisk kontrol af BeagleBone's header pins og en mere fleksibel Python backend på BeagleBone selv. David House lykkedes også at få alt op og arbejde på Raspberry Pi.

De eneste ændringer fra BeagleBone setup procedure er, at du skal gribelibplist ved brug afapt-get hellere endopkg, og da du ikke vil logge ind som root, skal du huske atsudousbmuxd -v-v når du starter USB-dæmonen. Bortset fra det, bør du være god at gå ...



Du Kan Være Interesseret

Abney Park spiller Maker Faire

Abney Park spiller Maker Faire


3D-udskrivning Topografiske kort fra rumfærdsdata

3D-udskrivning Topografiske kort fra rumfærdsdata


Åbne indkøbsplaner for "Low-Tech, High-Thinking" Vandfiltre

Åbne indkøbsplaner for "Low-Tech, High-Thinking" Vandfiltre


Denne autonome båd gik fra Californien til Hawaii og Beyond

Denne autonome båd gik fra Californien til Hawaii og Beyond