Psychic Fortune Teller - en automat som läser hos Twitter (20 / 32 steg)
Steg 8: Techy - med hjälp av Arduino att göra en fysisk tryck på en knapp skicka en tweet
En sak som jag ville ha för den psykiska Fortune Teller var att det krävs en fysisk interaktion. Den har ett tangentbord behövs för inmatning av data, så jag kunde ha bara använt på returtangenten på det. Detta ansåg dock inte riktigt räcker för en nöjesplats/arcade typ upplevelse. Jag ville ha användaren att behöva göra en mycket mer självklart medveten handling att få deras förmögenhet berättade.Detta var klart var en händig Arduino alltid skulle vara lösningen!
Jag visste ganska snabbt att detta skulle vara en knapp. Så småningom bestämde jag mig på en god gammal Ringklocka...
Dörrklockan kretsen är mycket enkel
Den fullständiga Arduino skethc finns tillgänglig på GitHub här:
https: int l = (int (random (urls.size()))); github.com/rosemarybeetle/psychic-fortune-teller
Den samma Arduino skissen med några anteckningar visas nedan. Du kan se det är ganska enkelt. Det ser ut för en knapptryckning (som i kretsen ovan)
String url = urls.get(l);
Nästa rad är att definiera en variabel (switchPin) för att lagra ett heltal, som används för att definiera vilken analog kanal som ska användas.// <<<<<<
Nästa rad definierar en variabel om du vill visa som PIN en LED är knuten till//-------------
Nästa rad är initiering för variabeln analog ingång// >>>>> Put url somewhere random on the stage, with a random size and colour
Initialisera timer period...fill(255, 255, 0, 255);
Initiera en timer variabel...textSize(random(30, 40));
Initiera en andra jämförelse timer variabelntext(url, random(width)-widthRandomiser, random(panelTop)); //
Setup-funktionen... textSize(random(40, 45)); initialize the digital pin as an output. // >>>SEND WORD TO SCREEN ALSO WITH DIFFERENT SETTINGS the loop routine runs over and over again forever:// <<< SEND URL TO THE SCREEN
Göra en seriell anslutning på baud 114200...// >>> SENDs HASHTAG TO THE SCREEN WITH DIFFERENT SIZE
Skicka bekräftelsemeddelande över seriell USB-port. Detta används i testerSerial.write("Serial connection initiated")fill(255, 0, 0, 255);
pinMode(led, OUTPUT)text("#"+hashtag, random(width)-widthRandomiser, random (panelTop));
// <<< END SEND HASHTAG#
Den viktigaste loop funktionen...textSize(random(45, 60));
Nästa rad är att göra den Arduino checken för någon analog signal till analog stift 0...fill(255, 255);
Om doorbell trycks ner, blir indata till analoga pin 0 5V. Detta är lika med 1024. OM-uttrycket har en tröskel på 900 (ca 4.5V)text(word, random(width)-widthRandomiser, random (panelTop));
återställa första Timer variabeln (timerSend)// <<< END SEND WORD
Kontrollera om perioden mellan nu och senast återställa (timerSend-timerCheck) är större än standardperioden (timerPeriod)
Notera från början detta kommer att vara sant. Efter den första pressen man falska tills har gått. Detta förhindrar oavsiktlig flera skickar av seriella data som kan förorsaka spåkvinnan att försöka tala samma sak flera gånger// >>> SEND USERNAME TO SCREEN
Skicka det kodade meddelandet "fireTweet" till skriptet bearbetning över den seriella porten (USB)fill(0, 255, 22, 255);
En gång skickade reset variabeln check timer. Detta kommer att vara usd i kontrollen om att förhindra för tidigt refiringtimerCheck=millis()textSize(random(35, 45));
analogValue = 0text(" random(width)-widthRandomiser, random (panelTop)); // <<< END SEND USERNAME reset - this is used to ensure the value is reset after a successful release of the switch
// -------------- ADD ANY OTHER TRIGGERS HERE THAT COME FROM THIS INTERACTION
// following is for text boxes background.
tfUserCurrent=tf.getText() ; //check the text box content every loop
println ("tfUserCurrent= "+tfUserCurrent); // DEBUG STUFF
.