Innholdsfortegnelse:

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

Video: Android G1 Serial to Arduino Robot: 8 trinn

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

Lær hvordan Android -mobiltelefonen din kan kontrollere en robot ved hjelp av et Arduino -kort. Telefonen tar kommandoer via telnet fra en annen telefon eller en PC, slik at du kan styre roboten eksternt. Dette prosjektet vil ellers ikke endre G1, slik at du kan fortsette å bruke den som din vanlige telefon etter at du har frakoblet den. Hvorfor? Ved å bruke billige elektroniske komponenter som Arduino -kort, kan du koble dem til telefonen din på $ 400 for å lage en fantastisk robot. Det ville koste hundrevis av dollar å legge til GPS, LCD-er, bevegelsessensorer, wi-fi, mobilforbindelser, høyttalere og mer til en hobbybot, men telefonen din har allerede disse! Sammen lar Android G1 og Arduino -kortet deg bruke billig elektronikk som enkle servoer og sensorer, for å bygge kraftige enheter som roboter, ekstern telepresence eller morsomme leker for barn. Mer informasjon på Cellbots.com. Merk: Dette prosjektet krever for tiden en Android G1 med root -tilgang for å bruke seriell utgang fra telefonen til Arduino -roboten. Du kan legge til en $ 20 BlueTooth -modul på Arduino -kortet for å få telefonen til å snakke med den over seriell BlueTooth hvis du vil bruke den kommersielle Android -programvaren. Spesiell takk: Vi har Hacker Dojo i Mountain View, CA å takke for at du tok kontakt med oss, hjalp til med vanskelige problemer via mailinglisten deres over fantastiske medlemmer og for å ha 74LS04 -chips på lager. Det meste av monteringen ble utført på Tech Shop i Menlo Park.

Trinn 1: Elementer som trengs

Varer som trengs
Varer som trengs
Varer som trengs
Varer som trengs
Varer som trengs
Varer som trengs

For å fullføre denne opplæringen trenger du følgende: Maskinvare: - Android G1 Dev Phone (eller annen Android -enhet med root -tilgang og seriell utgang) - Arduino (jeg bruker en Freeduino SB, men alle bør gjøre) - 3.3v til 5v omformer hvis du ikke bruker en 3.3v Arduino (jeg bruker en 74LS04 -brikke for under $ 1, men andre alternativer er tilgjengelige) - HTC USB -utbruddskort for G1 - Loddeutstyr for to raske tilkoblinger - En robotkropp med mikro -servoer (papp, akryl, slitebaner, hjul, alt vil gjøre) Programvare: - Android Scripting Environment (ASE) - Telnet -klient for din PC (jeg bruker PuTTY på Windows) - Arduino utviklingsmiljø - (valgfritt) Seriell klient for din PC (jeg bruker også PuTTY på Windows for dette) - (valgfritt) Android SDK Hvis du kan følge instruksjonene kan du fullføre denne opplæringen med liten kunnskap om Python, Arduino, Android eller elektronikk. Du vil vite disse tingene hvis du vil gå utover en blinkende LED, men dette vil komme i gang.

Trinn 2: Android G1 med seriell utgang aktivert

Android G1 med seriell utgang aktivert
Android G1 med seriell utgang aktivert
Android G1 med seriell utgang aktivert
Android G1 med seriell utgang aktivert
Android G1 med seriell utgang aktivert
Android G1 med seriell utgang aktivert

G1 -er leveres ikke med muligheten til å sende serielle kommandoer ut av USB -porten, og det er ikke noe alternativ for å aktivere den. Hvis du er en avansert Android SDK -bruker, kan du lage din egen build, men jeg valgte å bruke Cyanogenmod 4.2.13. Hvis du vet om andre Android -enheter som seriell ut fungerer, kan du legge dem til i kommentarene.

Alternativt kan du følge koblingene der til denne instruksjonen om å snakke med G1 over USB fra PCen. Den serielle til USB -tilkoblingen er ikke nødvendig for denne opplæringen, men jeg brukte den som en fin fornuftskontroll for å bekrefte at telefonen sendte seriell ut. Hvis du ikke bruker den andre ustrukturerbare til å kontrollere at seriell utgang fungerer, kan du prøve denne enkle kontrollen: 1. Åpne Terminal -appen på G1 (leveres med Cyanogen, men last ned en fra Market hvis du har et annet bilde) 2. Naviger til/dev/katalogen ved å skrive inn cd/dev/3. Skriv inn ls (det er en L) og se etter ttyMSM2 i listen som returneres Python -skriptet vi bruker senere sender kommandoer til '/dev/ttyMSM2' i be dem om å gå ut av den serielle tilkoblingen. Siden det krever root -tilgang, må du endre tillatelsene for det hver gang du starter telefonen på nytt. For å gjøre det: 1. Åpne terminalappen på telefonen 2. Skriv inn 'chmod 777 /dev /ttyMSM2' Deretter kan du kjøre Python -skriptet fra Android Scripting -redigeringen i neste trinn, og det vil ha tilgang til å sende seriell utgang.

Trinn 3: Installer Android Scripting Environment (ASE) med Python

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

Skriptene vi skal bruke til å opprette en åpen sokkelforbindelse på telefonen og sende kommandoer ut, er skrevet i Python. For å kjøre dette på G1 trenger vi Android Scripting Environment. Hvis du ikke ser det i Market, kan du laste det ned ved å skanne strekkoden på siden som lenker til apk -filen på denne siden.

Når du har installert og kjørt ASE, vil du legge til Python-modulen fra menyen: 1. Åpne ASE og kontroller at du har en fungerende internettforbindelse (wi-fi eller 3G) 2. Trykk på menyknappen på telefonen og velg Tolker 3. Trykk på menyen igjen og velg Legg til 4. Velg Python (for øyeblikket v2.6.2 mens du skriver dette), og det vil laste ned noen zip -filer Du vil kanskje utforske opprettelse, åpning, redigering og kjøring av skript for å bli kjent med Python via ASE, men det er ikke nødvendig.

Trinn 4: Kopier og kjør Cellbot.py -skriptet for å starte Python -programmet

Kopier og kjør Cellbot.py -skriptet for å starte Python -programmet
Kopier og kjør Cellbot.py -skriptet for å starte Python -programmet

Denne opplæringen bruker et Python -skript for å være "hjernen" til roboten. Få den nyeste koden fra vårt åpen kildekode Google Code -prosjekt. Du trenger bare filen cellbot.py, men andre kan hjelpe deg med forskjellige ting du vil utforske. Jeg bare koblet telefonen til PC -ens USB -tilkobling og monterte stasjonen før jeg kopierte filen til/sdcard/ase/scripts.

Programmet oppretter en åpen socket -tilkobling for å godta en innkommende telnet -økt. Den skriver også ut de mottatte kommandoene til skjermen mens du sender dem ut av serieporten. Legg denne filen på telefonens SD -kort i/ase/scripts/directory. Detaljerte trinn for å laste og kjøre skriptene: 1. Kopier cellbot.py -skriptet til SD -kortets/ase/scripts/directory 2. Sørg for å demontere SD -kortet fra PCen hvis du kopierte dem på den måten siden telefonen ikke har tilgang til filene samtidig som PC -en er. 3. Åpne Android Scripting Environment -appen 4. Klikk på cellbot.py for å starte den. Du bør se en bekreftelse på at enheten er klar til å godta innkommende telnet -økter på port 9002 på dette tidspunktet. Tips: Sørg for å kjøre "chmod 777 /dev/ttyMSM2 "kommando fra trinn #3 først. Se trinn 5 for å finne telefonens IP -adresse.

Trinn 5: Telnet inn i G1 og testsending av kommandoer

Telnet inn i G1 og testsending av kommandoer
Telnet inn i G1 og testsending av kommandoer
Telnet til G1 og testsending av kommandoer
Telnet til G1 og testsending av kommandoer
Telnet til G1 og testsending av kommandoer
Telnet til G1 og testsending av kommandoer

Telefonen skal være klar for at du skal koble til den og sende kommandoer fra PCen. Den skrives ut til telefonens skjerm for å bekrefte hva den mottar. Jeg brukte PuTTY på Windows, men vi har bekreftet at minicom fungerer bra på Mac -er som beskrevet i denne instruksjonsboken.

Du må først finne telefonens IP -adresse. Dette er tilgjengelig ved å gå til Meny> Innstillinger> Trådløse kontroller> Wi-Fi-innstillinger og deretter trykke på den aktive tilkoblingen. En pop-up toast-melding vil komme med gjeldende IP-adresse på det lokale nettverket. Skriv ned dette mens du vil bruke dette hver gang du vil åpne en telnet -økt fra PCen. IP -oppgaver utløper vanligvis etter et visst antall dager, så du må kanskje sjekke dette igjen. Merk: Denne opplæringen forutsetter at PC -en og telefonen er på det samme lokale nettverket. Ruting til telefonen fra utenfor det lokale nettverket bør være mulig, men dekkes ikke her. Åpne din foretrukne telnetklient og koble til IP -adressen til telefonen på port 9002. Fra en kommandolinje gjør du dette som "telnet 192.168.1.1 9002" ved å bruke telefonens faktiske IP. Skriv inn noen tegn og trykk enter for å se dem vises på telefonens skjerm. Du kan skrive inn q for å få Python -skriptet til å avslutte, noe som bør lukke terminaløkten. Hvis du av en eller annen grunn ikke kan koble til via telnet og trenger å drepe programmet, bør en enkel omstart av telefonen gjøre susen. Avanserte brukere vil kanskje finne prosess -ID -en via ps og deretter bruke kill for å stoppe den. Avansert: En fremtidig versjon av dette kan kjøre en lokal webserver fra telefonen i stedet for å godta kommandoer via telnet. Vi utforsker også XMPP for å chatte med roboten din.

Trinn 6: Koble en 3.3v til 5v nivåskifter til Arduino

Koble en 3.3v til 5v nivåskifter til Arduino
Koble en 3.3v til 5v nivåskifter til Arduino
Koble en 3.3v til 5v nivåskifter til Arduino
Koble en 3.3v til 5v nivåskifter til Arduino
Koble en 3.3v til 5v nivåskifter til Arduino
Koble en 3.3v til 5v nivåskifter til Arduino

Arduinoen som ble brukt i denne opplæringen er en 5v -modell, så vi må konvertere 3.3v -signalet som kommer ut av G1 ved hjelp av en nivåskifter. Det burde være mulig å koble direkte til en 3.3v Arduino, men det var ikke noe jeg testet.

Det er flere måter å nærme oss dette på, men vi vil bruke en 74LS04 -brikke i dette eksemplet. Du kan søke etter en her, og de er sannsynligvis under $ 1. Tim og jeg hentet vår fra Hacker Dojo i Mountain View, CA, men disse er VELDIG vanlige og bør være rikelig uansett hvor chips selges eller doneres. På et høyt nivå skal vi ganske enkelt sende TX -signalet fra HTS USB -bryterkortet til pin 1 på 74LS04 -brikken. For å få det til å fungere går vi gjennom brikken to ganger og kommer ut pin 4 til RX -pin på Freeduino SB (serienummeret ditt kan være annerledes hvis du har et annet Arduino -kort, men alle burde støtte dette). Følg disse trinnene for å koble opp nivåskifteren og koble til HTC USB -kortet (ikke koble det til telefonen ennå og koble fra strømmen til Arduino): 1. Sett 74LS04 -brikken i brødbrettet. Sørg for at brikken hindrer midtbruddet slik at pinnene ikke blir kortsluttet (et dumt trekk jeg gjorde først) 2. Soldat to ledninger til HTC USB -kortet som beskrevet i denne instruksen, men vi bruker bare pinner 7 (Ground) og 8 (TX0) siden vi bare gjør enveiskjøring for denne opplæringen. 3. Koble den andre enden av jordledningen (pin 7) til en bakke på brødbrettet (som skal kobles til en bakke på Arduino) 4. Koble den andre enden av TX0 (pin 8) ledningen til brødbrettet der den løper inn i pinne 1 på 74LS04 -brikken. (gjør et bildesøk for et fullstendig diagram over brikken) 5. Bruk en ledning for å koble pin 2 og 3 på brikken 6. Koble pin 4 på brikken til Arduino RX -punktet (pin 0 på Freeduino SB og Arduino Duemilanove) 7. Koble pin 7 (GND) på brikken til bakken for brødbrettet (som også kobles til Arduino -bakken) 8. Koble pin 14 (VCC) til 5v -strømmen på brødbrettet (som får strøm fra Arduino 5v utgang) Du bør nå være klar til å koble HTC USB-utbruddskortet til bunnen av telefonen og slå på Arduino. Se etter gnister og lukter, og berør ting for å sikre at de er kule. Merk: Den nåværende cellbot -koden slår på LED #13 når servomotorene til roboten skal kjøre. Hvis du ikke har en robot ennå, kan du kontrollere at lysdioden slås på og av for å bekrefte at den fungerer.

Trinn 7: Last ned Cellbots -programmet på Arduino

Last ned Cellbots -programmet på Arduino
Last ned Cellbots -programmet på Arduino
Last ned Cellbots -programmet på Arduino
Last ned Cellbots -programmet på Arduino

Få Arduino -kildekoden fra vårt nettsted for Google Code -prosjektet. Åpne Cellbots.pde Arduino -programmet i Arduino -redaktøren. Skyv den deretter til Arduino -brettet.

Du kan teste å snakke med Arduino -koden ved å åpne den serielle skjermen i Arduino -editoren. Dette er en fin måte å teste roboten eller enheten din ved å snakke direkte med Arduino før du kobler alt til telefonen. Koden sender seriekommandoer tilbake til den serielle skjermen for å bekrefte hva den gjør selv om du ikke har bygd roboten din enda.. Så du vil kanskje sette denne til en bryter, men jeg koblet den helt enkelt fra når jeg trengte å laste inn et nytt program.

Trinn 8: Kjør hele prosessen

Kjør hele prosessen
Kjør hele prosessen
Kjør hele prosessen
Kjør hele prosessen
Kjør hele prosessen
Kjør hele prosessen

Du bør kunne koble HTC USB -kortet til telefonen, fyre opp cellbot.py -filen i ASE og åpne en terminaløkt i telefonen. Skriv "H" for å få telefonen til å si hei eller andre kommandoer fra filen README.txt.

En "q" vil avslutte Python -skriptet på telefonen og lukke terminaluttaket. Her er en oversikt over hvordan det hele fungerer: 1. Python -skriptet åpner en sokkel for å godta innkommende telnet -tilkoblinger og ekko kommandoene ut den serielle porten 2. Vi kobler fra PCen til telefonen via telnet på port 9002 og sender kommandoer som vi ser på skjerm 3. HTS USB -kortet grensesnitt med G1s USB -port og sender 3.3v -signalet til 74LS04 -pinnen 1. 4. signalet kommer ut av brikken på pin 2, går inn igjen på pin 3, og kommer ut igjen på pin 4 på 5v 5. Vår Arduino godtar det serielle signalet på RX pin 0 og behandler det via Cellbot.pde -programmet 6. Vi kan skrive 'q' for å drepe Python -skriptet og lukke telnet -tilkoblingen Nå som du har fullført denne svært kompliserte prosessen for å sende grunnleggende kommandoer til en Arduino -robot, er det på tide at du hakker den for å bli mer fantastisk! Vi har ennå ikke toveis seriell arbeid, så Arduino kan ikke sende kommandoer tilbake til telefonen, men vi jobber med det. Hold deg oppdatert ved å abonnere på bloggen vår på Cellbots.com. Om forfatterne: Tim Heath Lederforsker som først satte denne prosessen sammen på Tech Shop i Menlo Park, hvor han er medlem. Ryan Hickman Programmer som jobbet med Python og Arduino -koden og godkjente denne Instructable.

Anbefalt: