Taula de continguts:

Robot sèrie Android G1 a Arduino: 8 passos
Robot sèrie Android G1 a Arduino: 8 passos

Vídeo: Robot sèrie Android G1 a Arduino: 8 passos

Vídeo: Robot sèrie Android G1 a Arduino: 8 passos
Vídeo: Assembling WZY569 4WD robot platform (crawler) for Arduino 2024, De novembre
Anonim
Robot sèrie Android G1 a Arduino
Robot sèrie Android G1 a Arduino
Robot sèrie Android G1 a Arduino
Robot sèrie Android G1 a Arduino
Robot sèrie Android G1 a Arduino
Robot sèrie Android G1 a Arduino

Obteniu informació sobre com el vostre telèfon mòbil Android pot controlar un robot mitjançant una placa Arduino. El telèfon pren ordres mitjançant telnet des d’un altre telèfon o un PC, de manera que podeu controlar el robot de forma remota. D'altra banda, aquest projecte no modificarà el G1, de manera que podeu continuar utilitzant-lo com a telèfon normal després de desconnectar-lo. En utilitzar components electrònics econòmics, com ara les plaques Arduino, podeu combinar-los amb el vostre telèfon de 400 dòlars per fer un robot fantàstic. Costaria centenars de dòlars afegir GPS, LCD, sensors de moviment, wi-fi, connexions mòbils, altaveus i molt més a un bot hobby, però el vostre telèfon ja en té. Junts, la placa Android G1 i Arduino us permeten utilitzar components electrònics econòmics, com servos i sensors senzills, per construir dispositius potents com ara robots, telepresència remota o divertides joguines per a nens. Més informació a Cellbots.com Avís: aquest projecte requereix actualment un Android G1 amb accés root per utilitzar la sortida serial del telèfon al robot Arduino. Podeu afegir un mòdul BlueTooth de 20 dòlars a la vostra placa Arduino per fer-li parlar el telèfon mitjançant BlueTooth en sèrie si voleu utilitzar el programari comercial d'Android. Agraïments especials: Tenim el Hacker Dojo a Mountain View, CA, per agrair-nos que ens poseu en contacte, que ens ajudeu amb alguns problemes complicats a través de la llista de correu dels membres fantàstics i que tingueu en stock xips 74LS04. La major part del muntatge es va fer a la botiga de tecnologia de Menlo Park.

Pas 1: elements necessaris

Elements necessaris
Elements necessaris
Elements necessaris
Elements necessaris
Elements necessaris
Elements necessaris

Per completar aquest tutorial necessitareu el següent: Maquinari: - Telèfon Android G1 Dev (o un altre dispositiu Android amb accés root i sortida sèrie) - Arduino (estic fent servir un Freeduino SB però qualsevol ho hauria de fer) - 3,3v a 5v convertidor si no utilitzeu un Arduino de 3,3 v (estic fent servir un xip 74LS04 per menys d’1 dòlar, però hi ha altres opcions disponibles) - Taula USB USB HTC per al G1 - Equip de soldadura per a dues connexions ràpides - Un cos de robot amb micro servos (cartró, acrílic, bandes de rodament, rodes, qualsevol cosa que faci) Programari: - Entorn d’escriptura d’Android (ASE) - Client Telnet per al vostre PC (estic fent servir PuTTY al Windows) - Entorn de desenvolupament Arduino - (opcional) Client sèrie per a el vostre PC (també estic fent servir PuTTY al Windows) - (opcional) SDK d'Android. Si podeu seguir les instruccions, podeu completar aquest tutorial amb pocs coneixements de Python, Arduino, Android o electrònica. Voleu saber aquestes coses si voleu anar més enllà d’un LED parpellejant, però això us farà començar.

Pas 2: Android G1 amb sortida de sèrie activada

Android G1 amb sortida de sèrie habilitada
Android G1 amb sortida de sèrie habilitada
Android G1 amb sortida de sèrie habilitada
Android G1 amb sortida de sèrie habilitada
Android G1 amb sortida de sèrie habilitada
Android G1 amb sortida de sèrie habilitada

Els G1 no s’envien amb la possibilitat d’enviar ordres de sèrie des del port USB i no hi ha cap opció nativa que l’habiliti. Si sou un usuari avançat de l’SDK d’Android, podríeu fer la vostra pròpia versió, però vaig optar per utilitzar el Cyanogenmod 4.2.13. Si coneixeu altres dispositius Android que funcionen en sèrie, afegiu-los als comentaris.

Opcionalment, podeu seguir els enllaços que apareixen a aquesta instrucció sobre com parlar amb el vostre G1 per USB des del vostre PC. Aquesta connexió de sèrie a USB no és necessària per a aquest tutorial, però l'he utilitzat com una bona comprovació de seny per verificar que el telèfon enviava sèrie. Si no utilitzeu l'altre intructable per verificar que la sortida de sèrie funciona, podeu provar aquesta senzilla comprovació: 1. Obriu l'aplicació Terminal del G1 (ve amb Cyanogen, però descarregueu-ne una des del Market si teniu una imatge diferent) 2 Aneu al directori / dev / escrivint cd / dev / 3. Escriviu ls (és a dir, L) i cerqueu ttyMSM2 a la llista retornada L’escriptura Python que utilitzarem més endavant envia ordres a '/ dev / ttyMSM2' a ordenar que surtin de la connexió en sèrie. Com que això requereix accés root, haureu de canviar-ne els permisos cada cop que reinicieu el telèfon. Per fer-ho: 1. Obriu l'aplicació del terminal al telèfon 2. Introduïu "chmod 777 / dev / ttyMSM2". A continuació, podeu executar l'script Python des de l'edició d'Android Scripting al següent pas i tindrà accés per enviar sortida en sèrie.

Pas 3: instal·leu l'entorn de scripts d'Android (ASE) amb Python

Instal·leu Android Scripting Environment (ASE) amb Python
Instal·leu Android Scripting Environment (ASE) amb Python
Instal·leu Android Scripting Environment (ASE) amb Python
Instal·leu Android Scripting Environment (ASE) amb Python

Els scripts que farem servir per crear una connexió de sòcol obert al telèfon i enviar comandes s’escriuen a Python. Per executar-ho al G1 necessitarem l'entorn de scripts d'Android. Si no el veieu al Market, el podeu descarregar escanejant el codi de barres d’aquesta pàgina que enllaça amb el fitxer apk d’aquesta pàgina.

Un cop instal·leu i executeu ASE, voldreu afegir al mòdul Python al menú: 1. Obriu ASE i assegureu-vos que teniu una connexió a Internet que funciona (wi-fi o 3G) 2. Premeu el botó de menú del telèfon i seleccioneu Intèrprets 3. Torneu a prémer el menú i seleccioneu Afegeix 4. Seleccioneu Python (actualment v2.6.2 a partir de l’escriptura) i descarregarà alguns fitxers zip. És possible que vulgueu explorar la creació, obertura, edició i execució d’escriptures per familiaritzar-vos amb Python mitjançant ASE però no és obligatori.

Pas 4: Copieu i executeu l'script Cellbot.py per iniciar el programa Python

Copieu i executeu l'script Cellbot.py per iniciar el programa Python
Copieu i executeu l'script Cellbot.py per iniciar el programa Python

Aquest tutorial utilitza un script Python per ser el "cervell" del robot. Obteniu el codi més recent del nostre projecte de codi obert de Google Code. Només necessiteu el fitxer cellbot.py, però és possible que altres us ajudin amb diverses coses que voleu explorar. Simplement he connectat el telèfon a la connexió USB del meu PC i he muntat la unitat abans de copiar el fitxer a / sdcard / ase / scripts.

El programa crea una connexió de sòcol obert per acceptar una sessió de telnet entrant. També imprimeix les ordres rebudes a la pantalla mentre les envia el port sèrie. Introduïu aquest fitxer a la targeta SD del telèfon al directori / ase / scripts /. Passos detallats per carregar i executar els scripts: 1. Copieu el script cellbot.py al directori / ase / scripts / de la targeta SD 2. Assegureu-vos de desmuntar la targeta SD del vostre PC si les heu copiat així, ja que el telèfon no pot accedir als fitxers al mateix temps que el PC. 3. Obriu l'aplicació Android Scripting Environment 4. Feu clic a cellbot.py per iniciar-la. Heu de veure una confirmació que el dispositiu està preparat en aquest moment per acceptar les sessions de telnet entrants al port 9002. Consell: Assegureu-vos d'executar el "chmod 777 Ordre / dev / ttyMSM2 "del pas # 3 primer. Consulteu el pas número 5 per trobar l'adreça IP del telèfon.

Pas 5: Telnet al G1 i proveu els comandos d'enviament

Telnet al G1 i prova els comandos d'enviament
Telnet al G1 i prova els comandos d'enviament
Telnet al G1 i prova els comandos d'enviament
Telnet al G1 i prova els comandos d'enviament
Telnet al G1 i prova els comandos d'enviament
Telnet al G1 i prova els comandos d'enviament

El telèfon hauria d'estar preparat perquè hi pugueu connectar i enviar-hi ordres des del vostre PC. Els imprimirà a la pantalla del telèfon per confirmar el que rep. He utilitzat PuTTY a Windows, però hem confirmat que minicom funciona molt bé en Macs, tal com es descriu en aquest instructiu.

Primer haureu de trobar l’adreça IP del vostre telèfon. Per accedir-hi, aneu a Menú> Configuració> Controls sense fils> Configuració de Wi-Fi i, a continuació, premeu la connexió activa actual. Apareixerà un missatge de pa torrat emergent amb l'adreça IP actual a la xarxa local. Escriviu-ho, ja que l’utilitzarà cada vegada que vulgueu obrir una sessió telnet des del vostre PC. Les assignacions d’IP normalment caduquen al cap d’un cert nombre de dies, de manera que és possible que hàgiu de tornar a comprovar-ho. Nota: aquest tutorial suposa que el vostre PC i telèfon es troben a la mateixa xarxa local. Hauria de ser possible l'encaminament al telèfon des de fora de la xarxa local, però aquí no està cobert. Obriu el client telnet que trieu i connecteu-vos a la IP del telèfon al port 9002. Des d'una línia d'ordres, feu això com a "telnet 192.168.1.1 9002" mitjançant la IP real del telèfon. Escriviu alguns caràcters i premeu Intro per veure'ls a la pantalla del telèfon. Podeu escriure una q per fer que l’escriptura Python surti, cosa que hauria de tancar la sessió del terminal. Si per qualsevol motiu no us podeu connectar a través de telnet i necessiteu eliminar el programa, un simple reinici del telèfon hauria de fer el truc. Els usuaris avançats poden voler trobar l’identificador de procés mitjançant ps i després utilitzar kill per aturar-lo. Avançat: una versió futura d’aquest podria executar un servidor web local des del telèfon en lloc d’acceptar ordres mitjançant telnet. També explorem XMPP per xatejar amb el vostre robot.

Pas 6: connecteu un commutador de nivell de 3.3v a 5v a l'Arduino

Connecteu un canvi de nivell de 3,3 a 5 v a l'Arduino
Connecteu un canvi de nivell de 3,3 a 5 v a l'Arduino
Connecteu un canvi de nivell de 3,3 a 5 v a l'Arduino
Connecteu un canvi de nivell de 3,3 a 5 v a l'Arduino
Connecteu un canvi de nivell de 3,3 a 5 v a l'Arduino
Connecteu un canvi de nivell de 3,3 a 5 v a l'Arduino

L’Arduino utilitzat en aquest tutorial és un model de 5v, per tant, hem de convertir el senyal de 3.3v que surt del G1 mitjançant un canvi de nivell. Hauria de ser possible connectar-se directament a un Arduino de 3,3 v, però no vaig provar això.

Hi ha diverses maneres d’abordar-ho, però en aquest exemple utilitzarem un xip 74LS04. Podeu cercar-ne un aquí i és probable que tinguin menys de $ 1. Tim i jo vam recollir el nostre producte a Hacker Dojo a Mountain View, CA, però són MOLT comuns i haurien de ser abundants allà on es venin o es donin fitxes. A un nivell alt, simplement enviarem el senyal TX des de la placa de connexió USB HTS al pin 1 del xip 74LS04. Per fer-lo funcionar, passem pel xip dues vegades i sortim del pin 4 al pin RX del Freeduino SB (el vostre pin sèrie pot ser diferent si teniu una altra placa Arduino, però tots ho haurien de suportar). Seguiu aquests passos per connectar la palanca de canvis de nivell i connectar la placa USB de l'HTC (encara no la connecteu al telèfon i desconnecteu l'alimentació de l'Arduino): 1. Introduïu el xip 74LS04 a la vostra placa de control. Assegureu-vos que el xip obstaculitza el trencament central perquè els pins no siguin curts (un moviment ximple que vaig fer al principi) 2. Soldat de dos cables a la placa USB de l’HTC tal com es descriu en aquest instructiu, però només farem servir els pins 7 (Ground) i 8 (TX0), ja que només estem fent transmissions unidireccionals per a aquest tutorial. 3. Connecteu l'altre extrem del cable de terra (pin 7) a una terra de la vostra placa de connexió (que hauria de connectar-se a una terra de l'Arduino) 4. Connecteu l'altre extrem del cable TX0 (pin 8) a la placa de control on es troba amb el pin 1 del xip 74LS04. (feu una cerca d'imatges per obtenir un diagrama complet del xip) 5. Utilitzeu un cable per connectar els pins 2 i 3 del xip 6. Connecteu el pin 4 del xip al punt Arduino RX (pin 0 al Freeduino SB i Arduino Duemilanove) 7. Connecteu el pin 7 (GND) del xip a terra per a la vostra placa de connexió (que també es connecta a la terra d'Arduino) 8. Connecteu el pin 14 (VCC) a l'alimentació de 5 V de la vostra taula de treball (que obté l'alimentació de l'Arduino) Sortida 5v) Ara hauríeu d’estar a punt per connectar la placa USB USB HTC a la part inferior del telèfon i encendre l’Arduino. Comproveu si hi ha espurnes i olors i toqueu les coses per assegurar-vos que siguin genials. Nota: el codi actual del cellbot s’encén el LED # 13 quan els servomotors del robot haurien d’estar en funcionament. Si encara no teniu cap robot, podeu comprovar que el LED s’encén i s’apaga per confirmar que funciona.

Pas 7: carregueu el programa Cellbots a l'Arduino

Carregueu el programa Cellbots a l'Arduino
Carregueu el programa Cellbots a l'Arduino
Carregueu el programa Cellbots a l'Arduino
Carregueu el programa Cellbots a l'Arduino

Obteniu el codi font d’Arduino al lloc del projecte de Google Code. Obriu el programa Cellbots.pde Arduino a l'editor Arduino. A continuació, empenyeu-lo a la vostra placa Arduino.

Podeu provar de parlar amb el codi Arduino obrint el monitor sèrie a l'editor Arduino. Aquesta és una manera fantàstica de provar el vostre robot o dispositiu parlant directament amb l'Arduino abans de connectar-ho tot al telèfon. El codi envia ordres de sèrie al monitor sèrie per confirmar el que fa, encara que encara no tingueu el robot construït. Nota: no podeu carregar programes a l'Arduino mentre el cable està connectat al pin d'entrada sèrie RX.. Per tant, potser voldreu canviar aquest però només el vaig desconnectar quan necessitava carregar un programa nou.

Pas 8: executeu tot el procés

Executeu el procés sencer
Executeu el procés sencer
Executeu el procés sencer
Executeu el procés sencer
Executeu el procés sencer
Executeu el procés sencer

Hauríeu de poder connectar la placa USB d'HTC al telèfon, activar el fitxer cellbot.py a ASE i obrir una sessió de terminal al telèfon. Escriviu "H" perquè el telèfon digui hola o qualsevol altra ordre del fitxer README.txt.

Una "q" sortirà de l'script de Python al telèfon i tancarà el sòcol del terminal. A continuació es mostra un resum de com funciona: 1. L'escriptura de Python obre un sòcol per acceptar les connexions telnet entrants i fer ressò de les ordres del port sèrie 2 Ens connectem des del nostre PC al telèfon mitjançant telnet al port 9002 i li enviem les ordres que veiem a la pantalla 3. La placa USB HTS s’interface amb el port USB del G1 i envia el senyal de 3.3v al pin 1. 74LS04. el senyal surt del xip del pin 2, torna al pin 3 i torna a sortir al pin 4 a 5v 5. El nostre Arduino accepta el senyal sèrie del pin RX 0 i el processa mitjançant el programa Cellbot.pde 6. Podeu escriure 'q' per acabar amb l'script Python i tancar la connexió telnet. Ara que heu completat aquest procés tan complicat per enviar ordres bàsiques a un robot Arduino, és hora que el pirategeu per ser més impressionant. Encara no tenim funcions en sèrie de dues vies, de manera que l'Arduino no pot enviar comandes al telèfon, però hi estem treballant. Estigueu al dia subscrivint-vos al nostre bloc a Cellbots.com. Sobre els autors: Tim Heath Investigador principal que va reunir aquest procés per primera vegada a la botiga de tecnologia de Menlo Park, on és membre. Ryan Hickman Programador que va treballar en el codi Python i Arduino i va autoritzar aquest instructable.

Recomanat: