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, Rujan
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 naredbe putem telneta s drugog telefona ili računala, tako da robotom možete upravljati daljinski. 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, ploča Android G1 i Arduino omogućuju vam upotrebu jeftine elektronike, poput jednostavnih servo upravljača i senzora, za izgradnju moćnih uređaja poput robota, daljinske prisutnosti na daljinu ili zabavnih igračaka 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 modul BlueTooth od 20 USD na Arduino ploču kako bi telefon razgovarao s njim putem serijskog BlueTooth -a ako želite koristiti komercijalni Android softver. Posebna zahvala: Imamo hakerski dojo u Mountain Viewu u Kaliforniji koji nam 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 3.3V Arduino (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 što može) Softver: - Android Scripting Environment (ASE) - Telnet klijent za vaše računalo (koristim PuTTY u sustavu Windows) - Arduino razvojno okruženje - (izborno) Serijski klijent za vaše računalo (za to također koristim 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 ćete stvari željeti znati ako želite otić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 se ne isporučuju s mogućnošću slanja serijskih naredbi s USB priključka i ne postoji izvorna mogućnost za to. 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 s serijskim izlazom, dodajte ih u komentare.

Izborno, možete slijediti tamošnje veze do ovog uputstva za razgovor sa svojim G1 putem USB -a sa svog računala. 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 drugi uređaj za provjeru radi li serijski izlaz radi, 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ćenom popisu Python skripta koju ćemo kasnije koristiti šalje naredbe na '/dev/ttyMSM2' u kako bi prekinuli serijsku vezu. Budući da to zahtijeva root pristup, morat ćete promijeniti dopuštenja 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 u sljedećem koraku možete pokrenuti Python skriptu iz uređivanja Android Scriptinga i ona će imati pristup za slanje serijskog izlaza.

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

Instalirajte Android Scripting Environment (ASE) s Pythonom
Instalirajte Android Scripting Environment (ASE) s Pythonom
Instalirajte Android Scripting Environment (ASE) s Pythonom
Instalirajte Android Scripting Environment (ASE) s 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 crtičnog koda na toj stranici koji vodi do apk datoteke na ovoj stranici.

Nakon što instalirate i pokrenete ASE, htjet ćete iz izbornika dodati Python modul: 1. Otvorite ASE i provjerite imate li ispravnu internetsku vezu (wi-fi ili 3G) 2. Pritisnite gumb izbornika na telefonu i odaberite Tumači 3. Ponovno pritisnite izbornik i odaberite Dodaj 4. Odaberite Python (trenutno v2.6.2 od trenutka pisanja ovoga) i on će preuzeti neke zip datoteke. Možda biste htjeli 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 skriptu Cellbot.py za pokretanje programa Python

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

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čunala i montirao pogon prije kopiranja datoteke na/sdcard/ase/scripts.

Program stvara otvorenu utičnicu za prihvaćanje dolazne telnet sesije. Također ispisuje primljene naredbe na zaslon dok ih šalje kroz serijski port. Stavite ovu datoteku na SD karticu telefona u direktorij/ase/scripts/. Detaljni koraci za učitavanje i pokretanje skripti: 1. Kopirajte cellbot.py skriptu u/ase/scripts/direktorij SD kartice 2. Svakako isključite SD karticu s računala ako ste ih kopirali na taj način jer telefon ne može pristupiti datotekama u isto vrijeme kao i vaše računalo. 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 naredbe s računala. Ispisat će ih na zaslon telefona kako bi potvrdio ono što 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. To je dostupno ako odete u Izbornik> Postavke> Bežične kontrole> Wi-Fi postavke, 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 kad s računala želite otvoriti telnet sesiju. IP dodjele obično istječu nakon određenog broja dana pa ćete možda morati ovo ponovno provjeriti. Napomena: Ovaj vodič pretpostavlja da su vaše računalo i telefon na istoj lokalnoj mreži. Usmjeravanje na telefon izvan lokalne mreže trebalo bi biti moguće, ali ovdje nije obuhvaćeno. Otvorite svoj telnet klijent po izboru i povežite se s IP telefonom na portu 9002. Iz naredbenog retka to radite kao "telnet 192.168.1.1 9002" koristeći stvarni IP 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 trebalo bi pomoći. Napredni korisnici mogu 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: Spojite prekidač razine razine 3,3 V na 5 V na Arduino

Spojite mjenjač razine s 3.3v na 5v na Arduino
Spojite mjenjač razine s 3.3v na 5v na Arduino
Spojite mjenjač razine s 3.3v na 5v na Arduino
Spojite mjenjač razine s 3.3v na 5v na Arduino
Spojite mjenjač razine s 3.3v na 5v na Arduino
Spojite mjenjač razine s 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 razine. Trebalo bi biti moguće izravno spojiti se na 3.3v Arduino, ali to nisam testirao.

Postoji nekoliko načina da se tome pristupi, ali u ovom primjeru koristit ćemo čip 74LS04. Ovdje možete potražiti jedan i vjerojatno 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 visokoj razini jednostavno ćemo poslati TX signal s HTS USB razvodne ploče na pin 1 čipa 74LS04. Kako 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 to trebali podržati). Slijedite ove korake za povezivanje mjenjača razine i povezivanje HTC USB ploče (nemojte je još uključivati u telefon i isključiti napajanje iz Arduina): 1. Umetnite čip 74LS04 u 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 (pin 7) sa uzemljenjem na vašoj ploči (koja bi trebala biti spojena na masu na vašem Arduinu) 4. Spojite drugi kraj žice TX0 (pin 8) na ploču s ploču gdje nailazi na pin 1 čipa 74LS04. (pretražite sliku za potpuni dijagram čipa) 5. Žicom spojite 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 pin 7 (GND) na čipu na masu vaše matične ploče (koja se također spaja na Arduino masu) 8. Spojite pin 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 priključivanje HTC USB razvodne ploče na dno telefona i uključite Arduino. Provjerite ima li varnica i mirisa te dodirnite stvari kako biste bili hladni. Napomena: Trenutačni kod ćelijskog robota uključuje LED #13 kada bi trebali raditi servo motori robota. 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 sjajan način da isprobate svog robota ili uređaj izravno razgovarajući s Arduinom prije nego što sve povežete s telefonom. Kôd šalje serijske naredbe natrag na serijski monitor kako bi potvrdio što 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 staviti ovaj 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 terminalske sesije u telefonu. Upišite "H" da bi telefon pozdravio ili bilo koju drugu naredbu iz datoteke README.txt.

Znak "q" će zatvoriti 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 s našeg računala na telefon putem telneta na portu 9002 i šaljemo mu naredbe koje vidimo na ekranu 3. HTS USB ploča sučeljava se s USB priključkom 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 ponovno 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 upisati 'q' kako bi ubio Python skriptu i prekinuo telnet vezu Sada kada ste dovršili ovaj vrlo kompliciran proces slanja osnovnih naredbi Arduino robotu, vrijeme je da ga hakirate kako bi bio strašniji! 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čeni: