Obsah:

Robot Android G1 Serial to Arduino: 8 kroků
Robot Android G1 Serial to Arduino: 8 kroků

Video: Robot Android G1 Serial to Arduino: 8 kroků

Video: Robot Android G1 Serial to Arduino: 8 kroků
Video: learn Arduino programming in 20 seconds!! (Arduino projects) 2024, Září
Anonim
Android G1 Sériový robot Arduino
Android G1 Sériový robot Arduino
Android G1 Sériový robot Arduino
Android G1 Sériový robot Arduino
Android G1 Sériový robot Arduino
Android G1 Sériový robot Arduino

Zjistěte, jak může váš mobilní telefon Android ovládat robota pomocí desky Arduino. Telefon přijímá příkazy přes telnet z jiného telefonu nebo PC, takže můžete robota ovládat na dálku. Tento projekt jinak G1 nezmění, takže jej můžete po odpojení od doku nadále používat jako svůj normální telefon. Proč? Použitím levných elektronických součástek, jako jsou desky Arduino, je můžete spárovat s telefonem za 400 $ a vytvořit tak úžasného robota. Přidání GPS, LCD, pohybových senzorů, wi-fi, mobilních připojení, reproduktorů a dalších by stálo stovky dolarů do hobby robota, ale váš telefon je již má! Deska Android G1 a Arduino vám společně umožňují používat levnou elektroniku, jako jsou jednoduchá serva a senzory, k výrobě výkonných zařízení, jako jsou roboti, vzdálené telepresence nebo zábavné hračky pro děti. Více informací na Cellbots.com. Upozornění: Tento projekt aktuálně vyžaduje Android G1 s přístupem root, aby mohl využívat sériový výstup z telefonu do robota Arduino. Pokud chcete používat komerční software pro Android, můžete si na desku Arduino přidat modul BlueTooth v hodnotě 20 $, aby s ním telefon hovořil přes sériový BlueTooth. Zvláštní poděkování: Máme Hacker Dojo v Mountain View, CA, abychom vám poděkovali za kontakt, pomoc s některými záludnými problémy prostřednictvím jejich seznamu příjemců a za to, že máme 74LS04 žetony na skladě. Většina montáže byla provedena v Tech Shop v Menlo Parku.

Krok 1: Potřebné položky

Potřebné položky
Potřebné položky
Potřebné položky
Potřebné položky
Potřebné položky
Potřebné položky

K dokončení tohoto kurzu budete potřebovat následující: Hardware: - Android G1 Dev Phone (nebo jiné zařízení Android s přístupem root a sériovým výstupem) - Arduino (používám Freeduino SB, ale měl by to dělat každý) - 3,3 V až 5 V převodník, pokud nepoužíváte 3.3u Arduino (používám čip 74LS04 za méně než 1 $, ale jsou k dispozici další možnosti) - rozpojovací deska HTC USB pro G1 - pájecí zařízení pro dvě rychlá připojení - tělo robota s mikro serva (lepenka, akryl, běhouny, kolečka, cokoli) Software: - Android Scripting Environment (ASE) - klient Telnet pro váš počítač (používám PuTTY ve Windows) - vývojové prostředí Arduino - (volitelně) Sériový klient pro váš počítač (k tomu také používám PuTTY ve Windows) - (volitelně) Android SDK Pokud se budete řídit pokyny, můžete tento tutoriál dokončit s malou znalostí Pythonu, Arduina, Androidu nebo elektroniky. Budete chtít vědět tyto věci, pokud chcete jít nad rámec blikající LED, ale tím začnete.

Krok 2: Android G1 s povoleným sériovým výstupem

Android G1 s povoleným sériovým výstupem
Android G1 s povoleným sériovým výstupem
Android G1 s povoleným sériovým výstupem
Android G1 s povoleným sériovým výstupem
Android G1 s povoleným sériovým výstupem
Android G1 s povoleným sériovým výstupem

G1 se nedodávají s možností odesílat sériové příkazy z USB portu a neexistuje žádná nativní možnost, jak to povolit. Pokud jste pokročilý uživatel sady Android SDK, můžete si vytvořit vlastní sestavení, ale rozhodl jsem se použít Cyanogenmod 4.2.13. Pokud víte o dalších zařízeních Android se sériovým fungováním, přidejte je do komentářů.

Volitelně můžete sledovat odkazy na tento návod k rozhovoru s G1 přes USB z počítače. Toto sériové připojení k USB není pro tento tutoriál vyžadováno, ale použil jsem ho jako pěknou kontrolu duševního zdraví k ověření, že telefon odesílá sériové číslo. Pokud k ověření správnosti sériového výstupu nepoužíváte druhý nestrukturovatelný, můžete zkusit tuto jednoduchou kontrolu: 1. Otevřete aplikaci Terminal na G1 (dodává se s Cyanogenem, ale stáhněte si ji z Market, pokud máte jiný obrázek) 2. Přejděte do adresáře/dev/zadáním cd/dev/3. Zadejte ls (to je L) a v seznamu hledejte ttyMSM2 Skript Pythonu, který použijeme později, odešle příkazy do '/dev/ttyMSM2' v nařiďte jim, aby vyšli ze sériového připojení. Vzhledem k tomu, že to vyžaduje přístup root, budete na to muset změnit oprávnění při každém restartu telefonu. Chcete -li to provést: 1. Otevřete v telefonu aplikaci terminálu. 2. Zadejte 'chmod 777 /dev /ttyMSM2'. Poté můžete v dalším kroku spustit skript Pythonu z úpravy skriptování systému Android a bude mít přístup k odesílání sériového výstupu.

Krok 3: Nainstalujte si Android Scripting Environment (ASE) s Pythonem

Nainstalujte si prostředí Android Scripting Environment (ASE) s Pythonem
Nainstalujte si prostředí Android Scripting Environment (ASE) s Pythonem
Nainstalujte si prostředí Android Scripting Environment (ASE) s Pythonem
Nainstalujte si prostředí Android Scripting Environment (ASE) s Pythonem

Skripty, které použijeme k vytvoření otevřeného připojení soketu v telefonu a odesílání příkazů, jsou napsány v Pythonu. Abychom to mohli spustit na G1, budeme potřebovat skriptovací prostředí Android. Pokud ho na Market nevidíte, můžete si ho stáhnout naskenováním čárového kódu na této stránce, který odkazuje na soubor APK na této stránce.

Jakmile nainstalujete a spustíte ASE, budete chtít přidat modul Python z nabídky: 1. Otevřete ASE a ujistěte se, že máte funkční internetové připojení (wi-fi nebo 3G) 2. Stiskněte tlačítko nabídky na telefonu a vyberte Tlumočníci 3. Stiskněte znovu nabídku a vyberte Přidat 4. Vyberte Python (aktuálně v2.6.2 od psaní tohoto) a stáhne některé soubory zip Možná budete chtít prozkoumat vytváření, otevírání, úpravy a spouštění skriptů, abyste se s Pythonem seznámili prostřednictvím ASE, ale není to nutné.

Krok 4: Zkopírováním a spuštěním skriptu Cellbot.py spusťte program Python

Zkopírováním a spuštěním skriptu Cellbot.py spusťte program Python
Zkopírováním a spuštěním skriptu Cellbot.py spusťte program Python

Tento tutoriál používá skript Pythonu jako „mozek“robota. Získejte nejnovější kód z našeho open source projektu Google Code. Potřebujete pouze soubor cellbot.py, ale ostatní vám mohou pomoci s různými věcmi, které chcete prozkoumat. Před kopírováním souboru do/sdcard/ase/skriptů jsem jednoduše připojil telefon k USB připojení počítače a připojil disk.

Program vytvoří otevřené připojení soketu, aby přijal příchozí relaci telnetu. Rovněž vytiskne přijaté příkazy na obrazovku a odešle je ze sériového portu. Vložte tento soubor na SD kartu telefonu do adresáře/ase/scripts/. Podrobné kroky k načtení a spuštění skriptů: 1. Zkopírujte skript cellbot.py do adresáře/ase/scripts/na kartě SD 2. Nezapomeňte odpojit SD kartu z počítače, pokud jste je takto zkopírovali, protože telefon nemůže přistupovat k souborům současně s počítačem. 3. Otevřete aplikaci Android Scripting Environment 4. Spusťte ji kliknutím na cellbot.py. V tomto okamžiku byste měli vidět potvrzení, že je zařízení připraveno přijímat příchozí relace telnetu na portu 9002. Tip: Nezapomeňte spustit „chmod 777 /dev/ttyMSM2 nejprve z kroku č. 3. Nalezení IP adresy telefonu viz krok č. 5.

Krok 5: Telnet do G1 a test odeslání příkazů

