Innehållsförteckning:

Android G1 Serial to Arduino Robot: 8 steg
Android G1 Serial to Arduino Robot: 8 steg

Video: Android G1 Serial to Arduino Robot: 8 steg

Video: Android G1 Serial to Arduino Robot: 8 steg
Video: learn Arduino programming in 20 seconds!! (Arduino projects) 2024, September
Anonim
Android G1 Serial till Arduino Robot
Android G1 Serial till Arduino Robot
Android G1 Serial till Arduino Robot
Android G1 Serial till Arduino Robot
Android G1 Serial till Arduino Robot
Android G1 Serial till Arduino Robot

Lär dig hur din Android -mobiltelefon kan styra en robot med ett Arduino -kort. Telefonen tar kommandon via telnet från en annan telefon eller en dator, så att du kan fjärrstyra roboten. Detta projekt kommer inte annars att ändra G1 så att du kan fortsätta använda den som din vanliga telefon efter att ha kopplat ur den. Varför? Genom att använda billiga elektroniska komponenter som Arduino -kort kan du koppla ihop dem med din $ 400 -telefon för att skapa en fantastisk robot. Det skulle kosta hundratals dollar att lägga till GPS, LCD, rörelsesensorer, wi-fi, mobilanslutningar, högtalare och mer till en hobbybot, men din telefon har redan dessa! Tillsammans tillåter Android G1 och Arduino -kortet dig att använda billig elektronik som enkla servon och sensorer, för att bygga kraftfulla enheter som robotar, fjärrtelepresens eller roliga leksaker för barn. Mer information på Cellbots.com. Observera: Detta projekt kräver för närvarande en Android G1 med root -åtkomst för att kunna använda serieutmatning från telefonen till Arduino -roboten. Du kan lägga till en $ 20 BlueTooth -modul till ditt Arduino -kort för att få telefonen att prata med den via seriell BlueTooth om du vill använda den kommersiella Android -programvaran. Särskilt tack: Vi har Hacker Dojo i Mountain View, CA att tacka för att vi tog kontakt, hjälpte med knepiga problem via deras e -postlista med fantastiska medlemmar och för att ha 74LS04 -chips i lager. Det mesta av monteringen gjordes på Tech Shop i Menlo Park.

Steg 1: Objekt som behövs

Artiklar som behövs
Artiklar som behövs
Artiklar som behövs
Artiklar som behövs
Artiklar som behövs
Artiklar som behövs

För att slutföra denna handledning behöver du följande: Hårdvara: - Android G1 Dev Phone (eller annan Android -enhet med root -åtkomst och seriell utgång) - Arduino (jag använder en Freeduino SB men någon borde göra) - 3.3v till 5v omvandlare om du inte använder en 3.3v Arduino (jag använder ett 74LS04 -chip för under $ 1 men andra alternativ finns) - HTC USB -utbrottskort för G1 - Lödutrustning för två snabba anslutningar - En robotkropp med mikroservos (kartong, akryl, slitbanor, hjul, allt kommer att göra) Programvara: - Android Scripting Environment (ASE) - Telnet -klient för din dator (jag använder PuTTY på Windows) - Arduino -utvecklingsmiljö - (valfritt) Seriell klient för din dator (jag använder också PuTTY på Windows för detta) - (tillval) Android SDK Om du kan följa instruktionerna kan du slutföra denna handledning med liten kunskap om Python, Arduino, Android eller elektronik. Du vill veta dessa saker om du vill gå längre än en blinkande lysdiod men det här kommer att komma igång.

Steg 2: Android G1 med seriell utgång aktiverad

Android G1 med seriell utgång aktiverad
Android G1 med seriell utgång aktiverad
Android G1 med seriell utgång aktiverad
Android G1 med seriell utgång aktiverad
Android G1 med seriell utgång aktiverad
Android G1 med seriell utgång aktiverad

G1: er skickas inte med möjligheten att skicka seriella kommandon från USB -porten och det finns inget inbyggt alternativ för att aktivera det. Om du är en avancerad Android SDK -användare kan du göra din egen byggnad men jag valde att använda Cyanogenmod 4.2.13. Om du känner till andra Android -enheter med seriell out -funktion, lägg till dem i kommentarerna.

Alternativt kan du följa länkarna där till denna instruktion om hur du pratar med din G1 via USB från din dator. Den seriella till USB -anslutningen krävs inte för den här självstudien, men jag använde den som en bra hälsokontroll för att verifiera att telefonen skickade seriell ut. Om du inte använder den andra inbyggbara för att verifiera att seriell utgång fungerar, kan du prova denna enkla kontroll: 1. Öppna Terminal -appen på G1 (levereras med Cyanogen men ladda ner en från marknaden om du har en annan bild) 2. Navigera till/dev/katalogen genom att skriva in cd/dev/3. Skriv ls (det är ett L) och leta efter ttyMSM2 i listan som returneras Python -skriptet som vi använder senare skickar kommandon till '/dev/ttyMSM2' i för att de ska gå ur den seriella anslutningen. Eftersom det kräver root -åtkomst måste du ändra behörigheter för det varje gång du startar om telefonen. För att göra det: 1. Öppna terminalappen på telefonen 2. Ange 'chmod 777 /dev /ttyMSM2' Sedan kan du köra Python -skriptet från Android Scripting -redigeringen i nästa steg och det kommer att ha tillgång till att skicka seriell utmatning.

Steg 3: Installera Android Scripting Environment (ASE) med Python

Installera Android Scripting Environment (ASE) med Python
Installera Android Scripting Environment (ASE) med Python
Installera Android Scripting Environment (ASE) med Python
Installera Android Scripting Environment (ASE) med Python

Skripten vi ska använda för att skapa en öppen sockelanslutning på telefonen och skicka ut kommandon skrivs i Python. För att köra detta på G1 behöver vi Android Scripting Environment. Om du inte ser det på marknaden kan du ladda ner det genom att skanna streckkoden på den sidan som länkar till apk -filen på den här sidan.

När du har installerat och kör ASE vill du lägga till på Python-modulen från menyn: 1. Öppna ASE och se till att du har en fungerande internetanslutning (wi-fi eller 3G) 2. Tryck på menyknappen på telefonen och välj Tolkar 3. Tryck på menyn igen och välj Lägg till 4. Välj Python (för närvarande v2.6.2 när du skriver detta) och det kommer att ladda ner några zip -filer Du kanske vill utforska skapa, öppna, redigera och köra skript för att bli bekant med Python via ASE men det krävs inte.

Steg 4: Kopiera och kör Cellbot.py -skriptet för att starta Python -programmet

Kopiera och kör Cellbot.py -skriptet för att starta Python -programmet
Kopiera och kör Cellbot.py -skriptet för att starta Python -programmet

Denna handledning använder ett Python -skript för att vara robotens "hjärnor". Få den senaste koden från vårt Google Code -projekt med öppen källkod. Du behöver bara filen cellbot.py men andra kan hjälpa till med olika saker du vill utforska. Jag kopplade helt enkelt telefonen till datorns USB -anslutning och monterade enheten innan jag kopierade filen till/sdcard/ase/scripts.

Programmet skapar en öppen socket -anslutning för att acceptera en inkommande telnet -session. Det skriver också ut de mottagna kommandona till skärmen samtidigt som de skickas ut från den seriella porten. Lägg den här filen på telefonens SD -kort i/ase/scripts/directory. Detaljerade steg för att ladda och köra skripten: 1. Kopiera cellbot.py -skriptet till SD -kortets/ase/scripts/katalog 2. Var noga med att stänga av SD -kortet från din dator om du kopierade dem på det sättet eftersom telefonen inte kan komma åt filerna samtidigt som din dator är det. 3. Öppna appen Android Scripting Environment 4. Klicka på cellbot.py för att starta den Du bör se en bekräftelse på att enheten är redo att acceptera inkommande telnet -sessioner på port 9002. Tips: Var noga med att köra "chmod 777 /dev/ttyMSM2 "kommando från steg #3 först. Se steg #5 för att hitta telefonens IP -adress.

Steg 5: Telnet till G1 och testskicka kommandon

