added examples to determine direction of light and basic find a friend (wip: needs additional movement functions)

This commit is contained in:
hhaupt
2024-04-28 19:48:29 +02:00
parent 8cb33e3096
commit 1af07ecd91
7 changed files with 100 additions and 6 deletions

View File

@ -0,0 +1,8 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
"version": "0.2.0",
"configurations": [
]
}

View File

@ -0,0 +1,48 @@
#include "Dezibot.h"
Dezibot dezibot = Dezibot();
const int centeredThreshold = 100;
void setup() {
// put your setup code here, to run once:
dezibot.begin();
Serial.begin(115200);
}
void loop() {
int32_t leftValue = (int32_t)dezibot.lightDetection.getAverageValue(IR_LEFT, 20, 1);
int32_t rightValue = (int32_t)dezibot.lightDetection.getAverageValue(IR_RIGHT, 20, 1);
switch(dezibot.lightDetection.getBrightest(IR)){
case IR_FRONT:
//correct Stearing to be centered
if( abs(leftValue-rightValue)
< centeredThreshold){
dezibot.motion.move(1);
}else{
if (leftValue > rightValue){
dezibot.motion.rotateAnticlockwise(1);
} else{
dezibot.motion.rotateClockwise(1);
}
}
dezibot.multiColorLight.setTopLeds(BLUE);
break;
case IR_LEFT:
dezibot.motion.rotateAnticlockwise(1);
dezibot.multiColorLight.setTopLeds(RED);
break;
case IR_RIGHT:
dezibot.motion.rotateClockwise(1);
dezibot.multiColorLight.setTopLeds(GREEN);
break;
case IR_BACK:
if(leftValue > rightValue){
dezibot.motion.rotateAnticlockwise(1);
} else {
dezibot.motion.rotateClockwise(1);
}
dezibot.multiColorLight.setTopLeds(YELLOW);
break;
}
//delay(100);
}