Tabla de contenido:

Android G1 Serial a Arduino Robot: 8 pasos
Android G1 Serial a Arduino Robot: 8 pasos

Video: Android G1 Serial a Arduino Robot: 8 pasos

Video: Android G1 Serial a Arduino Robot: 8 pasos
Video: Arduino project 😎^ Arduino #arduino #2022 #2021 #2023 #dc #arduinoproject #diy #foryou 2024, Septiembre
Anonim
Android G1 Serial a Arduino Robot
Android G1 Serial a Arduino Robot
Android G1 Serial a Arduino Robot
Android G1 Serial a Arduino Robot
Android G1 Serial a Arduino Robot
Android G1 Serial a Arduino Robot

Aprenda cómo su teléfono celular Android puede controlar un robot usando una placa Arduino. El teléfono recibe comandos a través de telnet desde otro teléfono o una PC, por lo que puede controlar el robot de forma remota. De lo contrario, este proyecto no modificará el G1, por lo que puede continuar usándolo como su teléfono normal después de desacoplarlo. Al usar componentes electrónicos baratos como las placas Arduino, puede emparejarlos con su teléfono de $ 400 para hacer un robot increíble. Costaría cientos de dólares agregar GPS, LCD, sensores de movimiento, wi-fi, conexiones celulares, parlantes y más a un robot de hobby, ¡pero su teléfono ya los tiene! Juntos, la placa Android G1 y Arduino le permiten usar dispositivos electrónicos económicos, como servos y sensores simples, para construir dispositivos poderosos como robots, telepresencia remota o juguetes divertidos para niños. Más información en Cellbots.com. Aviso: Este proyecto actualmente requiere un Android G1 con acceso de root para usar la salida en serie del teléfono al robot Arduino. Puede agregar un módulo BlueTooth de $ 20 a su placa Arduino para que el teléfono se comunique con él a través de BlueTooth en serie si desea utilizar el software comercial de Android. Un agradecimiento especial: Tenemos que agradecer al Hacker Dojo en Mountain View, CA por ponernos en contacto, ayudarnos con algunos problemas delicados a través de su lista de correo de miembros increíbles y por tener chips 74LS04 en stock. La mayor parte del montaje se realizó en Tech Shop en Menlo Park.

Paso 1: elementos necesarios

Elementos necesarios
Elementos necesarios
Elementos necesarios
Elementos necesarios
Elementos necesarios
Elementos necesarios

Para completar este tutorial, necesitará lo siguiente: Hardware: - Teléfono Android G1 Dev (u otro dispositivo Android con acceso de root y salida en serie) - Arduino (estoy usando un Freeduino SB pero cualquiera debería hacerlo) - 3.3v a 5v convertidor si no está usando un Arduino de 3.3v (estoy usando un chip 74LS04 por menos de $ 1 pero hay otras opciones disponibles) - Placa de conexión USB HTC para el G1 - Equipo de soldadura para dos conexiones rápidas - Un cuerpo de robot con micro servos (cartón, acrílico, huellas, ruedas, cualquier cosa servirá) Software: - Entorno de scripts de Android (ASE) - Cliente Telnet para su PC (estoy usando PuTTY en Windows) - Entorno de desarrollo Arduino - (opcional) Cliente serial para su PC (también estoy usando PuTTY en Windows para esto) - (opcional) Android SDK Si puede seguir las instrucciones, puede completar este tutorial con poco conocimiento de Python, Arduino, Android o electrónica. Querrá saber esas cosas si quiere ir más allá de un LED parpadeante, pero esto lo ayudará a comenzar.

Paso 2: Android G1 con salida serial habilitada

Android G1 con salida serial habilitada
Android G1 con salida serial habilitada
Android G1 con salida serial habilitada
Android G1 con salida serial habilitada
Android G1 con salida serial habilitada
Android G1 con salida serial habilitada

Los G1 no se envían con la capacidad de enviar comandos en serie desde el puerto USB y no hay una opción nativa para habilitarlos. Si eres un usuario avanzado del SDK de Android, puedes crear tu propia compilación, pero yo elegí usar Cyanogenmod 4.2.13. Si conoce otros dispositivos Android con salida serial funcionando, agréguelos a los comentarios.

Opcionalmente, puede seguir los enlaces a este instructivo sobre cómo hablar con su G1 a través de USB desde su PC. Esa conexión de serie a USB no es necesaria para este tutorial, pero la utilicé como una buena comprobación de cordura para verificar que el teléfono estaba enviando una serie. Si no usa el otro intructable para verificar que la salida serial está funcionando, puede probar esta simple verificación: 1. Abra la aplicación Terminal en el G1 (viene con Cyanogen pero descargue uno del Market si tiene una imagen diferente) 2 Navegue al directorio / dev / escribiendo cd / dev / 3. Escriba ls (que es una L) y busque ttyMSM2 en la lista devuelta El script de Python que usaremos más adelante envía comandos a '/ dev / ttyMSM2' en para que salgan por la conexión en serie. Dado que eso requiere acceso de root, deberá cambiar los permisos cada vez que reinicie el teléfono. Para hacer eso: 1. Abra la aplicación de terminal en el teléfono 2. Ingrese 'chmod 777 / dev / ttyMSM2' Luego puede ejecutar el script Python desde la edición de Android Scripting en el siguiente paso y tendrá acceso para enviar salida en serie.

Paso 3: Instale el entorno de scripting de Android (ASE) con Python

Instalar el entorno de secuencias de comandos de Android (ASE) con Python
Instalar el entorno de secuencias de comandos de Android (ASE) con Python
Instale el entorno de secuencias de comandos de Android (ASE) con Python
Instale el entorno de secuencias de comandos de Android (ASE) con Python

Los scripts que usaremos para crear una conexión de socket abierta en el teléfono y enviar comandos están escritos en Python. Para ejecutar esto en el G1, necesitaremos el entorno de scripting de Android. Si no lo ve en el mercado, puede descargarlo escaneando el código de barras en esa página que enlaza con el archivo apk en esta página.

Una vez que instale y ejecute ASE, querrá agregar el módulo Python desde el menú: 1. Abra ASE y asegúrese de tener una conexión a Internet que funcione (wi-fi o 3G) 2. Presione el botón de menú en el teléfono y seleccione Intérpretes 3. Presione menú nuevamente y seleccione Agregar 4. Seleccione Python (actualmente v2.6.2 al momento de escribir esto) y descargará algunos archivos zip. Es posible que desee explorar la creación, apertura, edición y ejecución de scripts para familiarizarse con Python a través de ASE pero no es obligatorio.

Paso 4: Copie y ejecute el script Cellbot.py para iniciar el programa Python

Copie y ejecute el script Cellbot.py para iniciar el programa Python
Copie y ejecute el script Cellbot.py para iniciar el programa Python

Este tutorial utiliza una secuencia de comandos de Python para ser el "cerebro" del robot. Obtenga el código más reciente de nuestro proyecto de código abierto de Google. Solo necesita el archivo cellbot.py, pero otros pueden ayudar con varias cosas que desea explorar. Simplemente conecté el teléfono a la conexión USB de mi PC y monté la unidad antes de copiar el archivo en / sdcard / ase / scripts.

El programa crea una conexión de socket abierta para aceptar una sesión telnet entrante. También imprime los comandos recibidos en la pantalla mientras los envía por el puerto serie. Coloque este archivo en la tarjeta SD del teléfono en el directorio / ase / scripts /. Pasos detallados para cargar y ejecutar los scripts: 1. Copie el script cellbot.py en el directorio / ase / scripts / de la tarjeta SD 2. Asegúrese de desmontar la tarjeta SD de su PC si los copió de esa manera, ya que el teléfono no puede acceder a los archivos al mismo tiempo que su PC. 3. Abra la aplicación Android Scripting Environment. 4. Haga clic en cellbot.py para iniciarla. Debería ver una confirmación de que el dispositivo está listo en este punto para aceptar sesiones de telnet entrantes en el puerto 9002. Sugerencia: asegúrese de ejecutar el "chmod 777 / dev / ttyMSM2 "del paso 3 primero. Vea el paso # 5 para encontrar la dirección IP del teléfono.

Paso 5: Telnet en el G1 y prueba de envío de los comandos

Telnet en el G1 y prueba de envío de comandos
Telnet en el G1 y prueba de envío de comandos
Telnet en el G1 y prueba de envío de comandos
Telnet en el G1 y prueba de envío de comandos
Telnet en el G1 y prueba de envío de comandos
Telnet en el G1 y prueba de envío de comandos

El teléfono debería estar listo para que lo ingrese por telnet y le envíe comandos desde su PC. Los imprimirá en la pantalla del teléfono para confirmar lo que recibe. Usé PuTTY en Windows, pero hemos confirmado que minicom funciona muy bien en Mac como se describe en este instructivo.

Primero deberá encontrar la dirección IP de su teléfono. Esto está disponible yendo a Menú> Configuración> Controles inalámbricos> Configuración de Wi-Fi y luego presionando la conexión actualmente activa. Aparecerá un mensaje emergente con la dirección IP actual en la red local. Anótelo, ya que lo utilizará cada vez que desee abrir una sesión de telnet desde su PC. Las asignaciones de IP generalmente caducan después de una cierta cantidad de días, por lo que es posible que deba verificar esto nuevamente. Nota: Este tutorial asume que su PC y teléfono están en la misma red local. El enrutamiento al teléfono desde fuera de la red local debería ser posible, pero no se trata aquí. Abra el cliente telnet de su elección y conéctese a la IP del teléfono en el puerto 9002. Desde una línea de comando, haga esto como "telnet 192.168.1.1 9002" usando la IP real del teléfono. Escriba algunos caracteres y presione enter para verlos aparecer en la pantalla del teléfono. Puede escribir una q para hacer que el script de Python se cierre, lo que debería cerrar su sesión de terminal. Si por alguna razón no puede conectarse a través de telnet y necesita cerrar el programa, un simple reinicio del teléfono debería ser suficiente. Los usuarios avanzados pueden querer encontrar el ID del proceso a través de ps y luego usar kill para detenerlo. Avanzado: una versión futura de esto podría ejecutar un servidor web local desde el teléfono en lugar de aceptar comandos a través de telnet. También estamos explorando XMPP para chatear con su robot.

Paso 6: Conecte un cambiador de nivel de 3.3v a 5v al Arduino

Conecte un cambiador de nivel de 3.3v a 5v al Arduino
Conecte un cambiador de nivel de 3.3v a 5v al Arduino
Conecte un cambiador de nivel de 3.3v a 5v al Arduino
Conecte un cambiador de nivel de 3.3v a 5v al Arduino
Conecte un cambiador de nivel de 3.3v a 5v al Arduino
Conecte un cambiador de nivel de 3.3v a 5v al Arduino

El Arduino utilizado en este tutorial es un modelo de 5v, por lo que necesitamos convertir la señal de 3.3v que sale del G1 usando un cambiador de nivel. Debería ser posible conectarse directamente a un Arduino de 3.3v, pero eso no fue algo que probé.

Hay varias formas de abordar esto, pero usaremos un chip 74LS04 en este ejemplo. Puede buscar uno aquí y probablemente estén por debajo de $ 1. Tim y yo compramos los nuestros en el Hacker Dojo en Mountain View, CA, pero son MUY comunes y deberían ser abundantes dondequiera que se vendan o donen chips. En un nivel alto, simplemente enviaremos la señal TX desde la placa de conexión USB HTS al pin 1 del chip 74LS04. Para que funcione, pasamos por el chip dos veces y salimos del pin 4 al pin RX en el Freeduino SB (su pin serial puede ser diferente si tiene otra placa Arduino, pero todas deberían admitir esto). Siga estos pasos para conectar la palanca de cambios de nivel y conectar la placa HTC USB (no la conecte todavía al teléfono y desconecte la alimentación del Arduino): 1. Inserte el chip 74LS04 en su placa de pruebas. Asegúrese de que el chip supere la rotura central para que los pines no se cortocircuiten (un movimiento tonto que hice al principio) 2. Solde dos cables a la placa HTC USB como se describe en este instructivo, pero solo usaremos los pines 7 (Ground) y 8 (TX0) ya que solo estamos haciendo transmisión unidireccional para este tutorial. 3. Conecte el otro extremo del cable de tierra (patilla 7) a una toma de tierra en su placa de pruebas (que debe estar conectada a una toma de tierra en su Arduino) 4. Conecte el otro extremo del cable TX0 (patilla 8) a la placa de pruebas donde se encuentra con el pin 1 del chip 74LS04. (haga una búsqueda de imágenes para obtener un diagrama completo del chip) 5. Utilice un cable para conectar los pines 2 y 3 del chip 6. Conecte el pin 4 del chip al punto Arduino RX (pin 0 en Freeduino SB y Arduino Duemilanove) 7. Conecte el pin 7 (GND) en el chip al suelo de su placa de pruebas (que también se conecta a la tierra de Arduino) 8. Conecte el pin 14 (VCC) a la alimentación de 5v en su placa de pruebas (que recibe la alimentación del Arduino Salida de 5v) Ahora debería estar listo para conectar la placa de conexión USB HTC en la parte inferior del teléfono y encender el Arduino. Compruebe si hay chispas y olores y toque las cosas para asegurarse de que estén frías. Nota: El código actual del robot celular enciende el LED # 13 cuando los servomotores del robot deben estar funcionando. Si aún no tiene un robot, puede verificar si el LED se enciende y apaga para confirmar que está funcionando.

