DP / Mbed 2 deprecated RCControlOOPWithThrottle

Dependencies:   mbed

Fork of RCControlOOP by DP

Committer:
mfillinois
Date:
Wed Oct 08 19:29:07 2014 +0000
Revision:
3:b3ec75e9163f
Parent:
2:e9042e88abf1
Child:
4:099453043c63
mostly working, needs cleanup;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfillinois 0:78e2af20cbf3 1 #include "Mousr.h"
mfillinois 0:78e2af20cbf3 2
mfillinois 2:e9042e88abf1 3 //Mousr::Mousr() : m1a(p24), m1b(p23), m2a(p22), m2b(p21)
mfillinois 2:e9042e88abf1 4 Mousr::Mousr() : mstby(p6), m_a1(p24), m_a2(p25), mpwma(p26), m_b1(p23), m_b2(p22), mpwmb(p21)
mfillinois 0:78e2af20cbf3 5 {
mfillinois 2:e9042e88abf1 6 straightSpeed = 0.3;
mfillinois 2:e9042e88abf1 7 straightSlowSpeed = 0.1;
mfillinois 2:e9042e88abf1 8 rotateSlowSpeed = 0.05;
mfillinois 2:e9042e88abf1 9 rotateSpeed = 0.1;
mfillinois 2:e9042e88abf1 10 rotateFastSpeed = 0.2;
mfillinois 2:e9042e88abf1 11
mfillinois 2:e9042e88abf1 12 // Parameters for Flip
mfillinois 3:b3ec75e9163f 13 flip90Wait = 0.1;
mfillinois 3:b3ec75e9163f 14 flip180Wait = 0.2;
mfillinois 2:e9042e88abf1 15 mpwma = 1;
mfillinois 2:e9042e88abf1 16 mpwmb = 1;
mfillinois 2:e9042e88abf1 17 mstby = 1;
mfillinois 0:78e2af20cbf3 18 }
mfillinois 0:78e2af20cbf3 19
mfillinois 0:78e2af20cbf3 20 void Mousr::stop()
mfillinois 0:78e2af20cbf3 21 {
mfillinois 2:e9042e88abf1 22 m_a1 = 0; m_a2 = 0; m_b1 = 0; m_b2 = 0; return;
mfillinois 0:78e2af20cbf3 23 }
mfillinois 0:78e2af20cbf3 24
mfillinois 3:b3ec75e9163f 25 void Mousr::righttire(float speed)
mfillinois 0:78e2af20cbf3 26 {
mfillinois 3:b3ec75e9163f 27 if (speed > 0)
mfillinois 3:b3ec75e9163f 28 {
mfillinois 3:b3ec75e9163f 29 m_a1 = speed; m_a2 = 0; return;
mfillinois 3:b3ec75e9163f 30 }
mfillinois 3:b3ec75e9163f 31 else if (speed == 0)
mfillinois 3:b3ec75e9163f 32 {
mfillinois 3:b3ec75e9163f 33 m_a1 = 0; m_a2 = 0; return;
mfillinois 3:b3ec75e9163f 34 }
mfillinois 3:b3ec75e9163f 35 else
mfillinois 3:b3ec75e9163f 36 {
mfillinois 3:b3ec75e9163f 37 m_a1 = 0; m_a2 = abs(speed); return;
mfillinois 3:b3ec75e9163f 38 }
mfillinois 0:78e2af20cbf3 39 }
mfillinois 0:78e2af20cbf3 40
mfillinois 3:b3ec75e9163f 41 void Mousr::lefttire(float speed)
mfillinois 0:78e2af20cbf3 42 {
mfillinois 3:b3ec75e9163f 43 if (speed > 0)
mfillinois 3:b3ec75e9163f 44 {
mfillinois 3:b3ec75e9163f 45 m_b1 = speed; m_b2 = 0; return;
mfillinois 3:b3ec75e9163f 46 }
mfillinois 3:b3ec75e9163f 47 else if (speed == 0)
mfillinois 3:b3ec75e9163f 48 {
mfillinois 3:b3ec75e9163f 49 m_b1 = 0; m_b2 = 0; return;
mfillinois 3:b3ec75e9163f 50 }
mfillinois 3:b3ec75e9163f 51 else
mfillinois 3:b3ec75e9163f 52 {
mfillinois 3:b3ec75e9163f 53 m_b1 = 0; m_b2 = abs(speed); return;
mfillinois 3:b3ec75e9163f 54 }
mfillinois 0:78e2af20cbf3 55 }
mfillinois 0:78e2af20cbf3 56
mfillinois 0:78e2af20cbf3 57 void Mousr::left(float speed)
mfillinois 0:78e2af20cbf3 58 {
mfillinois 2:e9042e88abf1 59 m_a1 = speed; m_a2 = 0; m_b1 = 0; m_b2 = speed; return;
mfillinois 0:78e2af20cbf3 60 }
mfillinois 0:78e2af20cbf3 61
mfillinois 0:78e2af20cbf3 62 void Mousr::right(float speed)
mfillinois 0:78e2af20cbf3 63 {
mfillinois 2:e9042e88abf1 64 m_a1 = 0; m_a2 = speed; m_b1 = speed; m_b2 = 0; return;
mfillinois 0:78e2af20cbf3 65 }
mfillinois 0:78e2af20cbf3 66
mfillinois 3:b3ec75e9163f 67 void Mousr::left90()
mfillinois 0:78e2af20cbf3 68 {
mfillinois 3:b3ec75e9163f 69 left(rotateFastSpeed);
mfillinois 3:b3ec75e9163f 70 wait(flip90Wait);
mfillinois 2:e9042e88abf1 71 stop();
mfillinois 3:b3ec75e9163f 72 return;
mfillinois 0:78e2af20cbf3 73 }
mfillinois 0:78e2af20cbf3 74
mfillinois 3:b3ec75e9163f 75 void Mousr::left180()
mfillinois 0:78e2af20cbf3 76 {
mfillinois 3:b3ec75e9163f 77 left(rotateFastSpeed);
mfillinois 3:b3ec75e9163f 78 wait(flip180Wait);
mfillinois 2:e9042e88abf1 79 stop();
mfillinois 3:b3ec75e9163f 80 return;
mfillinois 0:78e2af20cbf3 81 }
mfillinois 0:78e2af20cbf3 82
mfillinois 3:b3ec75e9163f 83 void Mousr::right90()
mfillinois 0:78e2af20cbf3 84 {
mfillinois 3:b3ec75e9163f 85 right(rotateFastSpeed);
mfillinois 3:b3ec75e9163f 86 wait(flip90Wait);
mfillinois 3:b3ec75e9163f 87 stop();
mfillinois 3:b3ec75e9163f 88 return;
mfillinois 2:e9042e88abf1 89 }
mfillinois 2:e9042e88abf1 90
mfillinois 3:b3ec75e9163f 91 void Mousr::right180()
mfillinois 0:78e2af20cbf3 92 {
mfillinois 3:b3ec75e9163f 93 right(rotateFastSpeed);
mfillinois 3:b3ec75e9163f 94 wait(flip180Wait);
mfillinois 3:b3ec75e9163f 95 stop();
mfillinois 3:b3ec75e9163f 96 return;
mfillinois 0:78e2af20cbf3 97 }