summaryrefslogtreecommitdiff
path: root/robot/mode_grid.h
diff options
context:
space:
mode:
Diffstat (limited to 'robot/mode_grid.h')
-rw-r--r--robot/mode_grid.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/robot/mode_grid.h b/robot/mode_grid.h
index 55093ad..b13cc4c 100644
--- a/robot/mode_grid.h
+++ b/robot/mode_grid.h
@@ -7,4 +7,87 @@
*
* processes orders from the order buffer
*/
+
+enum orientation{
+ North,
+ East,
+ South,
+ West
+} direction;
+
+typedef struct {
+ int x;
+ int y;
+} coordinates;
+
+coordinates order[4];
+coordinates location;
+coordinates destination;
+
+char xLocation;
+char yLocation;
+
+//LINE 25-68 CAN BE TAKEN AWAY WHEN USED WITH MODE_MAZE
+
+// The 3pi include file must be at the beginning of any program that
+// uses the Pololu AVR library and 3pi.
+#include <pololu/3pi.h>
+
+// This include file allows data to be stored in program space. The
+// ATmega168 has 16k of program space compared to 1k of RAM, so large
+// pieces of static data should be stored in program space.
+#include <avr/pgmspace.h>
+
+unsigned int sensors[5]; // an array to hold sensor values
+unsigned int position;
+// Introductory messages. The "PROGMEM" identifier causes the data to
+// go into program space.
+const char welcome_line1[] PROGMEM = " Pololu";
+const char welcome_line2[] PROGMEM = "3\xf7 Robot";
+const char demo_name_line1[] PROGMEM = "PID Line";
+const char demo_name_line2[] PROGMEM = "follower";
+
+// A couple of simple tunes, stored in program space.
+const char welcome[] PROGMEM = ">g32>>c32";
+const char go[] PROGMEM = "L16 cdegreg4";
+
+// Data for generating the characters used in load_custom_characters
+// and display_readings. By reading levels[] starting at various
+// offsets, we can generate all of the 7 extra characters needed for a
+// bargraph. This is also stored in program space.
+const char levels[] PROGMEM = {
+ 0b00000,
+ 0b00000,
+ 0b00000,
+ 0b00000,
+ 0b00000,
+ 0b00000,
+ 0b00000,
+ 0b11111,
+ 0b11111,
+ 0b11111,
+ 0b11111,
+ 0b11111,
+ 0b11111,
+ 0b11111
+};
+
void w2_mode_grid();
+void initialize();
+void full_rotation();
+void grid_rotation_left();
+void grid_rotation_right();
+void grid_crossway_detection();
+void gridFollowLine();
+void orderOne();
+void orderTwo();
+void orderThree();
+void orderFour();
+void beginLocation();
+void turn_North();
+void turn_West();
+void turn_South();
+void turn_East();
+void locationMessage();
+void arrivedMessage();
+