- Componentes requeridos
- Construcción de brazo robótico
- Diagrama de circuito y explicación de trabajo:
- Cómo operar el brazo robótico:
En este tutorial, vamos a diseñar un brazo robótico basado en Arduino Uno a partir de algunos cartones y servomotores. Todo el proceso de construcción se explica en detalle a continuación. Aquí, en este proyecto, Arduino Uno está programado para controlar servomotores que sirven como articulaciones del brazo robótico. Esta configuración también se ve como una grúa robótica o podemos convertirla en una grúa haciendo algunos ajustes sencillos. Este proyecto será útil para los principiantes que quieran aprender a desarrollar un robot simple a bajo costo o simplemente quieran aprender a trabajar con Arduino y servomotores.
Este brazo robótico Arduino puede ser controlado por cuatro potenciómetros conectados a él, cada potenciómetro se utiliza para controlar cada servo. Puede mover estos servos girando los potenciómetros para elegir algún objeto, con algo de práctica puede elegir y mover fácilmente el objeto de un lugar a otro. Hemos utilizado servos de bajo par aquí, pero puede utilizar servos más potentes para recoger objetos pesados. Todo el proceso ha quedado bien demostrado en el vídeo al final. Consulte también nuestros otros proyectos de robótica aquí.
Componentes requeridos
- Arduino Uno
- Condensador 1000uF (4 piezas)
- Condensador 100nF (4 piezas)
- Servomotor (SG 90 - cuatro piezas)
- Pot 10K - Resistencia variable (4 piezas)
- Fuente de alimentación (5v, preferiblemente dos)
Servo motor
Primero hablamos un poco de Servo Motores. Los servomotores se utilizan principalmente cuando se necesita un movimiento o una posición precisos del eje. No se proponen para aplicaciones de alta velocidad. Los servomotores se proponen para aplicaciones de baja velocidad, par medio y posición precisa. Por tanto, estos motores son los mejores para diseñar brazos robóticos.
Los servomotores están disponibles en diferentes formas y tamaños. Vamos a utilizar pequeños servomotores, aquí usamos cuatro servos SG90. Un servomotor tendrá principalmente sus cables, uno es para voltaje positivo, otro es para tierra y el último es para ajuste de posición. El cable ROJO está conectado a la alimentación, el cable negro está conectado a tierra y el cable AMARILLO está conectado a la señal. Siga este tutorial de Control de servomotor usando Arduino para obtener más información al respecto. En Arduino tenemos bibliotecas predefinidas para controlar el Servo, por lo que es muy fácil controlar el servo, lo cual aprenderás junto con este tutorial.
Construcción de brazo robótico
Tome una superficie plana y estable, como una mesa o un cartón duro. Luego coloque un servomotor en el medio y péguelo en su lugar. Asegúrese de que el grado de rotación esté en el área que se muestra en la figura. Este servo actúa como base del brazo.
Coloque un pequeño trozo de cartón encima del primer servo y luego coloque el segundo servo en este trozo de tablero y péguelo en su lugar. La rotación del servo debe coincidir con el diagrama.
Tome algunos cartones y córtelos en trozos de 3 cm x 11 cm. Asegúrese de que la pieza no se ablande. Corte un orificio rectangular en un extremo (deje 0,8 cm desde la parte inferior) lo suficiente para que quepa otro servo y en el otro extremo ajuste el servo engranaje firmemente con tornillos o con pegamento. Luego coloque el tercer servo en el primer orificio.
Ahora corte otra pieza de cartón con las longitudes que se muestran en la figura siguiente y pegue otro engranaje en la parte inferior de esta pieza.
Ahora pegue el cuarto y último servo en el borde de la segunda pieza como se muestra en la figura.
Con esto, se ven dos piezas juntas.
Cuando adjuntamos esta configuración a la base, debería verse así,
Esta casi terminado. Solo necesitamos hacer el gancho para agarrar y recoger el objeto como una mano robótica. Para el gancho, corte otras dos piezas de cartón de longitudes de 1 cm x 7 cm y 4 cm x 5 cm. Pégalos juntos como se muestra en la figura y pega el engranaje final en el mismo borde.
Monte esta pieza en la parte superior y con esto hemos terminado de construir nuestro Brazo Robótico.
Con esto, se completó el diseño de nuestro brazo robótico básico y así es como hemos construido nuestro brazo robótico de bajo costo. Ahora conecte el circuito en la placa de pruebas según el diagrama de circuito.
Diagrama de circuito y explicación de trabajo:
La conexión del circuito para el brazo robótico Arduino Uno se muestra a continuación.
El voltaje a través de resistencias variables no es completamente lineal; será ruidoso. Entonces, para filtrar este ruido, se colocan capacitores a través de cada resistencia como se muestra en la figura.
Ahora alimentaremos el voltaje proporcionado por esta resistencia variable (voltaje que representa el control de posición) en los canales ADC de Arduino. Vamos a utilizar cuatro canales ADC de UNO de A0 a A3 para esto. Después de la inicialización del ADC, tendremos el valor digital de los potenciómetros que representan la posición que necesita el usuario. Tomaremos este valor y lo compararemos con la posición del servo.
Arduino tiene seis canales ADC. Hemos utilizado cuatro para nuestro brazo robótico. El UNO ADC tiene una resolución de 10 bits, por lo que los valores enteros van desde 0-1023 (2 ^ 10 = 1024 valores). Esto significa que mapeará voltajes de entrada entre 0 y 5 voltios en valores enteros entre 0 y 1023. Entonces, para cada (5/1024 = 4.9mV) por unidad. Obtenga más información sobre cómo mapear los niveles de voltaje usando canales ADC en Arduino aquí.
Ahora, para que UNO convierta la señal analógica en señal digital, necesitamos usar el canal ADC de Arduino Uno, con la ayuda de las siguientes funciones:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bits);
Los canales Arduino ADC tienen un valor de referencia predeterminado de 5V. Esto significa que podemos dar un voltaje de entrada máximo de 5 V para la conversión de ADC en cualquier canal de entrada. Dado que algunos sensores proporcionan voltajes de 0-2,5 V, por lo que con una referencia de 5 V, obtenemos menor precisión, por lo que tenemos una instrucción que nos permite cambiar este valor de referencia. Entonces, para cambiar el valor de referencia, tenemos "analogReference ();"
De forma predeterminada, obtenemos la resolución ADC máxima de la placa que es de 10 bits, esta resolución se puede cambiar usando la instrucción ("analogReadResolution (bits);").
En nuestro circuito de mano robótica, hemos dejado este voltaje de referencia al valor predeterminado, por lo que podemos leer el valor del canal ADC llamando directamente a la función "analogRead (pin);" aquí "pin" representa el pin donde conectamos la señal analógica, digamos queremos leer "A0". El valor de ADC se puede almacenar en un número entero como int SENSORVALUE0 = analogRead (A0); .
Ahora hablemos del SERVO, el Arduino Uno tiene una función que nos permite controlar la posición del servo simplemente dando el valor del grado. Digamos que si queremos que el servo esté en 30, podemos representar directamente el valor en el programa. El archivo de encabezado SERVO ( Servo.h ) se encarga de todos los cálculos de la relación de trabajo internamente.
#incluir
Aquí la primera declaración representa el archivo de encabezado para controlar el SERVO MOTOR. La segunda declaración es nombrar el servo; lo dejamos como servo0 ya que vamos a usar cuatro. La tercera declaración indica dónde está conectado el pin de la señal del servo; este debe ser un pin PWM. Aquí estamos usando PIN3 para el primer servo. La cuarta declaración proporciona comandos para posicionar el servomotor en grados. Si se le da 30, el servomotor gira 30 grados.
Ahora, tenemos la posición del servo SG90 de 0 a 180 y los valores de ADC son de 0-1023. Usaremos una función especial que empareja ambos valores automáticamente.
sensorvalue0 = mapa (sensorvalue0, 0, 1023, 0, 180);
Esta declaración mapea ambos valores automáticamente y almacena el resultado en un entero 'servovalue0' .
Así es como hemos controlado los Servos en nuestro proyecto de brazo robótico usando Arduino. Consulte el código completo a continuación.
Cómo operar el brazo robótico:
Se proporcionan cuatro macetas al usuario. Y al girar estos cuatro potenciómetros, proporcionamos voltaje variable en los canales ADC de UNO. Entonces, los valores digitales de Arduino están bajo el control del usuario. Estos valores digitales están mapeados para ajustar la posición del servomotor, por lo tanto, la posición del servo está bajo el control del usuario y al girar estos potenciómetros, el usuario puede mover las articulaciones del brazo robótico y puede tomar o agarrar cualquier objeto.