2016/05/08

Arduino Robot v09 Tupperbot (I)

Nueva versión del robot Arduino, esta vez con cuatro ruedas tractoras y con la torreta estrenada en la versión nueve.


2016/05/02

Arduino Robot v08 Tupperbot (III)

Continuamos con el tutorial de construcción y programación de nuestro robot. En esta ocasión vamos a implementar la función de control de los dos servomotores con un mando a distancia de infrarrojos. El mando en cuestión es el que aparece en el listado de materiales pero podemos usar cualquier mando que tengamos por casa. Solo tenemos que sustituir el código que aparece en las estructuras switch-case con el código de los botones de nuestro mando.

//Arduino Robot v09_02 2016/05/02
//Diseño y programación: Antonio Vallecillos, @fotovallegrafia
//Movimiento con IR

#include <IRremote.h>
// incluimos la librería para IRremote
int RECV_PIN = 12;
// definimos una variable de tipo entero llamada RECV_PIN
// con un valor 12 por defecto
IRrecv irrecv(RECV_PIN);
// el TSOP 2238 está conectado al pin 12
decode_results results;
// el código de cada tecla se almacenará en la variable results

#include <Servo.h>
// incluimos la librería para controlar los servomotores

Servo servoDER;
// creamos un objeto servo llamado servoDER
Servo servoIZQ;
// creamos un objeto servo llamado servoIZQ

void setup() {
  Serial.begin(9600);
  // iniciamos el Monitor Serial a 9600 baudios
  irrecv.enableIRIn();
  // iniciamos el receptor de infrarrojos
  
  servoDER.attach(7);
  // el servomotor de la derecha está conectado al pin 7
  servoIZQ.attach(8);
  // el servomotor de la izquierda está conectado al pin 8
  funcionStop();
  // ejecutamos el código detro de funcionStop()
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    // imprime el código de la tecla pulsada en el
    // Monitor Serial
    switch (results.value) {
    // control de flujo mediante switch
      
      case 16615543:
      // botón Flecha Arriba
      funcionAv();
      // ejecutamos el código detro de funcionAv()
      break;

      case 16619623:
      // botón Flecha Abajo
      funcionRe();
      // ejecutamos el código detro de funcionRe()
      break;
      
      case 16607383:
      // botón Flecha Derecha
      funcionGd();
      // ejecutamos el código detro de funcionGd()
      break;
      
      case 16591063:
      // botón Flecha Izquierda
      funcionGi();
      // ejecutamos el código detro de funcionGi()
      break;
      
    }
    irrecv.resume();
    // recibe el siguiente valor
  }
  else {
    funcionStop();
    // ejecutamos el código detro de funcionStop()
  }
  delay(250);
}

// funciones de movimiento

void funcionAv() {
  Serial.println("ADELANTE");
  // imprime ADELANTE en el Monitor Serial
  servoDER.write(0);
  // el servomotor de la derecha gira en sentido horario
  // (hacia adelante) a máxima velocidad (90 es parado)
  servoIZQ.write(180);
  // el servomotor de la izquierda gira en sentido antihorario
  // (hacia adelante) a máxima velocidad (90 es parado)
}

void funcionRe() {
  Serial.println("ATRÁS");
  servoDER.write(180); 
  servoIZQ.write(0); 
}

void funcionGd() {
  Serial.println("DERECHA");
  servoDER.write(180); 
  servoIZQ.write(180); 
}

void funcionGi() {
  Serial.println("IZQUIERDA");
  servoDER.write(0); 
  servoIZQ.write(0); 
}

void funcionStop() {
  Serial.println("STOP");
  servoDER.write(90);
  // el servomotor de la derecha permanece parado 
  // (0 es la máxima velocidad en sentido horario)
  // (180 es la máxima velocidad en sentido antihorario)
  servoIZQ.write(90);
  // el servomotor de la izquierda permanece parado 
  // (0 es la máxima velocidad en sentido horario)
  // (180 es la máxima velocidad en sentido antihorario)
}

Arduino Robot v08 Tupperbot (II)

Seguimos con la serie de tutoriales dedicados a la versión ocho del robot Arduino. Esta entrada la vamos a dedicar a la lista de materiales y herramientas que necesitaremos para construir el robot.

LISTA DE MATERIALES:
HERRAMIENTAS:
  • TALADRO + BROCA DE 3MM
  • CUTTER
  • ALICATES DE PUNTA FINA
  • CORTACABLES
  • SOLDADOR + ESTAÑO
  • DESTORNILLADOR PLANO
  • DESTORNILLADOR DE CRUZ
  • LIMAS
  • CINTA AISLATE