Acquisition des connaissances

Programmation d’un Arduino

Pour programmer le Arduino, il faut bien sûr utiliser l’environnement de développement qui lui est propre. Nous avons utilisé la version 1.0 pour Windows pour notre projet.

Étapes à suivre pour utiliser un Arduino sur Windows

  1. Télécharger le logiciel
  2. Connecter avec un câble USB et installer le pilote
  3. Ouvrir l’application
  4. Choisir le bon modèle ainsi que le bon port COM dans les menus
  5. Ensuite, on peut transférer avec le bouton Upload

Note: Ceci est une version rapide du tutoriel étape par étape disponible sur le site (http://arduino.cc/en/Guide/HomePage)

La meilleure façon d’apprendre comment bien programmer un Arduino à été de lire les exemples fournis dans le File->Examples

Nous avons commencé par l’exemple Basic -> Blink et ensuite l’exemple Digital -> toneMelody. Par la suite nous avons fait quelques essais par nous même.

Par exemple il est important de savoir qu’il y a deux méthodes qui seront toujours présentes dans votre code:

  1. setup( ) : Elle permet de faire l’initialiser du programme. Elle est appelée une fois au démarrage du Arduino
  2. loop( ):Elle permet de faire les instructions du programme. C’est une boucle qui est appelée après la méthode setup et qui roule en boucle en permanence

Utilisation d’un relais

Le relais est un peu comme un interrupteur normale, mais au lieu qu’un humain l’active, c’est un électroaimant qui l’active. Il permet donc de faire passer du courant s’il est activé (l’électroaimant appuiera sur l’interrupteur) et bloquera le passage du courant s’il n’est pas activé (l’électroaimant ne touchera pas à l’interrupteur).

Il permet donc de contrôler une grande source de courant (par exemple le courant alternatif d’une prise de maison) avec un signal électronique.

Source: Wikipédia

Source: Wikipédia

Utilisation d’un transistor

Le concept d’un transistor n’est pas évident à la base et peut s’avérer très compliqué. Dans notre projet, nous avons fait une utilisation très basique du transistor, mais c’est tout de même très important.

Le transistor est un composant électronique actif utilisé :

  • Comme interrupteur dans les circuits logiques ;
  • Comme amplificateur de signal ;
  • Pour stabiliser une tension, moduler un signal ainsi que de nombreuses autres utilisations.

(Source: http://fr.wikipedia.org/wiki/Transistor)

Dans notre cas, nous l’avons utilisé comme amplificateur de signal. Mais qu’est-ce que signifie un amplicateur de signal?

Pour répondre commençons par voir pourquoi nous avons besoins d’un transistor pour activer notre relais, car c’est ça le but ici. Au début, nous avons commencé par brancher le relais directement sur une sortie du Arduino, mais le relais ne s’activait jamais. Le relais ne s’activait pas, car il n’avait pas assez de courant pour l’activer. Prenons des chiffres imaginaires pour figurer tout cela.

Posons que le relais a besoin de 500 mA pour s’activer. Il faudrait donc que notre Arduino envois un signal d’au moins 500 mA pour qu’il s’active. Malheureusement, le Arduino n’envoie que 50 mA (chiffre fictif encore). Donc il nous faut 450 mA de plus pour déclencher notre relais. C’est là que le transistor entre en jeu! En plaçant un transistor sur la sortie du Arduino, il amplifiera notre signal pour réussir a envoyer au relais 500 mA. Et oui, le transistor va augmenter notre courant de 50 mA en entré, pour qu’en sortis il soit assez puissant (disant 500 mA) pour activer le relais

Utilisation d’une diode

Une diode sert simplement à empêcher le courant de passer d’un certains bord. Un paradoxe intéressant serait de le comparer à une rue a sens unique. Les voitures peuvent circuler sans problème dans un sens, mais il est impossible de circuler de l’autre sens. C’est le même principe, mais pour du courant à la place d’une voiture. Elle évite entre autre le retour de courant vers un transistor dans notre cas (c’est une protection).

 

Assemblage avec les composantes finales

Relais

Après avoir fini l’expérimentation des composantes électroniques du projets, nous avons commencé à faire le montage avec les composantes plus mécaniques ou finale du systèmes. La première étape était donc de tester les relais sur du courant de 120V.

Pour éviter les blessures nous avons préféré finir le montage de la rallonge avec le relais avant de le tester.

Il fallait donc couper un des fils, souder le relais sur un circuit et fermer le circuit avec les deux extrémités du fils.

Par chances (ou talent), il s’est avéré fonctionnel dès le premier essai!

Cadran

Maintenant que le relais est en place, il nous fallait savoir comment savoir que le cadran sonnait, et ensuite actionner le relais avec se signal.

Nous avons donc commencer par tenter de lire directement la tension du haut-parleurs, pour savoir lorsqu’il joue. La solutions n’était pas idéale, car elle déclenchait le relais aussi quand la radio était ouverte.

Nous avons ensuite penser suivre les variations de tension du haut-parleurs pour voir si le son qu’il vouait était une alarme ou de la musique. Encore là, la solution fut abandonné, car la tension varie aussi en fonction du volume,

La solution finale et probablement la meilleure fut de trouver la feuille technique de la puce du cadran. Nous avons donc trouvé à quel endroit nous devions lire le signal. Le relais se déclenchera donc lorsque l’alarme sonnera et non la radio.

Moteur

La recherche du moteur n’a pas été facile. Il fallait un moteur assez puissant, mais pas trop rapide. Ou bien un moteur assez rapide, avec des engrenages pour ralentir et augmenter la puissance. Nous avons cherché dans quelques magasins, ainsi que fouiller dans nos maisons respectives.

Le choix s’est arrêté sur une vielle perceuse. Elle était parfaite, car elle fonctionne sur un courant assez bas, est amplement puissant et n’est pas trop rapide. Nous l’avons donc démonté, coupé et ajusté pour notre prototype.

 

Interrupteurs

Dans notre situation, nous avions besoin de deux interrupteurs:

« Bypass switch »

L’interrupteur qui est utilisé pour monter la toile sans que l’alarme sonne. Au début, nous avons essayé de la faire par programmation, mais pour la simplicité et l’efficacité nous avons tout simplement mis l’interrupteur pour passer par dessus le circuit

« Limit switch »

L’interrupteur qui est utilisé pour arrêter la monter de la toile. La toile touchera l’interrupteur à une certaine hauteur et le moteur coupera. Elle devra être adaptée à la fenêtre lors de l’installation

 

Résultat

Une fois tous ces points d’abordé et de réglé, nous pouvions tester tous ça ensemble. Il fallait donc que notre Arduino reçoive le signal du cadran pour ensuite activer le relais (à l’aide du circuit avec un transistor) pour ensuite faire fonctionner le moteur.

Après tout cela, le projet arrive à sa fin. Il ne manque plus que la toile, un peu de programmation et nous y sommes!

Sources d’information utilisées

Voici quelques sources qui nous ont guidées lors de notre recherche et nos expérimentations.

Utilisation du matériel :

Utilisation du capteur photo-sensitif :
Logiciel de développement pour Arduino et exemples :

et bien sûr notre dévoué professeur Yvon Latulippe.

Conclusion

Pour conclure, cette recherche a été très enrichissante pour nous. En effet, après seulement cinq semaines, nous pouvons affirmer qu’elle a été un énorme apprentissage au niveau de l’utilisation du matériel (ce qui était une première pour nous) ainsi qu’à la découverte de la domotique. Avec un peu plus de temps, nous aurions pu pousser plus loin ce projet et ainsi le faire passer d’un prototype fonctionnel à un système totalement opérationnel.

Il est clair que la domotique continuera d’évoluer dans les prochaines années, c’est pourquoi nous considérons que ce sujet est actuel et digne d’être approfondi davantage, car en fait, il sert à nous simplifier la vie.

Un résultat satisfaisant

La plupart des objectifs que nous avions établis sont atteints. Toutefois, il a fallu modifier quelque peu le projet afin de le rendre plus réaliste et utile. En effet, nous nous sommes rendus compte que l’utilisation de la luminosité ambiante comme déclencheur du système n’était pas la façon idéale, car celle-ci varie selon la période de l’année. C’est pourquoi nous avons plutôt opté pour l’utilisation du cadran à cette fin.

Au final, en cinq semaines, nous avons réussi à comprendre et faire fonctionner un système qui ouvre une lumière, joue une musique et monte les rideaux au moment où un cadran arrive à l’heure de son alarme. Cela nous satisfait amplement compte-tenu des différentes difficultés rencontrées (entre autres en lien avec le moteur).

 

Expérimentation avec diverses composantes électroniques

Après avoir compris les concepts de bases avec la programmation du Arduino et avec son environnement de développement nous avons commencer la partie la plus flous pour nous… les composantes électroniques !

Nous avons débuter par faire clignoter un simple DEL, un énorme succès! Le code était déjà écrit donc nous n’avons eu qu’à le brancher et le tour était jouer. Une procédure réutilisée pour faire jouer une petite chanson avec le haut-parleur que nous avions. Les exemples couvraient très bien ces deux cas.

#include "pitches.h"

// notes in the melody:
int melody[] = {
NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
4, 8, 8, 4,4,4,4,4 };

void setup() {
// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 8; thisNote++) {

// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);

// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(8);
}
}

void loop() {
// no need to repeat the melody.
}
L’exemple ci-haut est une copie du code d’un des multiples exemples dans l’IDE Arduino 1.0, voir bibliographie pour les autres exemples

La cellule photoélectrique était notre première composante donc nous pouvions lire une valeur. Il nous a permis d’utiliser la console du port série dans une situation réelle.

Ensuite, avec l’aide d’un jouet pour enfant, nous avons commencer à regarder les transistors, les relais et les diodes.

     

A force de lire et d’expérimenter nous avons réussi à les utiliser. L’enjeu majeur du projet était donc couvert. Nous allions pouvoir utiliser des relais pour faire monter la toile et allumer une lumière avec un cadran.

L’utilisation ainsi que la compréhension des transistors et des relais était probablement la partie la plus complexe, du moins à appliquer. Après la première réussite sur la planche d’expérimentation, nous avons tenté de le reproduire avec nos composantes. Encore là, en recommençant du début il a fallu beaucoup de temps pour le reproduire.

Le résultat de cet expérimentation est directement utilisé dans notre version finale, le module qui gère le relais est électroniquement identique. Bien sûr quelques fonctions ont été rajoutées, mais c’est la base.

COM 4 non reconnu

Un autre problème rencontré est que parfois le port COM 4 (celui par lequel notre arduino communiquait) ne semblait pas être reconnu par l’ordinateur. Malgré le fait que le pilote a été bien installé, parfois celui-ci ne semblait pas fonctionner correctement. Pour contourner le problème, il fallait débrancher et rebrancher le Arduino à plusieurs reprises et celui-ci finissait par fonctionner. Nous même devions parfois aller jusqu’à redémarrer l’ordinateur lorsque le Arduino ne fonctionnait vraiment pas.

Voilà les difficultés majeures rencontrées lors de l’expérimentation de la domotique.

Suivre

Recevez les nouvelles publications par mail.