Sadržaj:

Android G1 serijski prema Arduino robotu: 8 koraka
Android G1 serijski prema Arduino robotu: 8 koraka

Video: Android G1 serijski prema Arduino robotu: 8 koraka

Video: Android G1 serijski prema Arduino robotu: 8 koraka
Video: SKR 1.4 - Fan Control 2024, Septembar
Anonim
Android G1 serijski za Arduino robota
Android G1 serijski za Arduino robota
Android G1 serijski za Arduino robota
Android G1 serijski za Arduino robota
Android G1 serijski za Arduino robota
Android G1 serijski za Arduino robota

Saznajte kako vaš Android mobitel može upravljati robotom pomoću Arduino ploče. Telefon prima komande putem telneta sa drugog telefona ili računara, tako da možete daljinski upravljati robotom. Ovaj projekt inače neće izmijeniti G1 tako da ga možete nastaviti koristiti kao svoj normalni telefon nakon što ga odspojite. Zašto? Korištenjem jeftinih elektroničkih komponenti, poput Arduino ploča, možete ih upariti sa svojim telefonom od 400 USD kako biste napravili sjajnog robota. Dodavanje GPS-a, LCD-a, senzora pokreta, wi-fi-ja, mobilnih veza, zvučnika i još mnogo toga koštalo bi stotine dolara, ali vaš telefon to već ima! Zajedno, Android G1 i Arduino ploča omogućuju vam upotrebu jeftine elektronike, poput jednostavnih servo servo i senzora, za izgradnju moćnih uređaja kao što su roboti, daljinsko prisustvo ili zabavne igračke za djecu. Više informacija na Cellbots.com. Napomena: Ovaj projekt trenutno zahtijeva Android G1 s root pristupom za korištenje serijskog izlaza s telefona na Arduino robota. Možete dodati BlueTooth modul od 20 USD na Arduino ploču kako bi telefon razgovarao s njim preko serijskog BlueTooth -a ako želite koristiti komercijalni Android softver. Posebna zahvala: Imamo hakerski dojo u Mountain Viewu, CA, koji nam se zahvaljuje što su nas kontaktirali, pomogli oko nekih zeznutih pitanja putem njihove mailing liste sjajnih članova i što imaju 74LS04 čipove na lageru. Većina montaže izvedena je u Tech Shopu u Menlo Parku.

Korak 1: Potrebne stavke

Potrebne stavke
Potrebne stavke
Potrebne stavke
Potrebne stavke
Potrebne stavke
Potrebne stavke

Da biste dovršili ovaj vodič, trebat će vam sljedeće: Hardver: - Android G1 Dev telefon (ili drugi Android uređaj s root pristupom i serijskim izlazom) - Arduino (koristim Freeduino SB, ali bilo koji bi trebao to učiniti) - 3,3 V do 5 V pretvarač ako ne koristite Arduino od 3,3 V (koristim čip 74LS04 za manje od 1 USD, ali dostupne su i druge opcije) - HTC USB razvodna ploča za G1 - Oprema za lemljenje za dvije brze veze - Robotsko tijelo sa mikro servo pogoni (karton, akril, gazišta, kotači, sve će poslužiti) Softver: - Android Scripting Environment (ASE) - Telnet klijent za vaš računar (koristim PuTTY u sustavu Windows) - Arduino razvojno okruženje - (izborno) Serijski klijent za vaš računar (za to koristim i PuTTY na Windowsima) - (izborno) Android SDK Ako možete slijediti upute, možete dovršiti ovaj vodič s malo znanja o Pythonu, Arduinu, Androidu ili elektronici. Te stvari ćete htjeti znati ako želite ići dalje od trepćuće LED diode, ali to će vam pomoći da započnete.

Korak 2: Android G1 s omogućenim serijskim izlazom

Android G1 s omogućenim serijskim izlazom
Android G1 s omogućenim serijskim izlazom
Android G1 s omogućenim serijskim izlazom
Android G1 s omogućenim serijskim izlazom
Android G1 s omogućenim serijskim izlazom
Android G1 s omogućenim serijskim izlazom

G1 -i se ne isporučuju s mogućnošću slanja serijskih naredbi s USB priključka i ne postoji izvorna opcija koja to omogućuje. Ako ste napredni korisnik Android SDK -a, mogli biste napraviti vlastitu verziju, ali ja sam odabrao Cyanogenmod 4.2.13. Ako znate za druge Android uređaje sa serijskim izlazom, dodajte ih u komentare.

