Construcción y programación de un robot Balancín péndulo Invertido Angel Moran 148384 Ricardo Torres 152968 1. Introducción Al proyecto que nos enfocamos como equipo nos llamó mucho la atención el robot balancín que básicamente es un péndulo invertido sobre dos ruedas con la implementación de un esquema de control que hace el cambio de posición por medio de un sensor giroscopio como retroalimentación principal de controlador, pero se utilizaran algunos otros componentes necesarios para que funcione correctamente. A como hemos vistos otros que básicamente también en ruedas que son estables, este robot balancín es un sistema inestable por naturaleza. 2. Desarrollo En este reporte de un robot balancín. Buscamos solucionar el problema del péndulo invertido, problema usado comúnmente en el campo de control, ya que se consigue que un sistema inestable pase a convertirse en uno estable gracias a la acción generada de diversos componentes. La acción de control del robot para que este se mantenga en posición vertical se consigue mediante un control PID digital programado en Arduino el cual funciona como controlador del sistema. El modelo es el de un péndulo invertido en dos ruedas es este reporte se busaca comprender como funciona este sistema de control. Como conclusión, se puede decir que por condiciones que no se tienen en cuenta en el modelo de nuestro péndulo invertido, se presentan factores que afectan directamente el buen funcionamiento, como: las corrientes de aire, los cambios de la rugosidad en la superficie, la inclinación del terreno, el desplazamiento de la carga sobre el robot o hasta su propio peso que nos damos cuenta de que es un factor importante. 3. Selección de componentes Arduino UNO Motores DC con engranajes (color amarillo) Controlador de motor L298N MóduloMPU6050 un par de ruedas Batería Lipo 11.1 v Batería de iones de litio de 9V Cables de conexión Chasis 3.1 Chasis Es importante el chasis ya que es donde se montará todos los compontes, hay que tomar en cuenta el espacio suficiente es importante ya que son varios componentes que vamos a usar en este caso se uso material MDF y Tornillos galvanizados dado según su forma permitirá realizar desplazamientos con mayor o menor exactitud. Figura 1. Chasis del péndulo invertido 3.2 Arduino uno El microcontrolador que se usó aquí es Arduino Uno, porque es fácil de usar ya que no necesita ninguna placa de prueba para la configuración de la conexión, por lo que puede caber fácilmente en un chasis pequeño. . También puede usar un Arduino Nano o Arduino Mini. Figura 2. Arduino uno 3.3 Puente H L298N (Driver) Para el control y alimentación de los dos motores, usamos el driver o controlador L298N. Este módulo doble puente H basado en el chip L298N te permite controlar dos motores de corriente continua o un motor paso a paso bipolar de hasta 2 amperios. Figura 3. Puente H L298N El controlador permite controlar el sentido de giro y velocidad median el controlador el Arduino UNO El módulo cuenta con todos los componentes necesarios para funcionar sin necesidad de elementos adicionales, entre ellos diodos de protección y un regulador LM7805 que suministra 5V a la parte lógica del integrado L298N. Cuenta con jumpers de selección para habilitar cada una de las salidas del módulo (A y B) para cada uno de los dos motores. La salida A está conformada por OUT1 y OUT2 y la salida B por OUT3 y OUT4. Los pines de habilitación son ENA y ENB respectivamente. Este módulo se puede alimentar de 2 maneras gracias al regulador integrado LM7805. Cuando el jumper de selección de 5V se encuentra activo, el módulo permite una alimentación de entre 6V a 12V DC. Como el regulador se encuentra activo, el pin marcado como +5V tendrá un voltaje de 5V DC. Este voltaje se puede usar para alimentar la parte de control del módulo ya sea un microcontrolador o un Arduino, siempre y cuando que el consumo no sea mayor a 500 mA. Cuando el jumper de selección de 5V se encuentra inactivo, el módulo permite una alimentación de entre 12V a 35V DC. Como el regulador no está funcionando, tendremos que conectar el pin de +5V a una tensión de 5V para 18 alimentar la parte lógica del L298N. Usualmente esta tensión es la misma de la parte de control, ya sea un microcontrolador o Arduino. 3.4 Giroscopio MPU 6050 Para conocer la posición actual del Robot usamos el MPU6050 , que es un sensor de acelerómetro y giroscopio de 6 ejes combinados. Para obtener un valor confiable de la posición del sensor, necesitamos usar el valor del acelerómetro y el giroscopio, EL módulo Acelerómetro MPU tiene un giroscopio de tres ejes con el que podemos medir velocidad angular y un acelerómetro también de 3 ejes con el que medimos los componentes X, Y y Z de la aceleración. La dirección de los ejes se indica en el módulo el cual hay que tener en cuenta para no equivocarnos en el signo de las aceleraciones. Figura 4. Giroscopio MPU 6050 Giróscopo: Puede ser ajustado a valores de ±250, ±500, ± 1000, y ±2000 °/s. o Integra 3 conversores analógico digital de 16 bits, uno por cada eje. o Dispone de un filtro paso bajo programable o Consume 3.6mA. Acelerómetro: o Sistema de acelerómetro en 3 ejes fabricado con tecnología MEMS. o Ajustable a valores de sensibilidad de ±2g, ±4g, ±8g y±16g. o Integra 3 conversores analógico digital de 16 bits, uno por cada eje. 3.5 Motorreductor DC Se eligió este motor porque da buenas rpm y torque a bajos voltajes de operación, lo cual es una de las mayores ventajas de estos motores. Es una alternativa a nuestros motores de CC con engranajes metálicos. Tiene un voltaje de operación de 3-6V que es perfecto para construir robots de tamaño mediano a pequeño. Los orificios de montaje en el cuerpo del motor y su ligereza lo hacen adecuado para su colocación en el circuito del robot. Figura 5. Motorreductor amarillo Voltaje de operación: 3 - 6 V Corriente sin carga (3 V): 150 mA Corriente sin carga (6 V): 200 mA Velocidad sin carga (3 V): 90 RPM + / - 10 % Velocidad sin carga (6 V): 200 RPM + / - 10 % Material: Plástico Color: Amarillo Engranaje de plástico Doble Eje Dimensiones: 7 cm X 3.7 cm X 2.2 cm Modelo: DC3V-6V. [7] 3.6 Batería lipo 3s 11.1 v Para lograr un robot autónomo se utilizaron dos fuentes de alimentación independientes, en este caso se hizo uso de una batería lipo de 11.1V con un paquete de 3 celdas, a una carga de 850mAh. La cual cuenta con una descarga continua de 25C y una velocidad de descarga de pico de 70c.Lo cual es suficiente para alimentar la placa y los motores el voltaje no va directamente a la placa, sino que antes pasa por un regulador de voltaje. Esta batería se colocó en el centro de la placa en la parte inferior para no desfavorecer el equilibrio y el punto de apoyo de la placa. Figura 6. batería lipo 11.1 v 3.7 Un par de llantas Elegimos este tipo de ruedas por que vimos que tienen buen agarre sobre el piso claro siempre en superficie planas 4. Diagrama de construcción del robot balancín Solo tenemos que conectar el acelerómetro MPU6050 con Arduino y conectar los motores a través del Motor Driver Module. Todo el montaje se alimenta con una batería de 9V. Arduino y el módulo de controlador de motor L298N se alimentan directamente a través del pin Vin y el terminal de 12 V, respectivamente. El regulador integrado en la placa Arduino convertirá la entrada de 9 V a 5 V , el MPU6050 serán alimentados por él. Los motores de CC pueden funcionar con un voltaje de 5 V a 12 V. Pero conectaremos el cable positivo de 9 V de la batería al terminal de entrada de 12 V del módulo del controlador del motor. Esto hará que los motores funcionen con 9V. 5. Medición del ángulo de inclinación mediante giroscopio El giroscopio de 3 ejes de MPU6050 mide la tasa angular (velocidad de rotación) a lo largo de los tres ejes. Para nuestro robot balancín, la velocidad angular a lo largo del eje x es suficiente para medir la tasa de caída del robot.