Example to move the robot.

Dependencies:   m3pi mbed

Fork of 3pi_Line_Follow by Craig Evans

Committer:
eencae
Date:
Tue Mar 20 16:28:07 2018 +0000
Revision:
0:008c53db1931
Child:
1:d8c15d5b8eac
Simple line follow code for the m3pi robot.; ; Written in an Arudino-like way - there is a repeat() function that is the only thing that needs to be modified.; ; Useful for coding beginners.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:008c53db1931 1 #include "main.h"
eencae 0:008c53db1931 2
eencae 0:008c53db1931 3 void repeat()
eencae 0:008c53db1931 4 {
eencae 0:008c53db1931 5 float speed = 0.5;
eencae 0:008c53db1931 6
eencae 0:008c53db1931 7
eencae 0:008c53db1931 8 robot.scan();
eencae 0:008c53db1931 9
eencae 0:008c53db1931 10 // in range -1 to 1, no error when line is at 0.0
eencae 0:008c53db1931 11 // number is negative when the line is to the left
eencae 0:008c53db1931 12 // number is positive when the line is to the right
eencae 0:008c53db1931 13 float position = robot.read_line();
eencae 0:008c53db1931 14
eencae 0:008c53db1931 15 robot.display_data();
eencae 0:008c53db1931 16
eencae 0:008c53db1931 17
eencae 0:008c53db1931 18
eencae 0:008c53db1931 19 float step = 0.4*position;
eencae 0:008c53db1931 20 // + when line to right
eencae 0:008c53db1931 21 // - for line to left
eencae 0:008c53db1931 22
eencae 0:008c53db1931 23
eencae 0:008c53db1931 24 if (position < 0.0) { // line to the left...need to turn left
eencae 0:008c53db1931 25 robot.left_motor(speed+step);
eencae 0:008c53db1931 26 robot.right_motor(speed);
eencae 0:008c53db1931 27 } else { // line to the right...need to turn right
eencae 0:008c53db1931 28 robot.left_motor(speed);
eencae 0:008c53db1931 29 robot.right_motor(speed-step);
eencae 0:008c53db1931 30 }
eencae 0:008c53db1931 31
eencae 0:008c53db1931 32 }