Componentes y suministros
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 4 | ||||
|
× | 3 | ||||
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 4 | ||||
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 1 |
Herramientas y máquinas necesarias.
|
||||
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
Es Tobor, el Brazo.
Una aventura en los reinos de «¿Estás loco?» Oh… tal vez lo digo en serio. Después de mis otros dos proyectos ya publicados aquí en Project Hub, una especie de «confianza de codificación simple» y curiosidad por hacer algo más para llenar mi nerd vino cuando comencé a investigar y leer sobre brazos robóticos.
«Parece tan simple… Puedo hacerlo… Pero al igual que mis proyectos anteriores, me gustaría construir proyectos jugables para mi hijo pequeño, sin protoboards y conexiones de ‘prototipo’ endebles.
También soñé con construir un panel de control sofisticado, donde pueda manejar el brazo y hacerlo autónomo desde la PC, de forma segura con una fuente de alimentación externa, para dejárselo a un niño sin preocuparse por un lío con ollas delicadas, cables, botones, leds, conexiones endebles y hasta el momento.
Así que planifiquemos…
1 – El brazo sera este estilo «MeArm» con 4 mini servos (4DOF) hay tantos proyectos en internet, economicos y divertidos.
2 – Después de leer un poco, pensé que este proyecto no requeriría muchos conocimientos en electrónica… (Ojalá…). Como «fabricante novato», tengo mucho miedo de tener que aprender y usar transistores, condensadores, circuitos integrados y cualquier otro hardware electrónico que no sea la placa Arduino, potenciómetros, botones, LED y resistencias…
3 – Realmente quiero una Controlbox lo más sólida posible para operar el brazo sin conexiones a una PC.
4 – La investigación ha demostrado que el principal problema de los brazos robóticos es el sistema de alimentación correcto. El arduino en sí no puede manejar 4 servos. Decidí usar una fuente de alimentación externa de 5 V/4 A que puedo enchufar a un tomacorriente normal en casa. Es el artículo más caro del presupuesto pero puedo guardarlo para otros usos.
5 – El Controlbox necesitará una pantalla (20×4) para mostrar:
5.1 – Una pantalla de bienvenida;
5.2 -En modo manual, leyendo los ángulos cuando giro los potenciómetros, mapeados de 0 a 180 grados;
5.3 – En modo manual, la pantalla debe mostrar lo que escribo en la memoria para programar Tobor para que funcione en modo automático. (Hablaré de eso más adelante).
5.4 – Una pantalla de visualización con una especie de «Programa en curso >>>»
6 – El Controlbox controla:
6.1 – Un LED rojo para indicar que la fuente de alimentación está encendida;
6.2 – Cuatro potenciómetros para controlar cada servo;
6.3 – Un botón de cambio entre modo manual y modo automático;
6.4 – Un botón negro para seleccionar «Posiciones de memoria» para corregir errores de paso de guardado;
6.5 – Un botón verde para registrar los ángulos de los servos en una tabla de cinco variables: memPosition y ángulos de los servos (cuatro variables);
6.6 – Un botón rojo para uso futuro.
Entonces… Cómo armar esto… Intentaré hacer tantas conexiones atornilladas y enchufadas como sea posible para evitar soldar. Ok, está bien, pero realmente me gusta no tener que soldar cosas.
Pensando en la configuración física, armé un banco de conectores de 5V y GND para todo el cableado necesario con una placa universal y conectores de tornillo. Los pines de señal que uso protoboard cables y enchufes.
El I2C incorporado en la pantalla de 20×4 fue una elección fácil: solo cuatro cables para conectar.
La imagen de arriba muestra todos los elementos del Controlbox. Botones y potenciómetros ya soldados. En la parte inferior izquierda están los bancos 5V/GND. El arduino se monta con espaciadores y cinta adhesiva de doble cara 3M. En el lado izquierdo de la Controlbox, hay un orificio para el cable USB y otro para la fuente de alimentación externa P4 (¡no la de Arduino!)
Los agujeros se hicieron con herramientas de perforación adecuadas que ya tengo. El agujero de la pantalla fue el gran desafío. Se hizo con una cuchilla, muy, muy lentamente y requirió mucho tiempo y esfuerzo. Creo que al final fue aceptable. La pantalla está ligeramente desplazada debido a las conexiones del módulo I2C.
Un trozo de cinta aislante asegura los cables de señal en su lugar. Se hizo lo mismo para el cableado analógico y de alimentación en la otra placa Arduino.
¡Listo!
¿Cansado?
Ahora hablemos de la lógica del código.
Evidentemente, hay MUCHO QUE MEJORAR. Creo que para llegar al «punto B desde el punto A», un programador experimentado va directamente cuando hago esto en el modo «ZigZag». Lo siento, no tengo suficiente inglés y por la misma razón estoy escribiendo esto ya que mi conocimiento del lenguaje escrito lo permite…
Varios ejemplos para servo.write(), analogoRead(), pinMode(), jars de mapeo que podemos encontrar fácilmente en Internet y me gustaría centrarme en el problema principal, esta es la «lógica» que adopté.
Pensando en la operación manual, no hubo ningún desafío. analogRead(), map() y configuración de visualización para mostrar valores.
Un botón de cambio para cambiar entre los modos manual y automático. En modo Auto, el código lee las posiciones almacenadas de los servos una por una.
El botón verde:
Cuando se presiona, la «posición de memoria» aumenta en uno y los ángulos de los cuatro servos se almacenan en una matriz de 5 variables.
Tengo que posicionar el brazo para abrir la garra, alcanzar un objeto, agarrarlo, escalar/mover a otro punto, abrir la garra para soltarla y bloquearla para siempre. Para cada grupo de movimientos presiono el botón verde para memorizar las posiciones.
Si cometo un error al presionar el botón verde, desplazo la «posición de memoria» al paso correcto, presionando el botón negro.
El código solo permite diez posiciones de memoria de cuatro ángulos de servo. Este «Diez posiciones» es un número que entendí para un ciclo completo de movimientos de brazos antes del bucle en modo automático. Esto se puede aumentar mediante una codificación simple, agregando más tablas de posiciones de memoria y moviendo funciones de servo.
Modo automatico
Cuando el botón del interruptor se cambia al modo automático, un conjunto de funciones de código moverá los servos de acuerdo con el número total de posiciones de memoria almacenadas y lo repetirá. Aquí es donde «sucede la magia». el código es tan simple que estoy asombrado.
En la pantalla, un mensaje «Programa en ejecución» con un carácter «>»animado hace que las cosas sean «profesionales…».
Si no hay posiciones de memoria previamente almacenadas, se muestra el mensaje «Memoria vacía».
Problemas y desafíos futuros
Manejar esos mini servos endebles puede ser complicado. Freí dos. No sé exactamente por qué, pero a veces se calientan mucho. Supongo que esto puede ser un problema actual. Es importante calibrarlos antes de montar el brazo.
El movimiento de los servos también es algo a mejorar. Leí sobre la instalación de condensadores de 100 nF en los cables de señal de los potenciómetros.
También estoy a punto de probar la biblioteca «VarSpeedServo.h» para que los servos se muevan sin problemas.
No me ocupé de los problemas de «rebote». Leí sobre eso.
Arduino EEPROM
Por ahora, si se corta la energía, la memoria almacenada se pierde. Leí sobre el uso de la EEPROM de Arduino para almacenar memoria. Será muy interesante, pero necesito estudiar y aprender más para hacerlo.
brazo:
Este brazo «MeArm» es delgado y barato. Es divertido de construir y configurar. Las instrucciones están ampliamente disponibles en Internet. El material acrílico parece ser más fuerte que el mdf, supongo.
No me sorprende si en el futuro obtengo un brazo de aluminio más grande con servos más grandes… La tentación es construir 5DOF o incluso más grados de libertad, lo que significa que necesitaré una caja de control más grande…
sobre el nombre
Este brazo se llama «Tobor el Grande», una película de ciencia ficción de 1954, con esta descripción en Wikipedia:
«En una revisión de Los New York TimesTobor the Great se caracteriza como «Esta aventura de ciencia ficción para niños (que) narra la amistad entre un niño de 11 años y el robot Tobor de su abuelo, que fue diseñado para explorar el espacio profundo».
Mi «Tobor» no es tan inteligente ni dramático, pero a mi hijo le gusta mucho.
¡Espero que lo disfruten y comenten! ¡Tobor se lo agradecerá a todos!
comentarios
Por favor inicie sesión o regístrese para comentar.