OBJETIVO
Este proyecto está enfocado a controlar un robot colocado en el interior de una boca de manera que, al escalar el robot, haga rodar la bola. Para ello, utilizaremos comunicación bluetooth y una aplicación creada en ANDROID.
DESCRIPCIÓN
Para un correcto funcionamiento, el mecanizado tiene que ir complementada con la electrónica y la programación:
- MECÁNICA: La estructura del robot, estará construida con chapa fina y ligera de manea que no abulte y tenga un exceso de peso que, en caso de hacer falta, añadiríamos laminas de acero para una mejor tracción en las ruedas. Las ruedas, estarán realizadas por una impresora 3D controladas con unos motores paso a paso.
- ELECTRÓNICA: Este proyecto tendrá dos módulos de electrónica donde uno de ellos será el programador, en este caso ARDUINO UNO y una placa de circuito impreso realizada en clase donde llevará incorporada 3 drivers encargados de controlar los motores paso a paso. El driver tendrá total control sobre los motores, produciendo la tensión de salida que los motores necesita y regulando la intensidad dependiendo de su velocidad.
La placa de circuito impreso se realizo con el programa proteus donde incorpora tira de pines para llevar alimentacion, un driver por motor y los datos necesarios desde arduino para el control absoluto de los motores.
- PROGRAMACIONES: Este proyecto tiene dos programaciones donde una de ellas será con arduino y otra programación para la aplicación del teléfono móvil. A continuacion os enseñaré parte de la programacion de ambas programaciones:
#include <SoftwareSerial.h>
#define stepPinA 3
#define dirPinA 4
#define stepPinB 5
#define dirPinB 6
#define stepPinC 7
#define dirPinC 8
#define periodoMin 700
#define periodoMax 7000
#define aceleracion 100
boolean sentidoA = HIGH;
int speedMotorA = periodoMax;
boolean sentidoB = HIGH;
int speedMotorB = periodoMax;
boolean sentidoC = HIGH;
int speedMotorC = periodoMax;
SoftwareSerial mySerial(2, A0); // RX, TX
unsigned long timeAnt;
int dato;
char datoC;
void setup() {
Serial.begin(9600);
pinMode(stepPinA, OUTPUT);
pinMode(dirPinA, OUTPUT);
pinMode(stepPinB, OUTPUT);
pinMode(dirPinB, OUTPUT);
pinMode(stepPinC, OUTPUT);
pinMode(dirPinC, OUTPUT);
digitalWrite(dirPinA, sentidoA);
digitalWrite(dirPinB, sentidoB);
digitalWrite(dirPinC, sentidoC);
timeAnt = millis();
mySerial.begin(9600);
}
No hay comentarios:
Publicar un comentario