Qué es un robot Arduino
Y, ¿un robot Arduino?
Un robot Arduino es aquel que incorpora la licencia de código abierto y hardware libre de Arduino. Es lo que se conoce como «open source«. Arduino es un proyecto colaborativo que ha ofrecido sistemas baratos, útiles y fáciles de utilizar para fomentar el aprendizaje de la robótica y la electrónica.
En Arduino diseñan y fabrican placas programables que pueden utilizarse en multitud de pequeños sistemas electrónicos con una gran cantidad de usos. Con las placas de Arduino puedes, desde controlar el sistema de luces de tu hogar hasta fabricar un dron. Y, por supuesto, también un robot o autómata por poner algunos ejemplos. Ese será nuestro robot Arduino.
Filosofía Arduino y robótica educativa
Además de la filosofía del open source, Arduino también es exponente del «háztelo tú mismo«. Esto es consecuencia de su objetivo de fomentar el aprendizaje. Es por eso que tienen bien cubierto el área de la robótica infantil y para niños, los robóticos del futuro. Si lo que quieres es focalizarte en la robótica educativa, puedes pinchar y visitar nuestras categoría y subcategoría
Partes de la placa para nuestro robot Arduino
Las placas de Arduino facilitan enormemente iniciarse en este campo. De otra manera sería mucho más complicado y más caro. Para explicar cómo funciona utilizaremos imágenes del modelo de tarjeta o placa Arduino 1, la más básica y conocida. Tiene un color azul característico y su logo
La importancia de los sensores en robótica
Los sensores en robótica
Los sensores en robótica
Un robot por su propia definición, debe ser una máquina capaz de relacionarse con el entorno que le rodea e interactuar con el mismo para tomar decisiones. Los seres humanos dispones de un sistema sensorial que nos permite interrelacionarnos con lo que nos rodea.
De la misma manera, los robots precisan de dicho sistema sensorial para adaptar sus movimientos y las acciones a realizar en función de los estímulos o respuestas que reciba de todo aquello que le rodea. Para conseguir esto, se utilizan diversos tipos de sensores que permiten dotar al robot de información precisa y al momento del entorno que le rodea.
Al inicio de la robótica, los sensores eran dispositivos muy básicos y limitados, pero hoy en día podemos encontrar todo tipo de sensores de gran precisión. La industria de los sensores también evoluciona rápidamente y el nivel de sofisticación actual de estos elementos es muy elevado.
Cómo funciona un sensor
Más adelante veremos los diferentes tipos de sensores que podemos utilizar en robótica, pero primero es interesante conocer cómo funciona un sensor.
Un sensor es un dispositivo diseñado para percibir información externa de una magnitud física o química y transformarla en un valor electrónico que sea posible introducir al circuito de control de un microcontrolador, como puede ser Arduino, de modo que el robot sea capaz de cuantificarla y reaccionar en consecuencia en base a su programación.
Un sensor consta de algún elemento sensible a una magnitud física o química, como por ejemplo la intensidad o color de la luz, la temperatura, la presión, el magnetismo, la humedad,… y debe ser capaz, por su propias características, o por medio de dispositivos intermedios, de transformar esa magnitud física en un cambio eléctrico que se pueda alimentar en un circuito que la utilice directamente, o sino en una etapa previa que la condicione (amplificando, filtrando, etc.), para que finalmente se pueda utilizar para el control de un robot.
Tipos de sensores
Como hemos comentado, existe una gran diversidad de sensores y a continuación mencionaremos aquellos que más suelen utilizarse.
Sensores de velocidad: Son sensores que se utilizan para determinar la velocidad de movimiento de los robots. Estos sensores determinan la velocidad de giro de los motores. Este tipo de sensor se llama tacómetro. A partir de estas medidas, se utilizan actuadores (otro tipo de dispositivos), con el fin de modificar la velocidad de giro de los motores.
Sensores de luz: Dentro de los sensores de luz, existen una amplia gama de dispositivos con diferentes funciones, estamos hablando de fotodiodos, fotorresistores e incluso cámaras de video. Su función es determinar la cantidad de luz existente en el entorno del robot con el fin de actuar en función de los valores obtenidos.
Sensores de distancia: Los sensores de distancia determinan la distancia existente a un objeto. Pueden ser de dos tipos, ya sea por infrarrojos o bien por ultrasonidos. Los basados en ultrasonidos ofrecen información de la distancia mientras que los que funcionan por infrarrojos suelen emplearse para detectar objetos en ciertos rangos de distancia y excepcionalmente también dan información de la distancia.
Sensores de sonido: Mediante estos sensores, los robots reaccionarán al sonido. Dentro de esta gama de sensores se engloban micrófonos y captadores piezoeléctricos. Estos sensores, además de usarse para captar sonido, se pueden usar también para medir distancias, al emitir el robot un sonido y medir el tiempo de rebote de dicho sonido en el obstáculo.
Sensores de temperatura y humedad: Los sensores de temperatura se pueden utilizar para diferentes aplicaciones en robótica. La más básica para activar dispositivos ante cambios de temperatura. Existen diferentes tipos de sensores de temperatura como son termistores, pirosensores o termorresistencias. En función del uso que se vaya a dar, se usarán de un tipo u otro. De la misma forma existen sensores de humedad que suelen ser capacitivos o resistivos para detectar cambios de humedad en el ambiente.
Además de todos estos sensores que hemos comentado, podemos encontrar muchos más como de magnetismo, de ubicación geográfica, de gravedad o de presión y fuerza. El abanico es muy amplio. Lo que tenemos que tener claro es que un robot sin sensores es de muy poca utilidad a no ser que tenga una función muy específica que no requiera de sensores.
Si estás haciendo tus pinitos con Arduino, debo indicarte que en el mercado puedes encontrar packs de sensores específicos para esta placa y que te permitirán realizar proyectos interesantes.
ROBOT Bluetooth
Diferencia entre Bluetooth Arduino HC-05 y HC-06
El módulo Bluetooth Arduino HC-05 y el HC-06 son los más populares por su facilidad de uso y por su bajo precio.
Además, si no tienes mucha experiencia en estos módulos, puede que los confundas ya que su aspecto físico es muy parecido.
Sin embargo, existen grandes diferencias entre el módulo HC-05 y el HC-06 que se pueden ver a simple vista.
La primera es el número de pines. El módulo Bluetooth Arduino HC-05 tiene 6 pines mientras que el HC-06 tiene solo 4 pines.
También salta a la vista que el módulo HC-05 tiene un pulsador integrado en la placa y el HC-06 no lo tiene (luego veremos para qué se utiliza).
Con respecto a los módulos, el HC-05 utiliza el módulo Bluetooth EGBT-045MS y el HC-06 utiliza el módulo Bluetooth EGBT-046S.
Estos módulos son prácticamente iguales con respecto al hardware. La gran diferencia se encuentra en el firmware que utilizan.
Chip de radio | CSR BC417 |
Memoria | Flash Externa 8Mbit |
Potencia de salida | -4 a +6dbm Clase 2 |
Sensibilidad | -80dbm típica |
Bit rate | EDR, más de 3Mbps |
Interfaz | UART |
Antena | Integrada |
Dimensiones | 27mm x 13mm |
Voltaje | 3,1V a 4,2V |
Corriente | 40mA max |
Bluetooth* | 2.0 |
*Los módulos Bluetooth HC-05 y HC-06 se basan en Bluetooth 2.0 y esto hace que no sean compatibles con móviles de Apple. Tenlo en cuenta a la hora de utilizar este componente con un dispositivo con iOS.
La diferencia en cuanto al firmware hace que el módulo Bluetooth Arduino HC-05 pueda funcionar como maestro y esclavo mientras que el HC-06 pueda funcionar solo en modo esclavo.
Con esta información espero que puedas diferenciar un módulo de otro fácilmente.
A partir de aquí voy a seguir con el módulo Bluetooth Arduino HC-05 que es el que yo tengo pero puedes utilizar el HC-06 ya que el uso que le vamos a dar en este proyecto es de esclavo y no maestro.
Pineado Bluetooth Arduino HC-05
Vamos a comenzar por los pines. El módulo Bluetooth Arduino HC-05 tiene 6 pines.
- EN: este pin es el ENABLED y sirve para habilitar (HIGH) o deshabilitar (LOW).
- VCC: los módulos Bluetooth Arduino HC-05 incluyen un regulador de voltaje de 3,3V y esto permite que se pueda alimentar con un voltaje entre 3,6V y 6V por este pin.
- GND: es el pin de tierra o GROUND.
- TXD: es el pin serie de salida. Funciona a 3,3V. Todos los datos recibidos a través del Bluetooth se transmitirán a través de este pin.
- RXD: es el pin serie de entrada. Funciona a 3,3V. Todos los datos en serie proporcionados a este pin se enviarán por Bluetooth.
- STATE: es el pin de estado y proporciona información del estado en el que se encuentra el módulo Bluetooth Arduino HC-05. Si está en estado alto (HIGH) quiere decir que está conectado. En caso contrario (LOW) indica que el módulo no está conectado. Se puede utilizar en una entrada digital de Arduino para dentro del código saber el estado del módulo Bluetooth HC-05.
A la hora de conectar los pines TXD y RXD con Arduino, como verás más adelante, debes tener ciertas precauciones. Los dos pines funcionan a 3,3V. Para conectar el TXD no hay problema ya que Arduino interpreta 3,3V como una señal alta sin embargo, con el pin RXD hay que llevar cuidado. No deberías conectar este pin directamente a Arduino ya que, aunque a corto plazo funciona, a largo plazo lo que conseguirás es dañar el pin RXD y dejarás inservible el módulo Bluetooth Arduino HC-05.
HC-05 y los comandos AT
Otro componente dentro del módulo Bluetooth Arduino HC-05 es el pulsador o botón. Sirve para poner el módulo en modo comandos AT es decir, poder comunicar con el HC-05 a través de los comandos AT.
Es algo así parecido a cómo lo hacíamos con el módulo ESP-01 basado en el ESP8266 en los orígenes de este SoC.
Para entrar en el modo comandos AT tienes que presionar el pulsador al iniciar el módulo Bluetooth Arduino HC-05. Realmente lo que sucede es que está poniendo un pin (el 34) del módulo en estado alto (HIGH).
En algunos módulos más antiguos no hay un pulsador dentro del módulo Bluetooth Arduino HC-05. Además, el pin EN no está accesible y por el contrario hay un pin que se llama KEY. Este pin funciona igual que el pulsador. Si antes de encender el módulo HC-05 pones el pin en alto (HIGH) el módulo entrará en modo AT.
¿Por qué poner el módulo Bluetooth Arduino HC-05 en modo AT?
El modo comandos AT permite cambiar algunas de las configuraciones del HC-05:
- Cambiar el nombre.
- Cambiar la velocidad en baudios.
- Establecer si funciona en modo maestro o esclavo.
- Obtener la dirección MAC.
Esto son solo una muestra de cosas que puedes hacer en este modo. A continuación te dejo la lista de comandos AT completa.
Trabajar con los comandos AT es un poco complejo (yo lo odio), sin embargo hay diferentes librerías que te facilitan su uso. A continuación te dejo unas cuantas con las que podrías trabajar:
Más adelante verás cómo entrar en el modo comandos AT para obtener algunos datos importantes del módulo Bluetooth HC-05.
Pero lo primer es ver cómo conectar el módulo HC-05 a Arduino.
Conexión módulo Bluetooth HC-05 con Arduino
Antes de empezar, el material necesario que vamos a utilizar es el siguiente:
Para conectar el módulo Bluetooth HC-05 y Arduino primero tienes que identificar qué tipo de componente tienes entre manos. Vamos a distinguir dos: el módulo con un pulsador en la placa y el módulo sin pulsador.
La primera opción es utilizar el módulo con pulsador y pin EN. El esquema de conexión sería el siguiente.
La segunda opción es utilizar un módulo Bluetooth HC-05 sin pulsador. En este caso la conexión se hace de forma diferente como veremos a continuación.
La diferencia entre los dos circuitos es que en este último he conectado el pin KEY y el pin de alimentación VCC a dos pines digitales, los pines 6 y 7.
La idea es poder controlar el estado del pin KEY antes de que se encienda el módulo Bluetooth Arduino HC-05.
No hay ningún problema a la hora de alimentar el módulo Bluetooth HC-05 a través de un pin digital. Según las especificaciones técnicas de este módulo, consume un máximo de 40 mA que es precisamente el máximo que pueden proporcionar los pines del Arduino UNO.
Bluetooth Arduino HC-05 y el modo comandos AT
Si hay algo que no me gusta nada ya desde los inicios del ESP8266, es el modo comandos AT. Acostumbrado a programar con C/C++ los comandos AT son muy poco intuitivos.
Aún así, es necesario entrar en este modo para poder ver cierta información del módulo Bluetooth HC-05 que luego nos hará falta.
Como tenemos dos posibles circuitos, también tendremos dos formas de entrar en el modo comandos AT. Vamos a empezar con el módulo HC-05 con pulsador.
VIDEO PASO A PASO ROBOT
https://cdn.shopify.com/s/files/1/0020/8027/6524/files/IMG_3043_1024x1024.jpg?v=1524245139
No hay comentarios:
Publicar un comentario