1. Introduction

1.1 Problématique

En allant s'endormir, il est certainement déjà arrivé à beaucoup de personnes, d'oublier de fermer la porte à clé. Dommage, les cambrioleurs ne viennent que trop rarement en pleine journée, quand toute la famille est à la maison... Visiblement, la nuit porte mauvais conseil pour certaines personnes. Le problème est quand un tel acte arrive vraiment, on s'en mord les doigts. "Je n'ai pourtant rien entendu" ou "mince si je n'avais pas oublié" viennent souvent trop tard. De nos jours, il faut penser à fermer sa porte à clé, éventuellement mettre une veilleuse pour éloigner les malfrats. Cependant, ces personnes (malheureusement de temps en temps intelligentes) s'attendent à une veilleuse trompeuse et dans le cas où la porte reste malencontreusement ouverte, la nuit où ils décident d'agir, ils ramassent le jackpot. Un repérage est si simple à faire... Ayant subi un acte d'intrusion chez moi ( sans dégâts heureusement) je tiens à ce que cela ne se reproduise pas. Les porte-monnaies volés impliquent un tas de complications et de démarches administratives que l'on évite avec plaisir.

1.2 But

L'objectif de cette "protection laser" est donc d'élever le niveau de sécurité chez soi d'un cran, car elle est imprévisible par une personne externe. Dès lors, deux possibilités sont envisageables:

  1. L'idée de base est d'utiliser un laser (de type pointer) qui envoie son rayon sur une photocellule qui le reçoit continuellement. Le petit bémol est que, la lumière projetée sur une surface est visible. Il faut donc dissimuler ce point de lumière. L'avantage est qu'à la conception du projet, on voit tout de suite si le laser fonctionne ou non et où il y a un problème ailleurs. Il est visuellement repérable.
  2. L'idée d'utiliser un émetteur et un récepteur infrarouge. Dans ce cas, les rayons sont également invisible à l'oeil nu. Cependant, les rayons émis ne convergent pas en un seul rayon, ce qui ne donne pas un rayon aussi précis que pour le laser. De plus si une des pièces a un problème (émetteur ou récepteur) il est plus difficile de le déceler.

Dans les deux cas, du moment que le récepteur (la photocellule) ne reçoit plus de rayon, c'est-à-dire que quelqu'un est passé devant le rayon, qui donc ne peut plus atteindre la photocellule, alors une alarme s'allume (un gyrophare ou LED scintillante) servant à intimider le cambrioleur et à le faire repartir. Ici, deux choix surviennent: Avec ou sans bruit?

  • Sans intimiderait le voleur, mais ne serait pas à 100% de son efficacité potentielle.
  • Avec réveillerait l'habitant à coup sûr, en ajoutant l'élément bruyant au système qui s'active lorsque la lumière s'active.

Dans les deux cas, l'alarme, après mise en fonction par celui qui s'introduit, resterait allumée pendant un certain temps avant de s'éteindre et, le système se réinitialiserait. Il serait de nouveau à l'état de départ au cas où l'individu aurait fui et reviendrait Finalement, j'opte pour la protection laser avec bruit.

1.3 Hypothèse

Première vue sur le projet, avant se conception

Avant de Produire l'expérience, il me faudra faire attention à un certain nombre de points. Premièrement, il faut être précautionneux avec le laser, car possédant une lumière verte, sa puissance est assez élevée pour léser un œil humain. Deuxièmement, comme énoncé plus haut, la tache doit être à l'abri des regards. Cela implique que soit, la photocellule doive être dissimulée dans un creux pour qu'elle puisse aisément différencier la lumière du laser de l'obscurité soit que le système entier soit caché.

2. Matériel et méthodes

2.1 Matériel utilisé Pour réaliser ce projet, j'ai besoin de:

  • 1 carte Arduino

Elle sert de corps central et forme le "cerveau" du projet". C'est par celle-ci que les informations sont envoyées, lues, transmises et caetera. La carte gère entièrement le système. En voici un modèle:Arduino_Uno_-_R3.jpg Ce modèle est le modèle Arduino Uno

  • 1 transformateur

Pour pouvoir relier le système à la prise secteur. Un simple transformateur utilisé pour charger un téléphone portable est sufisant. Image: P1020057.JPG

  • 1 laser

L'avantage du laser est que la lumière émise est concentrée en un point précis qui permet de guider avec précision la direction de la lumière. laser.jpgLe modèle utilisé peut être commandé sur Playzone.ch

  • environ 50 mètres de câbles réseau

Comme le buzzer est positionné à côté d'une table de nuit, il faut pouvoir relier le système du rez-de chaussée à l'étage, et ce pour chaque pin du buzzer (2). De plus, le laser et la diode se trouvent l'un en face de l'autre, d'un côté et de l'autre de la porte. Il faut donc pouvoir connecter chaque élément à la carte, distante d'environ 1.5 mètre de distance. De plus, il me faut dénuder les câbles au bout pour pouvoir relier les pins du buzzer, de la photocellule et du laser à la carte Arduino. L'avantage du câble réseau est que la section du fil est très fine et permet d'obtenir moins de résistance en travaillant avec une tension et une intensité aussi basses. Ceci permet de limiter les pertes de tension. Une image valant plus que mille mots, en voici un exemple:P1020056.JPG

  • 2 à 3 LEDs

Afin de créer l'aspect lumineux de l'alarme, j'ai besoin de plusieurs LED de deux couleurs différentes au minimum pouvant scintiller en alternance, ce qui imite une alarme. J'ai décidé d'utiliser celles du kit Sparkfun . Voici l'exemple du modèle rouge:5mm_Red_LED.jpg5mm_yellow_diffused_LED.jpg

  • 2 Buzzer/ou émetteur de bruit

Un que je positionne à côté de ma tête pour être réveillé par le bruit en cas d'infraction, le deuxième à côté du système pour donner l'effet sonore. J'utilise ce type de Buzzer:buzzer.jpg

  • 1 Photocellule

Pour capter la lumière du laser, elle est indispensable. Le système dépend en grande partie de cet élément.09088-02-L.jpg

2.2 Méthodes

2.2.1 Schéma

Voici ce que représente le schéma de mon projet, schéma élaboré avec Fritzing: fritz_2.PNG explication du câblage
Les LEDs sont toutes reliées à des pins ayant le signe "~" devant qui signifie "Pulse Width Modulation" et qui permet d'obtenir des valeurs analogiques tout en utilisant tout en utilisant des pins associées à des valeurs digitales. L'avantage de travailler avec de l'analogique est que je peux donner des valeurs multiples, aux LEDs, au buzzer et la photocellule, autres qu'uniquement 1 ou 0.
Le Laser, dans mon cas est indépendant des autres éléments, car continuellement alimenté dans un circuit qui lui est propre, ce qui le laisse allumé, quoiqu'il arrive.

2.2.2 Hardware

La boîte
Pour que la circuit imprimé soit tenu et enveloppé, j'ai entrepris de lui confectionner une boîte faite papier, parfaite pour sa taille, que je peux recouvrir et ainsi lui donner une tenue plus élégante. Évidemment ce support lui donne une touche de discretion et permet de la protéger, aussi peut soit-il, de la poussière, d'un léger choc et surtout d'éviter qu'un câble se débranche en le touchant.P1020059.JPG P1020058.JPG
À gauche la moitié de la boîte et à droite le tout, fermé. Pour faire passer les fils en dehors de la boîte, je la perfore sur les côtés par de très petits trous ( juste pour pouvoir faire passer le câble réseau) ainsi qu'un plus gros pour l'alimentation.
La photocellule et le laser
Pour éviter qu'elle donne des valeurs confuses, à cause de lumière dans l'entourage, je la protège avec un tuyau de papier de façon "self-made" qui la plonge dans dans un degré luminosité moins élevé et permet que le rayon du laser soit totalement concentré sur ses capteurs. Je fais de même pour le laser, ce qui leur rend également un aspect plus discret et non bâclé:P1020055.JPG

2.2.1 Particularité du code

Premièrement, il faut définir si les informations proviennent des éléments (LED, buzzer, Photocellule) ou partent vers les éléments. Pour ce faire, il faut utiliser la fonction "pinMode()":

pinMode(buzzer, OUTPUT);
pinMode(Alarm, OUTPUT);
pinMode(Ledpin, OUTPUT) ;
pinMode(Ledpin2, OUTPUT);
pinMode(Ledpin3, OUTPUT);
pinMode (photopin, INPUT);

Dans mon cas, seule la photocellule envoie des informations à la carte Arduino.Tout dépend donc bien des valeurs qu'elle capte et renvoie. Comme les LEDs, s'allument à une certaine condition, il faut envoyer un signal électrique pour les allumer ou éteindre. L'information part de la carte pour arriver dans l'élément. Même scénario pour le buzzer.

Ensuite, j'utilise avec récurrence le système de boucle. On le voit notamment avec l'algorithme:

for( x= valeur 1; x < valeur 2; x = x + valeur 3) {

Qui se traduit de la façon suivante:
" Pour x égal à la première valeur, tant que x est plus petit que la deuxième valeur, alors incrémente la variable x d'une valeur 3". Dans mon code, ceci permet de faire en sorte que la fréquence sonore du buzzer augmente jusqu'à atteindre un seuil maximal et qu'elle diminue une fois ce seuil atteint pour ensuite parvenir au seuil minimal. En effet, cela donne:

for(i = 200; i < 800; i = i + 2) {
              analogWrite(Alarm, i);
              tone(buzzer, i, 50);

Pour qu'il atteigne le maximum, puis:

for(i = 800; i > 200; i = i - 2) {
              analogWrite(Alarm, i);
              tone(buzzer, i, 50);

Pour que la fréquence redescende.
En ajoutant dans chaque boucle

digitalWrite(Ledpinx; HIGH ou LOW);

avec x le numéro de la LED, la tâche (allumer ou éteindre la LED) s'exécutera, tant que la variable i est située entre 200 et 800 en incrémentant, respectivement entre 800 et 200 en décrémentant.
Ceci dit, Ces deux boucles ne s'exécuteront qu'une fois. Pour que l'alarme dure plus longtemps, ils faut que ces deux fonctions soient répétées. En utilisant la même méthode, le problème peut être facilement résolu. Il faut écrire une boucle contenant ces deux plus petites boucles:

for(j = 1; j < 4; j = j+ 1){
 
   
              for(i = 200; i < 800; i = i + 2) {
              analogWrite(Alarm, i);
              tone(buzzer, i, 50);
                      ...
                                                                 }
              for(i = 800; i > 200; i = i - 2) {
              analogWrite(Alarm, i);
              tone(buzzer, i, 50);
                      ...
                                                             }
                                          }


Pendant la boucle, la tâche est d'envoyer le signal correspondant à la valeur dans le buzzer afin qu'il la transforme en degré de fréquence sonore. Puis en implantant une deuxième boucle du même type autour , cela permet bien de répéter cette "augmentation-diminution" un certain nombre de fois ( dans mon cas 3), qui permet cette effet de sirène.
On la retrouve également dans la fonction que les LEDs prennent, après que la sirène ait été déclenchée:

else if (analogRead(photopin) < 1000 && j == 4){
   
   for(lum=0; lum < 255; lum = lum + increment){
   analogWrite(Ledpin2, lum);

Cette fois-ci c'est l'intensité lumineuse qui est répétée. On peut noter noter un léger décalage ici; quand la boucle a été répétée 3 fois, elle prend la valeur 4, car elle commence avec une variable valant 1.
Dans ce cas, la valeur ne peut pas être plus élevée que 255, car c'est l'intensité maximale pour la LED.

3. Résultats

Avec le moniteur série, il est facile de voir "où en est le programme":
Capture.PNG Cette image représente l'intensité lumineuse captée par la photocellule en tant réel avec une fréquence d’échantillonnage de 200 milliseconde . La particularité de la cellule est que plus il y a de lumière, moins la valeur affichée est haute. En revanche, dans l'obscurité total, la valeur est très haute.

Dans ce cas, on peut voir changer la valeur, du moment qu'un obstacle vient prive la cellule du rayon laser. Ayant décidé que le seuil critique pour lancer l'alarme serait la valeur 1000, l'alarme se lance, la valeur affichée est ici égale à 1000, et la raison pour laquelle on ne voit pas apparaître une valeur supérieure à 1000 ( ce qui devrait lancer l'alarme), bien qu'elle ait été captée, est dû au fait qu'entre 1000 et 1001, le programme a déjà lancé la boucle bloquante, ce qui empêche l'affichage de cette valeur. Le moniteur série se bloque donc ,exécute les boucles, et reprend l'échantillonnage, autrement dit poursuit la vérification des valeurs correspondantes à l'intensité du rayon. Ceci se remarque par la valeur venant juste après la valeur 1000, qui est approximativement la même que celles avant 1000.

Le code ayant un lien avec les LEDs semble fonctionner au mieux. En effet, à l'état initial du programme, elles restent bien éteintes et ne deviennent en état de scintillement qu'après l'alarme. Ce technique de "changement d'état" entre avant et après l'alarme permet de faire office de témoin, par exemple le lendemain matin, et de confirmer que le rayon lumineux a été traversé.

En ce qui concerne l'alarme en lien avec le buzzer, j'ai prévu à la base de le poser à côté de ma table de nuit et de le relier sur plusieurs mettre jusqu'au circuit Arduino. N'ayant pas acquis une longueur suffisante de câble réseau qui puisse relier le rez-de-chaussée à l'étage, j'ai choisi d'opter pour une autre technique: en mettant une collerette conique autour du buzzer, cela permet d'amplifier le son. Le changement en intensité sonor est assez flagrant. Le fait de diriger le son en imitant la forme du mégaphone rend l'alarme plus aussi rudimentaire qu'à la base.

Le problème majeur dans le projet a été le système de boucle qui, étant bloquant, m'empêchait de faire scintiller les LEDs en même temps que le buzzer était en fonction. Du moins les techniques utilisées n'ont pas abouti à un résultat concret. à la place, je me suis astreint à les faire changer d'état entre chaque boucle dédiée au buzzer.

4. Discussion

Après la fin de la conception de cet artefact, je peux en tirer quelques points notables. Premièrement la façon dont les LEDs scintillent pendant que le buzzer est en fonction n'est pas l'effet voulu au départ. En effet, Il aurait été plus esthétique de les voir augmenter et diminuer en intensité au même titre que l'intensité sonore augmente et diminue. En fait j'aurais voulu répéter la fonction qu'elles ont après la fin de l'alarme, mais pendant que le buzzer est en fonction. Le problème, comme ennoncé dans la troisième partie, comme la boucle du buzzer est bloquante, en rajoutant une boucle (dédiée aux LEDs) à l'intérieur de celles pour le buzzer le système altérnait le bruit du buzzer avec la lumière de la LED. La lumière ne pouvait être allumée en même temps que le bruit était émis. Ce qui ne donnait concrètement... rien de beau. J'ai dès lors essayé d'utiliser un interrupt, mais il n'a pas fonctionné car, il était automatiquement généré par lui même. Un delay, mais c'est une fonction bloquante et ne peut donc pas être utilisée. En recherchant un peu plus, j'ai découvert une méthode, permettant de scintiller sans delay (Blink without delay), mais encore une fois, cette fonction est bloquante et ne permet pas d'être insérée dans une boucle.
Bien que les éléments soient en contact avec les câbles simplement en ayant les pins entourées par le câble, les pertes sont minimes et négligeables, même si en plus de cela, la disatnce entre l'élément et Arduino est pour certains, supérieure à 2 mètres.

Afin d'avoir une efficacité optimisée, une extension possible du projet serait de ne pas relier la carte à des LEDs mais directement à la prise secteur, ce qui serait bien plus efficace, ainsi qu'à la sonnette pour que le son soit dispersé dans toute la maison et soit entendu au mieux. Le buzzer émet un bruit aigu et assez fort, mais le point sur l'intimidation est ici remis en cause. Le bruit n'a pas assez de puissance pour être entendu, si la porte de chambre est fermée.
Cependant, ce projet reste un modèle sur lequel on peut se baser pour ensuite développer un système beaucoup plus complexe. Il ouvre la voie en matière de système d'alarme et a clairement un bel avenir en matière d'améliorations possibles. C'est donc pourquoi il reste intéressant.

5. Conclusion

En conclusion, en comparant avec mon projet H, celui-ci a bien mieux fonctionné et me permet d'avoir une installation qui fonctionne parfaitement. Malgré le fait que les LEDs ne scintillent pas comme voulu au départ, le projet dans l'ensemble est réussi. Il offre d'innombrables possibilités d'améliorations/extensions auxquelles je m'attaquerai dans mon temps libre. Par exemple que le système envoie une notification soit par mail ou message, dans le cas où la personne est en vacances. Elle pourrait donc avertir un de ses proches pour aller jeter un coup d'oeil. En élaborant un deuxième artefact qui demande aussi bien de la programmation que du matériel, cela me motive et me donne plein d'idées pour l'avenir que j'essaierai de développer pendant mon temps libre. Bien que ce projet reste simple dans le fondement, il en suit de grandes conséquences. De plus, ne dit-on pas que l'essentiel réside dans la simplicité ?

L'installation est donc prêt à être utilisée, la nuit va être douce...

6. Ressources

  • SIK Guide
  • site officiel d'Arduino et de ses aides

Concernant les images:

  • http://upload.wikimedia.org/wikipedia/commons/c/c8/5mm_Red_LED.jpg
  • http://hobbyelectronics.co.nz/productImage/5mm%20yellow%20diffused%20LED.jpg
  • http://upload.wikimedia.org/wikipedia/commons/3/38/Arduino_Uno_-_R3.jpg
  • http://shallowsky.com/arduino/class/buzzer.jpg
  • https://cdn.sparkfun.com//assets/parts/2/4/6/2/09088-02-L.jpg