Kazalo:

Android G1 Serial do Arduino Robot: 8 korakov
Android G1 Serial do Arduino Robot: 8 korakov

Video: Android G1 Serial do Arduino Robot: 8 korakov

Video: Android G1 Serial do Arduino Robot: 8 korakov
Video: Arduino vs. Wires! And the winner is? 2024, September
Anonim
Android G1 Serial za Arduino Robot
Android G1 Serial za Arduino Robot
Android G1 Serial za Arduino Robot
Android G1 Serial za Arduino Robot
Android G1 Serial za Arduino Robot
Android G1 Serial za Arduino Robot

Preberite, kako lahko vaš mobilni telefon Android upravlja robota z uporabo plošče Arduino. Telefon sprejema ukaze prek telneta iz drugega telefona ali računalnika, tako da lahko robota upravljate na daljavo. Ta projekt sicer ne bo spremenil G1, tako da ga lahko po odpenjanju še naprej uporabljate kot običajen telefon. Z uporabo poceni elektronskih komponent, kot so plošče Arduino, jih lahko povežete s telefonom za 400 USD, da naredite čudovitega robota. Dodajanje GPS-ja, LCD-jev, senzorjev gibanja, wi-fi-ja, mobilnih povezav, zvočnikov in še več bi stalo več sto dolarjev, a vaš telefon jih že ima! Skupaj vam plošča Android G1 in Arduino omogočata uporabo poceni elektronike, kot so preprosti servomotorji in senzorji, za izdelavo zmogljivih naprav, kot so roboti, oddaljena prisotnost na daljavo ali zabavne igrače za otroke. Več informacij na Cellbots.com. Opomba: Ta projekt trenutno zahteva Android G1 s korenskim dostopom za uporabo serijskega izhoda iz telefona v robota Arduino. Na ploščo Arduino lahko dodate modul BlueTooth v vrednosti 20 USD, da se telefon pogovarja z njim prek serijske programske opreme BlueTooth, če želite uporabljati komercialno programsko opremo Android. Posebna zahvala: Hacker Dojo v Mountain Viewu v Kaliforniji se vam zahvaljujemo, da ste nas kontaktirali, pomagali pri nekaterih zapletenih vprašanjih prek njihovega poštnega seznama odličnih članov in imeli na zalogi čipe 74LS04. Večino montaže so opravili v trgovini Tech v Menlo Parku.

1. korak: Potrebni predmeti

Potrebni predmeti
Potrebni predmeti
Potrebni predmeti
Potrebni predmeti
Potrebni predmeti
Potrebni predmeti

Za dokončanje te vadnice boste potrebovali naslednje: Strojna oprema: - Android G1 Dev Phone (ali druga naprava Android s korenskim dostopom in serijskim izhodom) - Arduino (uporabljam Freeduino SB, vendar bi moral to narediti vsak) - 3,3 V do 5 V pretvornik, če ne uporabljate 3.3V Arduino (uporabljam čip 74LS04 za manj kot 1 USD, na voljo pa so tudi druge možnosti) - HTC USB izklopna plošča za G1 - Spajkalna oprema za dve hitri povezavi - Robotsko telo z mikro servomotorji (karton, akril, tekalne plasti, kolesa, karkoli bo pomagalo) Programska oprema: - Android Scripting Environment (ASE) - Telnet odjemalec za vaš računalnik (uporabljam PuTTY v sistemu Windows) - Arduino razvojno okolje - (neobvezno) Serijski odjemalec za vaš računalnik (za to uporabljam tudi PuTTY v sistemu Windows) - (neobvezno) Android SDK Če lahko sledite navodilom, lahko dokončate to vadnico z malo znanja o Pythonu, Arduinu, Androidu ali elektroniki. Te stvari boste želeli vedeti, če želite preseči utripajočo LED, vendar boste s tem začeli.

2. korak: Android G1 z omogočenim serijskim izhodom

Android G1 z omogočenim serijskim izhodom
Android G1 z omogočenim serijskim izhodom
Android G1 z omogočenim serijskim izhodom
Android G1 z omogočenim serijskim izhodom
Android G1 z omogočenim serijskim izhodom
Android G1 z omogočenim serijskim izhodom

G1 -ji niso na voljo z možnostjo pošiljanja serijskih ukazov iz vrat USB in za to ni izvorne možnosti. Če ste napreden uporabnik SDK za Android, bi lahko naredili lastno gradnjo, vendar sem se odločil za uporabo Cyanogenmod 4.2.13. Če poznate druge naprave Android, ki delujejo serijsko, jih dodajte v komentarje.

Po želji lahko sledite povezavam do tega navodila za pogovor z vašim G1 prek USB -ja iz računalnika. Ta serijska povezava z USB ni potrebna za to vadnico, vendar sem jo uporabil kot dober pregled pri preverjanju, ali telefon pošilja serijsko številko. Če ne uporabljate drugega vsiljivca za preverjanje, ali serijski izhod deluje, lahko poskusite s tem preprostim preverjanjem: 1. Odprite aplikacijo Terminal na G1 (priložena je Cyanogen, vendar jo prenesite s trga, če imate drugo sliko) 2. Pomaknite se do imenika/dev/tako, da vnesete cd/dev/3. Vnesite ls (to je L) in poiščite ttyMSM2 na vrnjenem seznamu Skript Python, ki ga bomo kasneje uporabili, pošlje ukaze na '/dev/ttyMSM2' v naročiti, naj prekinejo serijsko povezavo. Ker to zahteva korenski dostop, boste morali ob vsakem ponovnem zagonu telefona spremeniti dovoljenja. Če želite to narediti: 1. Odprite aplikacijo terminala v telefonu 2. Vnesite 'chmod 777 /dev /ttyMSM2' Nato lahko v naslednjem koraku zaženete skript Python iz urejanja skripta Android in ta bo imel dostop za pošiljanje serijskega izhoda.

3. korak: Namestite skriptno okolje Android (ASE) s Pythonom

S Pythonom namestite skriptno okolje Android (ASE)
S Pythonom namestite skriptno okolje Android (ASE)
S Pythonom namestite skriptno okolje Android (ASE)
S Pythonom namestite skriptno okolje Android (ASE)

Skripti, ki jih bomo uporabili za ustvarjanje odprte vtičnice v telefonu in pošiljanje ukazov, so napisani v Pythonu. Za zagon tega na G1 potrebujemo skriptno okolje Android. Če ga ne vidite na Tržnici, ga lahko prenesete tako, da skenirate črtno kodo na tej strani, ki povezuje datoteko apk na tej strani.

Ko namestite in zaženete ASE, boste morali v meniju dodati modul Python: 1. Odprite ASE in se prepričajte, da imate delujočo internetno povezavo (wi-fi ali 3G) 2. Pritisnite gumb menija na telefonu in izberite Tolmači 3. Ponovno pritisnite meni in izberite Dodaj 4. Izberite Python (trenutno v2.6.2, ko to pišete) in naložil bo nekaj zip datotek. Morda boste želeli raziskati ustvarjanje, odpiranje, urejanje in izvajanje skriptov, da se seznanite s Pythonom prek ASE, vendar to ni potrebno.

4. korak: Kopirajte in zaženite skript Cellbot.py za zagon programa Python

Kopirajte in zaženite skript Cellbot.py za zagon programa Python
Kopirajte in zaženite skript Cellbot.py za zagon programa Python

Ta vadnica uporablja skript Python kot "možgane" robota. Pridobite najnovejšo kodo iz našega odprtokodnega projekta Google Code. Potrebujete samo datoteko cellbot.py, druge pa vam lahko pomagajo pri različnih stvareh, ki jih želite raziskati. Telefon sem preprosto priključil na USB povezavo računalnika in pred kopiranjem datoteke v/sdcard/ase/scripts namestil pogon.

Program ustvari odprto vtičnico za sprejem dohodne seje telnet. Prav tako natisne prejete ukaze na zaslon, medtem ko jih pošlje skozi serijska vrata. To datoteko postavite na kartico SD telefona v imenik/ase/scripts/. Podrobni koraki za nalaganje in zagon skriptov: 1. Kopirajte skript cellbot.py v imenik kartice/ase/scripts/na kartici SD 2. Odstranite kartico SD iz računalnika, če ste jih tako kopirali, saj telefon ne more dostopati do datotek hkrati z računalnikom. 3. Odprite aplikacijo Scripting Environment Android 4. Kliknite na cellbot.py, da jo zaženete. Videti morate potrditev, da je naprava na tej točki pripravljena za sprejem dohodnih sej telnet na vratih 9002. Nasvet: Zaženite "chmod 777 /dev/ttyMSM2 "najprej iz koraka #3. Poiščite IP naslov telefona v 5. koraku.

