Bedien een Star Wars BB-8 Droid met gebaren in de armen en IBM Bluemix Internet of Things

Wat je gaat creëren

Welkom! In onze vorige tutorial, Control a Droid With Your Mind en IBM Bluemix Internet of Things, hebben we Joshua Carr's gebruik van de Emotiv Insight-headset besproken om een ​​Star Wars BB-8 droid met zijn gedachten te besturen. Als je me niet gelooft, kijk dan eens naar de video hieronder.

Het is mogelijk gemaakt met een verbazingwekkende consumentenhardware en IBM Bluemix-integratie met het internet der dingen.

In de tutorial van vandaag zal ik je begeleiden in mijn interview met Consulting IT Specialist Rob Peeren. Hij creëerde de aanbevolen video bovenaan, en laat zien hoe hij armband- en armgebaren gebruikte om BB-8 te controleren met voldoende nauwkeurigheid om te voetballen (of hersenschuddingvrij voetbal zoals sommigen het noemen).

We zullen deze serie waarschijnlijk ook voortzetten op IBM Bluemix en het Internet of Things (IoT) met specifieke stapsgewijze zelfstudies over hoe u meer van uw eigen projecten kunt uitproberen. Laat ons alstublieft weten naar welke soorten IoT-onderwerpen u meer wilt schrijven in de toekomst. 

Als u een breder overzicht van IBM Bluemix wilt, raad ik u aan de onderstaande introductie van David Barnes te bekijken:


Zoals altijd, deel je ideeën en feedback in de comments hieronder of bereik me direct op Twitter @reifman. Je kunt ook contact opnemen met Rob Peeren @robobob of via @IBMCloud.

Onderdelen van de controller van de armband

Hier zijn de elementen van de armbandendemonstratie van Peeren:


  • De Myo Gesture Control Armband
  • De blauwe Raspberry Pi die input van de armband ontvangt en deze naar de Bluemix-cloud verzendt (niet afgebeeld)
  • De zilveren Raspberry Pi die gegevens van Bluemix naar de BB-8 levert via Bluetooth Low Energy
  • De Sphero Star Wars BB-8 Droid
  • Golfbal en Darth Vader niet getoond (waarschijnlijk opknoping in hun startrailer)

Je kunt de Myo-armband in zwart of wit kopen voor $ 199 USD:

Hier zijn een paar introductievideo's van de Myo Armband die leuk zijn om te bekijken, vooral als je het nog nooit hebt gezien. 

Dit is de algemene introductie van het product:

En deze is meer gericht op ontwikkelaars:

Ze bieden een verscheidenheid aan oplossingen voor gebruik, evenals een uitstekende site voor ontwikkelaars.

En natuurlijk is hier weer BB-8 en hoe het is geworden:

De applicatie bouwen

Laten we nu eens kijken naar hoe Peeren de demonstratie heeft gebouwd met behulp van IBM Bluemix Internet of Things. In de aflevering van vandaag zal ik een algemeen overzicht geven van mijn interview met Peeren. Het is mogelijk dat we in de nabije toekomst een stapje voor stap doen. Laat ons in de onderstaande opmerkingen weten of je hierin geïnteresseerd bent!

Hier is een screenshot die laat zien hoe Bluemix werkt met apparaten en het IoT:

Hier is een hoogstaand architecturaal beeld van wat er gebeurt tussen Bluemix en elk van de Raspberry Pis in de video van Peeren (lees hier meer over MQTT):

Een Bluemix-toepassing instellen

Aangezien ik je niet door de installatie van de applicatie laat leiden, ben je misschien geïnteresseerd in een rondleiding door de Bluemix-applicatie UX gegeven door IBM Design Lead, Tarun Gangwani:

In principe kunt u een toepassing maken van elk van de Bluemix-verwarmingsplaten, inclusief de Internet of Things Platform Starter.

Hier is het Internet of Things Dashboard van Peeren, inclusief de SDK voor NodeJS en het Internet of Things-platform dat hij gebruikt om gegevens van de Myo-armband te ontvangen en naar de BB-8 te verzenden:

Kalibreer de armband aan uw bewegingen

Peeren beveelt aan dat u oefent met de Myo-armband nadat u deze hebt gekalibreerd. Hier is een video van Een aangepaste kalibratie van je Myo Armband maken die laat zien hoe dit werkt (zie ook Wat kan de Myo-armband eigenlijk doen):

Kortom, je kalibreert het met een paar eenvoudige bewegingen en oefent dan je bewegingen zodat het je intenties kan oppikken. Peeren gebruikte de volgende gebaren voor de video:

  • Zwaai naar binnen om naar links te gaan
  • Zwaaien om naar rechts te gaan
  • Vuist om het te laten stoppen
  • Spreiden vingers om het te laten gaan
  • Je arm opheffen tot 180 draaien (Tony Hawk zou trots zijn en dan zeggen: "Doe het in de lucht Droid!")

Net zoals het Carr uren kostte om de Emotiv Insight te trainen, zegt Peeren dat het oefenen kost om met de Myo te werken. Besturingssystemen zijn nog niet volledig automatisch - je kunt niet zomaar de helm opzetten en nauwkeurig de helikopter besturen (sorry dat ik jullie actie-animatieschrijvers uit de weg ga.)

Armband-telemetrie verzenden naar Bluemix

Zoals ik hierboven al zei, ontvangt de blauwe Raspberry Pi input van de armband en stuurt deze naar de Bluemix-cloud. Dit gebeurt door Python-code en MQTT te gebruiken om met Bluemix te communiceren.

In wezen verzendt de Myo Armband telemetrie via Bluetooth naar de Bluetooth-adapter op de Raspberry Pi. Vervolgens neemt de Python-code de telemetrie en stuurt deze naar Bluemix in de cloud. Alle gegevens komen binnen als een JSON-payload.

