seeing i robot - with all the file systems and complete code

Dependencies:   mbed SRF05 Servo CMPS03

Committer:
sowmy87
Date:
Fri Dec 17 22:55:25 2010 +0000
Revision:
1:2bac7b6f3840
Parent:
0:ee786e500a3c
Sensor 1 edited

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sowmy87 0:ee786e500a3c 1 #ifndef SERIALIZER_H
sowmy87 0:ee786e500a3c 2 #define SERIALIZER_H
sowmy87 0:ee786e500a3c 3
sowmy87 0:ee786e500a3c 4
sowmy87 0:ee786e500a3c 5 #define BAUD 19200
sowmy87 0:ee786e500a3c 6 #define MAX_SPEED 127
sowmy87 0:ee786e500a3c 7
sowmy87 0:ee786e500a3c 8 #define WAIT .001
sowmy87 0:ee786e500a3c 9 #define PI 3.1415926
sowmy87 0:ee786e500a3c 10 #define PIVET_ADJUSTMENT 7.4
sowmy87 0:ee786e500a3c 11 #define PIVET_SPEED 20
sowmy87 0:ee786e500a3c 12
sowmy87 0:ee786e500a3c 13 #define PULSES_PER_REVOLUTION 624
sowmy87 0:ee786e500a3c 14 #define WHEEL_DIAMETER 2.25 //inches
sowmy87 0:ee786e500a3c 15 #define WHEEL_CIRCUMFERENCE PI*WHEEL_DIAMETER
sowmy87 0:ee786e500a3c 16 #define PULSE_DISTANCE WHEEL_CIRCUMFERENCE / 624
sowmy87 0:ee786e500a3c 17 #define PULSES_PER_INCH int(PULSES_PER_REVOLUTION / WHEEL_CIRCUMFERENCE)
sowmy87 0:ee786e500a3c 18
sowmy87 0:ee786e500a3c 19
sowmy87 0:ee786e500a3c 20 #include "mbed.h"
sowmy87 0:ee786e500a3c 21
sowmy87 0:ee786e500a3c 22 /**
sowmy87 0:ee786e500a3c 23 * Serializer Class to communicate with Robotics
sowmy87 0:ee786e500a3c 24 * Connection Serializer(tm) board
sowmy87 0:ee786e500a3c 25 */
sowmy87 0:ee786e500a3c 26 class Serializer {
sowmy87 0:ee786e500a3c 27
sowmy87 0:ee786e500a3c 28 public:
sowmy87 0:ee786e500a3c 29 /**
sowmy87 0:ee786e500a3c 30 * Constructor.
sowmy87 0:ee786e500a3c 31 *
sowmy87 0:ee786e500a3c 32 */
sowmy87 0:ee786e500a3c 33 Serializer();
sowmy87 0:ee786e500a3c 34
sowmy87 0:ee786e500a3c 35 /**
sowmy87 0:ee786e500a3c 36 * Destructor.
sowmy87 0:ee786e500a3c 37 *
sowmy87 0:ee786e500a3c 38 */
sowmy87 0:ee786e500a3c 39 ~Serializer();
sowmy87 0:ee786e500a3c 40
sowmy87 0:ee786e500a3c 41 /**
sowmy87 0:ee786e500a3c 42 * Clears left motor encoder count
sowmy87 0:ee786e500a3c 43 *
sowmy87 0:ee786e500a3c 44 */
sowmy87 0:ee786e500a3c 45 void ClearCountLeft();
sowmy87 0:ee786e500a3c 46
sowmy87 0:ee786e500a3c 47 /**
sowmy87 0:ee786e500a3c 48 * Clears right motor encoder count
sowmy87 0:ee786e500a3c 49 *
sowmy87 0:ee786e500a3c 50 */
sowmy87 0:ee786e500a3c 51 void ClearCountRight();
sowmy87 0:ee786e500a3c 52
sowmy87 0:ee786e500a3c 53 /**
sowmy87 0:ee786e500a3c 54 * Clears motors encoder counts
sowmy87 0:ee786e500a3c 55 *
sowmy87 0:ee786e500a3c 56 */
sowmy87 0:ee786e500a3c 57 void ClearCount();
sowmy87 0:ee786e500a3c 58
sowmy87 0:ee786e500a3c 59 /**
sowmy87 0:ee786e500a3c 60 * Sets left motor speed
sowmy87 0:ee786e500a3c 61 * @param inPsec Motor Speed in inches per second
sowmy87 0:ee786e500a3c 62 */
sowmy87 0:ee786e500a3c 63 void SetSpeedLeft(int inPsec);
sowmy87 0:ee786e500a3c 64
sowmy87 0:ee786e500a3c 65 /**
sowmy87 0:ee786e500a3c 66 * Sets right motor speed
sowmy87 0:ee786e500a3c 67 * @param inPsec Motor Speed in inches per second
sowmy87 0:ee786e500a3c 68 */
sowmy87 0:ee786e500a3c 69 void SetSpeedRight(int inPsec);
sowmy87 0:ee786e500a3c 70
sowmy87 0:ee786e500a3c 71 /**
sowmy87 0:ee786e500a3c 72 * Sets speed for both motors
sowmy87 0:ee786e500a3c 73 * @param inPsec Motor Speed in inches per second
sowmy87 0:ee786e500a3c 74 */
sowmy87 0:ee786e500a3c 75 void SetSpeed(int inPsec);
sowmy87 0:ee786e500a3c 76
sowmy87 0:ee786e500a3c 77 /**
sowmy87 0:ee786e500a3c 78 * Sets VPID
sowmy87 0:ee786e500a3c 79 * @param p
sowmy87 0:ee786e500a3c 80 * @param i
sowmy87 0:ee786e500a3c 81 * @param d
sowmy87 0:ee786e500a3c 82 * @param l
sowmy87 0:ee786e500a3c 83 */
sowmy87 0:ee786e500a3c 84 void SetVPID(int,int,int,int);
sowmy87 0:ee786e500a3c 85
sowmy87 0:ee786e500a3c 86 /**
sowmy87 0:ee786e500a3c 87 * Sets DPID
sowmy87 0:ee786e500a3c 88 * @param p
sowmy87 0:ee786e500a3c 89 * @param i
sowmy87 0:ee786e500a3c 90 * @param d
sowmy87 0:ee786e500a3c 91 * @param a
sowmy87 0:ee786e500a3c 92 */
sowmy87 0:ee786e500a3c 93 void SetDPID(int,int,int,int);
sowmy87 0:ee786e500a3c 94
sowmy87 0:ee786e500a3c 95 /**
sowmy87 0:ee786e500a3c 96 * Sets left motor distance and speed
sowmy87 0:ee786e500a3c 97 * @param inches Distance in ticks
sowmy87 0:ee786e500a3c 98 * @param inPsec Motor Speed
sowmy87 0:ee786e500a3c 99 */
sowmy87 0:ee786e500a3c 100 void DiGoLeft(int inches,int inPsec);
sowmy87 0:ee786e500a3c 101
sowmy87 0:ee786e500a3c 102 /**
sowmy87 0:ee786e500a3c 103 * Sets right motor distance and speed
sowmy87 0:ee786e500a3c 104 * @param inches Distance in ticks
sowmy87 0:ee786e500a3c 105 * @param inPsec Motor Speed
sowmy87 0:ee786e500a3c 106 */
sowmy87 0:ee786e500a3c 107 void DiGoRight(int inches,int inPsec);
sowmy87 0:ee786e500a3c 108
sowmy87 0:ee786e500a3c 109 /**
sowmy87 0:ee786e500a3c 110 * Sets both motors distance and speed
sowmy87 0:ee786e500a3c 111 * @param inches Distance in ticks
sowmy87 0:ee786e500a3c 112 * @param inPsec Motor Speed
sowmy87 0:ee786e500a3c 113 */
sowmy87 0:ee786e500a3c 114 void DiGo(int inches,int inPsec);
sowmy87 0:ee786e500a3c 115
sowmy87 0:ee786e500a3c 116 void SetLeftPWM(int pwm);
sowmy87 0:ee786e500a3c 117 void SetRightPWM(int pwm);
sowmy87 0:ee786e500a3c 118 void SetPWM(int pwm);
sowmy87 0:ee786e500a3c 119 void SetPWM(int lPwm, int rPwm);
sowmy87 0:ee786e500a3c 120 int IsBusy();
sowmy87 0:ee786e500a3c 121
sowmy87 0:ee786e500a3c 122 /**
sowmy87 0:ee786e500a3c 123 * Stops both motors
sowmy87 0:ee786e500a3c 124 */
sowmy87 0:ee786e500a3c 125 void Stop();
sowmy87 0:ee786e500a3c 126
sowmy87 0:ee786e500a3c 127 void TurnLeft(int deg);
sowmy87 0:ee786e500a3c 128 void TurnRight(int deg);
sowmy87 0:ee786e500a3c 129 void PivetLeft(int deg);
sowmy87 0:ee786e500a3c 130 void PivetRight(int deg);
sowmy87 0:ee786e500a3c 131
sowmy87 0:ee786e500a3c 132 int GetCountLeft();
sowmy87 0:ee786e500a3c 133 int GetCountRight();
sowmy87 0:ee786e500a3c 134 int GetCount();
sowmy87 0:ee786e500a3c 135 float GetDistanceLeft();
sowmy87 0:ee786e500a3c 136 float GetDistanceRight();
sowmy87 0:ee786e500a3c 137 float GetDistance();
sowmy87 0:ee786e500a3c 138
sowmy87 0:ee786e500a3c 139
sowmy87 0:ee786e500a3c 140
sowmy87 0:ee786e500a3c 141
sowmy87 0:ee786e500a3c 142
sowmy87 0:ee786e500a3c 143 //protected:
sowmy87 0:ee786e500a3c 144 int GetReply();
sowmy87 0:ee786e500a3c 145 void InterruptHandler();
sowmy87 0:ee786e500a3c 146 int Initialize();
sowmy87 0:ee786e500a3c 147 //private:
sowmy87 0:ee786e500a3c 148 Serial *serial;
sowmy87 0:ee786e500a3c 149 volatile int leftSpeed, rightSpeed;
sowmy87 0:ee786e500a3c 150 volatile int _lPWM, _rPWM;
sowmy87 0:ee786e500a3c 151 volatile char _isBusy;
sowmy87 0:ee786e500a3c 152 volatile char _irqIsBusy;
sowmy87 0:ee786e500a3c 153 };
sowmy87 0:ee786e500a3c 154 #endif