Revision: 68317
Updated Code
at January 11, 2015 09:02 by agarcia
Updated Code
/* Segon repte clautic league
Fer ziga zaga a les piramides
arribar a la barca i tornar a la base
utilitzant sensor d'ultrasons
Aquesta versio amb la llibreria Ultrasonic
*/
/* Aquesta d'aquà sota és la llibreria
dels sensor d'ultrasons comentada en el
vÃdeo. Per més informació: http://goo.gl/T8UESz
*/
#include <Ultrasonic.h>
// Definició dels pins dels motors
int mesq_av = 12; // Motor esquerra per endavant al pin 12
int mesq_re = 11; // Motor esquerra per enradera al pin 11
int mesq_vel = 10; // Motor esquerra control velocitat al pin PWM 10
int mdret_av = 7; // Motor dret per endavant al pin 7
int mdret_re = 6; // Motor dret per enradera al pin 6
int mdret_vel = 5; // Motor dret control velocitat al pin PWM 5
// Definició constants sensor distancia
#define Echo 8
#define Trip 9
#define Led 13
Ultrasonic ultrasonic(Trip,Echo); // (Trig PIN,Echo PIN)
long distancia,temps;
int final=0; // Per fer el loop una sola vegada
int compara;
//int contador;
void setup(){
// Activem pins dels motors com sortida
// Motor esquerra
pinMode(mesq_vel, OUTPUT);
pinMode(mesq_av, OUTPUT);
pinMode(mesq_re, OUTPUT);
// Motor dret
pinMode(mdret_vel, OUTPUT);
pinMode(mdret_av, OUTPUT);
pinMode(mdret_re, OUTPUT);
// pinMode(Echo, INPUT);
// pinMode(Trig, OUTPUT);
pinMode(Led, OUTPUT);
Serial.begin(9600);
}
void loop(){
if (final==0){
//de la base a tutankamon
digitalWrite(Led, HIGH);
Motors(HIGH, LOW, 235, HIGH, LOW, 255);
delay(800); //anterior:800
// Motors(HIGH, LOW, 0, HIGH, LOW, 0);
//90º tutankamon piramide 1
Motors(HIGH, LOW, 255, HIGH, LOW, 0);
delay(130); //anterior:155
Motors(HIGH, LOW, 0, HIGH, LOW, 0);
// Posem a la variable compara la distancia que dona el sensor des de la llibreria
compara=ultrasonic.Ranging(CM);
//mentres estigui a + de "x" cm anar endevant
while (compara > 22 || compara ==0 ){
digitalWrite(Led, LOW);
Motors(HIGH, LOW, 95, HIGH, LOW, 100);
Serial.println(compara);
compara=ultrasonic.Ranging(CM);
}
digitalWrite(Led, HIGH);
//esquivar 1a piramide primer girant a la dreta
Motors(HIGH, LOW, 255, HIGH, LOW, 0);
delay(140); //anterior: 140
//recte
Motors(HIGH, LOW, 100, HIGH, LOW, 145);
delay(130);//abans 150
Motors(HIGH, LOW, 0, HIGH, LOW, 0);
delay(5);
//i despres girant a l'esquerra
Motors(HIGH, LOW, 0, HIGH, LOW, 250);//abans 245
delay(420); //anterior: 400
Motors(LOW, LOW, 0, LOW, LOW, 0);
// Tornem a agafar el valor de distancia i establim distancia mÃÂnima
compara=ultrasonic.Ranging(CM);
while (compara > 22 || compara ==0 ){
digitalWrite(Led, LOW);
Motors(HIGH, LOW, 85, HIGH, LOW, 110);
compara=ultrasonic.Ranging(CM);
}
digitalWrite(Led, HIGH);
//esquivar 1a piramide 2 girant esquerra
Motors(HIGH, LOW, 0, HIGH, LOW, 255);
delay(90);//Abans 100
//va recte
Motors(HIGH, LOW, 200, HIGH, LOW, 235);
delay(140);//abans 160
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(100);
// i despres a la dreta
Motors(HIGH, LOW, 245, HIGH, LOW, 95);
delay(450);//abans 400
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(150);
// avança una mica abans de tornar a girar a l'esquerra
Motors(HIGH, LOW, 200, HIGH, LOW, 235);//abans 140
delay(550);//abans 400
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(50);
// gira a l'esquerra per anar a la galera
Motors(HIGH, LOW, 0, HIGH, LOW, 250);
delay(300);
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(100);
// avança cap a la barca
Motors(HIGH, LOW, 255, HIGH, LOW, 255);
delay(750);
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(100);
// torna a la base d'esquena
Motors(LOW, HIGH, 245, LOW, HIGH, 250);
delay(2000);
// i es para el motor
Motors(HIGH, LOW, 0, HIGH, LOW, 0);
// es suma final, per no tornar a executar el bucle
final++;
}
}
//FUNCIONS
void Motors (char me_avan, char me_retr, int me_vel, char md_avan, char md_retr, int md_vel)
{
// Motor esquerra endavant o enrradera
digitalWrite (mesq_av, me_avan);
digitalWrite (mesq_re, me_retr);
// Motor dret endavant o enrradera
digitalWrite (mdret_av, md_avan);
digitalWrite (mdret_re, md_retr);
// Velocitat als motors
analogWrite (mesq_vel, me_vel);
analogWrite (mdret_vel, md_vel);
}
Revision: 68316
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 30, 2014 23:00 by agarcia
Initial Code
/* Segon repte clautic league
Fer ziga zaga a les piramides
arribar a la barca i tornar a la base
utilitzant sensor d'ultrasons
Aquesta versio amb la llibreria Ultrasonic
*/
#include <Ultrasonic.h>
// Definició dels pins dels motors
int mesq_av = 12; // Motor esquerra per endavant al pin 12
int mesq_re = 11; // Motor esquerra per enradera al pin 11
int mesq_vel = 10; // Motor esquerra control velocitat al pin PWM 10
int mdret_av = 7; // Motor dret per endavant al pin 7
int mdret_re = 6; // Motor dret per enradera al pin 6
int mdret_vel = 5; // Motor dret control velocitat al pin PWM 5
// Definició constants sensor distancia
#define Echo 8
#define Trip 9
#define Led 13
Ultrasonic ultrasonic(Trip,Echo); // (Trig PIN,Echo PIN)
long distancia,temps;
int final=0; // Per fer el loop una sola vegada
int compara;
//int contador;
void setup(){
// Activem pins dels motors com sortida
// Motor esquerra
pinMode(mesq_vel, OUTPUT);
pinMode(mesq_av, OUTPUT);
pinMode(mesq_re, OUTPUT);
// Motor dret
pinMode(mdret_vel, OUTPUT);
pinMode(mdret_av, OUTPUT);
pinMode(mdret_re, OUTPUT);
// pinMode(Echo, INPUT);
// pinMode(Trig, OUTPUT);
pinMode(Led, OUTPUT);
Serial.begin(9600);
}
void loop(){
if (final==0){
//de la base a tutankamon
digitalWrite(Led, HIGH);
Motors(HIGH, LOW, 235, HIGH, LOW, 255);
delay(800); //anterior:800
// Motors(HIGH, LOW, 0, HIGH, LOW, 0);
//90º tutankamon piramide 1
Motors(HIGH, LOW, 255, HIGH, LOW, 0);
delay(130); //anterior:155
Motors(HIGH, LOW, 0, HIGH, LOW, 0);
// Posem a la variable compara la distancia que dona el sensor des de la llibreria
compara=ultrasonic.Ranging(CM);
//mentres estigui a + de "x" cm anar endevant
while (compara > 22 || compara ==0 ){
digitalWrite(Led, LOW);
Motors(HIGH, LOW, 95, HIGH, LOW, 100);
Serial.println(compara);
compara=ultrasonic.Ranging(CM);
}
digitalWrite(Led, HIGH);
//esquivar 1a piramide primer girant a la dreta
Motors(HIGH, LOW, 255, HIGH, LOW, 0);
delay(140); //anterior: 140
//recte
Motors(HIGH, LOW, 100, HIGH, LOW, 145);
delay(130);//abans 150
Motors(HIGH, LOW, 0, HIGH, LOW, 0);
delay(5);
//i despres girant a l'esquerra
Motors(HIGH, LOW, 0, HIGH, LOW, 250);//abans 245
delay(420); //anterior: 400
Motors(LOW, LOW, 0, LOW, LOW, 0);
// Tornem a agafar el valor de distancia i establim distancia mÃnima
compara=ultrasonic.Ranging(CM);
while (compara > 22 || compara ==0 ){
digitalWrite(Led, LOW);
Motors(HIGH, LOW, 85, HIGH, LOW, 110);
compara=ultrasonic.Ranging(CM);
}
digitalWrite(Led, HIGH);
//esquivar 1a piramide 2 girant esquerra
Motors(HIGH, LOW, 0, HIGH, LOW, 255);
delay(90);//Abans 100
//va recte
Motors(HIGH, LOW, 200, HIGH, LOW, 235);
delay(140);//abans 160
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(100);
// i despres a la dreta
Motors(HIGH, LOW, 245, HIGH, LOW, 95);
delay(450);//abans 400
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(150);
// avança una mica abans de tornar a girar a l'esquerra
Motors(HIGH, LOW, 200, HIGH, LOW, 235);//abans 140
delay(550);//abans 400
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(50);
// gira a l'esquerra per anar a la galera
Motors(HIGH, LOW, 0, HIGH, LOW, 250);
delay(300);
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(100);
// avança cap a la barca
Motors(HIGH, LOW, 255, HIGH, LOW, 255);
delay(750);
Motors(LOW, LOW, 0, LOW, LOW, 0);
delay(100);
// torna a la base d'esquena
Motors(LOW, HIGH, 245, LOW, HIGH, 250);
delay(2000);
// i es para el motor
Motors(HIGH, LOW, 0, HIGH, LOW, 0);
// es suma final, per no tornar a executar el bucle
final++;
}
}
//FUNCIONS
void Motors (char me_avan, char me_retr, int me_vel, char md_avan, char md_retr, int md_vel)
{
// Motor esquerra endavant o enrradera
digitalWrite (mesq_av, me_avan);
digitalWrite (mesq_re, me_retr);
// Motor dret endavant o enrradera
digitalWrite (mdret_av, md_avan);
digitalWrite (mdret_re, md_retr);
// Velocitat als motors
analogWrite (mesq_vel, me_vel);
analogWrite (mdret_vel, md_vel);
}
Initial URL
Initial Description
Codi repte 2 ClauTic league
Initial Title
Task 2, ClauTIC League, by MadTeam
Initial Tags
Initial Language
Processing