Hier is een screenshot van de Python-code van Peeren:

Als je dieper wilt graven in dit gebied, raad ik je aan de Thalmic Labs Developer-portal en de niet-officiële bibliotheekpagina te bekijken. Je kunt ook deze gerelateerde video bekijken van een Myo-armband die een robot met Raspberry Pi-wielen aanstuurt (hij heeft een geweldige soundtrack):

Verwerking van de armbandgegevens binnen Bluemix

Binnen Bluemix kunnen de gegevens worden omgezet met behulp van de Node-RED visuele editor. We moeten de inkomende Myo-gebaren converteren naar opdrachten die de BB-8 begrijpt in zijn driver / taal.

Armband omhoog wordt bijvoorbeeld vertaald naar BB-8: start en stop. Hier is een screenshot van de Node-RED vertaalstroom van Peeren:


Commando's leveren aan BB-8

Om commando's van Bluemix naar de robot te krijgen, worden ze van Bluemix via internet naar NodeJS en de Cylon.js SDK op de zilveren Raspberry Pi verzonden. De zilveren Pi zendt commando's via Bluetooth naar de BB-8 droid.

Cylon.js is een JavaScript-raamwerk voor robotica, fysiek computergebruik en het internet der dingen. Het maakt het ongelooflijk eenvoudig om robots en apparaten te besturen. Er is ook een specifieke Cylon.js SDK voor Sphero's BB-8. Zie ook de Cylon.js-driver op GitHub.

Hier is een deel van de Cylon-code van Peeren waarmee je kunt verbinden Bluemix via MQTT naar BB8 via Cylon-Sphero-ble:

Nadat de opdrachten door de BB-8 zijn ontvangen, activeren de interne systemen elke opdracht om de beweging- en lichteffecten van de robot te maken.

Key Takeaways

Ik vroeg Peeren wat het moeilijkste was aan deze inspanning en hij antwoordde: "Het was eigenlijk vrij eenvoudig." Hij zei dat hij gewoon een aantal API's aan het verbinden was. 

"Ik heb hier niets gebouwd. Ik heb geen stuurprogramma's of code op een lager niveau geschreven. Ik gebruik de API's en maak op een standaard manier verbinding met Bluemix via het MQTT-protocol. Ik hoefde niets uit te vinden om het te laten werken. "

Peeren wil ons inspireren om na te denken over het gebruik van Bluemix op grotere manieren. Zeker, ik ben geïnspireerd door alles wat Bluemix kan doen met de Emotiv Insight-headset, de Myo Armband en Raspberry Pi-hardware. Het is ongelooflijk hoe ver de industrie is gekomen.

Als tiener experimenteerde ik met het vastleggen van spraaksignalen en droomde ik van herkenning. Op de universiteit experimenteerde ik met pentablet en hoe handschriftherkenning zou kunnen werken (laat op de middag demonstreren Nathan Myhrvold heeft me geholpen mijn eerste baan bij Microsoft te landen.) Maar nu is het meeste van dit mogelijk met Bluemix en het internet der dingen.

Peeren zegt: "Het basisbuizenstelsel is heel eenvoudig." En Bluemix biedt meer dan 120 bedrijfsklare diensten; "Het gaat niet alleen om armbanden en robots." Of microfoons en stemherkenning - het is veel meer.

Hij stelt voor te experimenteren met de Bluemix-analyse-engine om de intelligentie van de interpretatie van gebaren of de visuele herkenningsmogelijkheden ervan te verhogen.

Wanneer u uw eigen toepassing in Bluemix maakt, hebt u alles op één plaats. U hoeft niet naar verschillende platforms te gaan. Eén plaats voor bedrijfsregels, een engine voor rapportagevoorschriften, Hadoop, enzovoort. De mogelijkheden zijn bijna eindeloos.

Wat is het volgende?

Ik hoop dat je onze beide videodemonstraties en -handleidingen van IBM Bluemix Internet of Things hebt genoten. Misschien voel je je geïnspireerd om te proberen je eigen demonstratie te bouwen.

Peeren vertelde me dat het beste aan Bluemix IoT is dat niets ooit erg ingewikkeld is. Hij kan zijn doelen bereiken door de bouwstenen te combineren die Bluemix en externe leveranciers bieden.

IBM biedt ook een reeks trainingen en certificeringen voor Bluemix via zijn developerWorks-sites. Hier zijn enkele gerelateerde bronnen:

  • Aan de slag met de online cursus van IBM Bluemix
  • Snelstart apps, code, handleidingen en video's
  • 200 Bluemix Days
  • Bluemix-forum

Als je meer wilt zien op Bluemix en IoT, laat het ons dan weten - plaats het in de comments of bereik ons ​​op Twitter @reifman of Rob Peeren @robobob of via @IBMCloud. Als u een leuke IoT-apparaattoepassing bouwt, laat het ons weten en misschien schrijven we een functie over die van u!

Je kunt op de instructeurspagina van Envato Tuts + op zoek gaan naar toekomstige zelfstudies van allerlei aard. Ik hoop dat je ook mijn twee series Hoe programmeren met Yii2 en Je start opstarten met PHP over het bouwen van een vergaderplanner zult bekijken.

Als u meer wilt weten over IBM Bluemix en Internet of Things, gaat u naar http://ibm.com/bluemix.

Gerelateerde Links

  • IBM Bluemix Internet of Things
  • Sphero's Star Wars BB-8 Droid
  • Myo Armband en Thalmic Labs ontwikkelaarspagina
  • Node-RED 
  • Cylon.js en BB-8 Driver
  • Bedien een Droid With Your Mind en IBM Bluemix (Envato Tuts +)
  • Top Flite-golfbal
  • Actiefiguur Darth Vader