Paso 7: cargue el programa Cellbots en el Arduino

Cargue el programa Cellbots en Arduino
Cargue el programa Cellbots en Arduino
Cargue el programa Cellbots en Arduino
Cargue el programa Cellbots en Arduino

Obtenga el código fuente de Arduino de nuestro sitio de proyectos de Google Code. Abra el programa Cellbots.pde Arduino en el editor Arduino. Luego empújelo a su placa Arduino.

Puede probar hablando con el código Arduino abriendo el monitor serial en el editor Arduino. Esta es una excelente manera de probar su robot o dispositivo hablando directamente con Arduino antes de conectar todo al teléfono. El código envía comandos en serie al monitor en serie para confirmar lo que está haciendo incluso si aún no ha construido su robot. Nota: No puede cargar programas en el Arduino mientras el cable está conectado al pin de entrada en serie RX. Por lo tanto, es posible que desee poner este en un interruptor, pero simplemente lo desconecté cuando necesitaba cargar un nuevo programa.

Paso 8: Ejecute todo el proceso

Ejecute todo el proceso
Ejecute todo el proceso
Ejecute todo el proceso
Ejecute todo el proceso
Ejecute todo el proceso
Ejecute todo el proceso

Debería poder conectar la placa HTC USB al teléfono, iniciar el archivo cellbot.py en ASE y abrir una sesión de terminal en el teléfono. Escriba "H" para que el teléfono diga hola o cualquier otro comando del archivo README.txt.

Una "q" saldrá de la secuencia de comandos de Python en el teléfono y cerrará el conector del terminal. Aquí hay un resumen de cómo funciona todo: 1. La secuencia de comandos de Python abre un conector para aceptar conexiones telnet entrantes y hacer eco de los comandos en el puerto serie 2 Nos conectamos desde nuestra PC al teléfono a través de telnet en el puerto 9002 y le enviamos los comandos que vemos en la pantalla 3. La placa HTS USB interactúa con el puerto USB del G1 y envía la señal de 3.3v al pin 1 del 74LS04. la señal sale del chip en el pin 2, vuelve al pin 3 y vuelve a salir en el pin 4 a 5v 5. Nuestro Arduino acepta la señal serial en el pin 0 de RX y la procesa a través del programa Cellbot.pde 6. Nosotros puede escribir 'q' para eliminar el script de Python y cerrar la conexión telnet. Ahora que ha completado este complicado proceso para enviar comandos básicos a un robot Arduino, ¡es hora de que lo piratee para que sea más increíble! Todavía no tenemos un funcionamiento serial bidireccional, por lo que Arduino no puede enviar comandos al teléfono, pero estamos trabajando en eso. Manténgase actualizado suscribiéndose a nuestro blog en Cellbots.com. Acerca de los autores: Tim Heath Investigador principal que organizó este proceso por primera vez en Tech Shop en Menlo Park, donde es miembro. Programador Ryan Hickman que trabajó en el código Python y Arduino y fue el autor de este Instructable.

Recomendado: