mercredi 14 novembre 2012

-17- Une annonce prometteuse pour l'avenir ?

Début : -1- 941 jours

-17-Une annonce parue dans la presse électronique

À la suite d'un courrier que j'ai envoyé récemment à la rédaction de la revue "Elektor", j'ai reçu une communication de la part de l'un de ses responsables concernant une innovation technologique qui pourrait faire progresser la sécurité des enfants dans nos voitures. Il s'agit d'un dispositif permettant de detecter sur le siège passager un éventuel occupant, mais surtout de déterminer si cet occupant est un adulte ou s'il s'agit d'un enfant installé dans son siege, dos à la route, et permettant alors d'interdire automatiquement le déclenchement de l'airbag dans ce cas, éliminant toute manoeuvre humaine visant à dévalider l'airnag, et pouvant être oubliée, avec les conséquences tragiques que l'on imagine.
Vous pouvez lire cette communication ici.
Sur cette page, la revue "Elektor" propose aux lecteurs de donner un avis sur l'intéret de créer un système d'alarme anti-oubli.
Si vous me soutenez, vous pouvez donner votre avis et faire vos suggestions sur le lien proposé.
Dans tous les cas, n'hesitez pas à aller , si l'électronique est un de vos centres d'intérêt , sur le site de cette revue, bien connue et appréciée pour l'originalité et la qualité de ses réalisations.

L'avenir de la technologie dans la protection des enfants en voiture

Le circuit dont parle "Elektor" peut présenter un intérêt, en dehors de sa destination première, dans la mesure où il permet de déterminer si le passager est un adulte ou un enfant. À partir de ce point, on peut imaginer un circuit qui permettrait, sans intervention humaine (c'est trés important à mes yeux) de mettre en route un système de surveillance et d'alarme lorsque le véhicule est à l'arrét.
Si un lecteur de ce blog à des suggestions ou des remarques à ce sujet, qu'il n'hésite pas à me contacter.


Début : -1- 941 jours
Article suivant: -18- Le role de la technologie dans ces tragédies (2)
Statistiques

mardi 4 septembre 2012

-16- Le rôle de la technologie dans ces tragédies(1)


 


Début : -1- 941 jours
Article précédent :-15- Le systeme YaZo-Complements,remarques,ameliorations
Article suivant :-17- Une annonce prometteuse pour l'avenir
Statistiques

Depuis 2006, la France ainsi que de nombreux pays ont vu se multiplier des drames qui ont emporté des enfants, morts d'hyperthermie pour avoir été laissés seuls dans des véhicules en stationnement.
Si la responsabilité de l'adulte qui en avait la charge à ce moment est forcément avérée, on doit se poser la question de savoir si des facteurs liés au véhicule en cause ont pu agraver ces évenements jusqu'à l'issue fatale.
Si l'on considère les décés survenus en 2011 et 2012 en France et en Belgique, à savoir 4 décés en France en 2011 , 1 décés en France en 2012 et 1 décés en Belgique en 2012, on est obligé de considérer que tous ces décés auraient pu être évités si certains éléments de technologie avaient été absents des véhicules en cause. Un récent incident survenu dernièrement en Corse, les 2 enfants en cause ayant heureusement été sauvés, accrédite cette hypothèse.
Ces éléments sont de 2 sortes :
  • Le système de super-condamnation des ouvrants (1 mort en France en 2011 et 2 enfants sauvés de justesse en 2012)
  • Les vitres teintées ou recouvertes d'un film opaque cachant l'intérieur de la voiture, donc ses occupants. (3 morts en 2011 et 1 mort en 2012 en France , 1 mort en 2012 en Belgique)
Ces constatations montrent que dans tous les cas graves s'étant produits ces 2 dernières années, ces décés auraient pu être évités sans ces éléments technologiques destinés à protéger le véhicule ou à en améliorer l'esthétique.

Le système de super-condamnation des ouvrants

Ce système est aussi appelé super-condamnation des portières ou super-lock outre-atlantique, et consiste, moyennant une action particulière sur la télécomande du système d'ouverture/fermeture du véhicule, à verrouiller le dit véhicule non plus de l'exterieur, empêchant ainsi toute intrusion, mais aussi à le verrouiller de l'intérieur, empêchant ainsi tout occupant de sortir. Dans ce cas, sur de nombreux véhicules, rien ne fonctionne dans la voiture, pas même l'avertisseur sonore, ce qui interdit à l'éventuel occupant de manifester sa présence.
À l'origine ce système était prévu pour empêcher tout crochetage du système d'ouverture du véhicule ou d'empêcher l'ouverture en passant le bras à l'interieur par une vitre préalablement fracturée.
Si l'on en croit certains constructeurs, il est impossible de sortir si l'on ne dispose pas d'outils adéquats, ce qui est le cas de la majorité des utilisateurs, la destruction d'une vitre étant quasiment impossible vu la qualité et la solidité des matériaux utilisés. Ceci signifie sans aucune ambiguité que tout être vivant ainsi piégé est condamné à mort si personne n'a conscience de sa présence.
Lors du décés du jeune Harold , début aôut 2008 à Gosier en Guadeloupe, j'ai pu lire sur internet que pour activer ce système sur un véhicule de marque BMW, il fallait actionner 2 fois le système de fermeture dans un laps de temps trés court.
En revanche lors du décés d'un jeune homme dans un véhicule de marque Audi à Moissac (Tarn et Garonne) j'ai lu qu'il fallait actionner la telecomande 1 fois pour valider ce système de fermeture et 2 fois pour verrouiller le véhicule normalement (de l'exterieur seulement). J'ai fait le même type de lecture concernant les 2 frères de 10 et 12 ans enfermés dans un véhicule et sauvés de justesse, de marque Volvo .
J'avoue que je suis perplexe à ce sujet.
Quoiqu'il en soit, à mon avis, les 2 méthodes sont dangereuses :

1 clic ou 2 clics?

Dans le cas ou un seul clic est necessaire, le danger me parait énorme dans la mesure où  la plupart des vèhicules actuels se ferment avec 1 seul clic, ce qui fait que toute personne changeant de voiture pour un véhicule ainsi équipé serait à la merci d'une action réflexe , héritée de son ancien véhicule, consistant à n'actionner qu'une seule fois la télécommande.

Dans le cas où 2 clics sont nécessaire; le risque est grand de créer une action de type reflexe consistant à systématiquement actionner 2 fois la télécommande.

Utilité de ce système

Si l'on en croit les constructeurs , il est impossible de sortir d'un véhicule ainsi vérrouillé même en brisant une vitre.
On peut se poser la question suivante : comment un intrus peut il se trouver piégé ainsi?
  • La personne se trouve dans le véhicule au vu et au sû du constructeur, ce qui , dans ce cas implique qu'il a été piégé volontairement, ce qui entraine une grave responsabilité de la part du conducteur, s'apparentant a un délit de mise en danger de la vie d'autrui.
  • L'intrus s'est introduit dans le véhicule alors que celui ci était déverrouillé.Dans ce cas, si le système de super-condamnation a été activé , cela ne peut être que par le conducteur. Celui-ci peut être conscient de la situation (cela s'est produit je crois en 2010, et le conducteur a enfermé le voleur en attendant la police), et alors on se retrouve dans le cas de figure précédent, ou ne pas avoir remarqué la présence de la personne.
  • Il peut avoir (ce qui semble trés difficile si l'on en croit les constructeurs) réussi à entrer en fracturant la serrure. Dans ce cas il est fort probable qu'il ait déterrioré le système de fermeture dans son ensemble, rendant la super-condamnation inopérante.
Au vu de ces quelques hypothèses, on peut légitimement se poser la question de l'utilité d'un tel système.

Pour "remedier" aux risques d'un tel système, bien évidemment les constructeurs ont prévu un avertissement dans le manuel d'utilisation de leur produit, manuel qui, il faut le reconnaitre est rarement lu de façon complète.
De plus certains constructeurs proposent (voir l'article de la CSC) un bouton poussoir permettant de déverrouiller les portières. Quel intérêt si tout un chacun, y compris un voleur peut déverrouiller les sécurités sensées protéger l'objet de sa convoitise? Ne serait ce pas reconnaitre l'inutilité et la dangerosité de leur système , qui a malgré tout l'avantage de rapporter beaucoup d'argent aux sociétés qui le commercialisent?


Ce système devrait à mon avis être INTERDIT faute de garde-fous trés efficaces et indissociables de lui, faute de quoi, et je ne veux pas être un oiseau de mauvais augure, de nombreux autres drames se produiront, les véhicules en étant équipés étant extremement populaires malgré leur coût parmi la jeunesse de notre pays.
D'autre part, enfermer quelqu'un pourrait probablement être considéré comme une séquestration totalement illégale, agravée par les éventuels domages physiques subis par la personne enfermée qui serait alors légitimement fondée à déposer une plainte pour coups et blessures.

Les vitres teintées ou les films conduisant au même effet

Un autre dispositif  trés en vogue consiste dans les vitres teintées, voire sur-teintées qui donnent au véhicule concerné un "look" particulier. Un constructeur (SEAT) proposait il y a quelques mois des vitres sur-teintées en série sur toute une gamme de véhicules. L'encart publicitaire correspondant est ainsi resté pendant plusieurs semaines  en première page du quotidien " Le Dauphiné Libéré" dans le coin superieur droit.
De tels vitrages sont probablement trés efficaces contre les rayons directs du soleil, en plus de leur aspect esthétique. Il en est probablement de même pour les films donnant un tel aspect.
Malheureusement , ces dispositifs ont l'inconvénient qui peut être fatal (et qui l'a été lors des 4 derniers décés d'enfants en France et du dernier en Belgique) car ils empêchent toute vision de ce qui se passe dans le véhicule. Ces 5 petites victimes ne pouvaient pas être secourues car elles ne pouvaient être vues par les passants. 
Si je ne me trompe , le code de la route définit des normes concernant de tels vitrages, les articles correspondants ne semblant pas être particulièrement respectés si l'on en croit les observations que tout un chacun peut faire tous les jours.
Il y a deja de longs mois , j'avais alerté nos politiques (du président de la République jusqu'à certains députés) sur les risques de tels vitrages. Hélas, je n'ai pas été entendu et la réalité des faits m'a malheureusement donné raison.

Si l'on étudie un peu le comportement thermique de l'habitacle d'un véhicule fermé en stationnement, on constate 2 choses :
  • La température s'élève trés vite (J'ai mesuré environ 1°C toutes les 5 minutes par une température ambiante de 24°C) pour dépasser trés vite 40°C (j'ai mesuré le même jour 49,2°C au bout d'un peu moins de 2heures).
  • L'élévation de température est due au rayonnement direct à travers les vitres mais pas seulement. Tout le véhicule s'échauffe. Cette chaleur se transmet partout grace au métal dont il est fait et qui est un excellent conducteur de la chaleur, et ce jusqu'à l'intérieur de l'habitacle, trés souvent de couleur sombre. Ces éléments (planche de bord, garnitures diverses,etc) emettent à leur tour un fort rayonnement de type infrarouge qui lui aussi participe à l'élévation de température dans la voiture. Les vitres agissent alors comme un barrage face à ce rayonnement et la température s'élève trés vite. C'est le principe même de l'effet de serre utilisé par les jardiniers pour protéger du froid leurs semis précoces. Les vitres teintées, si elles ralentissent l'échauffement du au rayonnement direct, à cause de leur pouvoir isolant bloquent d'autant mieux le rayonnement venant de l'intérieur. Ceci n'est qu'une hypothèse que je formule, et des mesures dans un véhicule ainsi équipé seraient peut-être utiles pour confirmer ou infirmer ce que j'avance.
  • Lors de grosses chaleurs, le sol lui-même, généralement de couleur sombre participe au réchauffement du véhicule. Tout amateur de retransmission de courses automobiles du type formule 1 a entendu les commentateurs donner la température de la piste qui est en général trés superieure à la température de l'air ambiant.

Pour ou contre une réglementation sévère des vitrages sur les véhicules?

Savez vous qu'un pays d'Europe a interdit les vitres teintées sur les véhicules particuliers?
Lequel? C'est ici.
Je ne connais pas les raisons de cette mesure (lutte contre la délinquance, sécurité dans la circulation, etc...), mais je peux dire que si 1 seul enfant echappe à la mort grace à cette interdiction, alors ce sera une excellente mesure.

Conclusion


Une éventuelle interdiction ou une règlementation rigoureuse de ces dispositifs ne serait en rien, à mes yeux, une restriction des libertés individuelles.
CHACUN A LE DROIT d'acquerrir, d'embellir ou de protéger un bien.
PERSONNE N'A LE DROIT d'utiliser cette liberté élémentaire au mépris du droit  fondamental  dont doit jouir tout être humain, à savoir le droit à la vie.

La loi fait obligation à tous, sous reserve de ne pas se mettre soi même en danger ou de ne pas agraver une situation dangereuse, de venir en aide à toute personne en danger. Comment respecter cette obligation si on peut sans vergogne, pour une simple question d'esthétique ou de protection d'un bien, utiliser  des dispositifs qui aboutissent à l'effet inverse?
Dans quelle mesure un système destiné à protéger un bien peut il mettre en danger par sa seule utilisation habituelle un être vivant?
Un constructeur peut il proposer à la vente un dispositif qu'il sait être dangereux voire inutile sur ses produits?

Il serait bon de savoir comment sont délivrées les autorisations ou interdictions de mise sur le marché dans le domaine de l'automobile.
Dans le monde du travail, lorsqu'un accident se produit, trés souvent le CHSCT (Comité d'Hygiène et de Sécurité et des Conditions de Travail) est saisi. S'il s'avère que le dispositif ou la machine en cause dans l'accident présente un risque, de nouvelles procédures sont établies afin de réduire ce risque. Parfois le dispositif ou la machine en question fait l'objet de modifications. Parfois même ce dispositif ou cette machine est interdite d'utilisation.
À ma connaissance, rien de ce genre n'existe dans le domaine de l'automobile à partir du moment ou un véhicule est autorisé à circuler.

 Serait-ce une aberration de voir une telle organisation se pencher sur de tels problèmes ?


Début : -1- 941 jours
Article précédent :-15- Le systeme YaZo-Complements,remarques,ameliorations
Article suivant :-17- Une annonce prometteuse pour l'avenir
Statistiques

samedi 28 juillet 2012

-15- Le systeme YaZo-Complements,remarques,ameliorations

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 :-14- Le systeme YaZo- l'aspect logiciel-la version 11
Article suivant :-16- Le rôle de la technologie dans ces tragédies(1)
Statistiques

 

AVERTISSEMENT IMPORTANT

Cet article termine (provisoirement ? ) la description du système YaZo.
Je rappelle que ce système n'existe actuellement qu'à l'état de prototype et doit donc être considéré comme tel.
Toute personne décidant de le réaliser doit le faire en toute connaissance de cause. Rien de ce que je décris ici ne doit être considéré comme "parole d'Évangile" et doit faire l'objet d'un examen approfondi, que ce soit au niveau matériel ou au niveau logiciel. Il ne faut surtout pas hésiter à en tester le fonctionnement "sur table" et ceci de façon répétée. Le matériel doit être réalisé dans les règles de l'art et ne doit souffrir aucun à-peu-prés. Il en est de même pour ce qui est de l'installation dans le véhicule qui ne doit être faite que par quelqu'un connaissant parfaitement son sujet. Il est en effet hors de question qu'un enfant puisse être mis en danger par un système censé le protéger. Toute personne désirant le réaliser le ferait en engageant sa totale responsabilité.
D'autre part , il faut ABSOLUMENT considérer ceci : Un système d'alarme , même le plus prefectionné qui soit, N'EST PAS LA SEULE ET UNIQUE SOLUTION . Il n'est qu'une aide destinée à faire qu'un oubli, qui, même s'il est absolument inimaginable pour un être humain, reste  possible, quoiqu'on en dise, soit sans conséquences néfastes pour un enfant.
EN AUCUN CAS IL NE DOIT ÊTRE CONSIDÉRÉ COMME UNE NOUNOU.
La toute première solution est la Prévention, à tous niveaux et la vigilance la plus totale.

 

Compléments

 

-->

Les connecteurs

Le connecteur K1 (liaisons vers les équipements du véhicule)

Numéro de pin Fonction Remarques
1 0V Masse du véhicule ou - batterie
2 Sorties du relais Rel 2 Contact sec pour commande d'alarme extérieure
3
4 +12V aprés contact (+12Vapc) Signal indiquant l'état du véhicule arrété ou en marche
5 +12V permanent Alimentation +12V ou + de la batterie (aprés fusble)



Le connecteur K2 (liaisons vers le capteur placé dans le siège)

Numéro de pin Fonction Remarques
1 0V (masse)

2 Info boucle 0V= boucle ouverte sinon boucle fermée ou siège inoccupé
3 Info assise 0V= Siège occupé sinon siège vide



Le connecteur K3 (liaisons vers l'affichage et le capteur de température)

Numéro de pin Fonction Remarque
1,2,3,4,5,6,7 Masse

8 Signal du capteur de température

9,10 +5V Alimentation du capteur de température
11 Poussoir de passage en mode dégradé Version 11 seulement
12 Led Rouge

13 Led Verte

14 Buzzer






Le connecteur K4 (Contact de porte- VERSION 11 seulement)
Numéro de pin Fonction Remarque
1 Masse (0V)

2 Contact de porte 0 → porte ouverte
3 Validation contact de porte 0 → contact de porte installé



La correspondance entre les pins de l'Arduino et celles de l'Atméga

-->

Correspondance entre Arduino et Atmega168

Pin Arduino Pin Atmega 168 Nom du signal Remarques
Digital pin 2 4 (INT0) PD2 pinSiege Entrée - 0 si siege occupé
Digital pin 3 5 (INT1) PD3 pinBoucle Entrée - 0 si boucle ouverte
Digital pin 4 6 (XCK/T0) PD4 pinContact Entrée – 0 si voiture en marche sinon voiture arrétée
Digital pin 5 11 (T1) PD5 pinPorte Entrée – 0 si porte ouverte sinon porte fermée
Digital pin 6 12 (AIN0) PD6 pinValPorte Entrée – 0 si contact de porte installé
Digital pin 7 13 (AIN1) PD7 pinPower Sortie – 1 → automaintien de l'alimentation
Digital pin 8 14 (ICP1) PB0 pinKlaxon Sortie – 1 → Klaxon ON
Digital pin 9 15 (OC1A) PB1 pinBuzzer Sortie – PWM commande du buzzer
Digital pin 10 16 (SS/OC1B) PB2 pinBouton Entrée – 0 si bouton appuyé (Version 11 seulement)
Digital pin 13 19 (SCK) PB5 pinLed Sortie – Led rouge
Analog input 0 23 (ADC0) PC0 pinTemp Entrée analogique (info du capteur de température)

Téléchargement

Les fichiers (sketches) des différentes versions ont été compilés avec différentes versions du logiciel Arduino allant de la version 017 pour les premiers essais jusqu'à la version 1.0 pour la version 11. Toutes ont ensuite été compilées avec la version Arduino 1.0 sans aucun problème.
Tous les fichiers ".ino" sont disponibles en téléchargement ici.

Améliorations possibles

Le capteur a placer dans le siège

Il est possible de tester d'autres matériaux que celui utilisé (epoxy cuivré de 0,8 mm). Il existe des tissus conducteurs pouvant être cousus et ainsi pouvant permettre l'intégration du capteur dans le siège.
Le cas du capteur de fermeture de la boucle est plus complexe mais pas irréaliste. Au moins un constructeur français dispose d'un système de detection d'ouverture de boucle. Il s'agit des établissements TeamTex (sièges Nania) . Je n'ai malheureusement pas pu examiner une telle boucle faute de réponse de M. Nania à mes mails. Une autre société française  a déposé un brevet pour le même objectif. Je sais que la boucle contient un contact correspondant à celui nécessaire sur le système YaZo. Il s'agit de la société AmpaFrance (marques Bebe confort, Dorel). Malheureusement ce système n'a pas été , à ma connaissance , commercialisé.
D'autres chercheurs (ou sociétés) ont travaillé sur le sujet et déposé des brevets allant dans ce sens.
La connexion du capteur au système peut être un inconvénient, qui, si les équipementiers voulaient l'examiner, pourrait probablement être résolu par couplage mécanique de la connexion au système de boucle ISOFIX dont sont équipées de nombreuses voitures actuelles.

L'électronique du système

Le but était de réaliser un système simple , efficace et de coût le plus réduit possible pour ne pas en freiner la diffusion, et eventuellement en permettre une installation en série par les constructeurs sur leurs véhicules.
Le micro-controlleur utilisé n'est bien évidemment pas une obligation. tout autre micro-controlleur possédant un nombre suffisant d'entrées/sorties, un capacité de programme suffisante peut être utilisé, au prix , bien évidemment de la ré-écriture complète du logiciel. Dans le cas de l'Atmega168 (ou 328 ) utilisé, le quartz à 16MHz et ses condensateurs associés de 22pf pourraient être omis, moyennant une reprogrammation des "fuses" definissant la configuration ainsi qu'une refonte du programme (temporisations , etc...) .
Il est possible d'utiliser un Atmega8 à condition de remplacer une ligne dans la section des déclarations comme suit :  remplacer "#define Ref 1.1" par "#define Ref 2.56"  pour tenir compte de la référence de tension interne qui est différente sur ce micro-controlleur.
L'affichage pourrait être remplacé par un afficheur moderne à cristaux liquides (par exemple), ce qui permettrait éventuellement l'affichage des paramètres du système (mode normal/dégradé, siège occupé, boucle ouverte, température, etc...)
Il faut malgré tout garder à l'esprit le fait que transfomer YaZo en "usine à gaz" ne serait pas forcément une bonne chose. Le but n'est pas de "pondre" un bijou de technologie, mais de créer un système destiné à éviter le pire à des enfants dans un véhicule, la technologie n'étant dans ce cas qu'un outil et non un but. De plus le coût est un élément à considérer.

Le logiciel du système YaZo

Le logiciel a été écrit en langage Arduino qui est directement dérivé du langage C. Je ne suis pas programmeur et les puristes risquent de "sauter au plafond" en voyant certains choix que j'ai pu faire. Mon objectif était de réaliser un logiciel facile à comprendre, donc à modifier éventuellement, c'est pourquoi j'ai ajouté de nombreux commentaires. J'ai publié les 10 versions finalisées ainsi que la version 11 pour permettre cette progression dans la compréhension.
Il est évident que d'autres choix auraient pu être faits, comme une gestion plus fine des temporisations par programmation directe des "timers" et/ou utilisation des interruptions.

Le capteur de température

Le LM35DZ utilisé a pour avantage son faible prix et sa facilité de mise en oeuvre. La valeur précise de la température n'est pas nécessaire, ce qui compte , c'est une bonne reproductibilité des valeurs mesurées. Il aurait été possible d'utiliser d'autres capteurs. 
Quelques mesures réalisées sur ma voiture personnelle (une vieille Mazda 323 GLX de 1986) m'a permis quelques constatations qui pourraient être prises en compte. En effet , l'élévation de température dans le véhicule est fonction de nombreux paramètres comme l'heure (soleil bas ou au zénith), la météo (ciel clair ou couvert) ainsi que la température exterieure. Il pourrait être interressant de tester  la vitesse d'évolution de la température dans le véhicule plutot que la valeur absolue de cette température.

Conclusion (provisoire ?)

De toutes mes recherches durant de (trop) longs mois , il ressort plusieurs constatations :
  • La température N'EST PAS le critère essentiel à prendre en compte: Le tout premier paramètre à vérifier est la présence ou l'absence d'un enfant dans un véhicule à l'arrêt.
  • Si l'on ne cherche pas à tout prix à créer un objet doté d'une technologie de trés haut niveau, on peut arriver  à réaliser un système simple, de faible coût et d'une bonne efficacité.
  • En partant du principe précédent, on permet son installation sur n'importe quel véhicule quel que soit sa marque, son modèle ou son age, ce qui en autorise une diffusion trés large.
  • Il est surprenant de constater que, à l'exception du capteur à placer dans le siège, tous les autres dispositifs, alimentation, capteurs, affichage ou signalisation, existent dans TOUS les véhicules. Même "l'intelligence" necessaire à l'acquisition et aux traitement des divers paramètres est présente dans les voitures modernes. En effet , on estime que dans nos voitures il y a environ 15 à 80 microprocesseurs. La société Peugeot mettait en avant, il y a quelques années, la puissance de calcul dans la 607, puissance de calcul qui était comparée à celle présente dans un avion de type Airbus.  Cela signifierait il que ce qui manque aux constructeurs n'est pas une affaire de moyens techniques, humains ou financiers et encore moins LA VOLONTÉ DE NE RIEN FAIRE ?
  • Au fil de mes recherches , j'ai constaté que dans différents pays, des particuliers, des écoles (comme en Belgique ) se penchent sur le problème, ce qui à priori semble démontrer le point précédent. Les constructeurs attendent ils qu'un tel système leur soit amené sur un plateau pour enfin bouger ?

Remerciements

Tout d'abord , je tiens à remercier tous ceux qui nous ont soutenu il y a maintenant 4 ans, que ce soient la personne qui a prévenu les secours, la jeune fille qui a proposé spontanement son aide, la gendarmerie de Pont de Cheruy (Isère), les sapeurs pompiers, le SAMU, et tous les particuliers qui ont manifesté leur soutien à ma fille, mon gendre et à toute ma famille.
Pour ce qui est du système YaZo, je remercie encore M. David Tardiveau qui m'a autorisé à utiliser ce nom.
Je remercie aussi tous ceux qui m'ont aiguillé vers le système Arduino . Il s'agit de l'entreprise interface-Z.
Tous les logiciels utilisés pour concevoir le système YaZo sont des logiciels sous licence libre. Il s'agit d'un PC sous Linux Ubuntu, du système Arduino, du système Kicad pour les schémas ainsi que tous les logiciels libres présents sur ma distribution Linux. Merci a leurs créateurs.
Enfin, je tiens à envoyer 1000 mercis à Yannis, Zoé, Noémie, Maxine, Harold et tous les autres petits anges trop tôt envolés pour tout le bonheur et l'amour qu'ils ont donné durant leur trop court passage sur cette terre.


Début : -1- 941 jours
Article précédent :-14- Le systeme YaZo- l'aspect logiciel-la version 11
Article suivant :-16- Le rôle de la technologie dans ces tragédies(1)
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.






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.




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.



mardi 12 juin 2012

-12- Le systeme YaZo-L'aspect logiciel-Versions 1 a 4

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 :-11- Le système YaZo : Remarques importantes
 Article suivant :-13- L'aspect logiciel-Versions 5 a 8, 9 et 10
Statistiques

 

L'aspect Logiciel du système YaZo

Avertissement

Il faut garder à l'esprit le fait que je ne suis pas programmeur. De ce fait certaines tournures dans les différents listings présentés ici risquent de choquer les gens du métier. Mon but n'est que de préciser ma démarche.
Toutes les versions présentées s'articulent sur la base de la version 01 et pour la plupart, ne sont que des évolutions de cette version, ceci afin d'en préciser plus aisément le fonctionnement. Il est évident qu'un programmeur expérimenté aurait probablement fait certains choix plutôt que ceux que j'ai faits moi-même.

Fonctionnement général

Au départ,  le(s) siège(s) est(sont) inoccupé(s).
Si l'on installe un enfant dans son siège, le capteur va être passant et via l'électronique de mise en forme, provoquer le collage d'un relais qui va à son tour permettre l'alimentation du microcontrolleur via un régulateur 5V. Le microcontrolleur va alors commander , via un transistor, l'auto alimentation du système.
L'ensemble du logiciel est écrit en langage Arduino, trés proche (en fait dérivé) du langage C.
Comme tout programme Arduino (aussi appelé sketch) il est constitué de 3 blocs : 
  • Un bloc de definitions des variables 
  • Une boucle setup() exécutée lors du démarrage du programme
  • Une boucle loop() qui constitue l'essentiel du programme
D'autres blocs peuvent être ajoutés , en général pour définir des routines appelées par le programme principal.

Chaque version est composée, dans sa boucle loop() de 3 blocs principaux:
  • Un bloc while ((digitalRead(pinContact) == HIGH) && (digitalRead(pinSiege) == HIGH))
             Dans ce bloc, on traite le cas où la voiture vient d'être arrétée , le siège enfant étant inoccupé. Ce bloc sert uniquement, aprés un certain délai à mettre hors tension le système si le siège est toujours inoccupé.
  • Un bloc while((digitalRead(pinContact) == HIGH) && (digitalRead(pinSiege) == LOW))
             Dans ce bloc (le plus important), on traite le cas où la voiture est arrétée, le siège enfant étant occupé. Ce bloc est essentiellement constitué d'une boucle, de tests et de temporisations. Les différents dispositifs d'alerte intérieure (Led, buzzer) et extèrieure (klaxon) sont commandés en fonction des tests pour prévenir le conducteur et éventuellement le voisinage de la présence d'un enfant seul dans la voiture.
  • Un bloc  while (digitalRead(pinContact) == LOW)
             Dans ce cas on traite de tous les cas envisagés dans la version étudiée lorsque la voiture est en marche.



Le logiciel existe en 10 versions, toutes fonctionnelles, chacune étant une évolution de la (ou des ) précédente.

La version 01 

Le listing est visible ici.

Les déclarations

On définit ici les affectations de différentes entrées sorties du microcontrolleur:

#define pinSiege 2                              /* detection presence dans le siege                     */
#define pinPower 7                              /* maintien alim                                        */
#define pinContact 4                            /* contact mis                                          */
#define pinBuzzer 9                             /* Sortie buzzer interne                                */
#define pinKlaxon 8                             /* Sortie commande Klaxon                               */

#define pinLed 13                                /* Led allumée si le sieg est occupe ou                */
                                                 /* si le siege est occupe  et en situation de risque   */    

ainsi que la variable booléene Voiture qui indique que l'enfant vient d'être installé dans son siège ou que le véhicule vient d'être arrété.

Le bloc setup()

Dans ce bloc , on définit  le type d'entrée/sortie utilisée. On s'en sert aussi pour activer la résistance de pull-up interne lorsque la pin est utilisée en entrée. Ceci explique pourquoi les optocoupleurs vus dans le schéma de principe ne possèdent pas de résistance de charge sur le collecteur de leur transistor interne.

On commande aussi l'auto-maintien de l'alimentation dans ce bloc :

digitalWrite(pinPower,HIGH) ;                        /* Le siege est occupé - On alimente l'alarme  */

et on positionne la Variable Voiture à la valeur true .

Le bloc loop()

 Le premier cas traité est le plus simple, à savoir , c est le cas où le siège est vide et le véhicule en stationnement.
Une simple temporisation de 3 minutes (pour être sur que le siège est bien inoccupé) fait tout le travail.À la fin de cette temporisation, on coupe l'auto-maintien de l'alimentation, et le système est arrété.

Le dernier cas traité est celui où la voiture est en marche. Ce cas est trés simple lui aussi. si le siège est occupé, on alimente la Led rouge, et si ce n'est pas le cas elle est éteinte, puis on positionne la variable Voiture à la valeur true.

Le deuxième cas est le coeur du système. On traite du cas où le véhicule est en stationnement ET le siège est occupé.

À l'entré dans cette boucle on allume la Led rouge car le siège est occupé. D'autre part la variable Voiture est positionnée à la valeur true, on envoie alors un bip de 2 secondes sur le buzzer interne à l'attention du conducteur, puis on démarre une temporisation de 3 minutes afin de permettre à l'adulte de prendre un éventuel ticket de stationnement ou de récupérer un caddie au supermarché. À la fin de cette temporisation on met la variable Voiture à la valeur false et si le siège est toujours occupé on actionne l'alarme exterieure pendant 2 secondes, et on redémarre une temporisation de 1 minute.
À la fin de cette temporisation on entre dans une boucle qui ne peut prendre fin que si l'on enlève l'enfant de son siège ou si l'on redémarre la voiture.
Cette boucle commence par une temporisation de 1 minute à l'issue de laquelle on commande l'alarme exterieure au rythme du signal SOS en morse (c'est la raison d'être des 3 fonctions dot() , dash() et morse() ).

La version 02

Le listing est visible ici 

 Cette version est identique à la version 01 sauf en ce qui concerne le cas où le véhicule est en marche.
On commence par définir la pin utilisée pour la boucle dans la section des déclarations. Puis dans le bloc setup() on définit cette pin en entrée et on active la résistance de pull-up interne.
On commence par verifier si le siège est occupé. Si c'est le cas, on allume la Led rouge et on teste l'état de la boucle si celle-ci le permet. Si la boucle est ouverte, on envoie une série de 3 bips d'une durée de 200mS espacés de 200mS et on recommence toutes les 800mS tant que la boucle est déverrouillée.
Si la boucle est verrouillée on se contente d'allumer la Led rouge pour signaler la présence de l'enfant. 
Si le siège est inoccupé , la Led rouge reste éteinte. Enfin , on positionne la variable Voiture à true

La version 03 

Le listing est visible ici 
 

Comme la version 02 cette version est identique à la version 01 sauf dans le cas où le véhicule est en marche et si le siège enfant est occupé. Dans ce cas on a ajouté la possibilité de surveiller la température dans le véhicule et de déclencher une alarme si cette température dépasse un seuil arbitraire fixé ici à 32°C . Il faut savoir qu'une petite fille de 2 ans a gravement souffert lors d'un départ en vacances dans le midi de la France alors que la voiture où elle était installée a été bloquée dans un important ralentissement. Heureusement ses parents ont constaté son état qui était une hyperthermie avancée et l'intervention d'un medecin , pris lui aussi dans ce ralentissement a permis d'appeler le SAMU et elle a pu être évacuée par hélicoptère vers l'hopital le plus proche.

Apres definitions dans les blocs de déclarations et dans le bloc setup() , on trouve une fonction qui sera appelée pour la mesure de température : la fonction MesureTemp(). Dans cette fonction constituée d'une boucle for (), on mesure 10 fois de suites à intervalles de 200 mS la température dans la voiture, puis on calcule la moyenne de ces 10 mesures. Cette valeur est alors retournée au programme appelant.
Ce programme se trouve dans le bloc où le véhicule est en marche. On effectue la mesure toutes les 3 minutes. Si la température est supérieure à la température maximum fixée à 32°C, on envoie sur le buzzer un bip égal à 10 fois la température mesurée , soit au moins égal en durée à 320mS. on allume aussi la Led rouge pendant 1200mS puis on l'éteint pendant 800mS et ce , tant que le problème n'est pas résolu (ventilation, climatisation du véhicule, etc....)

Si la température est inferieure à la valeur maximum, la LED rouge est allumée fixement si le siège est occupé et eteinte si le siège est inoccupé.
La variable Voiture , comme dans les versions précédentes est positionnée à la valeur true.

La version 04

Le listing est visible ici

Cette version regroupe les fonctionalités des 3 versions précédentes. Le bloc correspondant au cas où le véhicule est en marche a été remanié pour imbriquer les fonctionalités des versions 02 et 03.
La variable de boucle j est utilisée pour permettre la mesure de température toutes les 3 minutes (j=90) . 
Si j<90 on surveille la bonne fermeture de la boucle du siège. 
Si une situation de danger est présente (temperature trop élevée ou boucle déverrouillée) , outre les alarmes correspondantes sur le buzzer, la Led rouge clignote au rythme de 1200 mS ON /  800 mS OFF .
Si le siège est occupé et qu'aucune situation de risque immédiat n'est présente, la Led rouge est allumée , et elle est éteinte si le siège est inoccuppé.
On repositionne comme précédemment la variable Voiture à la valeur true



Le prochain article traitera des versions 5 à 8 ainsi que des versions 9 et 10

Début : -1- 941 jours
Article précédent :-11- Le système YaZo : Remarques importantes
Article suivant :-13- L'aspect logiciel-Versions 5 a 8, 9 et 10
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.