domingo, 19 de septiembre de 2021

Ascensor de 3 pisos

En esta entrada abordamos la construcción de un ascensor de tres pisos.



Hemos usado los tres pulsadores de la tarjeta multifunción, un micro servo de rotación continua y tres sensores de infrarrojos (sigue línea) para detectar la presencia de la cabina en cada uno de los pisos. En la figura adjunta vemos la conexión de estos elementos:

El armazón se ha realizado con una impresora 3D. En el siguiente enlace se puede descargar el archivo stl correspondiente (incluye la cabina, el contrapeso y una polea que se puede acoplar al micro servo). Para evitar problemas con la altura se ha dividido en tres partes que se pueden acoplar y fijar con un poco de pegamento.

Si no se dispone de impresora, existen páginas web que la realizan y la envían en unos días, por ejemplo: imprimakers

Archivo para impresora 3D: ascensor3pisos.stl


En siguientes imágenes se ve el montaje definitivo. Para evitar errores de los sensores hemos pegado dos trozos de cinta aislante, negra y blanca, en el lateral de la cabina (segunda imagen.



Por último, aquí tenemos el programa:





Ejercicios propuestos:

1.- Al accionar el pulsador 1 el ascensor debe subir al piso 3, esperar allí 30 segundos, bajar al piso 2, esperar otros 30 segundos y regresar definitivamente al piso 1.





sábado, 2 de enero de 2021

multiBot: control bluetooth

Ahora controlaremos el movimiento de nuestro robot con un teléfono móvil a través del bluetooth. Necesitaremos una app que envíe determinados números al pulsar sobre unos botones de la pantalla; cuando los reciba el módulo bluetooth del robot, el programa que tenga cargado Arduino los interpretará y realizará las acciones correspondientes.

En la figura se muestra la conexión entre el módulo bluetooth (AT-09 o HM-10) y el robot.


Hay que tener en cuenta que cuando vayamos a subir programas a Arduino el módulo bluetooth debe estar desconectado, al menos los cables RXD y TXD. 

En el siguiente enlace podéis descargar la aplicación e instalarla en vuestro móvil:

multiBot.apk

La pantalla de la app se muestra en la imagen. Para establecer la conexión pulsamos en el botón "Conectar", aparecerá nuestro módulo y volvemos a pinchar sobre él. 


El resto de botones sirven para controlar el movimiento: adelante, atrás, izquierda, derecha y stop. Al activar el botón "Volante" podemos realizar los movimientos del robot girando el móvil respecto de la vertical (entre -90º y 90º). Los números que se envían por el bluetooth son los siguientes:

Adelante   91

Derecha    92

Atrás        93

Izquierda  94

STOP        95

Volante     96

inclinación del móvil hacia la izquierda  de 0 (0º) a 90 (90º)

Inclinación del móvil hacia la derecha   de 166 (-90º) a 255 (-1º)


Este es el programa que tenemos que cargar en nuestro Arduino:



Ejercicios propuestos:

1.- Hacer un programa que permita encender y apagar desde el móvil el LED 1 del shield multifunción. Utilizaremos el botón "Adelante" para encenderlo y "STOP" para apagarlo.

2.- Ahora queremos encender y apagar de manera independiente los cuatro LEDs del shield. Sólo podemos usar un único botón para cada LED; es decir, si está apagado se enciende al pulsar y si está encendido se apaga.

3.- Realizar un programa que vaya encendiendo progresivamente los LED en función del ángulo girado por el móvil.



multiBot sigue líneas ⇦                                            Ascensor de 3 pisos




 



miércoles, 2 de diciembre de 2020

multiBot sigue líneas

Ahora vamos a programar nuestro robot para que sea capaz de seguir una línea negra sobre fondo blanco. Para ello es necesario utilizar dos sensores de infrarrojos.

En la imagen podemos ver las dos caras de uno de los sensores y las conexiones que hay que realizar con el shield multifunción


El funcionamiento de estos sensores es similar al de  ultrasonidos; tienen un emisor y un receptor, si la luz infrarroja emitida se refleja sobre una zona negra el receptor no la recibirá, por el contrario, si la luz se refleja sobre una zona blanca el receptor si la recibirá.  Disponen de dos pequeños diodos LED, uno de ellos se encenderá cuando detecte el color blanco y se apagará con el negro, el otro permanece encendido siempre que el sensor esté alimentado. Con un pequeño destornillador podemos ajustar la sensibilidad para que el color detectado sea el correcto.

En el vídeo se muestra su funcionamiento una vez que hemos cargado el programa adjunto:





Ejercicios propuestos:

1.- Realizar un programa que, además de seguir una línea negra, detecte la presencia de un obstáculo y se detenga hasta que sea retirado.


multiBot evita obstáculos ⇦                   ⇨ multiBot: control bluetooth


martes, 3 de noviembre de 2020

multiBot evita obstáculos

La inclusión de un sensor de ultrasonidos en nuestro robot móvil (disparo en el pin A5, pin 19, y eco en el pin 9) nos permite realizar programas en los que responda de diferentes maneras ante la presencia de obstáculos.

En el primer programa que presentamos, al detectar un objeto, gira a la derecha, se para y continúa avanzando:





En éste otro, girará al azar hacia la izquierda o la derecha:





Ejercicios propuestos:

1.- Ahora multiBot debe detenerse al detectar un obstáculo (se encenderá uno de los diodos LEDs) y no reanudar su marcha (apagando el LED) hasta que quitemos el objeto.


Robot móvil: multiBot                                   ⇨multiBot sigue líneas


domingo, 1 de noviembre de 2020

Robot móvil: multiBot

Vamos a construir un pequeño robot móvil utilizando la tarjeta Arduino y el shield multifunción. Para generar el movimiento utilizaremos dos micro servos de rotación continua, sg 90, conectados a los pines 5 y 6 del shield. También incluiremos un sensor de ultrasonidos (disparo en el pin A5 y eco en el pin 9), dos sensores de infrarrojos seguidores de línea negra y un módulo bluetooth 4.0 (AT-09 o HM-10). La alimentación la hemos realizado con una pila de 9 voltios, alojada dentro de un porta-pilas que dispone de interruptor y de un conector para unirlo al jack de la tarjeta Arduino. En las imágenes podéis ver un primer prototipo cuyo chasis se ha realizado utilizando una impresora 3D










En el enlace adjunto podéis descargar el archivo stl para realizar la impresión en 3D.

Si no se dispone de impresora, existen páginas web que la realizan y la envían en unos días, por ejemplo:

En las imágenes anteriores, las ruedas se han realizado con una impresora 3D, aunque también se pueden comprar directamente ruedas de plástico que se adaptan al micro servo:

Otra opción para construirlo es usar un trozo de madera y montar sobre ella todos los elementos. A continuación vemos una posible solución, hemos utilizado unos soportes para los micro servos y el sensor de ultrasonidos, el portapilas está sujeto con velcro a la parte posterior:





Este es el cableado completo:



Atención: El shield multifunción tiene dos pequeños puentes J1 y J2, hay que quitar el J1. Mientras no se utilice, es preferible no conectar el módulo bluetooth, ya que para subir los programas a Arduino deben quedar libres los pines 0 y 1. 

Para mover el robot tenemos los bloques siguientes:
En realidad, se podrían reducir a una única instrucción en la que se indiquen las velocidades de los dos micro servos, de -100 a 100. Poder controlar las velocidades es imprescindible, ya que tendremos que hacer pequeños ajustes, bien para asegurarnos que el robot marcha en línea recta o para cambiar la mayor o menor amplitud de los giros. Hay que tener en cuenta que los micro servos no son muy precisos y las velocidades izquierda y derecha no coincidirán, será necesario hacer varias pruebas para ajustarlas.

En el programa adjunto el vehículo se mueve siguiendo una trayectoria más o menos cuadrada:




Ejercicios propuestos:

1.- Jugar con las instrucciones anteriores para que el robot haga diferentes movimientos.




Sensor de ultrasonidos                                               multiBot evita Obstáculos


miércoles, 15 de abril de 2020

Sensor de ultrasonidos

Vamos a conectar un sensor de ultrasonidos que nos servirá para medir la distancia que lo separa de un objeto. En concreto se trata del HC-SR04. Consta de un emisor de ultrasonidos y un receptor al que llegan las ondas una vez reflejadas en el objeto, por el tiempo transcurrido se calcula la distancia a la que se encuentra.
Como vemos en la imagen tiene cuatro patillas: Vcc, Trigger (activación), Echo (eco) y Gnd. Con ayuda de unos cables dupont H-H unimos Vcc a 5v, Gnd a GND, Trigger a cualquiera de los cuatro pines disponibles y Echo al pin 5, 6 o 9 (necesita un pin PWM). En este caso se ha conectado Trigger al pin A5 (pin 19) y Echo al pin 9.



El siguiente bloque nos devuelve la distancia en centímetros a la que se encuentra el objeto en el que hayan rebotado los ultrasonidos: 

En el siguiente programa se muestra en el display el resultado de la medida realizada por el sensor, a intervalos de un segundo:




El próximo ejemplo va a mostrar la palabra "ALto" cuando detecte un persona a menos de 50 cm del sensor y, además, emitirá unos pitidos si la distancia es menor o igual a 25:



Ejercicios propuestos:

1.- Realizar una especie de sensor de aparcamiento de un coche, de manera que emita diferentes señales acústicas conforme se va acercando más a un objeto.


Conectar un servo. Parking                                      Robot móvil: multiBot

viernes, 3 de abril de 2020

Conectar un servo. Parking

El Shield multifunción deja libres algunos pines de Arduino, en concreto el 5, 6, 9 y A5. Además, en los tres primeros podemos conectar directamente un micro servo (tipo SG 90), sólo debemos tener cuidado en colocar el cable naranja donde está serigrafiado el número del pin.



Para trabajar con ellos disponemos del bloque "mueve Servo", hay que indicar el pin al que está conectado y el ángulo en el que debe situarse (entre 0 y 180 grados):

El programa adjunto mueve el micro servo de un extremo al otro, a intervalos de 45º:





Ahora vamos a mover el servo de 5 en 5 grados con dos pulsadores, uno para desplazarlo en un sentido y el otro para hacerlo en el contrario. Será necesario crear una variable (la llamaremos angulo) que almacene el ángulo en el que se encuentra el servo:



Ejercicios propuestos:


1.- Realizar un programa que nos permita controlar el funcionamiento de un aparcamiento. Podemos usar  micro servos para hacer las barreras de entrada y salida y controlarlos mediante los pulsadores. Uno de los LEDs se debe poner en rojo cuando el parking esté completo y el display debe mostrar, en todo momento, el numero de plazas que quedan libres.


Reloj. Cronómetro                                                           Sensor de ultrasonidos