Escolar Documentos
Profissional Documentos
Cultura Documentos
*/
* remoto (bluetooth)
*/
/*
*/
/*
*/
/*
*/
/*
1 -> Avanzar
2 -> Retroceder
*/
int estado = 0;
int tolerancia_inf = 8;
unsigned long tiempo_actual; //Variable para medir tiempo de ejecuci�n del programa
( millis() )
void setup() {
miServo_izq.attach(servoizqPin);
miServo_der.attach(servoderPin);
pinMode(buzzPin, OUTPUT);
pinMode(led_pin, OUTPUT);
pinMode(button_pin, INPUT);
pinMode(servoizqPin, OUTPUT);
pinMode(servoderPin, OUTPUT);
/* Debe contarse con un celular con una aplicaci�n compatible, como Bluetooth SPP
disponible
*/
void loop() {
comando = BT1.read();
BT1.flush();
//
apagar = !apagar;
estado = 0;
comando = 0;
modoauto = !modoauto;
estado = 0;
comando = 0;
tone(buzzPin, 2000,20);
movimiento(estado);
Dist_Sensor_Buzzer();
/* ***Servos*** */
/* Modo auto */
if (modoauto == true) {
// if ....
// state = 1;
// Estos par�metros se pueden variar para hacer que el robot haga acciones a
determinadas distancias
// Comentaremos lo que har� el Robot en cada una (lo que ser�a m�s l�gico).
// Con este simple algoritmo estamos haciendo que el robot busque siempre pasar
obst�culos y buscar la zona que le permita avanzar mejor y m�s c�modo
/* Condiciones de viraje de Servos */
// avanzar
estado = 1;
else {
//retrocede
estado = 2;
else {
//dobla izq
estado = 3;
movimiento(estado);
delay(random(500,1000));
else {
//dobla der
estado = 4;
movimiento(estado);
delay(random(300,1000));
delay(200);
if (comando == 'w') {
//avanzar
estado = 1;
//Virar izquierda
estado = 3;
//Virar derecha
estado = 4;
//retrocede
estado = 2;
//Reposo
estado = 0;
/* Funciones utilizadas */
if (estado == 0){
ang_izq = 90;
ang_der = 90;
}
ang_izq = 60;
ang_der = 120;
ang_izq = 110;
ang_der = 70;
ang_izq = 100;
ang_der = 100;
ang_izq = 80;
ang_der = 80;
miServo_izq.write(ang_izq);
miServo_der.write(ang_der);
/*
*/
void Dist_Sensor_Buzzer() {
/* Buzzer */
if (intervalo <= 50) { //Condici�n para evitar n�meros negativos y el siseo del
buzzer en peque�as distancias
intervalo = 50;
if (intervalo > 2500) { //Condici�n para evitar largos per�odos de tiempo entre
sonidos
intervalo = 2500;
tiempo_previo = tiempo_actual;
delay(20);
/*
Es necesario esperar con un delay debido a que la funcion servo interfiere con el
funcionamiento
de la funcion tone. Esto se debe a que ambas usan el mismo timer, que es un recurso
del microprocesador.
*/