This commit is contained in:
Gauthier BASSEREAU 2024-03-12 15:24:37 +01:00
parent 13e19d80d2
commit ece8615373
1 changed files with 52 additions and 0 deletions

52
roomba/main.ino Normal file
View File

@ -0,0 +1,52 @@
#include "Arduino.h"
#include "Wire.h"
#include "MeMCore.h"
// Declare 1 variable of type MeUltrasonicSensor at PORT_3
MeUltrasonicSensor sensor(PORT_3);
int speed = 100;
MeDCMotor _leftMotor(9);
MeDCMotor _rightMotor(10);
bool goagain = false;
// Define the number of iterations required to turn for 30 degrees
// This value may need to be adjusted based on the specific motor and robot configuration
#define TURN_ITERATIONS 50
void setup() {
// Initialize the serial port at 9600 baud
Serial.begin(9600);
// put your setup code here, to run once:
_leftMotor.run(0);
_rightMotor.run(0);
}
void loop() {
float distance = sensor.distanceCm();
// Use parentheses to enclose the condition
if (distance <= 15 or goagain == true) {
goagain = false;
// Add a for loop to turn for 30 degrees
for (int i = 0; i < TURN_ITERATIONS; i++) {
_leftMotor.run(speed);
_rightMotor.run(speed);
delay(10);
}
// Stop the motors after turning
_leftMotor.run(0);
_rightMotor.run(0);
// Check the distance again
distance = sensor.distanceCm();
if (distance < 90) {
goagain = true;
}
} else {
_leftMotor.run(-speed);
_rightMotor.run(speed);
}
// Add a small delay to avoid continuous motor changes
delay(10);
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}