larry-in the closet…
This is Larry, he lives in the closet but he wants to “come out”. He has 8 different states of emotion which would be triggered if certain(14 !!) scenarios are active.
Larry has dementia, his memory resets it self every 12 hours.
He cannot stand to be out for so long because he is socially awkward. The user has to give him a balanced attention to keep him content.
If he doesn’t get enough attention he cuts his wrists and blames the user for it.
/*hilal koyuncu*//*in the closet*//*February 2011*/ //classes//#include "ST7565.h" //variables// int sensorPin = 0;int speaker = 10; int sensorValue = 0;int sensorMin = 1023;int sensorMax = 0; int timer = 0; int lapse = 10000; int counter = 0; boolean giveattitude;boolean twentyfour;boolean twentyseven; boolean Iminacoma;boolean begroggy;boolean getinacoma;boolean crybaby;boolean life;boolean d;//dead demekint stage=0;int mood=0;boolean blank=false;boolean twenty;boolean Iamgroggy;boolean twentyeight; // the LCD backlight is connected up to a pin so you can turn it on & off#define BACKLIGHT_LED 10 // pin 9 - Serial data out (SID)// pin 8 - Serial clock out (SCLK)// pin 7 - Data/Command select (RS or A0)// pin 6 - LCD reset (RST)// pin 5 - LCD chip select (CS)ST7565 glcd(9, 8, 7, 6, 5); #define LOGO16_GLCD_HEIGHT 16#define LOGO16_GLCD_WIDTH 16 void setup() { Serial.begin(9600); Serial.print(freeRam()); // turn on backlight pinMode(BACKLIGHT_LED, OUTPUT); digitalWrite(BACKLIGHT_LED, HIGH); // initialize and set the contrast to 0x18 glcd.begin(0x18); glcd.display(); // show splashscreen delay(2000); glcd.clear();} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////run program//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void loop(){ //sensor variables start// // read the sensor: sensorValue = analogRead(sensorPin); // apply the calibration to the sensor reading sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 2); // in case the sensor value is outside the range seen during calibration sensorValue = constrain(sensorValue, 0, 2); life=true; //to kill him if he is abused// if (millis()-timer>=lapse){ counter++; timer=millis(); blank=true; test(); Serial.println("test"); } //test ends }//loop ends// //////////////////////evaluate mood//////////////////////////////////// void test(){ blank=false; stage++; //keep track of time period// if(sensorValue > 0) { mood++; }else{ mood--; } Serial.println(mood); Serial.println(stage); Serial.println(sensorValue); ///emotional response starts// ///1// if(stage==4 && mood==4 && sensorValue>0){ dead(); delay(1000); Serial.println("mood 1"); }// //2// if(stage==4 && mood==0 && sensorValue>0 && twentyeight==false){ dead(); delay(1000); Serial.println("mood 2"); }// //3// if(stage==4 && mood==2 && sensorValue>0){ dead(); delay(1000); Serial.println("mood 3"); }// ///4/// else if(stage==3 && mood==-3 ){ dead(); delay(1000); Serial.println("mood 4"); }// ///5/// else if( stage==2 && mood==-2 && sensorValue<1){ coma(); begroggy=true; delay(1000); Serial.println("mood 5"); }// ///6/// else if( stage==1 && mood==-1){ crying(); delay(1000); Serial.println("mood 6"); }// ///7/// else if( stage==3 && mood==-1 && sensorValue>0 ){ groggy(); Iamgroggy=true; delay(1000); Serial.println("mood 7"); }// ///8/// else if( stage==1 && mood==1){ happy(); getinacoma=true;//to enable him to get in a coma when he feels like it or in case he wants to cry at stage 3// delay(1000); Serial.println("mood 8"); } ///9/// else if( stage==4 && mood==0 && twentyfour==false && begroggy==false && twentyeight==false && giveattitude==false){ happy(); delay(1000); Serial.println("mood 9"); }// ///10/// else if( stage==3 && mood==1 && sensorValue>0 && giveattitude==false){ happy(); crybaby=true; delay(1000); Serial.println("mood 10"); }// ///11// else if( stage==3 && mood==3){ coma();// delay(1000); Serial.println("mood 11"); }//12// else if( stage==3 && mood==-1 && sensorValue<1 && giveattitude==false){ crying();// twenty=true; delay(1000); Serial.println("mood 12"); } //13// else if( stage==2 && mood==0 && sensorValue>0){ attitude(); giveattitude=true; delay(1000); Serial.println("mood 13"); }// // 14// else if( stage==3 && mood==1 && giveattitude==true && sensorValue>0){ pissed(); delay(1000); Serial.println("mood 14"); } ///15/// else if( stage==3 && mood==-1 && sensorValue<1){ happy(); twentyeight=true; delay(1000); Serial.println("mood 15"); } //16// else if( stage==4 && mood==0 && sensorValue>0 && Iamgroggy==false && twentyeight==false){ coma(); delay(1000); Serial.println("mood 16"); }//17// else if( stage==2 && mood==0 && sensorValue<1){ happy(); delay(1000); Serial.println("mood 17"); }//18// else if( stage==4 && mood==-2 && giveattitude==true && sensorValue<1){ attitude(); delay(1000); Serial.println("mood 18"); }//19// else if( stage==2 && mood==2 && sensorValue>0 &&getinacoma==true ){ crying(); twentyseven=true; delay(1000); Serial.println("mood 19"); } //20// else if( stage==4 && mood==-2 && sensorValue<1 && Iamgroggy==false && twentyeight==false){ attitude(); delay(1000); Serial.println("mood 20"); } //21// else if( stage==4 && mood==0 && twentyfour==true && sensorValue<1){ pissed(); delay(1000); Serial.println("mood 21"); } //22// else if( stage==4 && mood==2 && crybaby==true && sensorValue>0 && giveattitude==false){ crying(); delay(1000); Serial.println("mood 22"); } //23// else if( stage==4 && mood==2 && sensorValue>0 && giveattitude==false){ happy(); delay(1000); Serial.println("mood 23"); }//24// else if( stage==4 && mood==2 && sensorValue<1){ groggy(); delay(1000); Serial.println("mood 24"); }//25// else if( stage==4 && mood==0 && giveattitude==true && sensorValue<1 ){ happy(); delay(1000); Serial.println("mood 25"); }//26// else if( stage==3 && mood==1 && twentyseven==true && sensorValue<1){ attitude(); twentyfour=true; delay(1000); Serial.println("mood 26"); }//27// else if( stage==4 && mood==-2 && giveattitude==false && sensorValue<1){ happy(); delay(1000); Serial.println("mood 27"); }//28// else if( stage==4 && mood==0 && sensorValue>0){ happy(); delay(1000); Serial.println("mood 28"); } ///check for threshold values of mood to reset his memory or end his life// ///blank out, amnesia.../// else if(mood >4) { stage=0; mood=0; blank=true; // // dead(); } else if(stage>=4) { stage=0; mood=0; blank=true; // dead(); } ///commit suicide/// else if(mood < -1){ stage=0; mood=0; dead(); blank=true; } }//test end// //////////////////////////////////////////////////////////// /////////////////////////////Act!!!!!//////////////////////////////////// void happy (){ Serial.println(""); glcd.drawstring(0,0," I'm your biggest fan I'll follow you untilyou love me, Papa-paparazzi"); glcd.display(); delay(1000); glcd.clear(); tone (speaker, 2217); delay(400); noTone(speaker); tone (speaker, 2484); delay(200); noTone(speaker); delay(400); tone (speaker, 2217); delay(400); noTone(speaker); tone (speaker, 2484); delay(200); noTone(speaker); delay(200); tone (speaker, 3322); delay(500); tone (speaker, 2637); delay(300); noTone(speaker); } void crying(){ Serial.println("crying");// glcd.drawstring(0,3, "Freeeeedom.."); glcd.display(); delay(1000); glcd.clear(); ///sound// int freq = 800; int direc = 10; for(int x=0; x < 400; x++) { freq -= 1; tone(speaker, freq); delay(10); } } void coma(){ Serial.println(" coma"); glcd.drawstring(0,3, "I...can't....breath.."); glcd.display();//delay(1000); glcd.clear(); int freq = 800; int direc = 10; for(int x=0; x < 400; x++) { freq += 1; tone(speaker, freq); delay(10); } noTone(speaker); } void attitude(){ Serial.println("attitude"); glcd.drawstring(0,3, "so you're back from outer space..."); glcd.display();//delay(1000); glcd.clear(); for(int x=0; x < 500; x++) { float freq= random(790,800); tone(speaker, freq); delay(10); } noTone(speaker); } void groggy(){ Serial.println("groggy"); //sound// for(int x=0; x < 800; x++) { float freq= random(400,800); tone(speaker, freq); delay(10); } noTone(speaker); ///sound end// glcd.drawstring(0,3, "..Show me the way to the next whicky bar..oh dont adk why "); glcd.display();//delay(1000); glcd.clear(); } void pissed(){ Serial.println("pissed"); glcd.drawstring(0,3, "Well I'm here to remind you, of the mess you left when you went away "); glcd.display(); delay(1000); glcd.clear(); //sound starts// for(int x=0; x < 500; x++) { tone(speaker, 1200); delay(10); } noTone(speaker); //sound starts// } void dead(){ Serial.println("dead"); glcd.drawstring(0,3, " Dear Assh*le, I am leaving you this note to let you know that, I am cutting my wrists because of you. Best, Your Toy"); delay(1000); glcd.display(); glcd.clear(); //sound starts// noTone(speaker); tone(speaker, 1200); delay(100); noTone(speaker); delay(1000); tone(speaker, 1200); delay(100); noTone(speaker); delay(1000); tone(speaker, 1200); delay(100); noTone(speaker); delay(1000); tone(speaker, 1200); delay(100); delay(1000); noTone(speaker); tone(speaker, 1200); delay(100); delay(1000); noTone(speaker); tone(speaker, 1200); delay(100); delay(1000); noTone(speaker); tone(speaker, 1200); delay(100); delay(1000); noTone(speaker); delay(1000); tone(speaker, 1200); delay(1000); //sound ends// blank=true; life=false; } /////////////////////////////////////////////////// stuff that you don't f wiht starts at this point///////////////////////////////////// int freeRam(void) { extern int __bss_end; extern int *__brkval; int free_memory; if((int)__brkval == 0) { free_memory = ((int)&free_memory) - ((int)&__bss_end); } else { free_memory = ((int)&free_memory) - ((int)__brkval); } return free_memory; } #define NUMFLAKES 10 #define XPOS 0 #define YPOS 1 #define DELTAY 2 void testdrawchar(void) { for (uint8_t i=0; i < 168; i++) { glcd.drawchar((i % 21) * 6, i/21, i); } }
makingtoys 3:27 am on February 18, 2011 Permalink |
code goes into “read more” section of your post. please edit the post to that format.