Mechatronics Robotics
/
BrobotV1
These are the core files for the Robot at Team conception.
Brobot.cpp@8:351b0b7b05b2, 2017-05-29 (annotated)
- Committer:
- obrie829
- Date:
- Mon May 29 13:03:28 2017 +0000
- Revision:
- 8:351b0b7b05b2
- Parent:
- 0:eba74e7a229b
- Child:
- 11:05d5539141c8
- Child:
- 15:4efc66de795a
with speed control
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
obrie829 | 0:eba74e7a229b | 1 | /* |
obrie829 | 0:eba74e7a229b | 2 | * BROBOT.cpp |
obrie829 | 0:eba74e7a229b | 3 | * |
obrie829 | 0:eba74e7a229b | 4 | */ |
obrie829 | 0:eba74e7a229b | 5 | |
obrie829 | 0:eba74e7a229b | 6 | #include <cmath> |
obrie829 | 0:eba74e7a229b | 7 | #include "Brobot.h" |
obrie829 | 8:351b0b7b05b2 | 8 | #include "SpeedControl.h" |
obrie829 | 0:eba74e7a229b | 9 | |
obrie829 | 8:351b0b7b05b2 | 10 | SpeedControl speedctrl(PwmOut* pwmLeft, PwmOut* pwmRight, EncoderCounter* counterLeft, EncoderCounter* counterRight); |
obrie829 | 0:eba74e7a229b | 11 | |
obrie829 | 8:351b0b7b05b2 | 12 | Brobot::Brobot(SpeedControl* speedctrl, int number) |
obrie829 | 8:351b0b7b05b2 | 13 | { |
obrie829 | 0:eba74e7a229b | 14 | this->number = number; |
obrie829 | 8:351b0b7b05b2 | 15 | //this->speedctrl = speedctrl; |
obrie829 | 0:eba74e7a229b | 16 | } |
obrie829 | 0:eba74e7a229b | 17 | |
obrie829 | 0:eba74e7a229b | 18 | void Brobot::rotate( float phi) |
obrie829 | 0:eba74e7a229b | 19 | { |
obrie829 | 0:eba74e7a229b | 20 | if(phi>0.5f || phi<-0.5f) { |
obrie829 | 0:eba74e7a229b | 21 | phi=0; |
obrie829 | 0:eba74e7a229b | 22 | } |
obrie829 | 0:eba74e7a229b | 23 | |
obrie829 | 0:eba74e7a229b | 24 | *pwmL = 0.5f + phi; |
obrie829 | 0:eba74e7a229b | 25 | *pwmR = 0.5f + phi; |
obrie829 | 0:eba74e7a229b | 26 | } |
obrie829 | 0:eba74e7a229b | 27 | |
obrie829 | 8:351b0b7b05b2 | 28 | /* |
obrie829 | 8:351b0b7b05b2 | 29 | void Brobot::setWheelSpeeds( float wheelL, float wheelR) |
obrie829 | 8:351b0b7b05b2 | 30 | { |
obrie829 | 8:351b0b7b05b2 | 31 | SpeedCtrl.setDesiredSpeed( wheelL, wheelR); |
obrie829 | 8:351b0b7b05b2 | 32 | } |
obrie829 | 8:351b0b7b05b2 | 33 | */ |
obrie829 | 8:351b0b7b05b2 | 34 | |
obrie829 | 0:eba74e7a229b | 35 | void Brobot::forward() |
obrie829 | 0:eba74e7a229b | 36 | { |
obrie829 | 8:351b0b7b05b2 | 37 | //*pwmL=0.65f; // asterisk is dereferencing the pointer so |
obrie829 | 8:351b0b7b05b2 | 38 | //*pwmR=0.36f; // you can access the variable at the pointers address |
obrie829 | 0:eba74e7a229b | 39 | // also another way to dereference the pointer is: pwmR->write(0.xx) |
obrie829 | 8:351b0b7b05b2 | 40 | speedctrl->setDesiredSpeed(0.65f, 0.35f); |
obrie829 | 0:eba74e7a229b | 41 | } |
obrie829 | 0:eba74e7a229b | 42 | |
obrie829 | 0:eba74e7a229b | 43 | void Brobot::slow(float scale) |
obrie829 | 0:eba74e7a229b | 44 | { |
obrie829 | 0:eba74e7a229b | 45 | if(scale>0.5f || scale<-0.5f) { |
obrie829 | 0:eba74e7a229b | 46 | scale=0; |
obrie829 | 0:eba74e7a229b | 47 | } |
obrie829 | 0:eba74e7a229b | 48 | |
obrie829 | 0:eba74e7a229b | 49 | *pwmL = *pwmL - scale; |
obrie829 | 0:eba74e7a229b | 50 | *pwmR = *pwmR + scale; |
obrie829 | 0:eba74e7a229b | 51 | } |
obrie829 | 0:eba74e7a229b | 52 | |
obrie829 | 0:eba74e7a229b | 53 | void Brobot::turnleft() |
obrie829 | 0:eba74e7a229b | 54 | { |
obrie829 | 8:351b0b7b05b2 | 55 | speedctrl->setDesiredSpeed(0.48f, 0.31f); |
obrie829 | 0:eba74e7a229b | 56 | wait(0.1); |
obrie829 | 0:eba74e7a229b | 57 | } |
obrie829 | 0:eba74e7a229b | 58 | |
obrie829 | 0:eba74e7a229b | 59 | void Brobot::turnright() |
obrie829 | 0:eba74e7a229b | 60 | { |
obrie829 | 8:351b0b7b05b2 | 61 | speedctrl->setDesiredSpeed(0.69f, 0.52f); |
obrie829 | 0:eba74e7a229b | 62 | wait(0.1); |
obrie829 | 0:eba74e7a229b | 63 | } |
obrie829 | 0:eba74e7a229b | 64 | |
obrie829 | 0:eba74e7a229b | 65 | void Brobot::back() |
obrie829 | 0:eba74e7a229b | 66 | { |
obrie829 | 8:351b0b7b05b2 | 67 | speedctrl->setDesiredSpeed(0.65f, 0.35f); |
obrie829 | 0:eba74e7a229b | 68 | } |
obrie829 | 0:eba74e7a229b | 69 | |
obrie829 | 0:eba74e7a229b | 70 | void Brobot::stop() |
obrie829 | 0:eba74e7a229b | 71 | { |
obrie829 | 8:351b0b7b05b2 | 72 | speedctrl->setDesiredSpeed(0.5f, 0.5f); |
obrie829 | 0:eba74e7a229b | 73 | } |