Stap 4: Programmeren de LilyPad
Nadat het systeem is ingesteld op de plaats met de alligator clips en alle correct aangesloten, moet de code worden uitgevoerd in de LilyPad zodat de informatie kan worden verwerkt in een interpreteerbare manier.Download de code van de link hieronder:
-De sensorgegevens is gewoon iets dat leest de sensor en schrijf de waarde. U kunt dit gebruiken om te testen uw flex-sensor.
https://IU.Box.com/s/69miroptlyszumy7ae7r
Dit zijn belangrijke delen van de code waarmee dit systeem werken. U kunt wijzigingen aanbrengen aan hen om de code beter werken voor u maken.
Dit deel van de code bevat de EEPROM-functie en de seriële functie, zodat u kunt de gegevens lezen en weer te op uw computer geven.
#include < EEPROM.h >
#include < SoftwareSerial.h >
Dit deel van de code is van essentieel belang als het laat de lilypad weet wat pinnen de sensoren worden aangesloten en hoe te behandelen elke sensor.
VOID Setup
{
pinMode (vibrator, OUTPUT);
pinMode (flex_sensor_1, INPUT);
pinMode (button, INPUT);
digitalWrite (knop, hoge);
}
Dit deel van de code vertelt de lilypad dat het apparaat worden moet in wat we noemen, de "off"-modus. Het heeft vervolgens de lilypad wachten totdat de knop is ingedrukt. Zonder de vertraging, wanneer u de knop aan het einde van de dag, het apparaat wordt uitgeschakeld en daarna weer in voordat je tijd hebt om het nemen van uw vinger op de knop.
Als (button_pressed == 0)
{
Val = 0;
delay(1000);
macht = digitalRead(button);
Als (macht == laag)
{
button_pressed = button_pressed + 1;
}
}
Dit deel van de code is wat wij noemen de "on"-modus. Nadat de knop wordt ingedrukt voor de eerste keer, zal het apparaat inschakelen en beginnen met het lezen van de flex-sensor.
anders als (button_pressed == 1)
{
int sensor_1 = analogRead(flex_sensor_1) / 4;
}
Deze twee coderegels zijn wat definiëren wat we hebben beschouwd als goede en slechte houding. De eerste regel is slechte houding en de tweede is goede houding.
Als ((sensor_1 < 115) || (sensor_1 > 130))
Als ((sensor_1 > 115) & & (sensor_1 < 130))
Hiermee schakelt u de motor trillingen bij slechte houding en vervolgens vertragingen gedurende één seconde de drager voldoende tijd te geven om zelf.
digitalWrite (vibrator, hoge);
delay(1000);
Dit deel van de code vertelt het apparaat wat te doen wanneer de knop wordt ingedrukt een tweede keer. Wordt gecontroleerd om ervoor te zorgen dat het de juiste gegevens naar het juiste adres voor de EEPROM wegschrijft en ervoor zorgt dat de gegevens die het schrijven geldig is. Is resultaat het van het apparaat naar de uitstand. Deze code wordt weergegeven in twee afzonderlijke als verklaringen om ervoor te zorgen dat het apparaat kan worden uitgeschakeld of de persoon met een goede zit houding of niet.
Als (button_pressed == 2)
{
Als (addr > = 7)
{
addr = 0;
Als (val < 256)
{
EEPROM.write (addr, val);
addr = addr + 1;
button_pressed = 0;
}
}
anders als (addr < = 6)
{
Als (val < 256)
{
EEPROM.write (addr, val);
addr = addr + 1;
button_pressed = 0;
}
}
}
Dit deel van de code vertelt de seriële wat moet worden weergegeven voor elk adres. Adres nul is maandag, een dinsdag, enzovoort. De afgedrukte lijnen worden weergegeven voor elke dag van de week en de gegevens zullen worden opgeslagen voor slechts zeven dagen.
Als (adres == 0)
{
waarde = EEPROM.read(address);
Als (waarde 255 ==)
{
Serial.Print ("u niet dragen uw shirt maandag.");
Serial.Print("\n");
adres = adres + 1;
}
anders
{
Serial.Print ("je had slechte houding");
Serial.Print(Value);
Serial.Print ("times op maandag van deze week.");
Serial.Print("\n");
totaal = waarde;
adres = adres + 1;
}
}