a simple library to control an animatronic head

Alex.cpp

Committer:
mxjac
Date:
2011-05-10
Revision:
4:45d466252fb6
Parent:
3:5271cc1a527b

File content as of revision 4:45d466252fb6:

#include "Alex.h"

Alex::Alex(SRF05 s, Servo e, Servo m, Servo l, Servo r):S(s), E(e), M(m), L(l), R(r), Led(LED1), pc(USBTX, USBRX)
{
}
Alex::~Alex()
{
}
void Alex::TestHead()
{
    Led=1;
    wait(0.02);
    Led=0;
}
int Alex::Testpresence()
{
    if((S.read()==0)||(S.read()>=500)){return 0;}//if presence is too close, return 0
    if(S.read()>=40){return 1;}//if presence is too far, return 1
    if((S.read()>=0)&&(S.read()<=40)){return 2;}//if presence is between O and 40cm, return 2
    return 0;
}
void Alex::Move_eyes(int valuee)
{
    for(int i=0; i<valuee; i++)
    {
        E=i;
        wait(0.1);
    }
}
void Alex::Move_mouth(int valuem)
{
    for(int i=0; i<valuem; i++)
    {
        M=i;
        wait(0.1);
    }
}
void Alex::Move_leaning(int valuel)
{
    for(int i=0; i<valuel; i++)
    {
        L=i;
        wait(0.1);
    }
}
void Alex::Move_rotation(int valuer)
{
    for(int i=0; i<valuer; i++)
    {
        R=i;
        wait(0.1);
    }
}
/*
//void Alex::Simulate_Talking(int length)
{
     //for(int i=0; i<length; i++)
    {
    //    Move_mouth(100);
  //      wait(0.01);
    }
}

//void Alex::Presence_too_far()
{
      //  pc.printf("You are too far, I can't see you !");
    //    Simulate_Talking(4);
        //wait(3);
      //  pc.printf("Is there somebody ?");
    //    Simulate_Talking(4);
  //      wait(3);
}
//void Alex::displaydistance()
{
  //  pc.printf("Distance : %4i\r\n", S.read());
}

//void Alex::Presence_too_close()
{
        //pc.printf("You are too close, please move back");
        //Simulate_Talking(4);
       // wait(3);
}*/