Introduction: Mini Robot (con Adafruit Gemma)

About: Músico, matemático, computación, ciencia... insolente y subversivo, pero siempre propositivo

En este instructable construyo un pequeño robot que sirve para experimentar algoritmos de movimientos. Muestro en particular los detalles de construcción, pero no profundizo en aspectos de movimiento ni de algoritmos de seguir la luz, eso se los dejo a ustedes. Mi recomendación es, una vez construido el mini robot, explorara múltiples forma de tratar de seguir la luz (Fototáxis)

Step 1: Materiales

Componentes:

  1. Adafruit o Arduino Gemma
  2. Motores de vibración LilyPad Vibe Board
  3. Batería LiPo
  4. Resitencia de 10K
  5. Fotoresitor (sensor de luz)
  6. Cables

Herramientas:

  1. Cautín
  2. Alicatoes
  3. cortador de cable
  4. Impresora 3D

Step 2: Impresión 3D

El archivo de impresión 3D lo pueden descargar o modificar en tinkercad.

Step 3: Conexiones Y Ensamblado

Conexiones

Las conexiones se muestran en la foto. Simplemente conectar los motores de vibración a los pines 0 y 1, y el negativo al GND del Gemma. Para el fotoresistor, hacer un divisor de voltaje como se ve en el esquema, y conectar al pin A1.

Ensamblado

Soldar cables que no sean demasiado largos, pero que den suficiente espacio para acomodar los motores. Como se ve en las fotos, el motor encaja perfectamente en la pieza impresa. La batería va entre el Gemma y la pieza impresa, yo la aseguré con un poco de tape para que no se moviera mucho. Tratar de colocar la batería lo más centrada posible, pues tiene impacto sobre el movimiento del robot.

Step 4: Código

Código sencillo

El código es bastante sencillo, y el básico lo pueden decargar de mi GitHub.

Lo importante es que hacer mover los motores tiene 3 combinaciones, mover el motor izquierdo, el derecho y ambos. El movimiento que resulta no es tan directo. Es decir, prender el motor izquiero, no necesariamente resulta en movimiento hacia la izquierda. Entonces debe explorara combinaciones de movimiento para lograr movimientos controlados, eso se los dejo a ustedes.

Nada más defino tres funciones:

void moveForward() {
  digitalWrite(0, HIGH);
  digitalWrite(1, HIGH);
}

Para mover ambos motores

void moveLeft() {
  digitalWrite(0, LOW);
  digitalWrite(1, HIGH);
}

Para mover solo el izquierdo.

void moveRight() {
  digitalWrite(0,HIGH);
  digitalWrite(1, LOW);
}

Para mover el derecho.

Pueden combinar funciones para hacer movimientos direccionados y así calibrar el movimiento.

La lectura del sensor es sencilla y se hace con analogRead(2), pues la lectura está conectada al pin 2.

Uploading!

Recuerden que para subir el código a el Adafruit Gemma deben cambiar algunas cosas en el Arduino IDE. En Adafruit hay buenas instrucciones, así que no as voy a repetir.

Step 5: Funcionando Y Retos

Conecten la batería y listo.

Funciona mucho mejor en superficies que no sean demasiado lisas, como una mesa de madera. En pisos cerámicos el robot casi no puede moverse pues la vibración genera poca fricción.

Retos:

  1. Buscar la manera de controlar mejor el movimiento con los motores
  2. construir muchos (unos 10). En principio después de un rato todos los robots debería estar en la zona con más luz
  3. Probar diferentes algoritmos para seguir la luz
Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017

Robotics Contest 2017

Participated in the
Robotics Contest 2017

Design Now: In Motion Contest

Participated in the
Design Now: In Motion Contest