Telnet till G1 och testskicka kommandon
Telnet till G1 och testskicka kommandon
Telnet till G1 och testskicka kommandon
Telnet till G1 och testskicka kommandon
Telnet till G1 och testskicka kommandon
Telnet till G1 och testskicka kommandon

Telefonen ska vara redo för dig att telneta in i den och skicka kommandon från din dator. Det kommer att skriva ut dem till telefonens skärm för att bekräfta vad den tar emot. Jag använde PuTTY på Windows men vi har bekräftat att minicom fungerar utmärkt på Mac -datorer som beskrivs i denna instruerbara.

Du måste först hitta telefonens IP -adress. Detta är tillgängligt genom att gå till Meny> Inställningar> Trådlösa kontroller> Wi-Fi-inställningar och sedan trycka på den för närvarande aktiva anslutningen. Ett popup-toast-meddelande kommer med den aktuella IP-adressen på det lokala nätverket. Skriv ner detta eftersom du kommer att använda det varje gång du vill öppna en telnet -session från din dator. IP -tilldelningar löper vanligtvis ut efter ett visst antal dagar, så du kan behöva kontrollera detta igen. Obs: Denna handledning förutsätter att din dator och telefon finns i samma lokala nätverk. Det bör vara möjligt att dirigera till telefonen från det lokala nätverket men täcks inte här. Öppna din valda telnetklient och anslut till telefonens IP på port 9002. Från en kommandorad gör du detta som "telnet 192.168.1.1 9002" med telefonens faktiska IP. Skriv in några tecken och tryck på enter för att se dem visas på telefonens skärm. Du kan skriva en q för att få Python -skriptet att avslutas, vilket bör stänga din terminalsession. Om du av någon anledning inte kan ansluta via telnet och behöver döda programmet, bör en enkel omstart av telefonen göra susen. Avancerade användare kanske vill hitta process -ID via ps och sedan använda kill för att stoppa det. Avancerat: En framtida version av detta kan köra en lokal webbserver från telefonen snarare än att acceptera kommandon via telnet. Vi utforskar också XMPP för att chatta med din robot.

Steg 6: Anslut en 3.3v till 5v nivåväxel till Arduino

Anslut en 3.3v till 5v nivåväxel till Arduino
Anslut en 3.3v till 5v nivåväxel till Arduino
Anslut en 3.3v till 5v nivåväxel till Arduino
Anslut en 3.3v till 5v nivåväxel till Arduino
Anslut en 3.3v till 5v nivåväxel till Arduino
Anslut en 3.3v till 5v nivåväxel till Arduino

Arduino som används i denna handledning är en 5v -modell så vi måste konvertera 3.3v -signalen som kommer ut från G1 med hjälp av en nivåväxlare. Det borde vara möjligt att ansluta direkt till en 3.3v Arduino men det var inte något jag testade.

Det finns flera sätt att närma sig detta men vi kommer att använda ett 74LS04 -chip i detta exempel. Du kan söka efter en här och de är sannolikt under $ 1. Tim och jag hämtade vårt från Hacker Dojo i Mountain View, CA, men dessa är MYCKET vanliga och bör finnas i överflöd var som helst chips säljs eller doneras. På en hög nivå ska vi helt enkelt skicka TX -signalen från HTS USB -brytkortet till pin 1 på 74LS04 -chipet. För att få det att fungera går vi igenom chippet två gånger och kommer ut stift 4 till RX -stiftet på Freeduino SB (ditt seriella stift kan vara annorlunda om du har ett annat Arduino -kort men alla borde stödja detta). Följ dessa steg för att koppla upp nivåväxelreglaget och ansluta HTC USB -kortet (anslut inte det till telefonen än och koppla ur strömmen till Arduino): 1. Sätt i 74LS04 -chipet på din bräda. Se till att chipet hindrar mittbrytningen så att stiften inte kortas (ett dumt drag jag gjorde först) 2. Soldat två ledningar till HTC USB -kortet enligt beskrivningen i denna instruktion, men vi kommer bara att använda stift 7 (Ground) och 8 (TX0) eftersom vi bara gör enkelriktad överföring för denna handledning. 3. Anslut den andra änden av jordkabeln (stift 7) till en jord på din brödbräda (som ska anslutas till en jord på din Arduino) 4. Anslut den andra änden av TX0 (stift 8) -tråden till brödbrädet där det går in i stift 1 på 74LS04 -chipet. (gör en bildsökning för ett fullständigt diagram över chipet) 5. Använd en tråd för att ansluta stift 2 och 3 på chipet 6. Anslut stift 4 på chipet till Arduino RX -punkten (stift 0 på Freeduino SB och Arduino Duemilanove) 7. Anslut stift 7 (GND) på chipet till marken för din brödbräda (som också ansluts till Arduino -marken) 8. Anslut stift 14 (VCC) till 5v -strömmen på ditt brödbräda (som får ström från Arduino 5v-utgång) Du bör nu vara redo att ansluta HTC USB-utbrytningskortet till telefonens undersida och slå på Arduino. Leta efter gnistor och lukt och rör vid saker för att se till att de är svala. Obs: Den aktuella cellbotkoden tänder LED #13 när robotens servomotorer ska köras. Om du inte har en robot ännu kan du kontrollera att lysdioden tänds och släcks för att bekräfta att den fungerar.

Steg 7: Ladda Cellbots -programmet på Arduino

Ladda Cellbots -programmet på Arduino
Ladda Cellbots -programmet på Arduino
Ladda Cellbots -programmet på Arduino
Ladda Cellbots -programmet på Arduino

Hämta Arduino -källkoden från vår projektwebbplats för Google Code. Öppna Cellbots.pde Arduino -programmet i Arduino -redigeraren. Skjut den sedan till ditt Arduino -kort.

Du kan testa att prata med Arduino -koden genom att öppna den seriella bildskärmen i Arduino -redigeraren. Detta är ett bra sätt att testa din robot eller enhet genom att prata direkt med Arduino innan du kopplar allt till telefonen. Koden skickar seriella kommandon tillbaka till seriell bildskärm för att bekräfta vad den gör även om du inte har din robot byggd än.. Så du kanske vill sätta den här en switch, men jag kopplade helt enkelt ur den när jag behövde ladda ett nytt program.

Steg 8: Kör hela processen

Kör hela processen
Kör hela processen
Kör hela processen
Kör hela processen
Kör hela processen
Kör hela processen

Du bör kunna ansluta HTC USB -kortet till telefonen, starta filen cellbot.py i ASE och öppna en terminalsession i telefonen. Skriv "H" för att låta telefonen säga hej eller andra kommandon från filen README.txt.

En "q" kommer att avsluta Python -skriptet på telefonen och stänga terminaluttaget. Här är en sammanfattning av hur det hela fungerar: 1. Python -skriptet öppnar ett uttag för att acceptera inkommande telnet -anslutningar och eko kommandona ut den seriella porten 2. Vi ansluter från vår PC till telefonen via telnet på port 9002 och skickar kommandon som vi ser på skärm 3. HTS USB -kortet har gränssnitt mot G1: s USB -port och skickar 3.3v -signalen till 74LS04 -stiftet 1. 4. signal kommer ut ur chipet på stift 2, går tillbaka in på stift 3 och kommer ut igen på stift 4 vid 5v 5. Vår Arduino accepterar den seriella signalen på RX -stift 0 och bearbetar den via Cellbot.pde -programmet 6. Vi kan skriva 'q' för att döda Python -skriptet och stänga telnet -anslutningen Nu när du har slutfört denna mycket komplicerade process för att skicka grundläggande kommandon till en Arduino -robot, är det dags för dig att hacka den för att bli mer fantastisk! Vi har ännu inte tvåvägs seriellt arbete så Arduino kan inte skicka kommandon tillbaka till telefonen men vi jobbar på det. Håll dig uppdaterad genom att prenumerera på vår blogg på Cellbots.com. Om författarna: Tim Heath Ledande forskare som först satte ihop denna process på Tech Shop i Menlo Park, där han är medlem. Ryan Hickman Programmerare som arbetade med Python- och Arduino -koden och godkände denna Instructable.

Rekommenderad: