mercredi 20 juin 2012

-13- Le système YaZo - l'aspect logiciel - Versions 5 à 8, 9 et 10

Licence Creative Commons
Le Système YaZo de PapyDeYannis est mis à disposition selon les termes de la licence Creative Commons Paternité - Partage à l'Identique 3.0 non transposé.
Les autorisations au-delà du champ de cette licence peuvent être obtenues à PapyDeYannis@gmail.com.

Début : -1- 941 jours
Article précédent :-12- Le système YaZo : L'aspect logiciel- versions 1 à 4
 Article suivant :-14- Le systeme YaZo- l'aspect logiciel-la version11
Statistiques

L'aspect logiciel, versions 05 à 08, versions 09 et 10


Les versions logicielles 1 à 4 sont fonctionnelles, mais un problème génant subsiste : Il est fréquent de voir un véhicule en stationnement avec à son bord un enfant dans son siège et un adulte dans la voiture. Dans ce cas l'alarme doit rester muette, l'enfant n'étant pas seul. Il faut donc trouver un moyen permettant à la fois d'assurer une surveillance sans déclencher l'alarme extérieure. C'est le but des versions 5 à 8. Ces 4 versions sont les homologues des versions 1 à 4 et seront donc étudiées ensemble.

Les versions 05 à 08

Le listing de la version 5 est visible ici.
Le listing de la version 6 est visible ici.
Le listing de la version 7 est visible ici.
Le listing de la version 8 est visible ici.


Pour permettre une surveillance continue sans déclenchement intempestif de l'alarme exterieure, il est nécessaire d'indiquer au système, d'une manière simple, la présence d'un adulte dans le véhicule. À ma connaissance il est impossible de déterminer sans ambiguité la présence d'un être vivant en plus de l'enfant dans le véhicule. Un dispositif trés simple, mais nécessitant l'intervention du conducteur est donc nécessaire. Nous l'appllerons "mode degrade" .
Cette intervention du conducteur doit être :
  • Simple
  • Être possible uniquement à un moment bien déterminé pour éviter toute action involontaire.
  • Être possible, pour la même raison, pendant un temps court.
De plus, la surveillance doit être maintenue, et l'alarme rendue à son usage initial si certaines conditions ne sont pas remplies.
Le choix retenu consiste , juste aprés avoir stoppé le véhicule, à remettre le contact pendant une durée comprise entre 1 et 2 secondes, cette action n'étant possible que durant les 5 secondes suivant le bip émis sur le buzzer juste aprés l'arrêt de la voiture.
Si "le mode dégradé"  est actionné, l'alarme extèrieure est rendue muette.
À partir de ce moment, la surveillance est efectuée comme auparavant si le siège est occupé, mais la température est surveillée par une mesure toutes les 3 minutes . Tant que cette mesure donne une valeur inférieure à une température maximum (fixée ici à 32°C) rien ne se passe. Si la température dépasse ce seuil, un bip sonore est émis sur le buzzer à l'attention de l'adulte présent. Si le bip a été émis 3 fois, le système repasse en mode normal et l'alarme extérieure est ré-activée, ceci afin de s'affranchir d'un comportement irresponsable du conducteur qui aurait utilisé ce mode pour rendre muet le système en laissant seul l'enfant dans son siège.

Pour ce faire on a créé une variable booléene degrade qui a la valeur false en mode normal et la valeur true si ce mode a été activé.
Pour différencier ce mode du mode normal, on a rajouté la fonction BlinkLed() qui permet de faire clignoter la Led rouge au rythme de 1200ms ON et 800ms OFF en mode normal, alors que la Led rouge est allumée fixement en mode dégradé.(Sur le listing, je viens de constater que dans cette fonction la période ON est de 1800ms , ce qui est une erreur , cela ne changeant rien au principe).
En cas de dépassement par 3 fois de la température maximum, la variable degrade reprend sa valeur d'origine, à savoir false.

La version 09

Le listing de la version 09 est visible ici.

Cette version est une amélioration du fonctionnement , mais ne change rien au principe étudié dans les versions précédentes.
Dans les versions 1 à 8 , les temporisations sont de l'ordre de quelques secondes(2s)  à quelques minutes.
Ce n'est en rien génantdans la mesure où tous les évenements surveillés sont longs. Malgré tout, l'instruction Arduino delay() bloque toute action du logiciel pendant son exécution.
Toutes les temporisations ont donc été  découpées en temporisations élémentaires de 2 secondes exécutées dans une boucle le nombre de fois nécessaire pour atteindre la valeur voulue. Ceci permet , au sein de cette boucle de tester les évenements pouvant se produire (test de présence, de boucle, etc...) et si un tel évenement nécessite une action on sort de cette boucle, aprés avoir remis à leur valeur normale certaines variables. C'est la raison d'être de l'instruction honnie par tout programmeur qui se respecte , à savoir l'instruction goto .
Il est probablement possible de s'en passer, mais le système étant composé de boucles imbriquées, cela m'a paru le moyen le plus simple à utiliser sans pour cela changer complètement la structure du logiciel.

La version 10

Le listing de la version 10 est visible ici.

Cette version est une version "plus confortable" pour l'enfant. En effet , les bips emis sur le buzzer peuvent être trop agressifs pour un enfant en bas age, voire peuvent l'effrayer.
Tous ces bips ont été remplacés par des tonalités musicales , à savoir :
  • L'accord Do-Mi-Sol-Do à l'installation de l'enfant dans son siège et à l'arrét de véhicule.
  • La séquence Ta-Ti-Ta rappelant une sirène d'ambulance en cas de débouclage de la ceinture, la voiture étant en mouvement.
  • La séquence PinPon, rappelant la sirène des pompiers partant en intervention sur un incendie, dans le cas où la température devient trop élevée dans le véhicule.
On a donc défini la hauteur et la durée de chaque note utilisée , dans 6 tableaux (3 pour les hauteurs et 3 pour les durées) .
3 fonctions DoMiSolDo() , TaTiTa() et PinPon() sont chargées de générer à l'aide de l'instruction tone() les 3 séquences musicales .

Cette version est la dernière version complètement testée à ce jour.

Début : -1- 941 jours
Article précédent :-12- Le système YaZo : L'aspect logiciel- versions 1 à 4
 Article suivant :-14- Le systeme YaZo- l'aspect logiciel-la version11
Statistiques




 Mode de diffusion et licence

Tous les documents (y compris cet article) sont diffusés sous licence libre Creative Commons sous les termes spécifiés au début de cet article
Cette licence donne le droit à tous de copier, diffuser, traduire, etc... ces documents sous réserve d'en diffuser les éventuelles modifications selon les dispositions de cette licence.
Toute autre utilisation de ces documents doit faire au préalable l'objet d'une demande d'autorisation.

Hors des termes de cette licence, je souhaite que toute utilisation commerciale de ces documents ou du dispositif créé à partir de ces documents soit assortie du versement d'une partie des bénéfices générés à une (des) association(s) d'aide à l'enfance en danger ou(et) de lutte contre la violence routière.



Aucun commentaire: