PDF de programación - Practicas Arduino

Imágen de pdf Practicas Arduino

Practicas Arduinográfica de visualizaciones

Publicado el 4 de Junio del 2018
3.094 visualizaciones desde el 4 de Junio del 2018
3,5 MB
16 paginas
Creado hace 8a (06/03/2016)
PRÁCTICAS ROBÓTICA

PROGRAMA PARA CONFIGURAR EL PUERTO EN UBUNTU

Probando el puerto USB
LOS COMANDOS LOS EJECUTAMOS TODOS DESDE EL TERMINAL

A continuación probaremos que nuestro Arduino está conectado correctamente a nuestro GNU/Linux.

dmesg | grep ttyACM

Que tendría que devolver lo siguiente (pero no exacto!):

[25714.468493] cdc_acm 3-1:1.0: ttyACM0: USB ACM device

No todo está listo… ahora tendríamos que darle permisos suficientes al puerto ttyACM0 para que nuestro usuario pueda acceder a el ( a través del IDE ):
Esto hay que hacerlo con el arduino conectado al ordenador

sudo chmod 666 /dev/ttyACM0

sudo chmod 666 /dev/ttyACM0

Ahora ya lo tenemos todo listo para poder ejecutar el IDE…

NOTA: utilizar en lugar de motores de corriente continua normales, unos que tengan acoplada una reductora para que transmitan mayor fuerza o par.

PRÁCTICA 1. (HACIA DELANTE Y ATRÁS)
//# Avanza a 150 con los dos motores durante un segundo y medio , luego va hacia atrás durante otro segundo y medio.

//le decimos que M1 es de salida
// le decimos que M2 es de salida

//con void loop definimos las instrucciones de funcionamiento del programa

// con la instrucción void setup configuramos los pines como entrada o salida

// definimos el pin 6 con el nombre de E1
int E1 = 6;
int M1 = 7;
// definimos el pin 7 con el nombre de M1
int E2 = 5; // definimos el pin 5 con el nombre de E2
int M2 = 4; // definimos el pin 4 con el nombre de M2

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
{
digitalWrite(M1,HIGH); // de decimos que el primer paso es que el motor M1 gire hacia delante
digitalWrite(M2,HIGH); // los mismo que el motor M2 para delante
analogWrite(E1, 150); //con la orden analogWrite establecemos la velocidad del motor 150 rpm
analogWrite(E2, 150); // hacemos lo mismo con el motor 2 , E1 y E2 son sus variables para velocidad
delay(1500);
// le decimos que espere un segundo y medio
digitalWrite(M1,LOW); // ahora ordenamos que M1 gire hacia atrás
digitalWrite(M2,LOW); // ahora los mismo pero con M2
analogWrite(E1, 150); // definimos de nuevo la velocidad de cada motor con las variables E1 y E2
analogWrite(E2, 150);
delay(1500); // esperamos un segundo y medio

}
}

PRÁCTICA 2 (AVANZA ESPERA Y RETROCEDE ESPERA)
//# Avanza a 150 con los dos motores durante un segundo y medio , luego para durante 1 segundo, va hacia atrás durante otro segundo y medio , espera
un segundo antes de repetir el proceso.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 150);
analogWrite(E2, 150);
delay(1500);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);
digitalWrite(M1,LOW);
digitalWrite(M2,LOW);
analogWrite(E1, 150);
analogWrite(E2, 150);
delay(1500);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);

}
}

PRÁCTICA 3 (SERPIENTE)
//# Avanza a 150 con uno de los motores durante un segundo y medio , luego con el otro y asi sucesivamente describiendo el movimiento de una serpiente.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 150);
analogWrite(E2, 0);
delay(1500);

digitalWrite(M1,HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 0);
analogWrite(E2, 150);
delay(1500);
}
}

PRÁCTICA 4 (AVANZAR GIRO Y VOLVER)
//# Avanza a 150 con los dos motores un segundo y medio, se para un segundo, se gira 180 grados (motor derecho a 100 y izquierdo -100 durante dos
segundos) y vuelve sobre sus pasos.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 150);
analogWrite(E2, 150);
delay(1500);
digitalWrite(M1,HIGH);
digitalWrite(M2,LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);

digitalWrite(M1,HIGH);
digitalWrite(M2, LOW);
analogWrite(E1, 100);
analogWrite(E2, 100);
delay(2000);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);
}
}

PRÁCTICA 5 (GIRO EN CÍRCULOS)
//# Gira en círculos para lo cual el motor derecho a 150 revoluciones y el izquierdo a 80 revoluciones, durante 5 segundos, espera uno y se hace girar con
los mismos datos pero en sentido contrario.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 150);
analogWrite(E2, 80);
delay(5000);
digitalWrite(M1,HIGH);
digitalWrite(M2,LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);

digitalWrite(M1,HIGH);
digitalWrite(M2, HIGH);
analogWrite(E1, 80);
analogWrite(E2, 150);
delay(5000);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);
}
}

PRÁCTICA 6 (RECORRER UN CUADRADO)
//# Avanza los dos motores a 150 un segundo y medio, para un segundo, gira a 100 revoluciones 1,2 segundos para hacer mas o menos 90 grados, para un
segundo y repite el proceso.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 150);
analogWrite(E2, 150);
delay(1500);
digitalWrite(M1,HIGH);
digitalWrite(M2,LOW);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);

digitalWrite(M1,HIGH);
digitalWrite(M2, LOW);
analogWrite(E1, 100);
analogWrite(E2, 100);
delay(1200);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);
}
}

PRÁCTICA 7 (AVANZANDO DE MENOS A MÁS)
//# Avanza con intervalo de 0 a 150 luego se para 200 milisegundos y se vuelve a repetir el proceso.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
int value;
for(value = 0 ; value <= 150; value+=5) // aumentamos el valor value de 5 en 5 de 0 hasta 150 revol.
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, value);
analogWrite(E2, value);
delay(200);
}
}

// definimos el valor de las revoluciones de cada motor con el nombre value

//PRÁCTICA 8: colocamos un sensor de distancias por ultrasonido y le decimos que cuando el //robot detecte algún objeto a uno 50 cm de distancia rote y
siga avanzando.

int E1 = 6;
int M1 = 7;
int E2 = 5;
int M2 = 4;

long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(13, OUTPUT); /*activación del pin 13 como salida: para el pulso ultrasónico*/
pinMode(12, INPUT); /*activación del pin 12 como entrada: tiempo del rebote del ultrasonido*/
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop(){
digitalWrite(13,LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(13, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);
tiempo=pulseIn(12, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío
del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/
/*Monitorización en centímetros por el monitor serial*/
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");

if (distancia>50) //50 cm es la distancia de emergencia
{
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 200); //a uno de los motores más velocidad que al otro porque el robot se desviaba hacia un lado.
analogWrite(E2, 175);
delay(1000);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(1000);

}
else if (distancia<50)
{
digitalWrite(M1,HIGH);
digitalWrite(M2,LOW);
analogWrite(E1, 150);
analogWrite(E2, 150);
delay(1200);
digitalWrite(M1,HIGH);
digitalWrite(M2,HIGH);
analogWrite(E1, 0);
analogWrite(E2, 0);
delay(5000);
}
}

PRÁCTICA 9: mediante un sensor bluetooth controlamos los movimientos del robot, asignamos números a los movimientos que queremos que haga el
robot., con el programa Bluetooth Controller asociamos a varios botones los números determinados para controlar el desplazamiento del robot mediante
dicha app.

GIADO CON VARIOS BOTONES 1 IZQ, 3 DER, 2 AVANCE, 9 RETROCESO Y O PARO.(a uno de los motores se le hace girar menos revoluciones porque el
robot se desviaba hacia un lado y no iba del todo en línea recta, supongo que uno de los motores
  • Links de descarga
http://lwp-l.com/pdf11568

Comentarios de: Practicas Arduino (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad