Kjol Full av stjärnor - Motion reaktiva kjol med fiberoptik (9 / 12 steg)
Steg 9: Programmera mikrokontroller
Om du inte är bekant med programmering en lilypad, skulle jag föreslå att ta en titt på Leah Buechley utmärkt material på ansluter lilypad, Konfigurera programvaran arduinooch programmering en lilypad.
Program för styrelsen med koden nedan. När du har koden laddas, bör lysdioderna lyser upp och börja svara på förflyttningar av accelerometern.
--Begin kod
/*
* Kjol Full av stjärnor
*
* Använder en LilyPad Arduino och accelerometer för att kontrollera färgen på RGB-lysdioder
* Som är sydda i linningen på en kjol med fiberoptik
* Handledning finns på http://StarSkirt.PolymathDesignLab.com
*
* Designad av Shannon Henry, kinesisk Design Lab
*/
int sensorValueX; variabler att hålla accelerometer data
int sensorValueY;
int sensorValueZ;
int acceleroX = 0; analoga kronblad som accelerometer X coord behandlingen är knuten till
int acceleroY = 1; analoga kronblad som accelerometer Y coord behandlingen är knuten till
int acceleroZ = 2; analoga kronblad som accelerometer Z coord behandlingen är knuten till
int adjustedX; variabler att hålla mappas värden för generera färg
int adjustedY;
int adjustedZ;
int redTab = 4; kronblad bifogas röd LED bly
int blueTab = 2; kronblad bifogas blå LED bly
int greenTab = 3; kronblad bifogas gröna LED bly
void initializeRGB(void)
{
pinMode (redTab, produktionen);
pinMode (blueTab, produktionen);
pinMode (greenTab, produktionen);
analogWrite (redTab, 0);
analogWrite (blueTab, 0);
analogWrite (greenTab, 0);
}
void setup() {
Serial.BEGIN(9600); initiera serieporten så att du kan kommunicera med datorn
}
void loop() {
sensorValueX = analogRead(acceleroX); Läs accelerometer data
sensorValueY = analogRead(acceleroY);
sensorValueZ = analogRead(acceleroZ);
adjustedX = karta (sensorValueX, 400, 650, 0, 255); kartor sensor värdet på intervallet 1-255 att korrespondera med färgvärden
adjustedY = karta (sensorValueY, 400, 600, 0, 255); Att kalibrera - avkommentera serial.println koden nedan, och
adjustedZ = karta (sensorValueZ, 430, 650, 0, 255); justera 2 startvärdena för att återspegla utbud av avläsningar fick kalibrering
Serial.println(adjustedX); Skicka sensordata till datorn så du kan kalibrera RGB LED visar
Serial.println(adjustedY); //
Serial.println(adjustedZ); //
Serial.println(); kommentera ut de Serial.println linjerna igen när färgkalibrering är klar
Delay(5); mycket kort fördröjning
analogWrite (redTab, adjustedX); Visa färgen
analogWrite (blueTab, adjustedY);
analogWrite (greenTab, adjustedZ);
}