Kontrollera med en mobiltelefon (1 / 5 steg)
Steg 1: 99 problem och en fungerande anslutning är inte en
Det finns ett par alternativ för att skicka signaler från en mobiltelefon till en motor. Dessa är de som jag försökt och mina skäl för att använda (eller inte använder) dem.
TL; dr: använda BT modul
Spark Core: WiFi-aktiverad, Arduino-kompatibel, liten styrelse. Säga vad!? Jag skulle kunna skicka en signal från telefonen till denna sak direkt via UDP/TCP, men från och med April 2014 var detta inte möjligt. Medan teamet på gnista arbetar för en ändring av deras firmware, när jag testade denna styrelse, sprang det endast om den var ansluten till internet och till Spark Core server. Jag ville bara lokal kommunikation, så det här var inte bra.
IOIO-OTG: ansluter direkt till telefonen via USB-kabel, och tillåter att telefon appen har ett gäng GPIO stift. Toppen! Detta skulle ha varit perfekt om jag hade tagit sig tid att lista ut hur att skriva min egen firmware. Som den kommer, är firmware på IOIO-OTG ganska likt en firmata. All logik köra på telefonen och det enda den gör är exponera några I/O pins. Eftersom jag använder enkla DC motorer med gränslägesbrytare, kändes detta som ett riskfyllt alternativ. Vad händer om telefonen förlorar anslutningen till styrelsen, eller de app kraschar, medan en av motorerna är på? IOIO-OTG kan inte få gränslägesbrytaren signalerna att stoppa motorn.
Arduino ADK som USB-värd: också verkade lovande. Direkt skicka meddelanden till en Arduino från en telefon, via en kabel! Vinna, rätt? Jag kan skriva mitt eget Arduino kod ta itu med gräns-switch och motor logik, och telefonen skulle bara skicka enkla STOP/GO kommandon till Arduino. Perfekt, utom en parkoppling mellan Arduino, telefon och app var i bästa fall skit. Den ordning som jag var tvungen att slå på telefonen, Arduino och app, och Anslut kabeln, var mycket specifik. Jag tror det var Vrid telefonen på Aktivera Arduino, Anslut Arduino i telefonen, koppla Arduino från telefon, Anslut Arduino i telefonen, starta app. allt annat än som skulle göra att telefonen inte känns igen av Arduino ADK, och ibland skulle även orsaka telefonen att återställa. Väldigt kräsen!
Arduino ADK med BlueTooth dongle: fungerar bra med vissa donglar. Andra donglar från samma märke och typ, bara inte skulle para ihop. Jag kanske har möjlighet att få det att fungera genom att lägga till vissa förseningar i Arduino koden, men på denna punkt blev jag ganska besviken över ADK och USB Host biblioteket.
Arduino med BlueTooth-modul: Jag ville från början inte använder BT på grund av hur den har kopplas ihop, och ibland förlorar dess anslutning/ihopkoppling och några paket få tappade... men i slutet, det var den mest rationella lösningen. Det spelar ingen roll om paket få sjunkit, jag bara skickar en mycket enkel STOP/GO slags signal, och jag kan lägga till redundans. Det spelar ingen också roll om telefonen blir un-Parade från BT-modulen. Jag vet det är där, precis bredvid telefonen, så jag kan fortsätta att försöka ansluta till den med koden i Android app. Även detta kan tyckas hårt från början, det är mycket enklare än vad jag hade att göra för att återupprätta kabeln ADK anslutning när telefonen förlorat kontakten med Arduino (koppla bort, koppla, starta app, etc).
Så i slutet: BT för att vinna!