Obsah:

Sériový robot Android G1 k Arduino: 8 krokov
Sériový robot Android G1 k Arduino: 8 krokov

Video: Sériový robot Android G1 k Arduino: 8 krokov

Video: Sériový robot Android G1 k Arduino: 8 krokov
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, Septembra
Anonim
Sériový robot Android G1 k Arduino
Sériový robot Android G1 k Arduino
Sériový robot Android G1 k Arduino
Sériový robot Android G1 k Arduino
Sériový robot Android G1 k Arduino
Sériový robot Android G1 k Arduino

Zistite, ako môže váš mobilný telefón s Androidom ovládať robota pomocou dosky Arduino. Telefón prijíma príkazy prostredníctvom telnetu z iného telefónu alebo počítača, takže robota môžete ovládať na diaľku. Tento projekt inak G1 neupraví, takže ho môžete po odpojení od doku naďalej používať ako svoj normálny telefón. Prečo? Použitím lacných elektronických komponentov, akými sú dosky Arduino, ich môžete spárovať s telefónom za 400 dolárov a vytvoriť tak úžasného robota. Pridanie GPS, LCD, pohybových senzorov, Wi-Fi, mobilných pripojení, reproduktorov a ďalších by stálo stovky dolárov, ale váš telefón ich už má! Doska Android G1 a Arduino vám spoločne umožňujú používať lacnú elektroniku, ako sú jednoduché servá a senzory, na stavbu výkonných zariadení, ako sú roboty, diaľkové ovládanie televízie alebo zábavné hračky pre deti. Viac informácií na Cellbots.com. Poznámka: Tento projekt v súčasnosti vyžaduje Android G1 s prístupom typu root, aby mohol používať sériový výstup z telefónu do robota Arduino. Ak chcete používať komerčný softvér Android, môžete na svoju dosku Arduino pridať modul BlueTooth v hodnote 20 dolárov, aby s ním telefón hovoril cez sériový modul BlueTooth. Špeciálne poďakovanie: Hacker Dojo v Mountain View v Kalifornii vám ďakuje za to, že nás kontaktoval, pomohol s niektorými zložitými problémami prostredníctvom ich zoznamu adresátov úžasných členov a za to, že má na sklade čipy 74LS04. Väčšina montáže bola vykonaná v Tech Shop v Menlo Parku.

Krok 1: Potrebné položky

Potrebné položky
Potrebné položky
Potrebné položky
Potrebné položky
Potrebné položky
Potrebné položky

Na dokončenie tohto tutoriálu budete potrebovať nasledujúce položky: Hardvér: - telefón s Androidom G1 Dev (alebo iné zariadenie s Androidom s prístupom typu root a sériovým výstupom) - Arduino (používam Freeduino SB, ale mal by to urobiť každý) - 3,3 v až 5 v konvertor, ak nepoužívate 3.3v Arduino (používam čip 74LS04 za menej ako 1 dolár, ale sú k dispozícii ďalšie možnosti) - rozpojovacia doska HTC USB pre G1 - spájkovacie zariadenie pre dve rýchle pripojenia - telo robota s mikro servá (kartón, akryl, behúne, kolesá, čokoľvek bude stačiť) Software: - Android Scripting Environment (ASE) - klient Telnet pre váš počítač (v systéme Windows používam PuTTY) - vývojové prostredie Arduino - (voliteľné) Sériový klient pre váš počítač (na to tiež používam PuTTY v systéme Windows) - (voliteľné) Android SDK Ak sa budete riadiť pokynmi, môžete tento návod dokončiť s malými znalosťami jazyka Python, Arduino, Android alebo elektroniky. Tieto veci budete chcieť vedieť, ak chcete prekročiť hranice blikajúcej diódy LED, ale tým sa naštartujete.

Krok 2: Android G1 so zapnutým sériovým výstupom

Android G1 so zapnutým sériovým výstupom
Android G1 so zapnutým sériovým výstupom
Android G1 so zapnutým sériovým výstupom
Android G1 so zapnutým sériovým výstupom
Android G1 so zapnutým sériovým výstupom
Android G1 so zapnutým sériovým výstupom

G1 sa nedodávajú s možnosťou odosielať sériové príkazy z portu USB a neexistuje žiadna natívna možnosť, ako to povoliť. Ak ste pokročilým používateľom súpravy Android SDK, môžete si vytvoriť vlastnú zostavu, ale ja som sa rozhodol použiť Cyanogenmod 4.2.13. Ak poznáte ďalšie zariadenia s Androidom, ktoré fungujú sériovo, pridajte ich do komentárov.

