car using PID from centre line

Dependencies:   FRDM-TFC mbed CBuffer XBEE mbed_angular_speed motor2 MMA8451Q

Fork of KL25Z_Camera_Test by GDP 4

Revision:
34:3de7a19ccea3
Parent:
32:6829684f8c4d
Child:
35:e23354abf352
diff -r 6829684f8c4d -r 3de7a19ccea3 main.cpp
--- a/main.cpp	Wed Jan 11 19:59:03 2017 +0000
+++ b/main.cpp	Thu Jan 12 12:51:24 2017 +0000
@@ -97,7 +97,7 @@
 
 void initVariables() {
     // Initialise three PID controllers for the servo and each wheel.
-    initPID(&servo_pid, 2.2f, 0.6f, 0.f);
+    initPID(&servo_pid, 0.f, 0.f, 0.f);
     initPID(&left_motor_pid, 0.01f, 0.f, 0.f);
     initPID(&right_motor_pid, 0.01f, 0.f, 0.f);
     
@@ -152,7 +152,7 @@
     rightSeen = false;
     
     //Starting in the middle index, step left, inspecting the the edge of the track
-    for(i = 63; i > 0; i--) {
+    for(i = 63; i > 2; i--) {
         curr_left = (uint8_t)(cam_data[i] >> 4) & 0xFF;              
         diff = prev - curr_left;
         //Check incorporates a combination of looking at the difference in intensities
@@ -167,7 +167,7 @@
     
     prev = -1;
     //As before, start in the middle but this time step rightwards in the image
-    for(i = 64; i < 128; i++) {
+    for(i = 64; i < 126; i++) {
         curr_right = (uint8_t)(cam_data[i] >> 4) & 0xFF;
         int diff = prev - curr_right;
         if(abs(diff) >= CAM_DIFF && curr_right <= CAM_THRESHOLD && prev != -1) {
@@ -183,6 +183,7 @@
         sendString("lost edges");
         ALIGN_SERVO; //Straighten wheels so we go straight through the crossroads
         servo_pid.integral = 0;
+        l=0;r=128;
     }
     
     //Calculate how left/right from the centre line we are