Mostrando entradas con la etiqueta robótica. Mostrar todas las entradas
Mostrando entradas con la etiqueta robótica. Mostrar todas las entradas

viernes, 8 de junio de 2012

Materiales necesarios para construir un robot siguelíneas



Los materiales para la construcción de nuestro robot sigue líneas los hemos adquirido a través de tiendas online:



Componente
Imagen
Dirección Web
Motor con reductora 50:1


Rueda de goma

Arduino Uno


Sensores ópticos QRD1114

Fundas/soporte motores


Rueda loca


Chip L293D (Puente en H)


Zumbador piezo


Diodos led 5mm de alta lumninosidad

(Se puede encontrar en tiendas de electrónica)
Resistencias de 220 Ω, 330 Ω y 10 kΩ

(Se puede encontrar en tiendas de electrónica)
Cable de alimentación jack


Cables de conexión


(Se puede encontrar en tiendas de electrónica)
Cable USB (A/B)


(Se puede encontrar en tiendas de electrónica)
Tubo Termoretráctil


(Se puede encontrar en tiendas de electrónica)

Control de los motores DC con Arduino


En los siguientes ejemplos y ensayos vamos a introducirnos en la programación de los motores para conseguir diferentes movimientos básicos del robot:
  • Marcha adelante.
  • Marcha atrás.
  • Giro izquierda.
  • Giro derecha.
  • Rotación a izquierda sobre su propio eje.
  • Rotación a derecha sobre su propio eje.

Una vez que hemos realizado la conexión del chip L293D o puente en H, procedemos a la programación en el IDE de Arduino:

  1. Calentando motores: Vamos a comprobar el funcionamiento del motor izquierdo, que hemos conectado a los pines 4 y 5 de Arduino Uno. Para su programación, vamos a utilizar por primera vez las funciones, que son como unas rutinas que por su frecuencia de uso, si las etiquetamos con un nombre, facilitan y estructuran la programación a la vez que lo simplifican. Su uso es fácil, observa el siguiente ejemplo:


void setup () {
pinMode(4,OUTPUT); //configuramos los pines 4 y 5 como salidas
pinMode(5,OUTPUT);
}

void adelante () {
digitalWrite(4,LOW); /*Esta sería la configuración ideal, ya digitalWrite(5,HIGH); que el pin 5 es del tipo PWM } lo que nos permitirá variar la velocidad del motor en su avance. Si con esta conexión el motor no gira hacia adelante, entonces habrá que invertir la conexión del motor al chip L293D*/

void paro () {
digitalWrite(4,LOW);
digitalWrite(5,LOW);
}

void loop () {
adelante(); //llamamos a la función creada
delay(2000); // esperamos 2 segundos con el motor en marcha
paro(); //paramos el motor utilizando la función paro
delay(1000);
}

  1. ¿Y el motor derecho? Vamos a comprobar el funcionamiento del motor derecho, que hemos conectado a los pines 6 y 7 de Arduino Uno. Volvemos a utilizar las funciones. Observa el siguiente ejemplo:

void setup () {
pinMode(6,OUTPUT); //configuramos los pines 6 y 7 como salidas
pinMode(7,OUTPUT);
}

void adelante () {
digitalWrite(6,HIGH); /*esta sería la configuración ideal, ya digitalWrite(7,LOW); que el pin 6 es del tipo PWM } lo que nos permitirá variar la velocidad del motor en su avance. Si con esta conexión el motor no gira hacia adelante, entonces habrá que invertir la conexión del motor al chip L293D */

void paro () {
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}

void loop () {
adelante(); //llamamos a la función creada
delay(2000); // esperamos 2 segundos con el motor en marcha
paro(); //paramos el motor utilizando la función paro
delay(1000);
}

  1. ¡Y ahora los dos! Una vez que hemos comprobados que todo funciona bien y como nosotros queremos, vamos a utilizar los dos motores a la vez y vamos a introducir la función atrás:

void setup () {
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}

void adelante () {
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}

void paro () {
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}

void atras () {
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}

void loop () {
adelante();
delay(2000);
paro();
delay(1000);
atras();
delay(2000);
paro();
delay(1000);
}

  1. Y ahora los giros: Como ya puedes entender, para conseguir que el robot gire a la izquierda debes parar el motor de ese lado y mantener en marcha el derecho. Al contrario, para girar a la derecha, debes parar el motor derecho y mantener en marcha el motor izquierdo. Como ejemplo vamos a programar los siguientes movimientos:
  • Adelante 2 s
  • Paro 0,5 s
  • Gira a izquierdas 0,25 s
  • Paro 0,5 s
  • Atrás 2 s
  • Paro 0,5 s
  • Gira a derechas 0,25 s
  • Paro 0,5 s

void setup () {
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}

void adelante () {
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}

void paro () {
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}

void atras () {
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}

void giraizquierda () {
digitalWrite(4,LOW); //paramos el motor izquierdo
digitalWrite(5,LOW);
digitalWrite(6,HIGH); //mantenemos el motor derecho en marcha
digitalWrite(7,LOW);
}

void giraderecha () {
digitalWrite(4,LOW);
digitalWrite(5,HIGH); //mantenemos el motor izquierdo en marcha
digitalWrite(6,LOW); //paramos el motor derecho
digitalWrite(7,LOW);
}
void loop () {
adelante();
delay(2000);
paro();
delay(500);
giraizquierda();
delay(250);
paro();
delay(500);
atras();
delay(2000);
paro();
delay(500);
giraderecha();
delay(250);
paro();
delay(500);
}


martes, 5 de junio de 2012

Robótica en Secundaria



El diseño, construcción y programación de robots es una de las tareas más completas y que dotan de más sentido a la materia de tecnología en secundaria. Además, proporciona a los alumnos un reto, los motiva y los hace competir entre ellos, mejorando los resultados.
En su didáctica se trabaja de forma colaborativa y mediante el método de proyectos.
Vivimos en un mundo dominado por  máquinas programables, por lo que iniciar a los alumnos en los conocimientos para entenderlas y controlarlas es básico para su formación general.
Como experiencia, durante las jornadas del proyecto profundiza del curso 2010/11, llevamos a cabo uno de los primeros retos cuando uno se inicia en el mundo de la robótica: construir un robot siguelíneas. Como plataforma utilizamos placas Arduino Uno y utilizamos su lenguaje de programación.
A continuación te dejo el documento con  las instrucciones detalladas, paso a paso, con diferentes ejemplos básicos para ir aprendiendo poco a poco a programar en el IDE de Arduino, tienes todos los circuitos, esquemas de montaje, lista de materiales, etc, hasta terminar con el programa final que da solución al reto planteado. Descarga el documento con las instrucciones de montaje y programación para que lo puedas hacer por ti mismo.
Los resultados los podéis ver en el siguiente vídeo. Espero que os sea de utilidad.





martes, 29 de mayo de 2012

Robot Oter_0

El robot Oter_0 es un proyecto experimental del profesor de Tecnología Adolfo Pedraza. Con este robot se ha investigado las posibilidades educativas de la construcción y programación de robots utilizando la plataforma Arduino. Los resultados han sido muy positivos y pienso que debería ser uno de los ejes vertebradores de la acción didáctica en tecnología para los niveles de 3º y 4º de Secundaria.