Voliteľne môžete nasledovať odkazy na tento návod na rozhovor s G1 cez USB z počítača. Toto pripojenie zo série na USB sa v tomto návode nevyžaduje, ale použil som ho ako príjemnú kontrolu zdravého rozumu na overenie, či telefón odosiela sériové čísla. Ak na overenie fungovania sériového výstupu nepoužívate druhý neštruktúrovateľný, môžete skúsiť túto jednoduchú kontrolu: 1. Otvorte aplikáciu Terminal na G1 (dodáva sa s Cyanogen, ale stiahnite si ju z Market, ak máte iný obrázok) 2. Prejdite do adresára/dev/zadaním cd/dev/3. Napíšte ls (to je L) a v zozname vyhľadajte ttyMSM2 Skript Python, ktorý použijeme neskôr, pošle príkazy do '/dev/ttyMSM2' v rozkážte im vypadnúť zo sériového pripojenia. Pretože to vyžaduje prístup root, budete k tomu musieť zmeniť povolenia pri každom reštarte telefónu. Postupujte takto: 1. V telefóne otvorte aplikáciu terminálu. 2. Zadajte 'chmod 777 /dev /ttyMSM2'. Potom v nasledujúcom kroku môžete spustiť skript Pythonu z úpravy skriptovania systému Android a bude mať prístup k odosielaniu sériového výstupu.

Krok 3: Nainštalujte si skriptovacie prostredie Android (ASE) s Pythonom

Nainštalujte si Android Scripting Environment (ASE) s Pythonom
Nainštalujte si Android Scripting Environment (ASE) s Pythonom
Nainštalujte si Android Scripting Environment (ASE) s Pythonom
Nainštalujte si Android Scripting Environment (ASE) s Pythonom

Skripty, ktoré použijeme na vytvorenie otvoreného pripojenia soketu v telefóne a odosielanie príkazov, sú napísané v Pythone. Aby sme to mohli spustiť na G1, budeme potrebovať skriptovacie prostredie Android. Ak ho na trhu nevidíte, môžete si ho stiahnuť naskenovaním čiarového kódu na tejto stránke, ktorý odkazuje na súbor APK na tejto stránke.

Po inštalácii a spustení ASE budete chcieť pridať modul Python z ponuky: 1. Otvorte ASE a uistite sa, že máte funkčné internetové pripojenie (wi-fi alebo 3G) 2. Na telefóne stlačte tlačidlo ponuky a vyberte Tlmočníci 3. Znova stlačte tlačidlo ponuky a vyberte položku Pridať 4. Vyberte položku Python (v súčasnosti v2.6.2 v čase písania tohto textu) a stiahne niektoré súbory zip. Možno budete chcieť preskúmať vytváranie, otváranie, úpravy a spúšťanie skriptov, aby ste sa v jazyku Python zoznámili prostredníctvom ASE, ale nie je to povinné.

Krok 4: Skopírujte a spustite skript Cellbot.py a spustite program Python

Skopírujte a spustite skript Cellbot.py, aby ste spustili program Python
Skopírujte a spustite skript Cellbot.py, aby ste spustili program Python

Tento tutoriál používa Python skript ako „mozog“robota. Získajte najnovší kód z nášho open source projektu Google Code. Potrebujete iba súbor cellbot.py, ale ostatní vám môžu pomôcť s rôznymi vecami, ktoré chcete preskúmať. Pred skopírovaním súboru na/sdcard/ase/skriptov som telefón jednoducho zapojil do USB pripojenia počítača a pripojil disk.

Program vytvorí otvorené soketové pripojenie na prijatie prichádzajúcej relácie telnetu. Prijaté príkazy vytlačí na obrazovku a súčasne ich odošle von zo sériového portu. Vložte tento súbor na SD kartu telefónu do adresára/ase/scripts/. Podrobné kroky na načítanie a spustenie skriptov: 1. Skopírujte skript cellbot.py do adresára/ase/scripts/na karte SD 2. Nezabudnite odpojiť kartu SD z počítača, ak ste ich takto skopírovali, pretože telefón nemôže súčasne pristupovať k súborom ako počítač. 3. Otvorte aplikáciu Android Scripting Environment 4. Spustite ju kliknutím na cellbot.py Mali by ste vidieť potvrdenie, že zariadenie je v tomto mieste pripravené na prijatie prichádzajúcich relácií telnetu na porte 9002. Tip: Nezabudnite spustiť „chmod 777 /dev/ttyMSM2 najskôr z kroku č. 3. V kroku č. 5 nájdete adresu IP telefónu.

Krok 5: Príkaz Telnet do siete G1 a test odoslania

Telnet do G1 a testovanie jeho odoslania
Telnet do G1 a testovanie jeho odoslania
Telnet do G1 a testovanie jeho odoslania
Telnet do G1 a testovanie jeho odoslania
Telnet do G1 a testovanie jeho odoslania
Telnet do G1 a testovanie jeho odoslania

Telefón by mal byť pripravený na to, aby ste sa do neho mohli telnetovať a odosielať mu príkazy z počítača. Vytlačí ich na obrazovku telefónu a potvrdí, čo dostane. Použil som PuTTY v systéme Windows, ale potvrdili sme, že minicom funguje skvele na počítačoch Mac, ako je popísané v tomto návode.

Najprv budete musieť zistiť IP adresu vášho telefónu. To je dostupné tak, že prejdete na položku Menu> Nastavenia> Bezdrôtové ovládače> Nastavenia Wi-Fi a potom stlačíte aktuálne aktívne pripojenie. Vyskakovacie hlásenie s prípitkom príde s aktuálnou IP adresou v miestnej sieti. Napíšte si to, pretože to budete používať vždy, keď chcete otvoriť reláciu telnetu z počítača. Priradenia adries IP spravidla vypršia po určitom počte dní, takže ich možno budete musieť znova skontrolovať. Poznámka: Tento tutoriál predpokladá, že váš počítač a telefón sú v rovnakej lokálnej sieti. Smerovanie na telefón zvonku lokálnej siete by malo byť možné, ale nie je tu uvedené. Otvorte zvoleného klienta telnet a pripojte sa k adrese IP telefónu na porte 9002. Z príkazového riadka to urobíte ako „telnet 192.168.1.1 9002“pomocou skutočnej adresy IP telefónu. Zadajte niektoré znaky a stlačením klávesu Enter ich zobrazíte na obrazovke telefónu. Môžete napísať a q, aby sa skript Python ukončil, čím by ste ukončili svoju koncovú reláciu. Ak sa z nejakého dôvodu nemôžete pripojiť prostredníctvom telnetu a potrebujete program zabiť, jednoduchý reštart telefónu by mal stačiť. Pokročilí používatelia môžu chcieť nájsť ID procesu pomocou ps a potom ho zastaviť pomocou príkazu kill. Pokročilé: V budúcej verzii by mohol byť lokálny webový server spustený z telefónu, a nie prijímať príkazy prostredníctvom telnetu. Tiež skúmame XMPP na rozhovor s vašim robotom.

Krok 6: Pripojte radič úrovne 3,3 V na 5 V k Arduinu

Pripojte radič úrovne 3,3 V na 5 V k Arduinu
Pripojte radič úrovne 3,3 V na 5 V k Arduinu
Pripojte radič úrovne 3,3 V na 5 V k Arduinu
Pripojte radič úrovne 3,3 V na 5 V k Arduinu
Pripojte radič úrovne 3,3 až 5 V k Arduinu
Pripojte radič úrovne 3,3 až 5 V k Arduinu

Arduino použité v tomto návode je 5v model, takže musíme previesť signál 3,3v vychádzajúci z G1 pomocou posunovača úrovne. Malo by byť možné pripojiť sa priamo k 3.3u Arduino, ale to nie je niečo, čo som testoval.

Existuje niekoľko spôsobov, ako sa k tomu postaviť, ale v tomto prípade použijeme čip 74LS04. Môžete ich nájsť tu a pravdepodobne budú nižšie ako 1 dolár. Tim a ja sme si vybrali naše z Hacker Dojo v Mountain View, CA, ale tieto sú VEĽMI bežné a mali by byť hojné všade tam, kde sa predávajú alebo darujú čipy. Na vysokej úrovni jednoducho pošleme signál TX z oddeľovacej dosky HTS USB na pin 1 čipu 74LS04. Aby to fungovalo, dvakrát prejdeme čipom a vyjdeme z pinu 4 na pin RX na Freeduino SB (váš sériový pin sa môže líšiť, ak máte inú dosku Arduino, ale všetky by to mali podporovať). Pri pripájaní radiacej páky úrovne a pripojení dosky HTC USB (zatiaľ ju nepripájajte k telefónu a neodpojujte napájanie od Arduina) postupujte nasledovne: 1. Vložte čip 74LS04 na dosku na chlieb. Uistite sa, že čip prekáža prerušeniu stredu, aby neboli kolíky skratované (hlúpy pohyb, ktorý som urobil najskôr) 2. Vojak, dva vodiče k doske HTC USB, ako je popísané v tomto návode, ale budeme používať iba kolíky 7 (Ground) a 8 (TX0), pretože v tomto návode robíme iba jednosmerný prenos. 3. Pripojte druhý koniec uzemňovacieho (pin 7) vodiča k uzemneniu na doske (ktoré by malo byť spojené so zemou na vašom Arduino) 4. Pripojte druhý koniec vodiča TX0 (pin 8) k nepájivému stolu, kde narazí na kolík 1 čipu 74LS04. (urobte vyhľadávanie obrázka pre úplný diagram čipu) 5. Pomocou drôtu spojte kolíky 2 a 3 čipu 6. Pripojte pin 4 čipu k bodu Arduino RX (kolík 0 na Freeduino SB a Arduino Duemilanove) 7. Pripojte pin 7 (GND) na čipe k uzemneniu vášho nepájivého poľa (ktoré sa tiež pripája k uzemneniu Arduino) 8. Pripojte kolík 14 (VCC) k napájaniu 5 V na vašom doske (ktoré napája z Arduina Teraz by ste mali byť pripravení zapojiť vypínaciu dosku HTC USB do spodnej časti telefónu a zapnúť Arduino. Skontrolujte iskry a pachy a dotýkajte sa vecí, aby boli chladné. Poznámka: Aktuálny kód cellbot zapne LED #13, keď by mali byť servomotory robota v prevádzke. Ak ešte nemáte robota, môžete skontrolovať, či sa LED dióda zapína a vypína, aby ste sa uistili, že funguje.

Krok 7: Načítajte program Cellbots do Arduina

Načítajte program Cellbots do Arduina
Načítajte program Cellbots do Arduina
Načítajte program Cellbots do Arduina
Načítajte program Cellbots do Arduina

Získajte zdrojový kód Arduino z nášho webu projektu Google Code. V editore Arduino otvorte program Cellbots.pde Arduino. Potom ho zatlačte na dosku Arduino.

Hovorenie s kódom Arduino si môžete vyskúšať otvorením sériového monitora v editore Arduino. Je to úžasný spôsob, ako otestovať svojho robota alebo zariadenie tým, že sa porozprávate priamo s Arduinom a potom všetko zavesíte na telefón. Kód odosiela sériové príkazy späť na sériový monitor, aby potvrdil, čo robí, aj keď ešte nemáte robota postaveného. Poznámka: Programy nemôžete načítať do Arduina, kým je vodič pripojený k sériovému vstupnému kolíku RX. Takže možno budete chcieť prepnúť tento, ale jednoducho som ho odpojil, keď som potreboval načítať nový program.

Krok 8: Spustite celý proces

Spustite celý proces
Spustite celý proces
Spustite celý proces
Spustite celý proces
Spustite celý proces
Spustite celý proces

Mali by ste byť schopní pripojiť dosku HTC USB k telefónu, spustiť súbor cellbot.py v ASE a otvoriť terminálové relácie do telefónu. Zadajte „H“, aby telefón pozdravil alebo akékoľvek iné príkazy zo súboru README.txt.

„Q“ukončí skript Pythonu v telefóne a zatvorí koncovú zásuvku. Tu je zhrnutie toho, ako to všetko funguje: 1. Skript Python otvorí soket na prijatie prichádzajúcich pripojení telnetu a zopakuje príkazy zo sériového portu 2 Pripojíme sa z počítača k telefónu prostredníctvom telnetu na porte 9002 a odošleme mu príkazy, ktoré vidíme na obrazovke 3. Doska USB HTS je prepojená s portom USB G1 a odosiela signál 3,3 V na kolík 1 74LS04. signál pochádza z čipu na pine 2, vracia sa na pin 3 a opäť vychádza na pine 4 pri 5v 5. Naše Arduino prijíma sériový signál na pine RX 0 a spracováva ho prostredníctvom programu Cellbot.pde 6. My môžete zadať 'q' a zabiť skript Pythonu a ukončiť pripojenie k telnetu Teraz, keď ste dokončili tento veľmi komplikovaný proces odosielania základných príkazov robotovi Arduino, je načase, aby ste ho hackli, aby bol ešte úžasnejší! Zatiaľ nemáme obojsmerný sériový port, takže Arduino nemôže odosielať príkazy späť do telefónu, ale pracujeme na tom. Zostaňte aktuálni prihlásením sa na odber nášho blogu na Cellbots.com. O autoroch: Tim Heath Vedúci výskumník, ktorý tento proces najskôr zostavil v Tech Shop v Menlo Parku, kde je členom. Programátor Ryana Hickmana, ktorý pracoval na kóde Pythonu a Arduina a vytvoril tento návod podľa pokynov.

Odporúča: