Étape 4: Programmation le LilyPad
Une fois que le système est mis en place avec pinces crocodiles et tous correctement raccordé, le code doit être implémenté dans le LilyPad afin que l’information peut être transformée en une manière interprétable.Téléchargez le code depuis le lien ci-dessous :
-La lecture du capteur est juste quelque chose qui va lire le capteur et écrire la valeur. Vous pouvez utiliser ceci pour tester votre capteur flex.
https://IU.Box.com/s/69miroptlyszumy7ae7r
Voici les parties importantes du code qui rend ce système de travail. Vous pouvez apporter des modifications à eux pour faire fonctionner le mieux pour vous le code.
Cette partie du code inclut les fonctions de l’EEPROM et le serial afin que vous puissiez lire les données et l’afficher sur votre ordinateur.
#include < EEPROM.h >
#include < SoftwareSerial.h >
Cette partie du code est essentielle car il permet le lilypad sais quoi épingles les capteurs sont branchés et comment traiter chaque capteur.
void setup()
{
pinMode (vibrateur, sortie) ;
pinMode (flex_sensor_1, entrée) ;
pinMode (bouton, entrée) ;
digitalWrite (bouton, HIGH) ;
}
La présente partie du code raconte le lilypad que le dispositif doit être ce que nous appelons, le mode « off ». Il a ensuite le lilypad attendre jusqu'à ce que le bouton est enfoncé. Sans le délai, lorsque vous appuyez sur le bouton à la fin de la journée, il désactive votre appareil et rallumer avant d’avoir le temps de prendre votre doigt sur le bouton.
Si (button_pressed == 0)
{
Val = 0 ;
Delay(1000) ;
puissance = digitalRead(button) ;
Si (puissance == faible)
{
button_pressed = button_pressed + 1 ;
}
}
Cette partie du code est ce que nous appelons le mode « on ». Après que le bouton est enfoncé pour la première fois, l’appareil s’allume et commencer à lire le capteur flex.
ElseIf (button_pressed == 1)
{
int sensor_1 = analogRead(flex_sensor_1) / 4 ;
}
Ces deux lignes de code sont ce qui définissent ce que nous avons considérée comme bonne et la mauvaise posture. La première ligne est mauvaise posture et le second est une bonne posture.
Si ((sensor_1 < 115) || (sensor_1 > 130))
Si ((sensor_1 > 115) & & (sensor_1 < 130))
Active le moteur de vibration en mauvaise posture, puis des retards pendant une seconde donnant à l’utilisateur suffisamment de temps pour s’ajuster.
digitalWrite (vibrateur, HIGH) ;
Delay(1000) ;
Cette partie du code indique le périphérique que faire lorsque le bouton est enfoncé une seconde fois. Il vérifie pour s’assurer qu’il est écrit les données correctes à l’adresse correcte pour l’EEPROM et s’assure que les données qu’il est écrit soient valides. Puis il retourne l’appareil à la mode "arrêt". Ce code apparaît dans deux distincts si les instructions pour vous assurer que le dispositif peut être désactivé si la personne est assise avec bonne posture ou non.
Si (button_pressed == 2)
{
Si (addr > = 7)
{
addr = 0 ;
Si (val < 256)
{
EEPROM.write (addr, val) ;
addr = addr + 1 ;
button_pressed = 0 ;
}
}
ElseIf (addr < = 6)
{
Si (val < 256)
{
EEPROM.write (addr, val) ;
addr = addr + 1 ;
button_pressed = 0 ;
}
}
}
Cette partie du code indique le numéro de série qu’à afficher pour chaque adresse. Adresse zéro est lundi, portent sur un mardi, et ainsi de suite. Affichent les lignes imprimées pour chaque jour de la semaine et les données seront stockées pendant sept jours seulement.
Si (adresse == 0)
{
valeur = EEPROM.read(address) ;
Si (valeur == 255)
{
Serial.Print ("vous ne portez pas votre chemise lundi.") ;
Serial.Print("\n") ;
adresse = adresse + 1 ;
}
d’autre
{
Serial.Print ("vous avez eu la mauvaise posture") ;
Serial.Print(value) ;
Serial.Print ("times lundi de cette semaine.") ;
Serial.Print("\n") ;
total = value ;
adresse = adresse + 1 ;
}
}