jeudi 5 juillet 2012

-14- Le systeme YaZo- l'aspect logiciel-la version11

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 :-13- Le système YaZo - l'aspect logiciel - Versions 5 à 8, 9 et 10
Article suivant :15- Le systeme YaZo-Complements,remarques,ameliorations
Statistiques

Retour sur le mode dégradé - La version 11 


AVERTISSEMENT:
Cette version est experimentale et n'a pas été testée entièrement. certaines fonctionalités ont seulement quelques jours.

Retour sur le mode "degradé"

Le mode "dégradé" sert à permettre de laisser un enfant dans son siège, le véhicule étant en stationnement, EN PRÉSENCE D'UN ADULTE.
Cependant , ce mode est loin d'être parfait. Il souffre de 2 problèmes potentiels liés à la technologie utilisée sur les véhicules récents.



  • Le cas des véhicules sans clé de contact.

    Ces véhicules ne possèdent qu'un bouton poussoir de type ON/OFF pour démarrer le véhicule , la clé de contact étant remplacée par un système à carte (vraisemblablement de type RFID) qui doit être en possession de la personne désirant démarrer.
    Cela peut être aussi une carte à introduire dans un logement sur la planche de bord (utilisé entre autres par la société RENAULT).
    Ces systèmes ne permettent pas d'activer le mode "dégradé" simplement comme cela est possible sur un véhicule muni de clé de contact classique.
    Cela peut être résolu simplement en ajoutant un bouton poussoir qu'il suffit de maintenir enfoncé le temps nécessaire et au moment voulu pour actionner ce mode , comme on peut le faire en remettant le contact pendant ce temps voulu et cette durée nécessaire.
    C'est le poussoir qui apparait sur le schéma de la partie affichage du système YaZo. Il est relié , via la pin 11 du connecteur K3, et signalé par la mention voir version 11,  à la pin 16 du micro-controlleur (voir schéma électronique).
     
  • Impossibilité de savoir simplement si un adulte est resté avec l'enfant dans le véhicule.

    Il est quasiment impossible avec des moyens simples de déterminer combien de personnes se trouvent dans le véhicule ni de savoir combien parmi ces personnes sont des adultes.
    Il n'existe qu'un seul cas où l'on est certain de la présence d'un adulte. C'est le moment où le véhicule est arrété. Dans ce cas, on est sur qu'il y a un adulte qui est le conducteur, et cela tant qu'il n'a pas ouvert sa portière.
    Il suffit donc de surveiller, à partir de l'arrêt de la voiture (juste aprés la mise en action du bip sonore) si la porte conducteur est toujours fermée.
    À ce moment se pose le problème de savoir si le mode "degradé" a été actionné ou pas .
    Si le mode "dégradé" a été activé, rien ne se passe .
    Si ce n'est pas le cas, une série de bips retentit sur le buzzer. A la fermeture de la porte, l'avertisseur sonore est active pour prévenir le conducteur au cas où il n'aurait pas entendu le bip. À ce moment on repasse en surveillance en mode "normal".
    Tant que la porte n'a pas été ouverte, puis tant qu'elle est ouverte, si le mode dégradé a été activé, la surveillance s'effectue par mesure de la température dans l'habitacle avec avertissement sonore sur le buzzer et passage en mode "normal" au bout de 3 bips (9 minutes environ).

    Le problème vient là aussi de la technologie propre au véhicule.
    Sur les véhicules déja anciens, les contacteurs de portières s'ils sont accessibles, sont souvent connectés en parallèle, ce qui ne permet pas de savoir quelle porte à été ouverte.                                                                            Sur les véhicules récents, c'est le contraire, ces contacteurs étant inaccessibles et agissant indépendament les uns des autres.La solution serait d'installer sur la portière coté conducteur, un contacteur du type de ceux utilisés sur certaines alarmes anti-intrusion, contacteur  qui serait fermé lorsque la portière est ouverte.
    C'est en partant de ce choix (trés imparfait) que la version 11 a été imaginée.

La version 11

Le cas des véhicules sans cle de contact pose problème pour le passage en mode dégradé. La solution (imparfaite) vient de l'ajout d'un bouton poussoir accessible du conducteur et qui doit être maintenu enfoncé entre 1 et 2 secondes pendant une fenêtre de temps maximum de 5 secondes. 
Aprés ajout de la ligne   "#define pinBouton 10 "  dans la section des déclarations , on ajoute les 2 lignes suivantes dans le setup : " pinMode(pinBouton,INPUT) ;   " pour déclarer la pin correspondante en entrée  et "digitalWrite(pinBouton,HIGH) ; " pour activer la résistance de pull-up interne au micro-controlleur.
 Dans la boucle "loop()" il suffit de remplacer la ligne " if (digitalRead(pinContact) == LOW) "  par la ligne suivante :
" if ((digitalRead(pinContact) == LOW) || (digitalRead(pinBouton) == LOW))" . 
le passage en mode dégradé pouvant se faire en utilisant la cle de contact (si le véhicule en dispose) ou le bouton-poussoir.

Le cas de la détection "porte ouverte"/"porte fermée" , sans préjuger du moyen de détection utilisé, se fait par le test de l'état de la pin "pinPorte" aprés déclaration dans la section adéquate et activation en entrée de cette pin et activation de la résistance de "pull-up" correspondante dans la section "setup() " du programme. Si cette pin est à 0V , alors la porte est ouverte et si elle est à +5V elle est fermée.
Tant que cette porte est fermée, on incrémente un compteur toutes les 2 secondes , et ce, jusqu'à la valeur 90 , ce qui correspond à une durée de 3 minutes. Au bout de ces 3 minutes, on mesure la température dans l'habitacle . Si la température atteint ou dépasse le seuil fixé ici à 32°C, on envoie la tonalité "Pinpon" sur le buzzer interne. Au bout de 3 mesures de température superieure à 32°C, on considère qu 'il y a un problème et on sort de cette boucle en repassant en mode "normal".
Parallélement, toutes les 2 secondes, on verifie que l'enfant est toujours dans son siège ou que le véhicule est toujours en stationnement. Si aucun de ces 2 cas n'est vrai, on sort et le programme passe alors dans la boucle correspondant à ce cas de figure (c'est le role de l'horrible "goto" précédé d'une ré-initialisation de quelques variables).
Si le mode "dégradé" n'a pas été activé, on entre immediatement dans le cycle normal.
Si la porte coté conducteur vient à être ouverte, le mode "dégradé" étant activé, rien ne se passe.
Si à ce moment on est en mode "normal", le buzzer émet une série de "bips" pour prévenir le conducteur.
Lorsque celui-ci referme la porte, un bref coup de "klaxon" est émis à titre de dernier avertissement et on passe immédiatement en mode "normal".

Cette version fonctionnerait parfaitement dans un seul cas : Il faut que la porte soit équipée d'un contact et que ce contact soit effectivement connecté au système YaZo. Si ce n'est pas le cas, on reste dans la section testant si la porte est ouverte ou fermée, quelque soit l'état de la porte, ce qui peut être tres dangereux , car à ce moment les seuls moyens d'en sortir sont : Le retrait de l'enfant de son siège, le démarrage du véhicule, ou plus grave une élévation anormale de la température dans l'habitacle, et ce par 3 fois avant passage en mode "normal" avec à ce moment possibilité d'alarme.
Heureusement cela peut être évité , au prix de l'utlisation d'une pin supplementaire sur le micro-controlleur, nommée ici "pinValPorte". Cette pin , configurée en entrée indique si elle est portée à 0V que le contact de porte est effectivement installé et surveillé. Si cette pin est portée au +5V (par l'intermédiaire de la resistance de "pull-up" interne) alors le contact de porte n'existe pas et on saute dans le programme toute la partie correspondante. On se trouve alors dans les conditions de la version 12.

Un autre problème peut se poser si l'on place l'enfant dans son siège (donc portiere coté conducteur fermée) et que, pour une raison quelconque on le laisse ainsi sans monter dans le véhicule. Dans ce cas , la porte conducteur étant fermée, on se trouve dans un cas où le risque est important pour l'enfant, car la seule surveillance est celle de la température dans le véhicule.
Il faut donc, si le véhicule est arrété que l'on passe immédiatement en mode "normal" afin de bénéficier d'une surveillance complète avec avertissements sur le "klaxon".
Cela peut être réalisé en utilisant une variable booléene "Arret" positionnée à la valeur "true" durant l'exécution de la section "setup()". Un test de cette variable permet alors de sauter toute la partie concernant le test de l'état de la portière coté conducteur.
À ce moment, la variable "Voiture" qui était utilisée lorsque l'enfant est placé dans son siège OU lorsque le vehicule vient d'être arrété, ne serait utilisée que dans ce dernier cas.


Début : -1- 941 jours
Article précédent :-13- Le système YaZo - l'aspect logiciel - Versions 5 à 8, 9 et 10
Article suivant :15- Le systeme YaZo-Complements,remarques,ameliorations
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: