Robótica y Animatrónica – Controlador

En esta entrada se detalla el circuito controlador del brazo, y su Firmware, que se comunica con la Interfaz de usuario para lograr los movimientos programados.

Controlador

Arduino es una plataforma computacional física open-source basada en una tarjeta I/O y un entorno de desarrollo que implementa el lenguaje Wiring. El Arduino Uno R3 puede ser utilizado para desarrollar objetos interactivos o puede ser conectado a software de computadora (por ejemplo, Flash, Processing, MaxMSP). El IDE open-source puede ser descargado gratuitamente (actualmente para Mac OS X, Windows y Linux).

Características:

  • Microcontrolador ATmega328.
  • Voltaje de entrada 7-12V.
  • 14 pines digitales de I/O (6 salidas PWM).
  • 6 entradas análogas.
  • 32k de memoria Flash.
  • Reloj de 16MHz de velocidad.

Arduino UNO

Mediante un puerto serie se toman los datos enviados por el usuario, y se actualiza la posición de cada actuador. El trabajo se realiza repetidamente mediante un bucle infinito.

Diagrama de flujo

Diagrama de flujo

Código fuente

#include <Servo.h>
#include <Stepper.h>

const int ppv = 200;

int posbase = 0;
int poshombro = 0;
int poscodo = 0;
int pasos = 0;
int led_enc = 0;

Servo base;
Servo hombro;
Servo codo;
Stepper motor(ppv, 2, 3, 4, 5);

void setup(){
Serial.begin(9600);
base.attach(9);
hombro.attach(10);
codo.attach(11);
motor.setSpeed(30);
//Enciende LED
pinMode(12, OUTPUT);

}

void loop(){
if(Serial.available())
{
pasos = Serial.parseInt();
posbase = Serial.parseInt();
poshombro = Serial.parseInt();
poscodo = Serial.parseInt();
led_enc = Serial.parseInt();

if(Serial.read() == '\n'){

base.write(posbase);
hombro.write(poshombro);
codo.write(poscodo);
if(led_enc == 1){
digitalWrite(12, HIGH);
}
else {
digitalWrite(12, LOW);
}
motor.step(pasos);

}
delay(10);
}
}

Tagged with:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *