a simple library to control an animatronic head
Alex.cpp@0:8474cbec06bd, 2010-12-12 (annotated)
- Committer:
- mxjac
- Date:
- Sun Dec 12 14:15:07 2010 +0000
- Revision:
- 0:8474cbec06bd
- Child:
- 1:c5edd3b18b79
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mxjac | 0:8474cbec06bd | 1 | #include "Alex.h" |
mxjac | 0:8474cbec06bd | 2 | Serial pc(USBTX, USBRX); // tx, rx => serialize mBed with the pc |
mxjac | 0:8474cbec06bd | 3 | PwmOut Led(LED1); |
mxjac | 0:8474cbec06bd | 4 | |
mxjac | 0:8474cbec06bd | 5 | Alex::Alex(SRF05 s, Servo e, Servo m, Servo l, Servo r):S(s), E(e), M(m), L(l), R(r) |
mxjac | 0:8474cbec06bd | 6 | { |
mxjac | 0:8474cbec06bd | 7 | } |
mxjac | 0:8474cbec06bd | 8 | Alex::~Alex() |
mxjac | 0:8474cbec06bd | 9 | { |
mxjac | 0:8474cbec06bd | 10 | } |
mxjac | 0:8474cbec06bd | 11 | void Alex::TestHead() |
mxjac | 0:8474cbec06bd | 12 | { |
mxjac | 0:8474cbec06bd | 13 | Led=1; |
mxjac | 0:8474cbec06bd | 14 | wait(0.02); |
mxjac | 0:8474cbec06bd | 15 | Led=0; |
mxjac | 0:8474cbec06bd | 16 | } |
mxjac | 0:8474cbec06bd | 17 | int Alex::Testpresence() |
mxjac | 0:8474cbec06bd | 18 | { |
mxjac | 0:8474cbec06bd | 19 | if((S.read()==0)||(S.read()>=500)){return 0;}//if presence is too close, return 0 |
mxjac | 0:8474cbec06bd | 20 | if(S.read()>=40){return 1;}//if presence is too far, return 1 |
mxjac | 0:8474cbec06bd | 21 | if((S.read()>=0)&&(S.read()<=40)){return 2;}//if presence is between O and 40cm, return 2 |
mxjac | 0:8474cbec06bd | 22 | return 0; |
mxjac | 0:8474cbec06bd | 23 | } |
mxjac | 0:8474cbec06bd | 24 | void Alex::Move_eyes(int valuee) |
mxjac | 0:8474cbec06bd | 25 | { |
mxjac | 0:8474cbec06bd | 26 | for(int i=0; i<valuee; i++) |
mxjac | 0:8474cbec06bd | 27 | { |
mxjac | 0:8474cbec06bd | 28 | E=i; |
mxjac | 0:8474cbec06bd | 29 | wait(0.1); |
mxjac | 0:8474cbec06bd | 30 | } |
mxjac | 0:8474cbec06bd | 31 | } |
mxjac | 0:8474cbec06bd | 32 | void Alex::Move_mouth(int valuem) |
mxjac | 0:8474cbec06bd | 33 | { |
mxjac | 0:8474cbec06bd | 34 | for(int i=0; i<valuem; i++) |
mxjac | 0:8474cbec06bd | 35 | { |
mxjac | 0:8474cbec06bd | 36 | M=i; |
mxjac | 0:8474cbec06bd | 37 | wait(0.1); |
mxjac | 0:8474cbec06bd | 38 | } |
mxjac | 0:8474cbec06bd | 39 | } |
mxjac | 0:8474cbec06bd | 40 | void Alex::Move_leaning(int valuel) |
mxjac | 0:8474cbec06bd | 41 | { |
mxjac | 0:8474cbec06bd | 42 | for(int i=0; i<valuel; i++) |
mxjac | 0:8474cbec06bd | 43 | { |
mxjac | 0:8474cbec06bd | 44 | L=i; |
mxjac | 0:8474cbec06bd | 45 | wait(0.1); |
mxjac | 0:8474cbec06bd | 46 | } |
mxjac | 0:8474cbec06bd | 47 | } |
mxjac | 0:8474cbec06bd | 48 | void Alex::Move_rotation(int valuer) |
mxjac | 0:8474cbec06bd | 49 | { |
mxjac | 0:8474cbec06bd | 50 | for(int i=0; i<valuer; i++) |
mxjac | 0:8474cbec06bd | 51 | { |
mxjac | 0:8474cbec06bd | 52 | R=i; |
mxjac | 0:8474cbec06bd | 53 | wait(0.1); |
mxjac | 0:8474cbec06bd | 54 | } |
mxjac | 0:8474cbec06bd | 55 | } |