Opcionalno, možete slijediti tamošnje veze do ovog uputstva za razgovor sa svojim G1 putem USB -a sa svog računara. Ta serijska na USB veza nije potrebna za ovaj vodič, ali sam je upotrijebio kao lijepu provjeru razuma kako bih provjerio je li telefon slao serijsku poruku. Ako ne koristite drugu vrstu nenametljivog da provjerite radi li serijski izlaz, možete isprobati ovu jednostavnu provjeru: 1. Otvorite aplikaciju Terminal na G1 (dolazi s Cyanogen -om, ali preuzmite je s marketa ako imate drugu sliku) 2 Idite do direktorija/dev/upisivanjem cd/dev/3. Upišite ls (to je L) i potražite ttyMSM2 na vraćenoj listi Python skripta koju ćemo kasnije koristiti šalje komande na '/dev/ttyMSM2' u naredite im da prekinu serijsku vezu. Budući da to zahtijeva root pristup, morat ćete promijeniti dozvole za to svaki put pri ponovnom pokretanju telefona. Da biste to učinili: 1. Otvorite terminal aplikaciju na telefonu 2. Unesite 'chmod 777 /dev /ttyMSM2' Zatim možete pokrenuti Python skriptu iz uređivanja Android Scripting u sljedećem koraku i ona će imati pristup za slanje serijskog izlaza.

Korak 3: Instalirajte Android Scripting Environment (ASE) sa Pythonom

Instalirajte Android Scripting Environment (ASE) sa Pythonom
Instalirajte Android Scripting Environment (ASE) sa Pythonom
Instalirajte Android Scripting Environment (ASE) sa Pythonom
Instalirajte Android Scripting Environment (ASE) sa Pythonom

Skripte koje ćemo koristiti za stvaranje otvorene utičnice na telefonu i slanje naredbi napisane su na Pythonu. Za pokretanje ovoga na G1 trebat će nam Android Scripting Environment. Ako ga ne vidite na Market -u, možete ga preuzeti skeniranjem bar koda na toj stranici koji vodi do apk datoteke na ovoj stranici.

Nakon što instalirate i pokrenete ASE, htjet ćete iz menija dodati Python modul: 1. Otvorite ASE i provjerite imate li ispravnu internetsku vezu (wi-fi ili 3G) 2. Pritisnite tipku izbornika na telefonu i odaberite Tumači 3. Pritisnite ponovo meni i odaberite Dodaj 4. Odaberite Python (trenutno v2.6.2 od trenutka pisanja ovoga) i on će preuzeti neke zip datoteke. Možda ćete htjeti istražiti stvaranje, otvaranje, uređivanje i pokretanje skripti da biste se upoznali s Pythonom putem ASE, ali nije potrebno.

Korak 4: Kopirajte i pokrenite Cellbot.py skriptu za pokretanje Python programa

Kopirajte i pokrenite Cellbot.py skriptu za pokretanje Python programa
Kopirajte i pokrenite Cellbot.py skriptu za pokretanje Python programa

Ovaj vodič koristi Python skriptu kao "mozak" robota. Nabavite najnoviji kôd iz našeg projekta Google Code otvorenog koda. Potrebna vam je samo datoteka cellbot.py, ali druge vam mogu pomoći u raznim stvarima koje želite istražiti. Jednostavno sam priključio telefon na USB vezu računara i montirao disk pre kopiranja datoteke na/sdcard/ase/scripts.

Program stvara otvorenu utičnicu za prihvatanje dolazne telnet sesije. Takođe štampa primljene komande na ekranu dok ih šalje preko serijskog porta. Stavite ovu datoteku na SD karticu telefona u/ase/scripts/direktorijum. Detaljni koraci za učitavanje i pokretanje skripti: 1. Kopirajte cellbot.py skriptu u/ase/scripts/direktorij SD kartice. 2. Isključite SD karticu s računara ako ste ih kopirali na taj način jer telefon ne može pristupiti datotekama u isto vrijeme kao i vaš računar. 3. Otvorite aplikaciju Android Scripting Environment 4. Kliknite na cellbot.py da biste je pokrenuli. Trebali biste vidjeti potvrdu da je uređaj u ovom trenutku spreman za prihvaćanje dolaznih telnet sesija na portu 9002. Savjet: Obavezno pokrenite "chmod 777 /dev/ttyMSM2 "naredba iz koraka #3 prvo. Pogledajte korak #5 za pronalaženje IP adrese telefona.

Korak 5: Telnet u naredbe G1 i testirajte njegovo slanje

Telnet u naredbe G1 i testiranje slanja
Telnet u naredbe G1 i testiranje slanja
Telnet u naredbe G1 i testiranje slanja
Telnet u naredbe G1 i testiranje slanja
Telnet u naredbe G1 i testiranje slanja
Telnet u naredbe G1 i testiranje slanja

Telefon bi trebao biti spreman da u njega unesete telnet i pošaljete mu komande sa računara. Odštampaće ih na ekranu telefona da potvrdi šta prima. Koristio sam PuTTY na Windowsima, ali smo potvrdili da minicom odlično radi na Mac računarima kako je opisano u ovom uputstvu.

Prvo ćete morati pronaći IP adresu svog telefona. Ovo je dostupno ako odete u Meni> Postavke> Bežične kontrole> Postavke Wi-Fi-ja, a zatim pritisnete trenutno aktivnu vezu. Pop-up toast poruka pojavit će se s trenutnom IP adresom na lokalnoj mreži. Zapišite ovo jer ćete ga koristiti svaki put kada želite otvoriti telnet sesiju sa svog računara. IP dodjele obično istječu nakon određenog broja dana pa ćete možda morati ovo ponovo provjeriti. Napomena: Ovaj vodič pretpostavlja da su vaš računar i telefon na istoj lokalnoj mreži. Usmjeravanje na telefon izvan lokalne mreže trebalo bi biti moguće, ali ovdje nije pokriveno. Otvorite svoj telnet klijent po izboru i povežite se na IP adresu telefona na portu 9002. Iz komandne linije to radite kao "telnet 192.168.1.1 9002" koristeći stvarnu IP adresu telefona. Upišite neke znakove i pritisnite enter da biste ih vidjeli na ekranu telefona. Možete upisati q kako biste izazvali zatvaranje Python skripte, što bi trebalo zatvoriti vašu terminalsku sesiju. Ako se iz bilo kojeg razloga ne možete povezati putem telneta i morate prekinuti program, jednostavno ponovno pokretanje telefona bi trebalo pomoći. Napredni korisnici će možda htjeti pronaći ID procesa putem ps -a, a zatim upotrijebiti kill da ga zaustave. Napredno: Buduća verzija ovoga mogla bi pokretati lokalni web poslužitelj s telefona umjesto prihvaćanja naredbi putem telneta. Također istražujemo XMPP za razgovor s vašim robotom.

Korak 6: Povežite mjenjač razine sa 3.3v na 5v na Arduino

Spojite mjenjač razine snage 3,3v na 5v na Arduino
Spojite mjenjač razine snage 3,3v na 5v na Arduino
Spojite mjenjač razine sa 3.3v na 5v na Arduino
Spojite mjenjač razine sa 3.3v na 5v na Arduino
Spojite mjenjač razine snage 3,3v na 5v na Arduino
Spojite mjenjač razine snage 3,3v na 5v na Arduino

Arduino koji se koristi u ovom vodiču je 5v model pa moramo pretvoriti 3.3v signal koji izlazi iz G1 pomoću mjenjača nivoa. Trebalo bi biti moguće spojiti se direktno na 3.3V Arduino, ali to nisam testirao.

Postoji nekoliko načina da se tome pristupi, ali ćemo u ovom primjeru koristiti čip 74LS04. Ovdje možete potražiti jedan i vjerovatno su ispod 1 USD. Tim i ja smo naše pokupili od Hacker Dojoa u Mountain Viewu, CA, ali oni su VRLO uobičajeni i trebali bi ih biti u izobilju gdje god se čipovi prodaju ili doniraju. Na visokom nivou jednostavno ćemo poslati TX signal sa HTS USB razvodne ploče na pin 1 čipa 74LS04. Da bismo uspjeli, dvaput prolazimo kroz čip i izlazimo na pin 4 do RX pina na Freeduino SB -u (vaš serijski pin može biti drugačiji ako imate drugu Arduino ploču, ali svi bi trebali to podržati). Slijedite ove korake za povezivanje mjenjača nivoa i povezivanje HTC USB ploče (nemojte je još uključivati u telefon i isključiti napajanje iz Arduina): 1. Umetnite čip 74LS04 na svoju matičnu ploču. Uvjerite se da čip ometa središnji lom kako pinovi ne bi bili kratki (u početku sam napravio glup potez) 2. Spojite dvije žice na HTC USB ploču kako je opisano u ovom uputstvu, ali koristit ćemo samo pinove 7 (Ground) i 8 (TX0) budući da za ovaj vodič radimo samo jednosmjerni prijenos. 3. Spojite drugi kraj žice za uzemljenje (iglica 7) sa uzemljenjem na vašoj matičnoj ploči (koja bi trebala biti spojena na masu na vašem Arduinu) 4. Spojite drugi kraj žice TX0 (iglica 8) na ploču s ploču gdje nailazi na pin 1 čipa 74LS04. (pretražite sliku za potpuni dijagram čipa) 5. Pomoću žice povežite pin 2 i 3 čipa 6. Spojite pin 4 čipa na Arduino RX točku (pin 0 na Freeduino SB i Arduino Duemilanove) 7. Spojite iglu 7 (GND) na čipu na uzemljenje vaše matične ploče (koja se također spaja na Arduino masu) 8. Spojite iglu 14 (VCC) na napajanje od 5 V na vašoj matičnoj ploči (koje napaja Arduino 5v izlaz) Sada biste trebali biti spremni za uključivanje HTC USB ploče za razbijanje u dno telefona i uključite Arduino. Provjerite ima li varnica i mirisa i dodirnite stvari kako biste bili hladni. Napomena: Trenutni kod ćelijskog robota uključuje LED #13 kada bi servo motori robota trebali raditi. Ako još nemate robota, možete provjeriti da li se LED uključuje i isključuje kako biste potvrdili da radi.

Korak 7: Učitajte program Cellbots na Arduino

Učitajte program Cellbots na Arduino
Učitajte program Cellbots na Arduino
Učitajte program Cellbots na Arduino
Učitajte program Cellbots na Arduino

Preuzmite Arduino izvorni kôd s naše web stranice projekta Google Code. Otvorite Arduino program Cellbots.pde u Arduino uređivaču. Zatim ga gurnite na Arduino ploču.

Možete testirati razgovor s Arduino kodom otvaranjem serijskog monitora u Arduino uređivaču. Ovo je odličan način da isprobate svog robota ili uređaj razgovarajući direktno s Arduinom prije nego što sve povežete s telefonom. Kôd šalje serijske naredbe natrag na serijski monitor kako bi potvrdio šta radi čak i ako još nemate izgrađenog robota. Napomena: Ne možete učitavati programe na Arduino dok je žica spojena na RX serijski ulazni pin. Dakle, možda biste htjeli ovom prebaciti prekidač, ali jednostavno sam ga isključio iz utičnice kad sam trebao učitati novi program.

Korak 8: Pokrenite cijeli proces

Pokrenite cijeli proces
Pokrenite cijeli proces
Pokrenite cijeli proces
Pokrenite cijeli proces
Pokrenite cijeli proces
Pokrenite cijeli proces

Trebali biste moći spojiti HTC USB ploču na telefon, pokrenuti datoteku cellbot.py u ASE -u i otvoriti terminalne sesije u telefonu. Upišite "H" da bi telefon pozdravio ili bilo koju drugu naredbu iz datoteke README.txt.

"Q" će napustiti Python skriptu na telefonu i zatvoriti terminalnu utičnicu. Evo kratkog prikaza kako sve to radi: 1. Python skripta otvara utičnicu za prihvaćanje dolaznih telnet veza i ponavlja naredbe sa serijskog porta 2 Povezujemo se sa našeg računara na telefon putem telneta na portu 9002 i šaljemo mu komande koje vidimo na ekranu 3. HTS USB ploča se povezuje sa USB portom G1 i šalje signal 3.3v na 74LS04 pin 1. 4. signal izlazi iz čipa na pin 2, vraća se na pin 3 i ponovo izlazi na pin 4 na 5v 5. Naš Arduino prihvaća serijski signal na RX pin 0 i obrađuje ga putem programa Cellbot.pde 6. Mi može otkucati 'q' da ubije Python skriptu i prekine telnet vezu Sada kada ste završili ovaj vrlo komplikovan proces slanja osnovnih naredbi Arduino robotu, vrijeme je da ga hakirate kako bi bilo sjajnije! Još nemamo dvosmjernu serijsku opremu pa Arduino ne može slati naredbe natrag u telefon, ali radimo na tome. Ostanite u toku pretplatom na naš blog na Cellbots.com. O autorima: Tim Heath Vodeći istraživač koji je prvi sastavio ovaj proces u Tech Shopu u Menlo Parku, gdje je njegov član. Ryan Hickman programer koji je radio na Python i Arduino kodu i autor ovog Instructable -a.

Preporučuje se: