Afgerond Robot project.
2 berichten
• Pagina 1 van 1
Afgerond Robot project.
Hoi, Ik ben de laatste paar dagen(4) bezig geweest met een robot. Hij heeft twee functies die je met een pot meter aan kunt geven. auto_mode en manual_mode. Bij auto_mode gaat hij zelf rondrijden en ontwijkt hij obstakels. In manual_mode kun je hem besturen met een afstandsbediening.
Hier is mijn code:
Hier is mijn code:
- Code: Alles selecteren
#define Green 24
#define Red 25
#define TRIGGER_PIN 22
#define ECHO_PIN 23
#define MAX_DISTANCE 400
#include <AFMotor.h>
#include <IRremote.h>
#include <NewPing.h>
int IRpin = 44;
int PotPin = A8;
int mode;
IRrecv irrecv(IRpin);
decode_results results;
AF_DCMotor motorR(1);
AF_DCMotor motorL(2);
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
irrecv.enableIRIn();
Serial.begin(9600);
motorR.setSpeed(100);
motorL.setSpeed(103);
pinMode(Green, OUTPUT);
pinMode(Red, OUTPUT);
pinMode(PotPin, INPUT);
}
void loop() {
checkMode();
}
void Forward() {
motorR.run(FORWARD);
motorL.run(FORWARD);
}
void Backward() {
motorR.run(BACKWARD);
motorL.run(BACKWARD);
delay(250);
}
void Right() {
motorL.run(BACKWARD);
motorR.run(FORWARD);
delay(375);
}
void Left() {
motorL.run(FORWARD);
motorR.run(BACKWARD);
delay(375);
}
void Brake() {
motorR.run(RELEASE);
motorL.run(RELEASE);
delay(100);
}
void auto_mode() {
int dist = sonar.ping_median(5);
dist = sonar.convert_cm(dist);
if (dist < 35 & dist != 0) {
Brake();
digitalWrite(Green, LOW);
digitalWrite(Red, HIGH);
Backward();
Brake();
Right();
}
else {
Forward();
}
}
void manual_mode() {
if (irrecv.decode(&results)) {
Serial.print("irCode: ");
Serial.print(results.value, HEX);
Serial.print(", bits: ");
Serial.println(results.bits);
irrecv.resume();
}
delay(10);
if (results.value == 0xC796DFC || results.value == 0xB10C7C8B) {
Forward();
} else if (results.value == 0xDB510F56) {
Backward();
}
else if(results.value == 0x4B12992B|| results.value == 0x7E16B93A){
motorL.run(BACKWARD);
motorR.run(FORWARD);
delay(375);
results.value == 0xC796DFC;
delay(10);
}
else if(results.value == 0x1BE8C80D || results.value == 0x8ECEA106 || results.value == 0xC2A82EEA
){
motorR.run(BACKWARD);
motorL.run(FORWARD);
delay(375);
results.value == 0xC796DFC;
delay(10);
}
else if(results.value == 0xEFF8316D|| results.value == 0xF4704794){
Brake();
}
else if(results.value == 0x37FF1DB2 || results.value == 0xE5EDF8D7){
Right();
}
}
void checkMode(){
mode = analogRead(PotPin);
if(mode <= 512){
manual_mode();
}
else if(mode >= 513){
auto_mode();
}
}
Advertisement
Re: Afgerond Robot project.
maak een filmpje ervan, altijd leuk om te kijken.
het is dus gelukt met je rechtsaf!
het is dus gelukt met je rechtsaf!
paul deelen
shooter@home.nl
shooter@home.nl
2 berichten
• Pagina 1 van 1
Terug naar Afgeronde projecten
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast