Kontroller en Star Wars BB-8 Droid med armbevegelser og IBM Bluemix Internett-ting

Hva du skal skape

Velkommen! I vår tidligere veiledning, Kontroller en Droid With Your Mind og IBM Bluemix Internet of Things, dekket vi Joshua Carrs bruk av Emotiv Insight-headsettet for å kontrollere en Star Wars BB-8-droid med sine tanker. Hvis du ikke tror på meg, kan du sjekke det ut eller se videoen nedenfor.

Det er gjort mulig med noen fantastiske forbrukerhardware og IBM Bluemix-integrasjon med Internett av ting.

I dagens veiledning vil jeg veilede deg gjennom mitt intervju med Consulting IT Specialist Rob Peeren. Han opprettet den populære videoen på toppen, og viste hvordan han brukte armbånds- og armbevegelser til å kontrollere BB-8 med nok nøyaktighet til å spille fotball (eller hjernerystelsefotball som noen kaller det).

Vi vil også fortsette denne serien på IBM Bluemix og Ting for Internett (IoT) med spesifikke trinnvise opplæringsprogrammer om hvordan du kan prøve ut mer av dine egne prosjekter. Gi oss beskjed om hvilke typer IoT-emner du vil se mer om i fremtiden. 

Hvis du vil ha en bredere oversikt over IBM Bluemix, oppfordrer jeg deg til å se David Barnes introduksjon nedenfor:


Som alltid, del dine ideer og tilbakemelding i kommentarene nedenfor eller nå meg direkte på Twitter @ reifman. Du kan også nå ut til Rob Peeren @robobob eller via @IBMCloud.

Armbånd Controller Komponenter

Her er elementene i Peeren's armband demonstrasjon:


  • Myo Gesture Control Armband
  • Den blå Raspberry Pi som mottar inngang fra armbåndet og sender den til Bluemix-skyen (ikke bildet)
  • Sølv Raspberry Pi som leverer data fra Bluemix til BB-8 via Bluetooth Low Energy
  • Sphero Star Wars BB-8 Droid
  • Golfball og Darth Vader ikke vist (sannsynligvis henger ut i stjernevognen)

Du kan kjøpe Myo armbåndet i svart eller hvitt for $ 199 USD:

Her er et par innledende videoer av Myo Armband som er morsomme å se, spesielt hvis du ikke har sett det før. 

Her er den generelle produktinnføringen:

Og denne er målrettet mer på utviklere:

De tilbyr en rekke løsninger for bruk, samt et utmerket utviklersted.

Og selvfølgelig, her er BB-8 igjen og hvordan det kom til å være:

Bygg applikasjonen

Nå, la oss dykke inn på hvordan Peeren bygget demonstrasjonen ved hjelp av IBM Bluemix Internet of Things. I dagens episode gir jeg en generell oversikt fra intervjuet mitt med Peeren. Det er mulig at vi skal gjøre et steg for steg sammen i nær fremtid - gi oss beskjed i kommentarene nedenfor hvis du vil være interessert i dette!

Her er et skjermbilde som viser hvordan Bluemix fungerer med enheter og IoT:

Her er et høyt nivå arkitektonisk bilde av hva som skjer mellom Bluemix og hver av Raspberry Pis i Peeren's video (lære mer om MQTT her):

Sette opp en Bluemix-applikasjon

Siden jeg ikke drar deg gjennom programoppsettet, kan du være interessert i en gjennomgang av Bluemix-applikasjonen UX gitt av IBM Design Lead, Tarun Gangwani:

I utgangspunktet kan du opprette et program fra noen av Bluemix-kedler, inkludert Internett av ting Platform Starter.

Her er Peers Dashboard, som inkluderer SDK for NodeJS og Internett av Things Platform som han bruker for å motta data fra Myo-armbåndet og sende det til BB-8:

Kalibrere armbåndet til bevegelsene dine

Peeren anbefaler at du trener med Myo armbåndet etter å ha kalibrert det. Her er en video fra Opprette en tilpasset kalibrering av Myo-armbåndet som viser hvordan dette fungerer (se også Hva kan Myo-armbåndet faktisk gjøre):

I utgangspunktet kalibrerer du det med noen få enkle bevegelser og praktiserer bevegelsene dine slik at de kan hente opp dine intensjoner. Peeren brukte følgende bevegelser for videoen:

  • Vifter inn for å svinge til venstre
  • Vinker ut for å sving til høyre
  • Knyttneve for å få det til å stoppe
  • Spreise fingrene for å få det til å gå
  • Raising armen til å snurre 180 (Tony Hawk ville være stolt og si da, "Gjør det midt i luften Droid!")

Akkurat som det tok Carr timer å trene Emotiv Insight, sier Peeren at det trener å jobbe med Myo. Kontrollsystemer er ikke helt automatiske ennå - du kan ikke bare sette på hjelmen og flyve helikopteret nøyaktig (beklager å bumme deg ut av actionfilmforfattere.)

Sende armbånds telemetri til Bluemix

Som nevnt ovenfor mottar den blå Raspberry Pi innspill fra armbåndet og sender den til Bluemix-skyen. Det gjør dette ved å kjøre Python-kode og MQTT for å kommunisere med Bluemix.

I hovedsak sender Myo-armbåndet telemetri via Bluetooth til Bluetooth-adapteren på Raspberry Pi. Deretter tar Python-koden telemetrien og sender den til Bluemix i skyen. Alle data kommer inn som en JSON nyttelast.

Her er et skjermbilde av Peeren's Python-kode:

Hvis du vil dykke dypere i dette området, anbefaler jeg at du sjekker ut Thalmic Labs Developer portal og sin uoffisielle biblioteksside. Du kan også sjekke ut denne relaterte videoen av et Myo-armbånd som styrer en Raspberry Pi-hjulrobot (den har et bra lydspor):

Bearbeiding av armbåndsdata innenfor Bluemix

Innen Bluemix kan dataene omdannes ved hjelp av Node-RED visuell editor. Vi må konvertere innkommende Myo-bevegelser til kommandoer som BB-8 forstår i driveren / språket.

For eksempel blir armbånd opp oversatt til BB-8: start og stopp. Her er et skjermbilde fra Peeren's Node-RED oversettelse flyt:


Leverer kommandoer til BB-8

For å få kommandoer fra Bluemix til roboten, sendes de fra Bluemix via Internett til NodeJS og Cylon.js SDK på sølv Raspberry Pi. Sølvpiret sender kommandoer via Bluetooth til BB-8-droid.

Cylon.js er et JavaScript-rammeverk for robotteknikk, fysisk databehandling og Internett av ting. Det gjør det utrolig enkelt å styre roboter og enheter. Det er også en bestemt Cylon.js SDK for Sphero's BB-8. Se også Cylon.js-driveren på GitHub.

Her er noen av Peeren's Cylon-koden som kobles fra Bluemix via MQTT til BB8 via Cylon-Sphero-old:

Når kommandoene er mottatt av BB-8, aktiverer dets interne systemer hver kommando som lager dørens bevegelse og lyseffekter.

Key Takeaways

Jeg spurte Peeren hva som var vanskeligste om denne innsatsen, og han svarte: "Det var faktisk ganske greit." Han sa at han bare kobler en haug med APIer. 

"Jeg bygde ikke noe her. Jeg skrev ikke noen enhetsdrivere eller lavere nivåkode. Jeg bruker APIene og kobler på en standard måte til Bluemix via MQTT-protokollen. Jeg trengte ikke å finne noe for å få det til å fungere. "

Peeren ønsker å inspirere oss til å tenke på å bruke Bluemix på større måter. Sikkert, jeg er inspirert av alt Bluemix kan gjøre med Emotiv Insight-headsettet, Myo Armband og Raspberry Pi-maskinvaren. Det er utrolig hvor langt bransjen er kommet.

Som tenåring eksperimenterte jeg med talesignal og drømte om anerkjennelse. På college eksperimenterte jeg med penntabletter og hvordan håndskriftgjenkjenning kan fungere (demonstrerer dette sent en ettermiddag til Nathan Myhrvold hjalp meg med å lande min første jobb hos Microsoft.) Men nå er det meste av dette mulig med Bluemix og tingets internett.

Peeren sier, "Den grunnleggende rørleggerarbeid er veldig enkelt." Og Bluemix tilbyr over 120 bedriftsklare tjenester; "Det handler ikke bare om armbånd og roboter." Eller mikrofoner og stemmegjenkjenning-det er mye mer.

Han foreslår å eksperimentere med Bluemix-analysemotoren for å heve intelligensen av tolkningen av bevegelser eller dens visuelle anerkjennelsesevne.

Når du bygger din egen applikasjon i Bluemix, har du alt på ett sted. Du trenger ikke å gå til forskjellige plattformer. Et sted for forretningsregler, en rapporteringsreglermotor, Hadoop, etc. Mulighetene er nesten uendelige.

Hva blir det neste?

Jeg håper du har hatt både våre IBM Bluemix Internet of Things-videodemonstrasjoner og opplæringsprogrammer. Kanskje du vil føle deg inspirert til å prøve å bygge din egen demonstrasjon.

Peeren sa til meg at den beste delen om Bluemix IoT er at ingenting er noen gang svært komplisert. Han er i stand til å oppnå sine mål ved å kombinere byggeblokkene som Bluemix og tredjepartsleverandører tilbyr.

IBM tilbyr også en rekke trening og sertifisering for Bluemix gjennom sine developerworks nettsteder. Her er noen relaterte ressurser:

  • Komme i gang med IBM Bluemix online kurs
  • Quickstart-programmer, kode, opplæringsprogrammer og videoer
  • 200 Bluemix dager
  • Bluemix forum

Hvis du vil se mer på Bluemix og IoT, vennligst gi oss beskjed-post i kommentarene eller nå oss på Twitter @reifman eller Rob Peeren @robobob eller via @IBMCloud. Hvis du bygger et kult IoT-enhetsprogram, så gi oss beskjed, og kanskje skriver vi en funksjon om din!

Du kan se etter fremtidige opplæringsprogrammer av alle slag fra meg på min Envato Tuts + instruktørside. Jeg håper du også sjekker ut mine to serier Slik programmerer du med Yii2 og bygger oppstarten din med PHP om å bygge møteplanlegger.

Hvis du ønsker å lære mer om IBM Bluemix og Internett av ting, kan du besøke http://ibm.com/bluemix.

Relaterte linker

  • IBM Bluemix Internett av ting
  • Sphero er Star Wars BB-8 Droid
  • Myo Armband og Thalmic Labs Developer Page
  • Node-RED 
  • Cylon.js og BB-8 Driver
  • Kontroller en Droid med tankene dine og IBM Bluemix (Envato Tuts +)
  • Topp Flite Golf Ball
  • Darth Vader Action Figur