![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
These are the core files for the Robot at Team conception.
Brobot.cpp@0:eba74e7a229b, 2017-05-26 (annotated)
- Committer:
- obrie829
- Date:
- Fri May 26 07:40:48 2017 +0000
- Revision:
- 0:eba74e7a229b
- Child:
- 8:351b0b7b05b2
This is the first version committed to team Brobot and should have all header and class files contained within
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 | 0:eba74e7a229b | 8 | |
obrie829 | 0:eba74e7a229b | 9 | |
obrie829 | 0:eba74e7a229b | 10 | Brobot::Brobot(PwmOut* left, PwmOut* right, int number) |
obrie829 | 0:eba74e7a229b | 11 | { |
obrie829 | 0:eba74e7a229b | 12 | pwmL = left; // set local references to objects |
obrie829 | 0:eba74e7a229b | 13 | pwmR = right; |
obrie829 | 0:eba74e7a229b | 14 | |
obrie829 | 0:eba74e7a229b | 15 | this->number = number; |
obrie829 | 0:eba74e7a229b | 16 | } |
obrie829 | 0:eba74e7a229b | 17 | |
obrie829 | 0:eba74e7a229b | 18 | // empty constructor |
obrie829 | 0:eba74e7a229b | 19 | Brobot::Brobot() |
obrie829 | 0:eba74e7a229b | 20 | {} |
obrie829 | 0:eba74e7a229b | 21 | |
obrie829 | 0:eba74e7a229b | 22 | void Brobot::rotate( float phi) |
obrie829 | 0:eba74e7a229b | 23 | { |
obrie829 | 0:eba74e7a229b | 24 | if(phi>0.5f || phi<-0.5f) { |
obrie829 | 0:eba74e7a229b | 25 | phi=0; |
obrie829 | 0:eba74e7a229b | 26 | } |
obrie829 | 0:eba74e7a229b | 27 | |
obrie829 | 0:eba74e7a229b | 28 | *pwmL = 0.5f + phi; |
obrie829 | 0:eba74e7a229b | 29 | *pwmR = 0.5f + phi; |
obrie829 | 0:eba74e7a229b | 30 | } |
obrie829 | 0:eba74e7a229b | 31 | |
obrie829 | 0:eba74e7a229b | 32 | void Brobot::forward() |
obrie829 | 0:eba74e7a229b | 33 | { |
obrie829 | 0:eba74e7a229b | 34 | *pwmL=0.65f; // asterisk is dereferencing the pointer so |
obrie829 | 0:eba74e7a229b | 35 | *pwmR=0.36f; // you can access the variable at the pointers address |
obrie829 | 0:eba74e7a229b | 36 | // also another way to dereference the pointer is: pwmR->write(0.xx) |
obrie829 | 0:eba74e7a229b | 37 | } |
obrie829 | 0:eba74e7a229b | 38 | |
obrie829 | 0:eba74e7a229b | 39 | void Brobot::slow(float scale) |
obrie829 | 0:eba74e7a229b | 40 | { |
obrie829 | 0:eba74e7a229b | 41 | if(scale>0.5f || scale<-0.5f) { |
obrie829 | 0:eba74e7a229b | 42 | scale=0; |
obrie829 | 0:eba74e7a229b | 43 | } |
obrie829 | 0:eba74e7a229b | 44 | |
obrie829 | 0:eba74e7a229b | 45 | *pwmL = *pwmL - scale; |
obrie829 | 0:eba74e7a229b | 46 | *pwmR = *pwmR + scale; |
obrie829 | 0:eba74e7a229b | 47 | } |
obrie829 | 0:eba74e7a229b | 48 | |
obrie829 | 0:eba74e7a229b | 49 | void Brobot::turnleft() |
obrie829 | 0:eba74e7a229b | 50 | { |
obrie829 | 0:eba74e7a229b | 51 | *pwmL=0.48f; |
obrie829 | 0:eba74e7a229b | 52 | *pwmR=0.31f; |
obrie829 | 0:eba74e7a229b | 53 | wait(0.1); |
obrie829 | 0:eba74e7a229b | 54 | } |
obrie829 | 0:eba74e7a229b | 55 | |
obrie829 | 0:eba74e7a229b | 56 | void Brobot::turnright() |
obrie829 | 0:eba74e7a229b | 57 | { |
obrie829 | 0:eba74e7a229b | 58 | *pwmL=0.69f; |
obrie829 | 0:eba74e7a229b | 59 | *pwmR=0.52f; |
obrie829 | 0:eba74e7a229b | 60 | wait(0.1); |
obrie829 | 0:eba74e7a229b | 61 | } |
obrie829 | 0:eba74e7a229b | 62 | |
obrie829 | 0:eba74e7a229b | 63 | void Brobot::back() |
obrie829 | 0:eba74e7a229b | 64 | { |
obrie829 | 0:eba74e7a229b | 65 | *pwmR=0.65f; |
obrie829 | 0:eba74e7a229b | 66 | *pwmL=0.35f; |
obrie829 | 0:eba74e7a229b | 67 | } |
obrie829 | 0:eba74e7a229b | 68 | |
obrie829 | 0:eba74e7a229b | 69 | void Brobot::stop() |
obrie829 | 0:eba74e7a229b | 70 | { |
obrie829 | 0:eba74e7a229b | 71 | *pwmR=0.5f; |
obrie829 | 0:eba74e7a229b | 72 | *pwmL=0.5f; |
obrie829 | 0:eba74e7a229b | 73 | } |