Kroppshållning medvetenhet Sensor (4 / 11 steg)
Steg 4: Programmering av LilyPad
När systemet är inställt på plats med alligator clips och alla korrekt ansluten, måste koden genomföras i LilyPad så att informationen kan bearbetas till ett interpretable sätt.
Hämta koden från länken nedan:
-Sensor läsningen är bara något som kommer att läsa sensorn och skriva värdet. Du kan använda detta för att testa din flex sensor.
https://IU.Box.com/s/69miroptlyszumy7ae7r
Detta är viktiga delar av koden som gör detta system fungerar. Du kan göra ändringar till dem för att göra koden fungerar bättre för dig.
Denna del av koden innehåller funktionen EEPROM och seriell-funktionen så att du kan läsa data och Visa den på din dator.
#include < EEPROM.h >
#include < SoftwareSerial.h >
Denna del av koden är viktigt eftersom det låter lilypad vet vad stift sensorerna ansluts till och hur man behandlar varje sensor.
void setup()
{
pinMode (vibrator, produktionen);
pinMode (flex_sensor_1, ingång);
pinMode (knapp, indata);
digitalWrite (knappen, hög);
}
Denna del av koden berättar lilypad som enheten ska vara i vad vi kallar, "off"-läge. Den har sedan lilypad vänta tills knappen trycks. Utan dröjsmål, när du trycker på knappen i slutet av dagen, det stängs enheten av och sedan tillbaka på innan du hinner ta fingret från knappen.
om (button_pressed == 0)
{
Val = 0;
Delay(1000);
Power = digitalRead(button);
om (power == låg)
{
button_pressed = button_pressed + 1.
}
}
Denna del av koden är vad vi kallar den "på" läget. När knappen trycks för första gången, kommer att enheten slå på och börja läsa flex sensorn.
annat if (button_pressed == 1)
{
int sensor_1 = analogRead(flex_sensor_1) / 4;
}
Dessa två kodrader är vad definierar vad vi har anses vara bra och dåliga hållning. Den första raden är dålig hållning och andra är god hållning.
om ((sensor_1 < 115) || (sensor_1 > 130))
om ((sensor_1 > 115) & & (sensor_1 < 130))
Aktiverar vibration motor när i dålig hållning och sedan förseningar för en sekund att ge bäraren tillräckligt med tid att anpassa sig själva.
digitalWrite (vibrator, hög);
Delay(1000);
Denna del av koden berättar enheten vad göra när knappen trycks en andra gång. Kontrolleras för att se till att det är skriver rätt data till rätt adress för EEPROM och ser till att data det skriver är giltig. Sedan returnerar enheten till avstängt läge. Denna kod visas i två separata om uttalanden att se till att enheten kan stängas av om personen sitter med bra hållning eller inte.
om (button_pressed == 2)
{
om (addr > = 7)
{
addr = 0;
om (val < 256)
{
EEPROM.write (addr, val);
addr = addr + 1.
button_pressed = 0;
}
}
annars om (addr < = 6)
{
om (val < 256)
{
EEPROM.write (addr, val);
addr = addr + 1.
button_pressed = 0;
}
}
}
Denna del av koden berättar följetongen vad som ska visas för varje adress. Adress noll är måndag är adressen en tisdag, och så vidare. Tryckta raderna visas för varje dag i veckan och data kommer att lagras i endast sju dagar.
om (adress == 0)
{
värde = EEPROM.read(address);
om (värde == 255)
{
Serial.Print ("du inte bära skjortan på måndagen.");
Serial.Print("\n");
Adress = adress + 1.
}
annat
{
Serial.Print ("du hade dålig hållning");
Serial.Print(Value);
Serial.Print ("gånger på måndags.");
Serial.Print("\n");
Total = värde;
Adress = adress + 1.
}
}