Interactive Pikachu and Meowth from the makers of Furby, utilizing the same technology — these were never produced.

seen from United States
seen from United States
seen from Tunisia

seen from Canada
seen from United States
seen from China
seen from United States

seen from United States
seen from China

seen from United States
seen from China
seen from United States

seen from United States
seen from United States
seen from Malaysia
seen from Brazil
seen from United States
seen from United States
seen from China
seen from United States
Interactive Pikachu and Meowth from the makers of Furby, utilizing the same technology — these were never produced.
Final Code.
Below
ARDUINOARDUINOARDUINOARDIUNO
int flipperLpin = 2; int flipperRpin = 3; int feesLpin = 4; int feesBpin = 5; int workPin = 6; int startPin = 7; int returnPin = 8; int redlightPin = 9; int greenlightPin = 10; int mealPin = 11; int mealTop = 12; int mealMid = 13; int mealBot = 14; int left = LOW; int right = LOW; int little = LOW; int big = LOW; int work = LOW; int start = LOW; int returns = LOW; int red = LOW; int green = LOW; int meal = LOW; int mealCount = 3; void setup() { Serial.begin(9600); pinMode (flipperLpin, INPUT); pinMode (flipperRpin, INPUT); pinMode (feesLpin, INPUT); pinMode (feesBpin, INPUT); pinMode (workPin, INPUT); pinMode (startPin, INPUT); pinMode (returnPin, INPUT); pinMode (redlightPin, OUTPUT); pinMode (greenlightPin, OUTPUT); pinMode (mealPin, INPUT); pinMode (mealTop, OUTPUT); pinMode (mealMid, OUTPUT); pinMode (mealBot, OUTPUT); } void loop() { //start=digitalRead(startPin); //Serial.println(start); left = digitalRead(flipperLpin); if(left == HIGH) { Serial.println("a"); digitalWrite(redlightPin, HIGH); delay (10); digitalWrite(redlightPin, LOW); } right = digitalRead(flipperRpin); if(right==1){ Serial.println("b"); digitalWrite(redlightPin, HIGH); delay (10); digitalWrite(redlightPin, LOW); } little = digitalRead(feesLpin); if (little==1){ Serial.println("c"); digitalWrite(redlightPin,HIGH); delay(50); digitalWrite(redlightPin,LOW); delay(20); digitalWrite(redlightPin,HIGH); delay(40); digitalWrite(redlightPin,LOW); } big = digitalRead(feesBpin); if (big==1){ Serial.println("d"); digitalWrite(redlightPin,HIGH); delay(50); digitalWrite(redlightPin,LOW); delay(40); digitalWrite(redlightPin,HIGH); delay(20); digitalWrite(redlightPin,LOW); delay(10); digitalWrite(redlightPin,HIGH); delay(20); digitalWrite(redlightPin,LOW); } work = digitalRead(workPin); if (work==1){ Serial.println("e"); digitalWrite(greenlightPin, HIGH); //maybe make more elaborate, or Bw/oD... delay(70); digitalWrite(greenlightPin, LOW); delay (35); digitalWrite(greenlightPin, HIGH); delay(40); digitalWrite(greenlightPin, LOW); delay(25); digitalWrite(greenlightPin, HIGH); delay(20); digitalWrite(greenlightPin, LOW); } start = digitalRead(startPin); if(start==1){ Serial.println("f"); mealCount = 3; digitalWrite(9, HIGH); delay(500); digitalWrite(10, HIGH); delay (200); digitalWrite(10,LOW); delay(150); digitalWrite(10,HIGH); delay(200); digitalWrite (10,LOW); delay(200); digitalWrite(9,LOW); } returns = digitalRead(returnPin); if (returns==1){ Serial.println("g"); digitalWrite(redlightPin, HIGH); delay(100); digitalWrite(redlightPin, LOW); delay(30); digitalWrite(greenlightPin, HIGH); delay(10); digitalWrite(redlightPin, HIGH); delay(20); digitalWrite(redlightPin, LOW); delay(10); digitalWrite(greenlightPin, LOW); } meal = digitalRead(mealPin); if(meal == 1){ digitalWrite(mealTop, HIGH); digitalWrite(mealMid, HIGH); digitalWrite(mealBot, HIGH); delay(200); digitalWrite(mealTop, LOW); delay (200); digitalWrite(mealMid, LOW); delay (200); digitalWrite (mealBot, LOW); delay (150); digitalWrite(mealTop, HIGH); digitalWrite(mealMid, HIGH); digitalWrite(mealBot, HIGH); delay(150); digitalWrite(mealTop, LOW); delay (150); digitalWrite(mealMid, LOW); delay (150); digitalWrite (mealBot, LOW); mealCount = mealCount - 1; } //Serial.println(meal); // Serial.println(mealCount); if (mealCount == 3){ digitalWrite(mealTop, HIGH); digitalWrite(mealMid, HIGH); digitalWrite(mealBot, HIGH); } if (mealCount == 2){ digitalWrite(mealTop, LOW); digitalWrite(mealMid, HIGH); digitalWrite(mealBot, HIGH); } if (mealCount == 1){ digitalWrite(mealTop, LOW); digitalWrite(mealMid, LOW); digitalWrite(mealBot, HIGH); } if (mealCount == 0){ Serial.println ("h"); digitalWrite(mealTop, HIGH); digitalWrite(mealMid, HIGH); digitalWrite(mealBot, HIGH); digitalWrite(redlightPin, HIGH); delay(200); digitalWrite(mealTop, LOW); digitalWrite(redlightPin, LOW); delay (200); digitalWrite(mealMid, LOW); digitalWrite(redlightPin, HIGH); delay (200); digitalWrite (mealBot, LOW); digitalWrite(redlightPin, LOW); delay (150); digitalWrite(mealTop, HIGH); digitalWrite(mealMid, HIGH); digitalWrite(mealBot, HIGH); digitalWrite(redlightPin, HIGH); delay(150); digitalWrite(mealTop, LOW); digitalWrite(redlightPin, LOW); delay (150); digitalWrite(mealMid, LOW); digitalWrite(redlightPin, HIGH); delay (150); digitalWrite (mealBot, LOW); digitalWrite(redlightPin, LOW); mealCount = 3; } }
PROCESSINGPROCESSINGPROCESSINGPROCESSINGPROCESSING
import processing.serial.*; Serial myPort; int lf = 10; import ddf.minim.*; //for loadfile Minim minim; AudioPlayer player, aubell, auboo, aucash, auflip, aumeal, aulevel, auono, auwork, auww, auextra; int score = 10000; int debt = 0; int ball = 0; int meal = 3; float mChange = .11; float mVal = 0; float endTime = 0; float endPlus = 0; int endYears = 0; String scoreString; String debtString; String varstring; //for test// String ballstring; //for test// String endTimeString; //for test// String endPlusString; String debttString; //for endgame String endYearsString; int dex = 900; int dexx = 1600; int sex = 1; //for setting endTime uniquely int bark = 1; //for stopping sound uniquely char invar; void setup() { size(800,500); println(Serial.list()); myPort = new Serial(this, Serial.list()[0], 9600); myPort.bufferUntil(lf); minim = new Minim(this); player = minim.loadFile("pixLow.mp3"); aubell = minim.loadFile("bell.mp3"); auboo = minim.loadFile("boo.mp3"); aucash = minim.loadFile("cash.mp3"); auflip = minim.loadFile("drill.mp3"); aumeal = minim.loadFile("eat.mp3"); aulevel = minim.loadFile("grad.mp3"); auono = minim.loadFile("ono.mp3"); auwork = minim. loadFile("plause.mp3"); auww = minim.loadFile("aww.mp3"); auextra = minim.loadFile("ascent.mp3"); } void stop(){ minim.stop(); super.stop(); } void draw() { background(0,0,0); ballstring = str(ball); //for test textSize(20); fill(250,180,6); text(ballstring,5,20); if(ball==0){ textSize(169); fill(250,180,6); text("DEBT!", 160, 250); textSize(32); text("(the pinball machine)", 300, 300); endPlus = second(); //if(endPlus%2 == 1){ textSize(20); fill(180,140,0); text("Press Start", 330,360); //} textSize(14); text("Created by Jordan Sjol", 610,470); score = 10000; //reset the score, debt, & matriculation status debt = 0; mVal = 0; meal = 3; bark = 1; invar = myPort.readChar(); switch(invar){ case 'f': ball=ball+1; myPort.clear(); } } if((1<=ball && ball<=3)||(ball==4 && mVal>=450)){ player.play(); textSize(35); fill(250,168,3); text("Balance", 300, 300); textSize(24); text("Debt", 100, 300); scoreString = str(score); text(scoreString, 300, 350); debtString = str(debt); text(debtString, 100, 360); textSize(39); text("Debt!", dex, 80); dex = dex - 3; if (dex<=-600){ dex=900; } textSize(32); text("(the pinball machine)", dex + 240, 80); text("Debt!", dexx, 80); dexx = dexx - 3; if (dexx<=-600){ dexx=900; } textSize(32); text("(the pinball machine)", dexx + 240, 80); textSize(18); text("Matriculation Timeline", 120, 450); textSize(12); text("by Jordan Sjol", 710,20); rectMode(CORNER); fill(100,40,3); rect(100,460,600,20); stroke(0); fill(255,190,8); rect(100,459,mVal,21); if(mVal<=600){ mVal=mVal+mChange; } if((mVal == 150)||(mVal == 300)){ aulevel.play(); } noStroke(); fill(220,108,3); rect(250,460,4,20); rect(400,460,4,20); rect(550,460,4,20); if(mVal>=450){ textSize(20); text("Extra Ball", 575, 450); auextra.play(); //extra ball sound } if(mVal>=600){ aubell.play(); textSize(25); text("Graduation!", 555, 300); } invar = myPort.readChar(); // varstring = str(invar); //for test //text(varstring, 500, 100); switch(invar){ case 'a': score = score - 231; auflip.play(); break; case 'b': score = score -232; auflip.play(); break; case 'c': score = score - 1680; aucash.play(); break; case 'd': score = score -5080; auono.play(); break; case 'e': score = score +7861; auwork.play(); break; /* case 'f': ball = ball+1; break; */ case 'g': ball=ball+1; auww.play(); endTime=second(); break; case 'h': meal = meal - 1; if((meal==2)||(meal==1)){ aumeal.play(); } if(meal == 0){ score = score - 13436; auono.play(); meal = 3; } break; } if(score<=0){ score=score+10000; debt=debt+10099; } myPort.clear(); } if((ball==4 && mVal<450) || ball>=5){ if(bark==1){ minim.stop(); bark = 3; } //stop audio background(0,0,0); if(sex == 1){ endTime = second(); sex=69; } endPlus = second(); textSize(120); text("GAME OVER", 20, 170); //play "game over" audio if(endPlus-endTime >1){ textSize(37); if(mVal>=600){ text("You Graduated", 150, 200); } if(mVal<600){ text("You Dropped Out", 150, 200); auboo.play(); } } if(endPlus-endTime > 3){ textSize(42); text("Your Total Debt:", 15, 340); } if(endPlus-endTime > 4){ debttString = str(debt-score); text(debttString, 370, 340); } /* endTimeString = str(endTime); endPlusString = str (endPlus); text(endTimeString, 500, 200); text(endPlusString, 500, 250); */ if(endPlus-endTime > 5.5){ text("MATCH", 15, 410); } if (endPlus-endTime > 6.0){ endYears = (debt-score)/760; endYearsString = str(endYears); text(endYears, 195, 406); text("years",280,410); } if (endPlus-endTime > 7.0 /*&& endPlus%2 == 1*/){ textSize(30); text("press start", 610, 470); } //final noise invar = myPort.readChar(); switch(invar){ case 'f': sex = 1; ball = 0; } } }
Electronic Tattoo Concept Video by Philips - One of Many Possible Future Direct Human/Electronics Interactions








