Stap 1: 99 problemen en een werkende verbinding is niet een
Er zijn een paar opties voor het doorgeven van signalen van een mobiele telefoon aan een motor. Dit zijn degenen ik geprobeerd en mijn redenen voor het gebruik (of niet gebruiken) hen.
TL; dr: BT module gebruiken
Spark Core: WiFi-enabled Arduino-compatibel, kleine kamer. Zeggen wat!? Ik zou moeten kunnen gewoon een signaal van de telefoon aan dit ding rechtstreeks via UDP/TCP, maar vanaf April 2014 was dit niet mogelijk. Terwijl het team van Spark is bezig met een wijziging van hun firmware, toen ik dit board testte, liep het alleen als deze was verbonden met het internet en aan de Spark Core-server. Ik wilde alleen maar aan voorlichting ter plaatse, dus dit niet goed was.
IOIO-OTG: rechtstreekse verbinding met de telefoon via de USB-kabel, en laat de telefoon app te hebben een heleboel GPIO pinnen. Awesome! Dit zou zijn geweest perfect als ik had de tijd genomen om erachter te komen hoe om te schrijven van mijn eigen firmware. Als het komt, is de firmware op de IOIO-OTG vrij veel als een firmata. Alle de logica moet draaien op de telefoon en het enige wat dat het doet is bloot sommige I/O pinnen. Want ik ben met behulp van eenvoudige gelijkstroommotoren met eindschakelaars, dit leek me een risicovolle optie. Wat als de telefoon verliest aansluiting op de Raad van bestuur, of de app neerstortingen, terwijl een van de motoren is op? De IOIO-OTG misschien niet krijgen de Hekschakelaar signalen om te stoppen met de motor.
Arduino ADK als USB-host: ook leek veelbelovend. Direct berichten verzenden naar een Arduino van een telefoon, via een kabel! Winnen, recht? Ik zou kunnen schrijven mijn eigen code Arduino Hekschakelaar en motor logica te behandelen, en de telefoon zou alleen eenvoudige STOP/GO commando's te verzenden naar de Arduino. Perfect, behalve de koppeling tussen de Arduino, telefoon, en app was, op zijn best, waardeloze. De volgorde waarin ik moest inschakelen van de telefoon, de Arduino en de app, en sluit de kabel, was zeer specifieke. Ik denk dat het was telefoon inschakelen, Arduino inschakelen, sluit de Arduino op telefoon, Arduino loskoppelen van de telefoon, sluit de Arduino op telefoon, start app. iets anders dan dat de telefoon niet erkend te zijn door de Arduino ADK zou veroorzaken, en soms zou zelfs oorzaak de telefoon opnieuw instellen. Zeer kieskeurig!
Arduino ADK met BlueTooth dongle: werkt prima met sommige dongles. Andere dongles van hetzelfde merk en type, zou niet alleen koppelen. Ik kan heb kunnen te laten werken door de toevoeging van enige vertraging in de Arduino-code, maar op dit punt was ik behoorlijk teleurgesteld met de ADK en de USB Host bibliotheek.
Arduino met BlueTooth-module: ik wilde in eerste instantie niet gebruik van BT vanwege hoe het moet worden gekoppeld, en soms het verliest haar verbinding/koppeling, en krijgen sommige pakketten gedropt... maar in het einde, het was de meest verstandige oplossing. Het maakt niet uit als pakketten gedropt krijgen, ik ben alleen het verzenden van een zeer eenvoudige STOP/GO soort signaal en ik kan het toevoegen van redundantie. Ook het maakt niet uit als de telefoon un-gepaarde uit de BT module krijgt. Ik weet dat het is er, naast de telefoon, dus ik kan verbinding maken met behulp van code in de Android app blijf proberen. Hoewel dit in eerste instantie moeilijk lijkt, het is een stuk makkelijker dan wat ik doen om te herstellen van de kabel ADK verbinding moest zodra de telefoon spoor van de Arduino verloren (Haal, stekker, opnieuw starten app, enz).
Zo op het einde: BT voor de overwinning!