Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Committer:
kyleliangus
Date:
Fri Apr 28 02:13:24 2017 +0000
Revision:
4:b5b7836ca2b0
Child:
7:6f5cb6377bd4
Added Modularity, Motors

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
kyleliangus 4:b5b7836ca2b0 7 #define BRAKE_VOLTAGE 0.2
kyleliangus 4:b5b7836ca2b0 8
kyleliangus 4:b5b7836ca2b0 9 extern PwmOut left1;
kyleliangus 4:b5b7836ca2b0 10 extern PwmOut left2;
kyleliangus 4:b5b7836ca2b0 11 extern PwmOut right1;
kyleliangus 4:b5b7836ca2b0 12 extern PwmOut right2;
kyleliangus 4:b5b7836ca2b0 13
kyleliangus 4:b5b7836ca2b0 14 inline void rightWheelForward(double voltage) {
kyleliangus 4:b5b7836ca2b0 15 right1.write(voltage);
kyleliangus 4:b5b7836ca2b0 16 right2.write(0);
kyleliangus 4:b5b7836ca2b0 17 }
kyleliangus 4:b5b7836ca2b0 18
kyleliangus 4:b5b7836ca2b0 19 inline void rightWheelBackward(double voltage) {
kyleliangus 4:b5b7836ca2b0 20 right1.write(0);
kyleliangus 4:b5b7836ca2b0 21 right2.write(voltage);
kyleliangus 4:b5b7836ca2b0 22 }
kyleliangus 4:b5b7836ca2b0 23
kyleliangus 4:b5b7836ca2b0 24 inline void leftWheelForward(double voltage) {
kyleliangus 4:b5b7836ca2b0 25 left1.write(0);
kyleliangus 4:b5b7836ca2b0 26 left2.write(voltage);
kyleliangus 4:b5b7836ca2b0 27 }
kyleliangus 4:b5b7836ca2b0 28
kyleliangus 4:b5b7836ca2b0 29 inline void leftWheelBackward(double voltage) {
kyleliangus 4:b5b7836ca2b0 30 left1.write(voltage);
kyleliangus 4:b5b7836ca2b0 31 left2.write(0);
kyleliangus 4:b5b7836ca2b0 32 }
kyleliangus 4:b5b7836ca2b0 33
kyleliangus 4:b5b7836ca2b0 34 inline void brakeLeftWheel() {
kyleliangus 4:b5b7836ca2b0 35 left1.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 36 left2.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 37 }
kyleliangus 4:b5b7836ca2b0 38
kyleliangus 4:b5b7836ca2b0 39 inline void brakeRightWheel() {
kyleliangus 4:b5b7836ca2b0 40 right1.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 41 right2.write(BRAKE_VOLTAGE);
kyleliangus 4:b5b7836ca2b0 42 }
kyleliangus 4:b5b7836ca2b0 43
kyleliangus 4:b5b7836ca2b0 44 inline void brake() {
kyleliangus 4:b5b7836ca2b0 45 brakeLeftWheel();
kyleliangus 4:b5b7836ca2b0 46 brakeRightWheel();
kyleliangus 4:b5b7836ca2b0 47 }
kyleliangus 4:b5b7836ca2b0 48
kyleliangus 4:b5b7836ca2b0 49 inline void coastLeftWheel() {
kyleliangus 4:b5b7836ca2b0 50 left1.write(0);
kyleliangus 4:b5b7836ca2b0 51 left2.write(0);
kyleliangus 4:b5b7836ca2b0 52 }
kyleliangus 4:b5b7836ca2b0 53
kyleliangus 4:b5b7836ca2b0 54 inline void coastRightWheel() {
kyleliangus 4:b5b7836ca2b0 55 right1.write(0);
kyleliangus 4:b5b7836ca2b0 56 right2.write(0);
kyleliangus 4:b5b7836ca2b0 57 }
kyleliangus 4:b5b7836ca2b0 58
kyleliangus 4:b5b7836ca2b0 59 inline void coast() {
kyleliangus 4:b5b7836ca2b0 60 coastLeftWheel();
kyleliangus 4:b5b7836ca2b0 61 coastRightWheel();
kyleliangus 4:b5b7836ca2b0 62 }
kyleliangus 4:b5b7836ca2b0 63
kyleliangus 4:b5b7836ca2b0 64 #endif