Ho progettato e implementato, per il mio ultimo anno di università, un robot autonomo con microcontrollore per schede Arduino. Il robot vaga intorno a un'area, evita gli ostacoli e cerca di individuare gli intrusi.
Devo fare qualche test per questo progetto. Qualcuno potrebbe aiutarmi dicendo quali procedure di test posso eseguire nel codice procedurale?
L'osservazione del comportamento del robot potrebbe essere uno di questi?
Servo servoLeft; // Define left servo
Servo servoRight; // Define right servo
const int trigPin = 5;
const int echoPin = 2;
int buzzerPin = 6; // choose the pin for the LED //buzzer
int inputPin = 9; // choose the input pin (for PIR sensor)
int val = 0;
Timer t;
boolean pirSense = false;
long xronos=0;
void setup() {
Serial.begin(9600);
servoLeft.attach(4); // Set left servo to digital pin 10
servoRight.attach(3); // Set right servo to digital pin 9
pinMode(buzzerPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
t.every(30000,monitoring);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
distance = microsecondsToCentimeters(duration);
delay(100);
Serial.println(distance);
if (distance >= 40){
moveForward();
}
else {
stopMove();
int x = random(0,2);
if(x == 0 ){
turnRight();
delay(500);
}
else{
turnLeft();
delay(500);
}
}
t.update();
}
void monitoring(){
xronos = now();
while( xronos+5 >now() ){
stopMove();
delay(1000);
pirSensor();
}
}
// Motion routines for forward, reverse, turns, and stop
void reverse() {
servoLeft.write(0);
servoRight.write(180);
}
void moveForward() {
servoLeft.write(180);
servoRight.write(0);
}
void turnRight() {
servoLeft.write(180);
servoRight.write(180);
}
void turnLeft() {
servoLeft.write(0);
servoRight.write(0);
}
void stopMove() {
servoLeft.write(90);
servoRight.write(90);
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}