Merge branch 'dev'

This commit is contained in:
Benjamin VALLET 2022-04-01 10:07:36 +02:00
commit c7eec98e2b
1 changed files with 90 additions and 0 deletions

90
roomba/roomba.ino Normal file
View File

@ -0,0 +1,90 @@
#include <MeMCore.h>
MeDCMotor motorL(M1); //positive go backward
MeDCMotor motorR(M2); //positive go forward
MeUltrasonicSensor ultraSensor(PORT_3);
uint8_t motorSpeed = 255;
bool turning = false;
unsigned long turnTimer = 0;
int ranMin = 200;//in ms
int ranMax = 2000;
unsigned long turnTimerDuration = random(ranMin, ranMax);
bool directionLeft = true;
int MinDistance = 20;//in cm
/*
* if turning, keep turning until turn timer is over and kill turning
* if not turning, check sensor and carry on moving forward
* if sensor within threshold, set turn timer random, direction random, set turning
*
*
*/
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (turning){
//timercheck
if(millis()- turnTimer >= turnTimerDuration){
//reset timer
turning = false;
motorL.run(-motorSpeed);
motorR.run(motorSpeed);
}else{
//keep on turning
}
}else{
//not turning
if(ultraSensor.distanceCm() < MinDistance)//sensorcheck
{
turnTimerDuration = random(ranMin, ranMax);
directionLeft = random(2);
if(directionLeft){
motorL.run(motorSpeed);
motorR.run(motorSpeed);
}else{
motorL.run(-motorSpeed);
motorR.run(-motorSpeed);
}
turning = true;
turnTimer = millis();
}
}
/*
Serial.print("Distance : ");
Serial.print(ultraSensor.distanceCm() );
Serial.println(" cm");
//delay(100);//docs say at least that timer
*/
/*motorL.run(motorSpeed); // value: between -255 and 255.
/motorR.run(motorSpeed); // value: between -255 and 255.
delay(2000);
motorL.stop();
motorR.stop();
delay(100);
motorL.run(-motorSpeed);
motorR.run(-motorSpeed);
delay(2000);
motorL.stop();
motorR.stop();
delay(2000);
*/
}