Compare commits
4 Commits
153f8a730b
...
1d62e41daa
| Author | SHA1 | Date |
|---|---|---|
|
|
1d62e41daa | |
|
|
4e0634f4ec | |
|
|
1adaf8bc49 | |
|
|
23571b040c |
|
|
@ -0,0 +1,79 @@
|
|||
#include "MeMCore.h"
|
||||
#include <Wire.h>
|
||||
|
||||
MeGyro gyro;
|
||||
MeDCMotor leftMotor(9);
|
||||
MeDCMotor rightMotor(10);
|
||||
|
||||
uint8_t motorSpeed = 100;
|
||||
|
||||
void setup() {
|
||||
|
||||
Serial.begin(115200);
|
||||
gyro.begin();
|
||||
|
||||
leftMotor.run(0);
|
||||
rightMotor.run(0);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
//(0,0)
|
||||
gyro.update();
|
||||
goForward();
|
||||
delay(2000);
|
||||
stop();
|
||||
|
||||
//(10,0)
|
||||
|
||||
float error = 100;
|
||||
float d_target = 90;
|
||||
float p = 0.5;
|
||||
float v_e;
|
||||
float v_r;
|
||||
|
||||
while (error > 10){
|
||||
gyro.update();
|
||||
error = d_target - gyro.getAngleZ();
|
||||
v_e = p*error;
|
||||
v_r = -v_e;
|
||||
goLeft(v_r);
|
||||
}
|
||||
stop();
|
||||
|
||||
//(10,10)
|
||||
//(0,10)
|
||||
|
||||
}
|
||||
|
||||
void goForward(){
|
||||
|
||||
leftMotor.run(-motorSpeed);
|
||||
rightMotor.run(motorSpeed);
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
|
||||
void goBackward(){
|
||||
|
||||
leftMotor.run(motorSpeed);
|
||||
rightMotor.run(-motorSpeed);
|
||||
delay(100);
|
||||
|
||||
}
|
||||
|
||||
void goLeft(float rotateSpeed){
|
||||
|
||||
leftMotor.run(rotateSpeed);
|
||||
rightMotor.run(rotateSpeed);
|
||||
delay(100);
|
||||
|
||||
}
|
||||
|
||||
void stop(){
|
||||
|
||||
leftMotor.stop();
|
||||
rightMotor.stop();
|
||||
delay(100);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#include "MeMCore.h"
|
||||
#include <Wire.h>
|
||||
|
||||
MeGyro gyro;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
gyro.begin();
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
gyro.update();
|
||||
Serial.read();
|
||||
Serial.print("X:");
|
||||
Serial.print(gyro.getAngleX());
|
||||
Serial.print(",");
|
||||
Serial.print("Y:");
|
||||
Serial.print(gyro.getAngleY());
|
||||
Serial.print(",");
|
||||
Serial.print("Z:");
|
||||
Serial.println(gyro.getAngleZ());
|
||||
delay(10);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
#include "MeMCore.h"
|
||||
|
||||
MeDCMotor leftMotor(9);
|
||||
MeDCMotor rightMotor(10);
|
||||
MeLineFollower lineFinder(PORT_2); /* Line Finder module can only be connected to PORT_3, PORT_4, PORT_5, PORT_6 of base shield. */
|
||||
|
||||
uint8_t motorSpeed = 50;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
int sensorState = lineFinder.readSensors();
|
||||
goForward();
|
||||
switch(sensorState)
|
||||
{
|
||||
case S1_IN_S2_IN:
|
||||
Serial.println("Sensor 1 and 2 are inside of black line");
|
||||
goForward();
|
||||
break;
|
||||
case S1_IN_S2_OUT:
|
||||
Serial.println("Sensor 2 is outside of black line");
|
||||
goLeft();
|
||||
goForward();
|
||||
break;
|
||||
case S1_OUT_S2_IN:
|
||||
Serial.println("Sensor 1 is outside of black line");
|
||||
goRight();
|
||||
goForward();
|
||||
break;
|
||||
case S1_OUT_S2_OUT:
|
||||
Serial.println("Sensor 1 and 2 are outside of black line");
|
||||
stop();
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
delay(200);
|
||||
}
|
||||
|
||||
void goForward(){
|
||||
|
||||
leftMotor.run(-motorSpeed);
|
||||
rightMotor.run(motorSpeed);
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
|
||||
void goBackward(){
|
||||
|
||||
leftMotor.run(motorSpeed);
|
||||
rightMotor.run(-motorSpeed);
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
|
||||
void goLeft(){
|
||||
|
||||
leftMotor.run(motorSpeed);
|
||||
rightMotor.run(motorSpeed);
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
|
||||
void goRight(){
|
||||
|
||||
leftMotor.run(-motorSpeed);
|
||||
rightMotor.run(-motorSpeed);
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
|
||||
void stop(){
|
||||
|
||||
leftMotor.stop();
|
||||
rightMotor.stop();
|
||||
delay(1000);
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue