Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Arduino
  3. Projet 6
Extrait - Arduino S'exercer au prototypage électronique (10 projets créatifs à réaliser soi-même)
Extraits du livre
Arduino S'exercer au prototypage électronique (10 projets créatifs à réaliser soi-même)
1 avis
Revenir à la page d'achat du livre

Projet 6 - Lampe multicolore pilotée en Bluetooth

Présentation

Pour visualiser la vidéo du projet : https://youtu.be/TF1y8qvDw2o

Images/08AR03.png

Ce projet consiste à réaliser une lampe dont la couleur et l’intensité seront réglables via une communication sans fil depuis un smartphone ou un autre terminal pourvu d’une communication Bluetooth.

Ce projet vous fera entrer de plain-pied dans le monde des objets connectés. Il sera un prétexte à la mise en œuvre d’une communication Bluetooth entre un terminal quelconque et l’Arduino. Vous découvrirez le fonctionnement d’un ruban de leds multicolores et le principe de la synthèse additive des couleurs.

1. Principe de fonctionnement

La lampe, alimentée par le secteur et pourvue d’un abat-jour, peut être allumée et réglée depuis un smartphone.

Un programme préexistant, écrit pour le système d’exploitation Android et qui fonctionne sur la plupart des smartphones du commerce, permet de choisir une couleur sur une interface graphique et d’en transmettre les valeurs en Bluetooth sur le dispositif de votre choix. L’Arduino est reliée à un module Bluetooth qui établit et relaie la communication avec le terminal de commande par un lien série. Les commandes reçues sont interprétées pour piloter un ruban de leds RVB (rouge vert bleu ou RGB : Red Green Blue ) afin...

Matériel et outillage

Le matériel nécessaire se résume au strict minimum et représente un budget d’environ 40 euros.

1. Matériel

  • Une Arduino UNO (ou Nano pour plus de compacticité).

  • Un ruban de 30 leds RVB SMD5050.

  • Un module Bluetooth de type HC-06  ou équivalent.

  • Une alimentation 12 V continue (pour un fonctionnement autonome).

  • Une plaque de prototypage (grand format).

  • Trois transistors Darlington TIP120.

  • Trois résistances de 22 Kohms.

  • Des fils de connexion.

images/01AR01.png

Arduino UNO

Images/08AR04.png

Module Bluetooth HC-06

Images/08AR05.png

Transistor TIP120

Images/08AR07.png

Ruban de leds RVB SMD5050

2. Outillage

Pour réaliser ce projet, il sera nécessaire d’utiliser un ordinateur pour programmer l’Arduino. Un terminal Android (tablette ou smartphone) sera aussi utile. Mais si vous n’en avez pas, vous pourrez utiliser votre ordinateur avec une communication Bluetooth à la place.

Montage

Le montage consiste à câbler le module Bluetooth et le circuit de pilotage des leds RGB. Additionnellement, vous pouvez réfléchir à un carénage et/ou un abat-jour pour dissimuler l’électronique et diffuser la lumière produite par le ruban de leds.

Images/08AR01.png

Montage de la lampe Bluetooth

1. Module Bluetooth

Comme son nom l’indique, le module Bluetooth sert à établir et à gérer les communications via le protocole Bluetooth, qui est un standard de transmission bidirectionnel sans fil à faible distance et faible consommation énergétique.

Le nom Bluetooth est inspiré du roi danois Harald à la dent bleue, qui unifia plusieurs tribus pour créer le royaume du Danemark. Cette analogie est utilisée, car à l’origine, ce protocole fut inventé pour faire communiquer les ordinateurs et les téléphones cellulaires, qui auparavant étaient incapables de dialoguer. Depuis 1996, ce protocole s’est répandu à tous les niveaux pour remplacer les liaisons filaires pour les communications à courte distance et bas débit (souris, oreillettes, tablettes, etc.).

Pour faire dialoguer une Arduino en Bluetooth, il est nécessaire de lui adjoindre un module dédié qui communique avec elle via une liaison série. Le module Bluetooth décrit dans ce projet est de type HC-06. Il en existe pléthore et les modèles évoluent très rapidement. Aussi, il est possible qu’au moment de réaliser ce projet, vous ne trouviez pas ce type exact. Ce n’est pas grave, car le principe général de montage et de programmation reste le même. Seuls quelques détails varieront, principalement la vitesse de communication série (voir la section...

Programmation

La programmation de la lampe connectée commence par la maîtrise et le contrôle des leds RVB, puis passe par la mise en œuvre du module Bluetooth, et enfin l’intégration des deux éléments pour implémenter la fonction finale de lampe pilotée via le Bluetooth.

1. Test du ruban de leds

Comme expliqué précédemment, les leds RVB sont en fait constituées d’un assemblage de trois leds rouge, verte et bleue et c’est la modulation de l’alimentation de ces trois leds qui fait varier la couleur de l’ensemble.

Afin de vérifier le bon fonctionnement du ruban de leds, vous allez créer un code qui module les couleurs en passant par toutes les nuances. Ainsi, si un problème de câblage ou de fonctionnement affecte une des couleurs, il sera plus facile à détecter.

Ce code est plutôt simple puisqu’il consiste dans un premier temps à déclarer les numéros des bornes reliées aux trois transistors actionnant les leds :


int R = 3; 
int V = 5; 
int B = 6;
 

Puis, dans la routine d’initialisation, il s’agit de les configurer en tant que sortie :


void setup() { 
  pinMode(R, OUTPUT); 
  pinMode(V, OUTPUT); 
  pinMode(B, OUTPUT); 
}
 

Dans la boucle principale, une variable appelée temps, qui servira dans les calculs suivants, est une division de la fonction millis() et s’incrémente donc plus lentement (en l’occurrence une unité toutes les 0,6 secondes).


  float temps = float(millis() )/ 600;
 

Les trois lignes suivantes écrivent dans les sorties analogiques reliées à chaque couleur des valeurs fluctuantes suivant une sinusoïde oscillant entre 0 et 250, et décalée de :

Images/i18.PNG

Ceci produit un signal triphasé de couleur :


  analogWrite(R, (125+int(125 * sin(temps )))); 
  analogWrite(V, (125+int(125 * sin(temps + (2*PI / 3))))); 
  analogWrite(B, (125+int(125 * sin(temps + (4 * PI / 3)))));
 
Images/08AR11.png

Oscillation des trois couleurs primaires en fonction du temps

Le code complet est donc le suivant :

Fichier : _01_RGB


int R = 3; 
int V = 5; 
int B = 6; 
 
 
void setup() { 
  pinMode(R, OUTPUT); 
  pinMode(V, OUTPUT); 
  pinMode(B, OUTPUT); 
} 
 
void loop()...

Pour aller plus loin

1. Améliorations possibles

Cette lampe est déjà très amusante, mais vous pouvez imaginer plusieurs améliorations pour la rendre encore plus intéressante.

Ajouter une animation de couleur

Codez un nouveau programme d’interface pour ajouter une animation de couleur : l’idée est d’entrer différentes couleurs et les temporisations intermédiaires pour provoquer une animation.

Améliorer le design de la lampe

La lampe telle quelle est brute, mais elle serait bien plus belle avec un abat-jour.

Vous pouvez créer un abat-jour spécifique, par exemple en papier plié, en vous aidant du logiciel 3D Blender et du plug-in Export Paper Model. L’idéal est que l’abat-jour cache également l’Arduino et le système d’alimentation de manière à montrer un objet fini et homogène.

Réaliser une lampe connectée

Reliez cette lampe à des données puisées sur Internet. Pour la rendre réactive à des informations émanant du réseau : tweets, e-mails entrants, etc.

Utiliser la lampe comme veilleuse ou réveil

Introduisez des temporisations pour utiliser cette lampe comme veilleuse, ou même comme réveil... 

2. Ressources

Histoire du protocole Bluetooth : https://fr.wikipedia.org/wiki/Bluetooth

Conseils d’Adafruit sur l’utilisation...