5. korak: Telnet v ukaze G1 in preskusno pošiljanje

Telnet v ukaze G1 in preskusno pošiljanje
Telnet v ukaze G1 in preskusno pošiljanje
Telnet v ukaze G1 in preskusno pošiljanje
Telnet v ukaze G1 in preskusno pošiljanje
Telnet v ukaze G1 in preskusno pošiljanje
Telnet v ukaze G1 in preskusno pošiljanje

Telefon mora biti pripravljen, da vanj vnesete telnet in mu pošljete ukaze iz računalnika. Natisnil jih bo na zaslon telefona, da potrdi, kaj prejme. V operacijskem sistemu Windows sem uporabil PuTTY, vendar smo potrdili, da minicom odlično deluje na računalnikih Mac, kot je opisano v tem navodilu.

Najprej morate poiskati naslov IP telefona. To je na voljo tako, da odprete Meni> Nastavitve> Brezžični nadzor> Nastavitve Wi-Fi in nato pritisnete trenutno aktivno povezavo. Pojavilo se bo pojavno toast sporočilo s trenutnim naslovom IP v lokalnem omrežju. Zapišite to, saj boste to uporabili vsakič, ko želite odpreti sejo telnet iz računalnika. Dodelitve IP običajno potečejo po določenem številu dni, zato boste morda morali to znova preveriti. Opomba: Ta vadnica predvideva, da sta računalnik in telefon v istem lokalnem omrežju. Usmerjanje na telefon izven lokalnega omrežja bi moralo biti možno, vendar tukaj ni zajeto. Odprite izbranega odjemalca telnet in se povežite z IP -jem telefona na vratih 9002. V ukazni vrstici to naredite kot "telnet 192.168.1.1 9002" z dejanskim IP -jem telefona. Vnesite nekaj znakov in pritisnite enter, da se prikažejo na zaslonu telefona. Če želite zapreti skript Python, lahko vnesete q, ki bi moral zapreti vašo terminalsko sejo. Če se iz kakršnega koli razloga ne morete povezati prek telneta in morate ubiti program, bi moral preprost ponovni zagon telefona narediti trik. Napredni uporabniki bodo morda želeli poiskati ID procesa prek ps in nato uporabiti kill, da ga ustavijo. Napredno: Prihodnja različica tega bi lahko namesto sprejemanja ukazov prek telneta izvajala lokalni spletni strežnik iz telefona. Raziskujemo tudi XMPP za klepet z vašim robotom.

Korak 6: Na Arduino priključite preklopnik nivoja 3.3v na 5v

Na Arduino priključite menjalnik nivoja od 3.3v do 5v
Na Arduino priključite menjalnik nivoja od 3.3v do 5v
Na Arduino priključite menjalnik nivoja od 3.3v do 5v
Na Arduino priključite menjalnik nivoja od 3.3v do 5v
Na Arduino priključite menjalnik nivoja od 3.3v do 5v
Na Arduino priključite menjalnik nivoja od 3.3v do 5v

Arduino, uporabljen v tej vadnici, je 5 -voltni model, zato moramo pretvornik 3,3 -voltnega signala, ki prihaja iz G1, uporabiti s pomočjo menjalnika nivoja. Mogoče bi bilo mogoče neposredno povezati z 3.3V Arduinom, vendar tega nisem preizkusil.

K temu lahko pristopimo na več načinov, vendar bomo v tem primeru uporabili čip 74LS04. Tu lahko iščete enega in verjetno so pod 1 USD. S Timom sva našo izbrala iz Hacker Dojoja v Mountain Viewu v Kaliforniji, vendar sta ZELO pogosta in bi ju bilo treba prodati povsod, kjer se čipi prodajo ali podarijo. Na visoki ravni bomo preprosto poslali signal TX iz prekinjene plošče USB HTS na pin 1 čipa 74LS04. Da bi to delovalo, dvakrat preidemo skozi čip in pridemo na pin 4 do pin RX na Freeduino SB (vaš serijski pin je lahko drugačen, če imate drugo ploščo Arduino, vendar bi morali vsi to podpirati). Sledite tem korakom, da priključite menjalnik nivoja in priključite USB ploščo HTC (ne priključite je še v telefon in izklopite napajanje iz Arduina): 1. Vstavite čip 74LS04 na svojo ploščo. Prepričajte se, da čip ovira sredinski prelom, da se zatiči ne bi skrajšali (sprva sem naredil neumno potezo) 2. Priključite dve žici na ploščo USB HTC, kot je opisano v tem navodilu, vendar bomo uporabili le zatiče 7 (Ground) in 8 (TX0), saj za to vadnico izvajamo samo enosmerni prenos. 3. Drugi konec ozemljitvene žice (nožica 7) priključite na ozemljitev na vaši plošči (ki bi jo morali priključiti na ozemljitev na vašem Arduinu) 4. Drugi konec žice TX0 (pin 8) priključite na ploščo naleti na pin 1 čipa 74LS04. (poiščite sliko za celoten diagram čipa) 5. Z žico povežite nožici 2 in 3 čipa 6. Pin 4 čipa povežite s točko Arduino RX (pin 0 na Freeduino SB in Arduino Duemilanove) 7. Priključite nožico 7 (GND) na čipu na tla za vašo mizo (ki se poveže tudi z ozemljitvijo Arduino) 8. Priključite pin 14 (VCC) na napajanje 5v na vaši plošči (ki napaja Arduino 5v izhod) Zdaj bi morali biti pripravljeni, da priključite izklopno ploščo HTC USB na dno telefona in vklopite Arduino. Preverite iskrenje in vonjave ter se dotaknite stvari, da se ohladijo. Opomba: Trenutna koda cellbota vklopi LED #13, ko bi morali delovati servo motorji robota. Če še nimate robota, lahko preverite, ali LED sveti in ugasne, da preverite, ali deluje.

7. korak: Naložite program Cellbots na Arduino

Naložite program Cellbots na Arduino
Naložite program Cellbots na Arduino
Naložite program Cellbots na Arduino
Naložite program Cellbots na Arduino

Pridobite izvorno kodo Arduino z našega spletnega mesta projekta Google Code. Odprite program Arduino Cellbots.pde v urejevalniku Arduino. Nato ga potisnite na ploščo Arduino.

Pogovor s kodo Arduino lahko preizkusite tako, da odprete serijski monitor v urejevalniku Arduino. To je odličen način, da preizkusite svojega robota ali napravo, tako da se neposredno pogovorite z Arduinom, preden vse povežete s telefonom. Koda pošilja serijske ukaze nazaj na serijski monitor, da potrdi, kaj počne, tudi če še nimate vgrajenega robota.. Zato bi morda želeli to preklopiti, vendar sem jo preprosto odklopil, ko sem moral naložiti nov program.

8. korak: Zaženite celoten postopek

Zaženite celoten proces
Zaženite celoten proces
Zaženite celoten proces
Zaženite celoten proces
Zaženite celoten proces
Zaženite celoten proces

HTC USB ploščo bi morali povezati s telefonom, zagnati datoteko cellbot.py v ASE in v telefon odpreti terminalske seje. Vnesite "H", če želite, da vas telefon pozdravi ali kateri koli drug ukaz iz datoteke README.txt.

"Q" bo zapustil skript Python na telefonu in zaprl priključno vtičnico. Tukaj je povzetek, kako vse deluje: 1. Skript Python odpre vtičnico za sprejem dohodnih povezav telnet in odmeva ukaze iz serijskih vrat 2 Iz računalnika se povežemo s telefonom prek telneta na vratih 9002 in mu pošljemo ukaze, ki jih vidimo na zaslonu 3. HTS USB plošča se poveže z vrati USB G1 in pošlje signal 3.3V v pin 1. 74LS04. signal prihaja iz čipa na pin 2, se vrne nazaj na pin 3 in spet pride na pin 4 pri 5v 5. Naš Arduino sprejme serijski signal na RX pin 0 in ga obdela prek programa Cellbot.pde 6. lahko vnesete 'q', da prekinete skript Python in zaprete povezavo telnet Zdaj, ko ste končali ta zelo zapleten postopek za pošiljanje osnovnih ukazov robotu Arduino, je čas, da ga vdrete, da bo bolj osupljiv! Dvosmerne serijske enote še nimamo, zato Arduino ne more pošiljati ukazov nazaj v telefon, vendar delamo na tem. Ostanite na tekočem tako, da se naročite na naš blog na spletnem mestu Cellbots.com. O avtorjih: Tim Heath Vodilni raziskovalec, ki je prvič združil ta proces v trgovini Tech v Menlo Parku, kjer je njegov član. Ryan Hickman Programer, ki je delal na kodi Python in Arduino in je avtor tega Instructable.

Priporočena: