ilteris kaplan blog

Archive of blog posts since 2005

April 5, 2008

Wiki

Xbee Sender Code

#wiki

Xbee Sender Code


// xigbee sender.


int sickBtn       = 2;
int calmBtn       = 3;
int sadBtn        = 13;
int angryBtn      = 12;
int energeticBtn  = 5; 
int happyBtn      = 6;
int lovedBtn      = 7;
int tiredBtn      = 8;

// flags that checks if our button is called previously.
byte sickCalled, calmCalled, sadCalled, angryCalled;
byte energeticCalled, happyCalled, lovedCalled, tiredCalled;

int DEBUG = 0;



char  switchState = 0;




// PWM pins
int redPin    =  9; // RED LED 
int greenPin  = 10; // GREEN LED
int bluePin   = 11; // BLUE LED

int redVal, greenVal, blueVal;


void setup() {
  Serial.begin(2400);


  //set digital pins to input.
  pinMode(sickBtn,      INPUT);
  pinMode(calmBtn,      INPUT);
  pinMode(sadBtn,       INPUT);
  pinMode(angryBtn,     INPUT);
  pinMode(energeticBtn, INPUT);
  pinMode(happyBtn,     INPUT);
  pinMode(lovedBtn,     INPUT);
  pinMode(tiredBtn,     INPUT); 


  // Tricolor legs at PWM pins.
  pinMode(redPin,       OUTPUT);
  pinMode(greenPin,     OUTPUT);
  pinMode(bluePin,      OUTPUT);


  setDestination();

}

void loop() {

  // check if there is anything coming from the serial
  if(Serial.available() > 0 ) {

    switchState = Serial.read();



  } 
  else {
    switchState  = checkPressed();   
  }
  if((switchState == '1') && (sickCalled == 0)) {
    goSick();
  } 
  else if ((switchState == '2') && (calmCalled == 0)) {
    goCalm();
  } 
  else if ((switchState == '3') && (sadCalled == 0)) {
    //Serial.println("sadCalled");
    goSad();
  } 
  else if ((switchState == '4') && (angryCalled == 0)) {
    //Serial.println("angryCalled");
    goAngry();
  } 
  else if ((switchState == '5') && (energeticCalled == 0)) {
    goEnergetic();  
  } 
  else if ((switchState == '6') && (happyCalled == 0)) {
    goHappy(); 
  } 
  else if ((switchState == '7') && (lovedCalled == 0)) {
    goLoved();  
  } 
  else if ((switchState == '8') && (tiredCalled == 0)) {
    goTired();
  } 
  else if((switchState == 1) && (sickCalled == 0)) {
    Serial.print(switchState, DEC); 
    goSick();
  } 
  else if ((switchState == 2) && (calmCalled == 0)) {
    Serial.print(switchState, DEC); 
    goCalm();
  } 
  else if ((switchState == 3) && (sadCalled == 0)) {
    Serial.print(switchState, DEC); 
    goSad();
  } 
  else if ((switchState == 4) && (angryCalled == 0)) {
    Serial.print(switchState, DEC); 
    goAngry();
  } 
  else if ((switchState == 5) && (energeticCalled == 0)) {
    Serial.print(switchState, DEC); 
    goEnergetic();  
  } 
  else if ((switchState == 6) && (happyCalled == 0)) {
    Serial.print(switchState, DEC); 
    goHappy(); 
  } 
  else if ((switchState == 7) && (lovedCalled == 0)) {
    Serial.print(switchState, DEC); 
    goLoved();  
  } 
  else if ((switchState == 8) && (tiredCalled == 0)) {
    Serial.print(switchState, DEC); 
    goTired();
  }
}


void goSick() {
   sickCalled      = 1;
   calmCalled      = 0;
   sadCalled       = 0;
   angryCalled     = 0;
   energeticCalled = 0;
   happyCalled     = 0;
   lovedCalled     = 0;
   tiredCalled     = 0;
  
  int redDest    = 194;
  int greenDest  = 254;
  int blueDest   =  0;
  
  
  goZero(redDest, greenDest, blueDest);
  
  
}

void goCalm() {
   sickCalled      = 0;
   calmCalled      = 1;
   sadCalled       = 0;
   angryCalled     = 0;
   energeticCalled = 0;
   happyCalled     = 0;
   lovedCalled     = 0;
   tiredCalled     = 0;
  
  int redDest    =  20;
  int greenDest  = 254;
  int blueDest   = 254;
  
  goZero(redDest, greenDest, blueDest);
  
  
}

void goSad() {
   sickCalled      = 0;
   calmCalled      = 0;
   sadCalled       = 1;
   angryCalled     = 0;
   energeticCalled = 0;
   happyCalled     = 0;
   lovedCalled     = 0;
   tiredCalled     = 0;
  
  int redDest    = 28;
  int greenDest  = 0;
  int blueDest   = 54;
  
  goZero(redDest, greenDest, blueDest);
  
  
}


void goAngry() {
   sickCalled      = 0;
   calmCalled      = 0;
   sadCalled       = 0;
   angryCalled     = 1;
   energeticCalled = 0;
   happyCalled     = 0;
   lovedCalled     = 0;
   tiredCalled     = 0;
  
  int redDest    = 232;
  int greenDest  =   0;
  int blueDest   =  0;
  
  goZero(redDest, greenDest, blueDest);
  
  
}


void goEnergetic() {
   sickCalled      = 0;
   calmCalled      = 0;
   sadCalled       = 0;
   angryCalled     = 0;
   energeticCalled = 1;
   happyCalled     = 0;
   lovedCalled     = 0;
   tiredCalled     = 0;
  
  int redDest    = 254;
  int greenDest  =  92;
  int blueDest   =   0;
  
  goZero(redDest, greenDest, blueDest);
  
  
}


void goHappy() {
   sickCalled      = 0;
   calmCalled      = 0;
   sadCalled       = 0;
   angryCalled     = 0;
   energeticCalled = 0;
   happyCalled     = 1;
   lovedCalled     = 0;
   tiredCalled     = 0;
  
  int redDest    = 254;
  int greenDest  = 254;
  int blueDest   =  32;
  
  goZero(redDest, greenDest, blueDest);
  
  
}


void goLoved() {
   sickCalled      = 0;
   calmCalled      = 0;
   sadCalled       = 0;
   angryCalled     = 0;
   energeticCalled = 0;
   happyCalled     = 0;
   lovedCalled     = 1;
   tiredCalled     = 0;
  
  int redDest    = 254;
  int greenDest  =  8;
  int blueDest   =  88;
  
  goZero(redDest, greenDest, blueDest);
  
  
}


void goTired() {
   sickCalled      = 0;
   calmCalled      = 0;
   sadCalled       = 0;
   angryCalled     = 0;
   energeticCalled = 0;
   happyCalled     = 0;
   lovedCalled     = 0;
   tiredCalled     = 1;
  
  int redDest    =  2;
  int greenDest  =  2;
  int blueDest   =  56;
  
  goZero(redDest, greenDest, blueDest);
  
  
}


void goZero(int destR, int destG, int destB) {

  int counter = 4;


  while((redVal + greenVal + blueVal) > counter + 1) {


    if(redVal   <= counter) { 
      redVal   = 1; 
    } 
    else { 
      redVal -= counter;   
    }
    if(greenVal <= counter) { 
      greenVal = 1; 
    } 
    else { 
      greenVal -= counter; 
    }
    if(blueVal  <= counter) { 
      blueVal  = 1; 
    } 
    else { 
      blueVal -= counter;  
    }

    analogWrite(redPin,    redVal);
    analogWrite(greenPin,  greenVal);
    analogWrite(bluePin,   blueVal);

  }

  goCurrent(destR, destG, destB);

  // if you go negatives with values they reverse like in a color wheel and go white.

}

void goCurrent(int destR, int destG, int destB) {
  int counter = 2;


  while(redVal+greenVal+blueVal < destR+destG+destB ) {



    if(redVal  >= destR) { 
      redVal   = destR; 
    } 
    else { 
      redVal += counter;   
    }

    if(greenVal  >= destG) { 
      greenVal   = destG; 
    } 
    else { 
      greenVal += counter;   
    }

    if(blueVal  >= destB) { 
      blueVal   = destB; 
    } 
    else { 
      blueVal += counter;   
    }


    analogWrite(redPin,    redVal); 
    analogWrite(greenPin,  greenVal);
    analogWrite(bluePin,   blueVal);


  }
}



byte checkPressed () {
 byte sick       = digitalRead(sickBtn     );
 byte calm       = digitalRead(calmBtn     );
 byte sad        = digitalRead(sadBtn      );
 byte angry      = digitalRead(angryBtn    );
 byte energetic  = digitalRead(energeticBtn);
 byte happy      = digitalRead(happyBtn    );
 byte loved      = digitalRead(lovedBtn    );
 byte tired      = digitalRead(tiredBtn    ); 
 
 if(sick      == 1) { return 1; }
 if(calm      == 1) { return 2; }
 if(sad       == 1) { return 3; }
 if(angry     == 1) { return 4; }
 if(energetic == 1) { return 5; }
 if(happy     == 1) { return 6; }
 if(loved     == 1) { return 7; }
 if(tired     == 1) { return 8; }
else {
  }
}


void setDestination() {
  Serial.print('X');
  delay(1100);
  Serial.print('+');  //debugging hello
  Serial.print('+');
  Serial.print('+');


  char thisByte = 0;
  while (thisByte != '\r') {
    thisByte = Serial.read(); 
  }


  Serial.print('A');
  Serial.print('T');
  Serial.print('I');
  Serial.print('D'); 
  Serial.print('2');
  Serial.print('5');
  Serial.print('8');
  Serial.print('2');
  Serial.print(',');

  Serial.print('M');
  Serial.print('Y');
  Serial.print('2');

  Serial.print(',');
  Serial.print('D');
  Serial.print('H');
  Serial.print('0');

  Serial.print(',');

  Serial.print('D');
  Serial.print('L');
  Serial.print('1');
  Serial.print(',');
  Serial.print('C');
  Serial.print('N');



  while (thisByte != '\r') {
    thisByte = Serial.read(); 
    Serial.print(thisByte);

  }
  Serial.print('\r');
  Serial.print('D'); 
  Serial.print('O'); 
  Serial.print('N'); 
  Serial.print('E'); 

}

Continue Reading

Back to Archive