Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Fri May 05 00:08:59 2017 +0000
Revision:
7:6f5cb6377bd4
Parent:
4:b5b7836ca2b0
Child:
8:a0760acdc59e
Added some stuff for motor + encoders

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyleliangus 4:b5b7836ca2b0 1 #ifndef MOTOR_H
kyleliangus 4:b5b7836ca2b0 2 #define MOTOR_H
kyleliangus 4:b5b7836ca2b0 3
kyleliangus 4:b5b7836ca2b0 4 #include "mbed.h"
kyleliangus 4:b5b7836ca2b0 5 #include "main.h"
kyleliangus 4:b5b7836ca2b0 6
sahilmgandhi 7:6f5cb6377bd4 7 #include "QEI.h"
sahilmgandhi 7:6f5cb6377bd4 8
kyleliangus 4:b5b7836ca2b0 9 #define BRAKE_VOLTAGE 0.2
kyleliangus 4:b5b7836ca2b0 10
kyleliangus 4:b5b7836ca2b0 11 extern PwmOut left1;
kyleliangus 4:b5b7836ca2b0 12 extern PwmOut left2;
kyleliangus 4:b5b7836ca2b0 13 extern PwmOut right1;
kyleliangus 4:b5b7836ca2b0 14 extern PwmOut right2;
kyleliangus 4:b5b7836ca2b0 15
sahilmgandhi 7:6f5cb6377bd4 16 extern DigitalOut enableLeftMotor;
sahilmgandhi 7:6f5cb6377bd4 17 extern DigitalOut enableRightMotor;
sahilmgandhi 7:6f5cb6377bd4 18
sahilmgandhi 7:6f5cb6377bd4 19 //QEI leftWheel(
sahilmgandhi 7:6f5cb6377bd4 20
sahilmgandhi 7:6f5cb6377bd4 21 inline void enableMotors(){
sahilmgandhi 7:6f5cb6377bd4 22 enableLeftMotor.write(1);
sahilmgandhi 7:6f5cb6377bd4 23 enableRightMotor.write(1);
sahilmgandhi 7:6f5cb6377bd4 24 }
sahilmgandhi 7:6f5cb6377bd4 25
sahilmgandhi 7:6f5cb6377bd4 26 inline void rightWheelBackward(double voltage) {
kyleliangus 4:b5b7836ca2b0 27 right1.write(voltage);
kyleliangus 4:b5b7836ca2b0 28 right2.write(0);
kyleliangus 4:b5b7836ca2b0 29 }
kyleliangus 4:b5b7836ca2b0 30
sahilmgandhi 7:6f5cb6377bd4 31 inline void rightWheelForward(double voltage) {
kyleliangus 4:b5b7836ca2b0 32 right1.write(0);
kyleliangus 4:b5b7836ca2b0 33 right2.write(voltage);
kyleliangus 4:b5b7836ca2b0 34 }
kyleliangus 4:b5b7836ca2b0 35
kyleliangus 4:b5b7836ca2b0 36 inline void leftWheelForward(double voltage) {
kyleliangus 4:b5b7836ca2b0 37 left1.write(0);
kyleliangus 4:b5b7836ca2b0 38 left2.write(voltage);
kyleliangus 4:b5b7836ca2b0 39 }
kyleliangus 4:b5b7836ca2b0 40
kyleliangus 4:b5b7836ca2b0 41 inline void leftWheelBackward(double voltage) {
kyleliangus 4:b5b7836ca2b0 42 left1.write(voltage);
kyleliangus 4:b5b7836ca2b0 43 left2.write(0);
kyleliangus 4:b5b7836ca2b0 44 }
kyleliangus 4:b5b7836ca2b0 45
kyleliangus 4:b5b7836ca2b0 46 inline void brakeLeftWheel() {
kyleliangus 4:b5b7836ca2b0 47 left1.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 48 left2.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 49 }
kyleliangus 4:b5b7836ca2b0 50
kyleliangus 4:b5b7836ca2b0 51 inline void brakeRightWheel() {
kyleliangus 4:b5b7836ca2b0 52 right1.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 53 right2.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 54 }
kyleliangus 4:b5b7836ca2b0 55
kyleliangus 4:b5b7836ca2b0 56 inline void brake() {
kyleliangus 4:b5b7836ca2b0 57 brakeLeftWheel();
kyleliangus 4:b5b7836ca2b0 58 brakeRightWheel();
kyleliangus 4:b5b7836ca2b0 59 }
kyleliangus 4:b5b7836ca2b0 60
kyleliangus 4:b5b7836ca2b0 61 inline void coastLeftWheel() {
kyleliangus 4:b5b7836ca2b0 62 left1.write(0);
kyleliangus 4:b5b7836ca2b0 63 left2.write(0);
kyleliangus 4:b5b7836ca2b0 64 }
kyleliangus 4:b5b7836ca2b0 65
kyleliangus 4:b5b7836ca2b0 66 inline void coastRightWheel() {
kyleliangus 4:b5b7836ca2b0 67 right1.write(0);
kyleliangus 4:b5b7836ca2b0 68 right2.write(0);
kyleliangus 4:b5b7836ca2b0 69 }
kyleliangus 4:b5b7836ca2b0 70
kyleliangus 4:b5b7836ca2b0 71 inline void coast() {
kyleliangus 4:b5b7836ca2b0 72 coastLeftWheel();
kyleliangus 4:b5b7836ca2b0 73 coastRightWheel();
kyleliangus 4:b5b7836ca2b0 74 }
kyleliangus 4:b5b7836ca2b0 75
kyleliangus 4:b5b7836ca2b0 76 #endif