a simple library to control an animatronic head

Committer:
mxjac
Date:
Sun Dec 12 14:15:07 2010 +0000
Revision:
0:8474cbec06bd
Child:
1:c5edd3b18b79

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }