Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Sun May 14 23:07:23 2017 +0000
Revision:
17:f713758f6238
Parent:
15:b80555a4a8b9
Child:
20:82836745332e
Added mbed-dev and still working on dynamically deciding to turn;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyleliangus 4:b5b7836ca2b0 1 #ifndef MAIN_H
kyleliangus 4:b5b7836ca2b0 2 #define MAIN_H
kyleliangus 4:b5b7836ca2b0 3
kyleliangus 4:b5b7836ca2b0 4 #include "mbed.h"
kyleliangus 4:b5b7836ca2b0 5 #include "ITG3200.h"
kyleliangus 9:1d8e4da058cd 6 #include "motor.h"
vanshg 11:8fc2b703086b 7 #include "QEI.h"
vanshg 11:8fc2b703086b 8 #define PULSES 3520
vanshg 11:8fc2b703086b 9 #define SAMPLE_NUM 100
kyleliangus 4:b5b7836ca2b0 10
kyleliangus 4:b5b7836ca2b0 11 // Motors
kyleliangus 8:a0760acdc59e 12 /*
kyleliangus 4:b5b7836ca2b0 13 PwmOut left1(PB_7);
kyleliangus 4:b5b7836ca2b0 14 PwmOut left2(PB_8);
kyleliangus 4:b5b7836ca2b0 15 PwmOut right1(PA_10);
kyleliangus 4:b5b7836ca2b0 16 PwmOut right2(PA_11);
kyleliangus 4:b5b7836ca2b0 17
sahilmgandhi 7:6f5cb6377bd4 18 DigitalOut enableLeftMotor(PB_4);
sahilmgandhi 7:6f5cb6377bd4 19 DigitalOut enableRightMotor(PB_5);
kyleliangus 8:a0760acdc59e 20 */
sahilmgandhi 7:6f5cb6377bd4 21
kyleliangus 4:b5b7836ca2b0 22 // RGB LED
kyleliangus 4:b5b7836ca2b0 23 DigitalOut redLed(PC_0);
kyleliangus 4:b5b7836ca2b0 24 DigitalOut blueLed(PC_1);
kyleliangus 4:b5b7836ca2b0 25 DigitalOut greenLed(PC_2);
kyleliangus 4:b5b7836ca2b0 26
kyleliangus 9:1d8e4da058cd 27 // IRPairs
kyleliangus 9:1d8e4da058cd 28 IRPair IRP_4( PB_1, PC_5 );
kyleliangus 9:1d8e4da058cd 29 IRPair IRP_3( PB_13, PC_4 );
kyleliangus 9:1d8e4da058cd 30 IRPair IRP_2( PB_0, PA_6 );
kyleliangus 9:1d8e4da058cd 31 IRPair IRP_1( PB_14, PA_7 );
kyleliangus 9:1d8e4da058cd 32
kyleliangus 15:b80555a4a8b9 33 Motor left_motor( PB_8, PB_7, PB_4 ); // forward, backwards, enable
kyleliangus 15:b80555a4a8b9 34 Motor right_motor( PA_11, PA_10, PB_5 ); // forward, backwards, enable
kyleliangus 9:1d8e4da058cd 35
kyleliangus 9:1d8e4da058cd 36 /*
kyleliangus 4:b5b7836ca2b0 37 DigitalOut IR_1(PB_1);
kyleliangus 4:b5b7836ca2b0 38 DigitalOut IR_2(PB_13);
kyleliangus 4:b5b7836ca2b0 39 DigitalOut IR_3(PB_0);
kyleliangus 4:b5b7836ca2b0 40 DigitalOut IR_4(PB_14);
kyleliangus 4:b5b7836ca2b0 41 // Receivers
kyleliangus 4:b5b7836ca2b0 42 AnalogIn Rec_1(PC_5);
kyleliangus 4:b5b7836ca2b0 43 AnalogIn Rec_2(PC_4);
kyleliangus 4:b5b7836ca2b0 44 AnalogIn Rec_3(PA_6);
kyleliangus 4:b5b7836ca2b0 45 AnalogIn Rec_4(PA_7);
kyleliangus 9:1d8e4da058cd 46 */
kyleliangus 4:b5b7836ca2b0 47
kyleliangus 4:b5b7836ca2b0 48 // Doing DEBUGGING
kyleliangus 4:b5b7836ca2b0 49 #define DEBUGGING 1
kyleliangus 4:b5b7836ca2b0 50 Serial serial(PC_6, PC_7);
kyleliangus 4:b5b7836ca2b0 51
kyleliangus 4:b5b7836ca2b0 52 // Gyro
kyleliangus 4:b5b7836ca2b0 53 ITG3200 gyro(PC_9, PA_8);
kyleliangus 4:b5b7836ca2b0 54
kyleliangus 4:b5b7836ca2b0 55 volatile double reading = 0;
kyleliangus 4:b5b7836ca2b0 56
kyleliangus 4:b5b7836ca2b0 57 int gyroX = 0;
kyleliangus 4:b5b7836ca2b0 58 int gyroY = 0;
kyleliangus 4:b5b7836ca2b0 59 int gyroZ = 0;
kyleliangus 4:b5b7836ca2b0 60
vanshg 10:810d1849da9d 61 InterruptIn dipButton1(PB_15);
vanshg 10:810d1849da9d 62 InterruptIn dipButton2(PB_10);
vanshg 10:810d1849da9d 63 InterruptIn dipButton3(PB_9);
vanshg 10:810d1849da9d 64 InterruptIn dipButton4(PB_12);
vanshg 10:810d1849da9d 65
vanshg 10:810d1849da9d 66 void enableButton1();
vanshg 10:810d1849da9d 67 void enableButton2();
vanshg 10:810d1849da9d 68 void enableButton3();
vanshg 10:810d1849da9d 69 void enableButton4();
vanshg 10:810d1849da9d 70 void disableButton1();
vanshg 10:810d1849da9d 71 void disableButton2();
vanshg 10:810d1849da9d 72 void disableButton3();
vanshg 10:810d1849da9d 73 void disableButton4();
vanshg 10:810d1849da9d 74
vanshg 10:810d1849da9d 75 int dipFlags = 0;
vanshg 11:8fc2b703086b 76 #define BUTTON1_FLAG 0x1
vanshg 11:8fc2b703086b 77 #define BUTTON2_FLAG 0x2
vanshg 11:8fc2b703086b 78 #define BUTTON3_FLAG 0x4
vanshg 11:8fc2b703086b 79 #define BUTTON4_FLAG 0x8
vanshg 11:8fc2b703086b 80
sahilmgandhi 17:f713758f6238 81 int turnFlag = 0;
sahilmgandhi 17:f713758f6238 82 #define LEFT_FLAG 0x1
sahilmgandhi 17:f713758f6238 83 #define RIGHT_FLAG 0x2
sahilmgandhi 17:f713758f6238 84
vanshg 11:8fc2b703086b 85 QEI encoder0( PA_5, PB_3, NC, PULSES, QEI::X4_ENCODING );
vanshg 11:8fc2b703086b 86 QEI encoder1( PA_1, PA_0, NC, PULSES, QEI::X4_ENCODING );
vanshg 10:810d1849da9d 87
kyleliangus 4:b5b7836ca2b0 88 #endif