Você está na página 1de 9

Robot miniskybot 2 como siguelneas y detector de obstculos

0 18 abr 2013 Arduino, Impresion 3D, IR, MiniskyBot, Robot, Robtica, sensor ultranosidos, TUTORIAL by Borja

Hola amigos! En este tutorial vamos a mostrar cmo completar un robot imprimible miniskybot 2 aadiendo:

Sensores IR para detectar cambios bruscos de luminosidad en el suelo con los que el robot podr seguir una lnea Sensor de ultrasonidos para detectar obstculos que tenga delante

Qu es un robot MiniSkyBot?

El MiniSkybot es un robot educacional libre e imprimible. Toda la informacin est disponible para que cualquiera lo pueda estudiar, copiar, modificar y fabricar. Adems, ha sido diseado exclusivamente usando software libre: Sistema operativo Linux, OpenScad, Frecad y Kicad. Esto garantiza que se puedan realizar diseos derivados sin tener que pagar ningn tipo de licencia o realizar copias ilegales de software privativo.

Al ser un robot libre e imprimible, cualquier persona lo puede descargar e imprimir!! El printbot Miniskybot 2 es la segunda generacin de la familia de robots imprimibles Miniskybot. Aqu tenis un fabuloso video orquestado por el gran ObiJuan, en el que podis ver en accin a diversos PrintrBot o robots imprimibles.

Qu vamos a hacer?
Vamos a ver varios sketch de Arduino para que el robot ejecute las siguientes funciones:

Seguir una lnea negra sobre un fondo blanco Esquivar objetos que encuentre en su recorrido Empujar objetos fuera de un rea limitada por una circunferencia negra

Qu necesitamos?
En primer lugar necesitamos que alguien nos imprima en 3D las piezas del robot, si no conocis a nadie, os podis poner en contacto con nosotros e intentaremos hacer que no os quedis sin ellas! El resto del material:

2 servomotores Arduino UNO 2 led IR 2 receptores IR 4 resistencias (dos de 210 y dos de 10k) 1 sensor ultrasonidos (HC-SR04) 1 interruptor tiras de pines placas donde soldar los componentes.

Para el montaje del robot, podis seguir estas instrucciones creadas por los padres del proyecto.

Caracterizacin de los servos


Una vez modificados los servos para que se comporten como motores que pueden girar continuamente tenemos que identificar el valor para el cual el motor est parado, en este video de loleando.es podis ver en detalle como realizarlo: Un servo es un dispositivo que es capaz de girara hasta colocarse en una posicin angular determinada (de 0 a 180). En ESTE POST tenis ms informacin acerca del mismo.

Para saber la posicin en la que est, se utiliza un potencimetro que gira simultneamente con el servo y que indica el ngulo en el que se encuentra. Con la modificacin quitamos el potencimetro y lo sustituimos por dos resistencias iguales con lo que la informacin que le llega al servo es que se encuentra siempre en la posicin de 90, si le indicamos al servo que se coloque en una posicin mayor de 90, por ejemplo 180, girar de forma continua en un direccin, si le indicamos al servo que se coloque en una posicin inferior, por ejemplo 0, girar de forma continua en el otro sentido. Si le indicamos 90 el servo se parar. Como las resistencias no son perfectas y tienen cierta diferencia respecto al valor nominal (aunque pongamos resistencias con 1% de tolerancia) se genera un cierto error respecto a la posicin central. As que 90 puede que no pare el motor y tendremos que buscar un ngulo cercano a 90 para que el motor quede parado. Necesitaremos identificar este dato para cada uno de los dos servos. En el caso de los sketch indicados en este tutorial utilizo la librera Servo.h y el mtodo writeMicroseconds para controlar los servos. Los valores que utilizo en los dos servos son:

#define derechoParada 1450 #define izquierdoParada 1390 #define derechoAdelante 2000 #define izquierdoAdelante 1000 #define derechoAtras 1000

#define izquierdoAtras 2000

La posicin a 0 suele indicarse con 1000s y la posicin 180 con 2000s, al tener orientaciones opuestas para cada servo hay que asignar valores para que cada servo gire en un sentido diferente. Las paradas corresponden a 1450 s y 1390 s.

Circuito IR siguelineas y sensor ultrasonidos


