Twitter nämna Mood Light (2 / 7 steg)
Steg 2: Arduino
för användning som är med antingen:
twitterMentionMoodLight_processing
twitterMentionMoodLight_python
//
Generera en fredlig glöd tills någon på twitter nämner du.
//
Kräver en krets med: två knappar och en pwm rgb ledde ljus, och
3 motstånd på 220 ohm; 2 motstånd på 100 ohm; 2 motstånd på 10 k ohm.
//
Ropa till Tom Igoe, Adafruit, lurkers och msg styrelser överallt.
Läs mer på:
/*
#####################################################################
---TVÅ KNAPPAR OCH ETT LJUS---
Knappen en: Håll tills vitt ljus; Skickar ett meddelande till Twitter.
Ljus: Glöd fredligt tills under befäl av Twitter ändra.
Knappen två: Återställer ledde till peacefulGlow.
peacefulGlow() - humör ljuset standardtillstånd
mention() - någon har nämnt
buttonSend() - uppdatera Twitter status
buttonReset() - återgå till peacefulGlow()
--------------------------------------------------------------------
#####################################################################
*/
CONST int rButton = 10; återställningsknapp
int reset_btn_val = 0;
CONST int sButton = 11; Skicka knappen
int send_btn_val = 0;
Sträng state = "peacefulGlow";
int ledAnalogOne [] = {3, 5, 6}; PWM RGB LED stift
Analog LED 3 = redPin, 5 = greenPin, 6 = bluePin
Definierade färger
CONST byte svart [] = {0, 0, 0};
CONST byte vit [] = {255, 255, 255};
CONST byte [röd] = {255, 0, 0};
CONST byte grön [] = {0, 255, 0};
CONST byte blå [] = {0, 0, 255};
CONST byte [ORANGE] = {83, 4, 0};
CONST byte gul [] = {255, 255, 0};
CONST byte MAGENTA [] = {255, 0, 255};
void setup() {/ / börjar
Serial.BEGIN(9600);
pinMode (rButton, ingång);
pinMode (sButton, ingång);
för (int jag = 0; jag < 3; i ++) {/ / set 3 LED stift som resultat
pinMode (ledAnalogOne [i], produktionen);
}
}
void loop() {
listenToSerial();
buttonSend();
buttonReset();
setState(state);
}
void setState(String s) {
om (s == "peacefulGlow") peacefulGlow();
om (s == "nämner") mention();
}
void listenToSerial() {/ / Twitter kommandon anger här
int serialMsg = 0;
om (Serial.available()) {
serialMsg = Serial.read();
om (serialMsg == 1) state = "nämner"; bearbetning
om (serialMsg == 49) state = "nämner"; python
}
}
void buttonSend() {/ / Twitter inlägg skickas här
send_btn_val = digitalRead(sButton);
om (send_btn_val == hög) {
Serial.Print("#peacefulGlow");
Delay(200);
sent();
}
}
void buttonReset() {
reset_btn_val = digitalRead(rButton);
om (reset_btn_val == hög) {
State = "peacefulGlow";
}
}
void peacefulGlow() {
State = "peacefulGlow";
om (statligt == "peacefulGlow") {
fadeToColor (ledAnalogOne, röd, blå, 6);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
om (statligt == "peacefulGlow") {
fadeToColor (ledAnalogOne, blå, grön, 6);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
om (statligt == "peacefulGlow") {
fadeToColor (ledAnalogOne, grön, gul, 6);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
om (statligt == "peacefulGlow") {
fadeToColor (ledAnalogOne, gul, ORANGE, 6);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
om (statligt == "peacefulGlow") {
fadeToColor (ledAnalogOne, ORANGE, röd, 6);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
}
void mention() {
State = "nämner";
om (statligt == "nämner") {
fadeToColor (ledAnalogOne, röd, svart, 1);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
buttonReset();
om (statligt == "nämner") {
fadeToColor (ledAnalogOne, svart, röd, 0);
} annat {
setState(state);
}
listenToSerial();
buttonSend();
buttonReset();
}
void sent() {
setColor (ledAnalogOne, vit);
Delay(500);
}
// *************************************************************
*** FÄRG FUNGERAR - VIDRÖR INTE ***
{Ogiltig setColor (int * ledde, byte * färg)
för (int jag = 0; jag < 3; i ++) {
analogWrite (ledde [i], 255 - color[i]);
}
}
{Ogiltig setColor (int * ledde, const byte * färg)
byte tempByte [] = {
färger [0], färg [1], [2]};
setColor (led, tempByte);
}
void fadeToColor (int * ledde byte * startColor, byte * endColor, int fadeSpeed) {
int changeRed = endColor [0] - startColor [0];
int changeGreen = endColor [1] - startColor [1].
int changeBlue = endColor [2] - startColor [2].
int steg = max(abs(changeRed),max(abs(changeGreen), abs(changeBlue)));
för (int jag = 0; jag < steg; i ++) {
byte newRed = startColor [0] + (jag * changeRed / steg);
byte newGreen = startColor [1] + (jag * changeGreen / steg);
byte newBlue = startColor [2] + (jag * changeBlue / steg);
byte newColor [] = {newRed, newGreen, newBlue};
setColor (led, newColor);
Delay(fadeSpeed);
}
setColor (led, endColor);
}
void fadeToColor (int * ledde const byte * startColor, const byte * endColor, int fadeSpeed) {
byte tempByte1 [] = {startColor [0], startColor [1], startColor [2]};
byte tempByte2 [] = {endColor [0], endColor [1], endColor [2]};
fadeToColor (led, tempByte1, tempByte2, fadeSpeed);
}