Telnet do G1 a otestujte jeho odeslání
Telnet do G1 a otestujte jeho odeslání
Telnet do G1 a otestujte jeho odeslání
Telnet do G1 a otestujte jeho odeslání
Telnet do G1 a otestujte jeho odeslání
Telnet do G1 a otestujte jeho odeslání

Telefon by měl být připraven k tomu, abyste do něj mohli vysílat telnet a odesílat mu příkazy z počítače. Vytiskne je na obrazovku telefonu a potvrdí, co obdrží. Použil jsem PuTTY v systému Windows, ale potvrdili jsme, že minicom funguje skvěle na počítačích Mac, jak je popsáno v tomto návodu.

Nejprve budete muset zjistit IP adresu vašeho telefonu. To je k dispozici v nabídce> Nastavení> Bezdrátové ovládání> Nastavení Wi-Fi a poté stisknutí aktuálně aktivního připojení. Pop-up toast zpráva přijde s aktuální IP adresou v místní síti. Zapište si to, protože to budete používat pokaždé, když chcete otevřít relaci telnetu z počítače. Přiřazení IP obvykle vyprší po určitém počtu dní, takže je třeba to znovu zkontrolovat. Poznámka: Tento tutoriál předpokládá, že váš počítač a telefon jsou ve stejné místní síti. Směrování k telefonu mimo místní síť by mělo být možné, ale není zde zahrnuto. Otevřete svého vybraného klienta telnetu a připojte se k IP telefonu na portu 9002. Z příkazového řádku to uděláte jako „telnet 192.168.1.1 9002“pomocí skutečné IP telefonu. Zadejte některé znaky a stiskněte klávesu Enter, aby se zobrazily na obrazovce telefonu. Můžete zadat a q, aby se skript Pythonu ukončil, což by mělo zavřít relaci terminálu. Pokud se z nějakého důvodu nemůžete připojit přes telnet a potřebujete program zabít, mělo by stačit jednoduché restartování telefonu. Pokročilí uživatelé mohou chtít najít ID procesu pomocí ps a poté jej zastavit pomocí kill. Pokročilé: Budoucí verze této aplikace by mohla spouštět místní webový server z telefonu, nikoli přijímat příkazy prostřednictvím telnetu. Prozkoumáváme také XMPP pro chatování s vaším robotem.

Krok 6: Připojte řadič úrovně 3,3 V na 5 V k Arduinu

Připojte řadič úrovně 3,3 až 5 k Arduino
Připojte řadič úrovně 3,3 až 5 k Arduino
Připojte řadič úrovně 3,3 V k 5 V k Arduinu
Připojte řadič úrovně 3,3 V k 5 V k Arduinu
Připojte řadič úrovně 3,3 V k 5 V k Arduinu
Připojte řadič úrovně 3,3 V k 5 V k Arduinu

Arduino použité v tomto tutoriálu je model 5v, takže musíme převést signál 3,3v vycházející z G1 pomocí řadiče úrovně. Mělo by být možné připojit se přímo k 3.3u Arduino, ale to nebylo něco, co jsem testoval.

Existuje několik způsobů, jak k tomu přistoupit, ale v tomto příkladu použijeme čip 74LS04. Můžete zde jeden vyhledat a pravděpodobně nedosahují 1 $. Tim a já jsme si vybrali naše z Hacker Dojo v Mountain View, CA, ale jsou velmi běžné a měly by být hojné všude tam, kde se prodávají nebo darují čipy. Na vysoké úrovni jednoduše pošleme signál TX z desky HTS USB breakout na pin 1 čipu 74LS04. Aby to fungovalo, projdeme čip dvakrát a vyjdeme z pinu 4 na pin RX na Freeduino SB (váš sériový pin se může lišit, pokud máte další desku Arduino, ale všichni by to měli podporovat). Chcete -li zapojit měnič úrovně a připojit desku HTC USB (dosud ji nezapojujte do telefonu a neodpojujte napájení Arduina), postupujte takto: 1. Vložte čip 74LS04 na prkénko. Ujistěte se, že čip překrývá středový zlom, aby nedošlo ke zkratování kolíků (hloupý pohyb, který jsem udělal na začátku) 2. Voják dva vodiče k desce HTC USB, jak je popsáno v tomto pokynu, ale budeme používat pouze kolíky 7 (Ground) a 8 (TX0), protože pro tento tutoriál provádíme pouze jednosměrný přenos. 3. Připojte druhý konec uzemňovacího (pin 7) vodiče k uzemnění na vašem prkénku (které by mělo být připojeno k uzemnění na vašem Arduinu) 4. Připojte druhý konec vodiče TX0 (pin 8) k prkénku, kde narazí na pin 1 čipu 74LS04. (proveďte vyhledávání obrázku pro úplné schéma čipu) 5. Pomocí vodiče připojte pin 2 a 3 čipu 6. Připojte pin 4 čipu k bodu Arduino RX (pin 0 na Freeduino SB a Arduino Duemilanove) 7. Připojte pin 7 (GND) na čipu k zemi vašeho prkénka (které se také připojuje k uzemnění Arduino) 8. Připojte kolík 14 (VCC) k napájení 5 V na vašem prkénku (které získává energii z Arduina) 5v výstup) Nyní byste měli být připraveni zapojit rozpojovací desku HTC USB do spodní části telefonu a zapnout Arduino. Zkontrolujte jiskry a pachy a dotýkejte se věcí, aby byly chladné. Poznámka: Aktuální kód robota se rozsvítí LED #13, když by měly být servomotory robota v chodu. Pokud ještě nemáte robota, můžete zkontrolovat, zda se dioda LED rozsvítí a zhasne, abyste potvrdili, že funguje.

Krok 7: Načtěte program Cellbots do Arduina

Načtěte program Cellbots do Arduina
Načtěte program Cellbots do Arduina
Načtěte program Cellbots do Arduina
Načtěte program Cellbots do Arduina

Získejte zdrojový kód Arduino z naší stránky projektu Google Code. Otevřete program Arduino Cellbots.pde v editoru Arduino. Poté jej zatlačte na desku Arduino.

Mluvení s kódem Arduino můžete vyzkoušet otevřením sériového monitoru v editoru Arduino. Je to skvělý způsob, jak otestovat svého robota nebo zařízení tím, že budete mluvit přímo s Arduinem, než vše připojíte k telefonu. Kód odesílá sériové příkazy zpět na sériový monitor, aby potvrdil, co dělá, i když ještě nemáte robota postaveného. Poznámka: Programy nelze načíst do Arduina, když je vodič připojen k sériovému vstupnímu pinu RX. Takže možná budete chtít přepnout tento, ale jednoduše jsem ho odpojil, když jsem potřeboval načíst nový program.

Krok 8: Spusťte celý proces

Spusťte celý proces
Spusťte celý proces
Spusťte celý proces
Spusťte celý proces
Spusťte celý proces
Spusťte celý proces

Měli byste být schopni připojit desku HTC USB k telefonu, spustit soubor cellbot.py v ASE a otevřít terminálové relace do telefonu. Zadejte „H“, aby telefon pozdravil nebo jiné příkazy ze souboru README.txt.

„Q“ukončí skript Pythonu v telefonu a zavře zásuvku terminálu. Zde je rekapitulace, jak to všechno funguje: 1. Skript Pythonu otevře soket pro přijímání příchozích připojení telnetu a echo příkazů ze sériového portu 2. Připojíme se z našeho PC k telefonu přes telnet na portu 9002 a pošleme mu příkazy, které vidíme na obrazovce 3. Deska USB HTS je propojena s USB portem G1 a vysílá signál 3,3 V na pin 1 74LS04. signál vychází z čipu na pinu 2, vrací se na pin 3 a vychází opět na pinu 4 při 5v 5. Naše Arduino přijímá sériový signál na pinu RX 0 a zpracovává jej prostřednictvím programu Cellbot.pde 6. We můžete zadáním 'q' zabít skript Pythonu a zavřít připojení telnet Nyní, když jste dokončili tento velmi komplikovaný proces odesílání základních příkazů robotu Arduino, je načase, abyste ho hackli, aby byl ještě úžasnější! Zatím nemáme obousměrný sériový provoz, takže Arduino nemůže posílat příkazy zpět do telefonu, ale pracujeme na tom. Zůstaňte aktuální tím, že se přihlásíte k odběru našeho blogu na Cellbots.com. O autorech: Tim Heath Vedoucí výzkumník, který tento proces poprvé sestavil v Tech Shop v Menlo Parku, kde je členem. Ryan Hickman Programátor, který pracoval na kódu Pythonu a Arduina a authoered tento Instructable.

Doporučuje: