diff --git a/lineFollower/lineFollower.ino/lineFollower.ino.ino b/lineFollower/lineFollower.ino/lineFollower.ino.ino deleted file mode 100644 index a330786..0000000 --- a/lineFollower/lineFollower.ino/lineFollower.ino.ino +++ /dev/null @@ -1,55 +0,0 @@ - - -#include -#include -#include -#include "MeMCore.h" -// declare motors -MeDCMotor _leftMotor(9); -MeDCMotor _rightMotor(10); - -// declare gyro -MeGyro _gyro; -const int TRANSLATION_SPEED = 100; // This is the translation speed in mm/s - -void setup() { - Serial.begin(115200); - - // set no speed for left and right motors - _leftMotor.run((9)==M1?-(0):(0)); - _rightMotor.run((10)==M1?-(0):(0)); - - // initialize the gyro - _gyro.begin(); - -} - -void loop() { - // put your main code here, to run repeatedly: -// Read line follower sensor data -int sensorValue = mLineFollower.readSensor(); - -// Proportional control to adjust the rotation speed -int error = 500 - sensorValue; // 500 is the sensor reading when the robot is on the black line -int rotationSpeed = error * 0.5; // Proportional constant - -// Calculate the motor speeds based on the translation and rotation speeds -int leftMotorSpeed = TRANSLATION_SPEED - rotationSpeed; -int rightMotorSpeed = TRANSLATION_SPEED + rotationSpeed; - -// Move the robot -move(leftMotorSpeed, rightMotorSpeed); - -} -void move(int leftMotorSpeed, int rightMotorSpeed) -{ -_leftMotor.run((9)==M1?-(leftMotorSpeed):(leftMotorSpeed)); -_rightMotor.run((10)==M1?-(rightMotorSpeed):(rightMotorSpeed)); -} - -// Function to stop the robot -void stop() -{ -_leftMotor.stop(); -_rightMotor.stop(); -} \ No newline at end of file diff --git a/lineFollower/lineFollower.ino/lineFollower/lineFollower.ino b/lineFollower/lineFollower.ino/lineFollower/lineFollower.ino new file mode 100644 index 0000000..8a5e13e --- /dev/null +++ b/lineFollower/lineFollower.ino/lineFollower/lineFollower.ino @@ -0,0 +1,44 @@ + + +// Create a MeLineFollower object +MeLineFollower lineFollower(PORT_1); + +// Set the motor speed +int speed = 150; + +void setup() { + // Initialize the Makeblock library + MePort port = PORT_3; + MeMegaPiDCMotor leftMotor(port); + port = PORT_4; + MeMegaPiDCMotor rightMotor(port); + + // Set the motor direction + leftMotor.run(-speed); + rightMotor.run(-speed); + + // Wait for the robot to start moving + delay(1000); +} + +void loop() { + // Read the line follower sensors + int left = lineFollower.readSensors(0); + int middle = lineFollower.readSensors(1); + int right = lineFollower.readSensors(2); + + // Calculate the error + int error = (left * -1) + (middle * 0) + (right * 1); + + // Calculate the motor speed + int leftSpeed = speed + error; + int rightSpeed = speed - error; + + // Set the motor speed + MePort port = PORT_3; + MeMegaPiDCMotor leftMotor(port); + port = PORT_4; + MeMegaPiDCMotor rightMotor(port); + leftMotor.run(leftSpeed); + rightMotor.run(rightSpeed); +} \ No newline at end of file