El siguiente paso ser soldar los emisores y receptores IR junto con sus resistencias segn el siguiente esquema:

Tambin es necesario caracterizar estos sensores para encontrar un umbral entre blanco y negro que podamos usar en el sketch. En las pruebas que he realizado al poner el sensor sobre fondo negro da un valor de 600 y al ponerlo sobre fondo blanco da 30, as que he escogido como umbral 200 o 300 para que cuando la seal sea menor de este umbral entienda que el sensor est sobre fondo blanco y corrija la trayectoria. Tambin incluiremos una tira de 4 pines hembra para alojar el sensor de ultrasonidos. Finalmente se han soldado los seis hilos del trozo cable paralelo para conectar los sensores y la alimentacin (5v, GND, Trig, Echo, IR izquiedo, IR derecho) con la placa Arduino.

En la imagen podemos ver como queda el circuito sobre un trozo de placa de 2030 mm. Este cir_carcircuito lo pegaremos en el chasis del robot para lo que tendremos que hacer un corte de 2210 mm en el frontal del robot.

Los receptores IR estn cubiertos en la parte lateral con plstico (un pequeo trozo de globo fino del que se usa para hacer figuras) para que slo reciban luz infrarroja por el extremo, es decir la que rebota desde el suelo.

Conexin con la placa Arduino.


Usaremos el trozo de cable paralelo para conectar los sensores con la placa Arduino. El cable va soldado a otra placa en la que tambin hemos soldado 9 pines macho en un extremo que encajarn con las entradas analgicas, ms Vin y GND y un pin que queda

entre los dos bloques de pines (en total 9 pines). En el otro extremo de la placa hemos soldado 8 pines macho que encajarn con las entradas digitales (de 0 a 7) de la placa Arduino. De esta forma para conectar y desconectar la placa Arduino del robot slo hay que sacar la placa que tiene los pines soldados. En esta placa tambin colocamos dos tiras de tres pines machos (en la paste superior) donde conectaremos los cables de los servos. Por ltimo para conectar las lneas de control de los servos usaremos dos cables que se conectarn directamente a los pines 8 y 12 de la placa Arduino. Como vemos en la imagen hemos aadido un interruptor en el cable de alimentacin que va desde las pilas a la placa para poder parar el robot.

Cdigo siguelineas
Con este cdigo el robot es capaz de seguir un recorrido marcado por una lnea negra sobre un fondo blanco. La lnea debe ser lo suficientemente ancha para que los dos sensores quepan dentro de ella.

La lgica es muy simple:


Si los sensores ven negro (estn sobre la lnea) los dos motores giran hacia delante. Si un de ellos ve blanco parar el motor del otro lado con lo que el robot girar hacia la lnea negra. Si los dos sensores ven blanco el robot se para.

Al principio del sketch se han definido las constantes que hacen girar (o parar) a los motores. Utilizamos la librera Servo.h para el control de los servos. En este vdeo vemos como funciona el robot siguiendo la lnea: Otra posibilidad es que la lnea negra sea estrecha y los sensores IR estn ms separados, en este caso el robot andara hacia delante cuando los dos sensores vieran blanco y giraran (pararan un motor) cuando alguno de los sensores vea negro.

Cdigo Escoba
Con este cdigo queremos que el robot busque objetos cercanos (a menos de 50 cm) y cuando los encuentre los empuje fuera de un crculo limitado por una lnea negra.

Utilizamos las libreras Servo.h y Ultrasonic.h para manejar los servos y el sensor de ultrasonidos respectivamente. La lgica se basa en mantener al robot girando (slo se mueve un motor) hasta que el sensor de distancia detecte algo a menos de 50 cm. Cuando detecta un objeto avanza moviendo los dos motores. Cuando los sensores IR ven la lnea negra el robot retrocede y el objeto queda fuera de la lnea negra. Es necesario quitar el objeto ya que sino el robot estar intentando llegar al objeto y retrocediendo de forma continua. La superficie donde estn los objetos puede estar elevada y cuando el robot los saca se caen. En este vdeo vemos al robot sacando los objetos:

Esperamos que os haya gustado el primero de una serie de tutoriales en los que explotaremos las posibilidades de estos maravillosos robotos! Hasta pronto!!

Você também pode gostar