arduino uno & android - sn - bretagnedocuments.sn-bretagne.net/files/combslaville... · 2013....

8
Lycée des Métiers Jacques Prévert Combs – la – Ville Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle Embarquée Traitement et transmission d’informations TP SEN Rev00 1 Durée : 4heures Propreté : /1 Autonomie : /3 ARDUINO UNO & ANDROID Binôme : Note : / Bilan :

Upload: others

Post on 15-Mar-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

1

Durée : 4heures

Propreté : /1 Autonomie : /3

ARDUINO UNO & ANDROID

Binôme : Note : /

Bilan :

Page 2: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

2

1: MISE EN SITUATION

Vous êtes technicien et vous intervenez auprès de particuliers pour réaliser des installations utilisant les nouvelles technologies (domotique). Ici, il s’agit de commander l’ouverture d’un portail, équipé de 2 vérins électriques, au moyen d’une application Android fonctionnant depuis un téléphone portable ou une tablette. Le réseau sans fil wifi sera utilisé dans cette installation ainsi qu’un module Arduino et sa carte interface Ethernet. Le client possède en effet, un modem routeur wifi ainsi qu’un switch intégré. Un message sur un afficheur de type LCD (à cristaux liquides), affichera en permanence l’état du portail (ouvert ou fermé) ainsi que l’action d’ouverture et de fermeture.

2: CAHIER DES CHARGES

Interfaces de puissance

Portail – vérin électrique

Afficheur LCD

Shield Ethernet Arduino Uno Arduino

Tablette Android + application Switch

Point d’accès Wifi

PC de programmation Arduino (IDE)

Technicien

Page 3: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

3

Complément d’informations et adaptation du cahier d es charges au TP :

- Un seul vérin électrique est disponible pour le TP. Aussi, 2 sorties numériques (« digitales ») seront utilisées. Ces sorties sont : ouverture du portail ���� broche 8 du module Arduino. fermeture du portail ���� broche 7 du module Arduino.

- 2 boutons-poussoirs sont utilisés pour la commande de l’ouverture et de la fermeture du portail. Ces entrées sont :

Commande ouverture du portail ���� bouton poussoir sur broche 12 du module Arduino. Commande fermeture du portail ���� bouton poussoir sur broche 11 du module Arduino

- L’afficheur LCD nécessite d’utiliser les broches 2,3,4,5,6,9 du module Arduino.

- Le point d’accès Wifi diffuse un réseau sans fil crypté dont le SSID est prevert.

- Une tablette tactile Android est utilisée à la fin du TP pour la commande du vérin (protocole UDP).

9

6 5 3

4

2

Module Arduino

Module Afficheur

7

GND

8

Module Arduino

Interface de puissance

5V 11 12

ouverture fermeture

Page 4: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

4

3 : Etapes de configuration du module UNO

POUR FAIRE LA SUITE VOUS DEVEZ CONSULTER LE DOCUMEN T ANNEXE CONCERNANT LE MODULE ARDUINO.

Le Shield Ethernet n’est pas inséré sur le Shield U no pour les questions 3.1 à 3.3

3.1 Commande logicielle d’un vérin électrique (ouve rture/fermeture du portail) Question 1 : Rappeler les broches de l’Arduino Uno qui doivent être mises à l’état logique 1 pour commander le vérin. Question 2 : La broche 7 sera nommée « fermeturePortail » et la ligne 8, « ouverturePortail ». Ecrire les instructions qui permettent de déclarer ces constantes et paramétrer ces lignes en sortie. Rappel : Aidez-vous du document annexe1.

Question 3 : Ecrire les 2 lignes qui permettent de fermer le portail (fermeturePortail =1 et ouverturePortail =0). Question 4 : Ouvrez l’IDE Arduino 1.0.2 et créez un nouveau « sketch », puis écrivez les instructions nécessaires pour fermer le portail. Ne pas oublier de mettre un titre avec un commentaire qui explique ce que vous faites. Vérifiez, téléchargez, puis testez votre programme.

VALIDATION :

Question 5 : Ecrire ci-dessous, les 2 lignes qui permettent d’ouvrir le portail. Testez votre programme.

/1

/4

/2

/4

/2

Page 5: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

5

3.2 Commande d’un vérin électrique par boutons-pou ssoirs On prendra comme exemple, le « sketch » intitulé StateChangeDetection, présent dans le dossier « exemples ». Il s’agit dans cette partie, que le programme détecte un changement d’état sur une entrée (11 ou 12 selon) ; ici, le changement sera le passage de l’état bas à l‘état haut sur une entrée. Question 1 : Le bouton-poussoir rouge sur l’entrée 11 sera nommé « bpFermeturePortail » et celui sur l’entrée 12 , de couleur bleue,« bpOuverturePortail ». Ecrire les instructions qui permettent de déclarer ces constantes et paramétrer ces lignes en entrée. Question 2 : Ecrire la déclaration des 2 noms de variables entières (int) qui représenteront l’état des entrées 11 et 12 ; on les nommera : « EtatBpFermeturePortail » et EtatBpOuverturePortail ». Question 3 : Vous allez modifier le sketch précédent et ajouter les instructions des questions 1 et 2. Enlevez également les 2 instructions écrites aux questions 3 et 5 du 3.1. Puis, dans la boucle, écrire les instructions qui vont correspondre à l’algorithme suivant :

Si le bouton-poussoir de fermeture est appuyé, Alors actionner la fermeture du portail

Pendant 5 secondes Sinon ne pas actionner la fermeture du portail Si le bouton-poussoir d’ouverture est appuyé, Alors actionner l’ouverture du portail

Pendant 5 secondes Sinon ne pas actionner l’ouverture du portail

Faites une copie d’écran de votre nouveau sketch ; n’oubliez pas d’y mettre des commentaires ! Testez puis faites vérifier.

VALIDATION :

/2

/2

/4

Page 6: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

6

3.3 Utilisation de l’afficheur LCD L’objectif est d’ajouter, dans le sketch précédent, des instructions permettant d’afficher des messages correspondant aux actions en cours (ouverture portail, fermeture portail), puis correspondant à l’état du portail (portail fermé, portail ouvert). On prendra également comme exemple, le « sketch » intitulé HelloWorld, présent dans le dossier « exemples » pour faire fonctionner l’afficheur. Attention : on rappelle que le branchement de l’afficheur est différent de l’exemple « Hello World » et vous devrez en tenir compte pour l’initialisation LiquidCrystal lcd(). * LCD RS pin to digital pin 9 * LCD Enable pin to digital pin 6 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 Attention au repère des colonnes et lignes:

Question 1 : Ajouter dans votre sketch précédent, les instructions d’initialisation de l’afficheur. Ajouter les instructions pour afficher les messages selon les actions sur les boutons-poussoirs. Par exemple : Testez votre programme. Question 2 : Ajouter dans ce sketch, des instructions qui permettent d’afficher les messages précédents durant 10 secondes, puis d’afficher de manière permanente les messages d’état du portail. Par exemple : Testez votre programme.

VALIDATION : Faire une copie de votre sketch et insérez-le dans votre TP .

/4

/2

Ligne 0

Colonne 0

OUVERTURE PORTAIL EN COURS

FERMETURE PORTAIL EN COURS

PORTAIL OUVERT

PORTAIL FERME

Page 7: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

7

3.4 Utilisation du module Shield Ethernet

Otez les boutons-poussoirs et raccordez le module Ethernet sur le module Uno. L’objectif est de programmer le module, de sorte qu’il reçoive des commandes (ouverture, fermeture du portail) depuis une tablette android, connectée en Wifi, selon le protocole UDP. Pour cela, vous allez créer un nouveau sketch appelé « gestionPortailArduino » avec les instructions suivantes : #include <LiquidCrystal.h> #include <SPI.h> #include <Ethernet.h> #include <EthernetUdp.h> //déclaration des constantes const int fermeturePortail = 7; const int ouverturePortail = 8; //Initialisation de l’afficheur LiquidCrystal lcd(9, 6, 5, 4, 3, 2); // Configuration adresse MAC et adresse IP du Shield Ethernet byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 1, 177); unsigned int localPort = 8888; //déclaration d'une mémoire tampon dont la taille est fixée par la taille du message reçu char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; // Création d'un objet Udp issu de la classe EthernetUDP: EthernetUDP Udp; // fonction qui exécute des instructions à la mise sous tension void setup() { // la ligne 7 est en sortie: pinMode(fermeturePortail, OUTPUT); // la ligne 8 est en sortie: pinMode(ouverturePortail, OUTPUT); Ethernet.begin(mac,ip); Udp.begin(localPort); //Affichage du menu principal. lcd.begin(16,2); lcd.setCursor(4,0); lcd.print("Gestion"); lcd.setCursor(2,1); lcd.print("du portail"); } void loop() { lcd.setCursor(0,1); int packetSize = Udp.parsePacket(); if(packetSize){ lcd.clear(); Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE); lcd.print(packetBuffer); // si trame udp recue, alors affichage du message envoyé sur l’afficheur lcd }

Page 8: ARDUINO UNO & ANDROID - SN - Bretagnedocuments.sn-bretagne.net/files/Combslaville... · 2013. 1. 15. · Section de BAC PRO Systèmes électroniques numériques Electronique Industrielle

Lycée des Métiers Jacques Prévert Combs – la – Vill e Section de BAC PRO Systèmes électroniques numérique s Electronique Industrielle Embarquée

Traitement et transmission

d’informations TP SEN Rev00

8

Question 1 : Télécharger le sketch dans le module Arduino. Vérifier le fonctionnement de l’afficheur et l’affichage du message d’accueil.

VALIDATION : Question 2 : L’application créée pour répondre au fonctionnement de base a l’allure suivante et se nomme « GestionPortail » ; elle se trouve déjà sur la tablette Android. Cette application est capable d’envoyer des messages en UDP au Shield Ethernet et au module Arduino.

Un appui sur « OUVERTURE » doit provoquer l’affichage du message correspondant sur l’afficheur puis doit actionner le vérin, simulant l’ouverture d’un portail.

Même principe pour la fermeture. Procéder au test de l’application. Et observez

l’affichage du message. La commande du vérin n’est pas encore réalisée.

Question 3 : Vous allez modifier le sketch « gestionPortailArduino » de sorte qu’il actionne le vérin à la réception des messages. Pour cela, vous allez considérer la 1ère lettre des messages, soit « O », soit « F ». Algorithme : Si le message reçu est « O » alors

Mettre 1 sur sortie « ouverturePortail » et 0 sur sortie « fermeturePortail » Sinon Si le message reçu est « F » alors

Mettre 0 sur sortie « ouverturePortail » et 1 sur sortie « fermeturePortail » Remarque: char packetBuffer[] est une chaîne de caractères et on accède au 1er caractère en écrivant packetBuffer[0]. Réaliser le programme, tester, faire valider et imprimer le code source.

VALIDATION : Pour ceux en avance. Modifier le programme de façon à afficher d’abord « ouverture en cours », puis au bout de 10 secondes, afficher « portail ouvert ». Idem pour la fermeture.

/2

/2

/4