Actividad Arduino


Robot “pompero”

Actividad 3.2

Creación de un robot que hace pompas de jabón.

Esta actividad la he realizado en horario extraescolar. El propósito era acercar las nociones
básicas de programación y robótica.

El proyecto final ha consistido en un robot con Arduino. El robot es un brazo al que se le
acopla una arandela para hacer las pompas junto con un ventilador que se activa cuando
el brazo, previamente mojado en jabón, se acerca a dicho ventilador.

El código de programación es el siguiente:

#include < Servo.h > ;

Servo servoH;
Servo servoV;
const int ENA = 3; //para indicar la potencia del motor
const int IN1 = 7; //IN1 e IN2 alimentan el motor indicando su dirección.
const int IN2 = 8;
const int MAXH = 130;
const int MINH = 50;
const int MAXV = 130;
const int MINV = 90;
const int POT = 150;

void setup() {

  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  servoH.attach(9);
  servoV.attach(10);
  servoH.write(MAXH);
  servoV.write(MINV);
  Serial.begin(9600);
}

void loop() {

  Serial.println("Comienza el programa. Servos en sus sitio.");

  Serial.println("Bajamos el servo vertical.");
  servoDesdeHasta(servoV, MAXV, MINV); //Bajamos el servo vertical

  Serial.println("Subimos el servo vertical.");
  servoDesdeHasta(servoV, MINV, MAXV); //Subimos el servo vertical

  Serial.println("Movemos el servo frente al ventilador.");
  servoDesdeHasta(servoH, MAXH, MINH); //movemos el servo frente al ventilador

  Serial.println("Encendemos el ventilador.");
  digitalWrite(IN2, HIGH);
  digitalWrite(IN1, LOW);
  analogWrite(ENA, POT);

  delay(2000); //Esperamos 2 segundos

  Serial.println("Apagamos el ventilador.");
  digitalWrite(IN2, LOW);

  Serial.println("Movemos el servo a la posición inicial.");
  servoDesdeHasta(servoH, MINH, MAXH); //movemos el servo a la posición inicial
  delay(1000);
}

//Función para mover un servo desde una posición a otra
int servoDesdeHasta(Servo miservo, int inicio, int fin) {

  if (inicio < fin) { //Si vamos de una posición inferior a una superior
    for (int posicion = inicio; posicion <= fin; posicion++) {
      miservo.write(posicion);
      //Serial.println(posicion);
      delay(25);
    }
  } else { //Si vamos de una posición superior a una inferior
    for (int posicion = inicio; posicion >= fin; posicion--) {
      miservo.write(posicion);
      //Serial.println(posicion);
      delay(25);
    }
  }
}

Para construir el robot se usaron piezas recicladas y algunos componentes electrónicos
adicionales:
• 1 arduino nano
• 1 caja de frutas
• Madera de balsa de otra caja de frutas
• 2 servomotores
• 1 motor
• 1 controlador para el motor
• 1 placa de prototipo
• cables
• 1 tarjeta para hacer la hélice
• 1 pistola de silicona

En este enlace se puede ver un vídeo con la máquina funcionando:


Comentarios