Hice este robot de acuerdo con las instrucciones del sitio web. Una gran idea para la simbiosis entre Arduino y Android.
MobBob es un robot controlado por teléfono inteligente. Aprovechando el poder de su teléfono inteligente, MobBob es un robot que camina y habla con reconocimiento de voz y visión por computadora.
- Establezca "FRONT_JOINT_HIPS" en 1 o -1 dependiendo de la forma en que estén montados los servos de cadera. Lo monte con el eje servo en la parte delantera de MobBob. Para esta configuración, establezca este valor en 1.
Código
código Arduino
/ * * =============================================================* Programa de control MobBob - Versión de Bluetooth en serie del software * por Kevin Chan (también conocido como Cevinius) * ===========================================================* * Este programa permite controlar MobBob mediante comandos en serie. En esta versión del código, los comandos * se reciben a través de un puerto serie de software, con pines definidos en #define cerca de la parte superior. * Esto significa que puede usar cualquier placa compatible con Arduino y conectar una tarjeta bluetooth en los pines establecidos para * el software en serie. (A diferencia de la otra versión de este diseñada para la placa Bluno de DFRobot.) * * Este programa es largo y contiene 2 componentes principales:un programa de animación servo suave y un programa analizador de comandos en serie *. * * Sistema de animación * ================* El programa de animación está diseñado para animar matrices de fotogramas clave de servo sin problemas. El código intenta hacer todo lo posible para que sea fácil de usar. * * El sistema de animación solo pondrá en cola 1 comando. es decir, se puede ejecutar un comando, * y un comando se puede poner en cola. Si envía más comandos, sobrescribirán el comando en cola. * * El sistema de animación esperará por defecto para terminar la animación actual antes de comenzar la siguiente. Esto * significa que si los datos de la animación terminan con el robot en su pose base, las cosas se unirán sin problemas. Para * apoyar esto, el sistema de animación también tiene una función en la que una animación puede tener una "secuencia de finalización" * para volver a poner al robot en la pose base. Esta función se utiliza para las animaciones de caminar hacia adelante / hacia atrás. * Esas animaciones tienen una secuencia final que devuelve al robot a la pose base. * * Cuando finaliza la reproducción de una animación, el sistema de animación generará una cadena de respuesta al puerto serie. * Esto permite a las personas que llaman saber cuándo terminaron de reproducirse las animaciones que solicitaron. Esto es útil * para que los usuarios secuencian animaciones, esperando a que una termine antes de comenzar otra. * * El código de animación tiene muchas variables para permitir que se modifiquen las cosas. P.ej. Frecuencia de actualización, pines arduino, etc. * * El formato de matriz de datos de animación también está diseñado para ser fácil de editar a mano. * * Analizador de comandos * ==============* Este sistema analiza los comandos recibidos en serie y los procesa. Los comandos incluyen uno para configurar directamente * las posiciones de los servos, así como comandos para activar animaciones y caminatas predefinidas. * * Por lo tanto, los usuarios que no quieran preocuparse por los detalles de la caminata pueden usar las caminatas / animaciones predefinidas. * Y los usuarios que quieran un control total sobre los servos (para crear nuevas animaciones sobre la marcha) también pueden hacerlo. * * Como se mencionó anteriormente, estos comandos se pueden usar de forma interactiva desde Arduino Serial Monitor. También pueden * enviarse usando Bluetooth LE (cuando se usa un Bluno). La aplicación del teléfono enviará los comandos a través de Bluetooth LE al * Bluno. * * Comandos generales:* ----------------- * Verificación Listo / OK: * Verificación de estado. La respuesta se devuelve inmediatamente para comprobar si el controlador está funcionando. * * Establecer Servo: * tiempo - tiempo para interpolar a ángulos especificados, 0 saltará inmediatamente a ángulos * leftHip - microsegundos desde el centro. -ve es la cadera hacia adentro, + ve es la cadera hacia afuera * leftFoot - microsecs desde plano. -ve es pie abajo, + ve es pie arriba * rightHip - microsegundos desde el centro. -ve es la cadera hacia adentro, + ve es la cadera hacia afuera * pie derecho - microsegundos desde plano. -ve es pie abajo, + ve es pie arriba * Este comando se usa para tener control total sobre los servos. Puede interpolar el robot desde su * pose actual a la pose especificada durante el tiempo especificado. * * Detener / Reiniciar: * Detiene el robot después de la animación actual. Se puede utilizar para detener animaciones configuradas en bucle * indefinidamente. Esto también se puede usar para poner el robot en su pose base (de pie) * * Detener inmediatamente: * Detiene el robot inmediatamente sin esperar a completar la animación actual. Esto * interrumpe la animación actual del robot. Potencialmente, el robot puede estar en mitad de la animación * y en una pose inestable, así que tenga cuidado al usar esto. * * Comandos de caminata estándar:* ----------------------- * Adelante:, -1 significa continuo, 0 o ningún parámetro es lo mismo que 1 vez. * Hacia atrás:, -1 significa continuo, 0 o ningún parámetro es lo mismo que 1 vez. * Girar a la izquierda:, -1 significa continuo, 0 o ningún parámetro es lo mismo que 1 vez. * Girar a la derecha:
Esquemas