ALGORITHMIQUE et Initiation à la Programmation

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Représentation d un entier en base b

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

Transmission d informations sur le réseau électrique

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Licence Sciences et Technologies Examen janvier 2010

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Documentation Technique du programme HYDRONDE_LN

Introduction à l algorithmique et à la programmation (Info 2)

Conférence sur les microcontroleurs.

LOGICIEL DC4D MONITOR


12 applications pour maîtriser le PICBASIC PB-3B - Gérard GUIHÉNEUF. Elektor-Publitronic ISBN :

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Logiciel de Base. I. Représentation des nombres

Bases de programmation. Cours 5. Structurer les données

Programmation en Java IUT GEII (MC-II1) 1

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

! analyse du fonctionnement

TCHATONS PAR LIAISON SANS FIL BLUETOOTH

Rappels Entrées -Sorties

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Manipulations du laboratoire

I- Définitions des signaux.

Activité initiation Arduino

Organigramme / Algorigramme Dossier élève 1 SI

Cours Informatique 1. Monsieur SADOUNI Salheddine

MANUEL D INSTRUCTION

ANALYSE TRAMEs LIAISON SERIE

Conversion d un entier. Méthode par soustraction

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Codage d information. Codage d information : -Définition-

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Guide de programmation FLEXIVOZ PABX OD308

Livret Phoenix-M. Par Georges Khaznadar, Lycée Jean Bart, Dunkerque d'après Phoenix Programmer's Manual

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

V 8.2. Vous allez utiliser les services en ligne de la plate forme de dématérialisation de la Salle des Marchés achatpublic.com.

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

GUIDE D UTILISATION. Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages

Projet audio. Analyse des Signaux ELE2700

V- Manipulations de nombres en binaire

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

GUIDE «TELECHARGER LA CLE PUBLIQUE DE SON CERTIFICAT» 1. DEFINITION ET UTILISATION DE LA CLE PUBLIQUE P2

Informatique Générale

Programmation C. Apprendre à développer des programmes simples dans le langage C

Numérisation du signal

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Cours d algorithmique pour la classe de 2nde

Chapitre 10 Arithmétique réelle

Cours 1 : Qu est-ce que la programmation?

Représentation des Nombres

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Introduction au langage C

Une carte pour vos projets

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

NOTICE D UTILISATION FACILE

Les arbres binaires de recherche

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

Algorithme. Table des matières

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

UE Programmation Impérative Licence 2ème Année

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

IV- Comment fonctionne un ordinateur?

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Les opérations binaires

Fiche technique rue de Londres Paris Tél. : Mail : contact@omnikles.com

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Visio Kit. Mode d'emploi

MODE D EMPLOI LOGICIEL DE PILOTAGE CROIX SMART 5.0

Utilisez Toucan portable pour vos sauvegardes

Plan du cours. Historique du langage Nouveautés de Java 7

Belgacom Forum TM 3000 Manuel d utilisation

CA 3000 CA 3000 PROGRAMMATION PAR MINITEL

Education Delivery Intelligent Tool

Guide d'utilisation des appareils DS350E avec tablette Motion LE1700. Dangerfield February 2009 V1.0 Delphi PSS

Prototypage électronique

FlashWizard v4.5b PRO

Comment l utiliser? Manuel consommateur

1 Introduction au codage

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

Chap17 - CORRECTİON DES EXERCİCES

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Pour accéder au Prêt numérique

Extrait des Exploitations Pédagogiques

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Chapitre 13 Numérisation de l information

un nouvel œil pour l analyse de mouvement

Utilisation de KoXo Computers V2.1

Transcription:

ALGORITHMIQUE et Initiation à la Programmation Christophe Fond Université de Strasbourg Christophe.Fond@unistra.fr Résumé Ce cours est une modeste introduction à la programmation. Il s agit de programmer une carte de type ARDUINO pour mesurer une température et l afficher. Pour cela il faut programmer des boucles et des tests. Mots clefs: ARDUINO, capteur de température, thermorésistance, langage C++. Keywords : ARDUINO, temperature sensor, thermoresistance, C++ language. Figure 1: Carte ARDUINO UNO. Université de Strasbourg, IUT Robert Schuman 31 mars 2015

Table des matières 1 Introduction 3 2 Signal analogique et digital 3 3 Mesure d une température avec une thermistance 4 4 Mesures et moyennes, précision et bruit électrique 4 5 Pilotage d une LED 5 Annexe A Exemple de codage sur 10 bits 6 Annexe B Exemples de boucle et tests en C++ 6 2

Préambule Ce cours est principalement illustré avec des cartes ARDUINO UNO. Le langage utilisé est le C++. L environnement ARDUINO permet de partir d exemples pour ensuite les modifier. 1. Introduction Dans le cadre d une modeste initiation à la domotique, ce cours considère un des sous-domaines de la domotique qui consiste à communiquer avec une carte comportant un microprocesseur programmable et à le programmer. 2. Signal analogique et digital Signal analogique Le signal analogique peut être un voltage ou (différence de potentiel), un courant, une intensité lumineuse, etc. Signal digital Le signal digital est constitué d impulsions électriques (ou lumineuses transformées en impulsions électriques). Ces impulsions doivent être décodées pour obtenir une information sous forme de caractères (chiffres ou lettres). Il faut connaître le protocole de communication (fréquences, etc.) pour savoir comment décoder l information transmise. Le décodage de l information est effectué à l aide des librairies qui sont généralement fournies avec le matériel. Il convient de s assurer que l on aura accès à la (aux) librairie(s) d un matériel avant de l acheter... Conversion analogique vers digital - ADC ADC signifie Analogic Digital Conversion. ADC est le mot clef pour rechercher des informations sur le sujet. Le signal analogique est converti en entier codé sur un nombre n de bits. Par exemple, pour la carte UNO, il est codé sur 10 bits. En d autres termes, un voltage compris entre 0 et 5V sera transformé par l ADC de la carte en un entier compris entre 0 et 1023 comme l explique l Annexe A. Par exemple, si l entier retourné vaut 618 et le voltage de référence vaut 5V alors le voltage mesuré vaut U = 5.0 618/1023 = 3.0205V. La précision et de l ordre du millième dans ce cas (1/1023). Si on considère que 617.51 est arrondi à 618 ainsi que 618.49 alors le résultat est U = 3.0205 ± 0.005V. 3

3. Mesure d une température avec une thermistance Monter la thermistance MCP9700a sur la carte Arduino UNO en branchant sur l alimentation stabilisée de la carte (5V/GND). Brancher le fil du milieu ("mesure" sur la Fig. 2, photo de droite) sur la prise (pin) A0 de la carte qui fera la mesure du courant par ADC. Figure 2: À Droite : thermistance MCP9700a et ses connexions. À gauche : diode luminescente (LED) et ses connexions. Brancher la carte sur un port USB. Ouvrir le logiciel Arduino puis "Outils" "Type de carte" pour choisir "Arduino UNO". Ensuite "Outils" "Port" pour choisir le port COM correspondant au branchement de la carte. La température T est donnée par T (U 0.5) 100 (chercher avec les mots clefs "MCP9700" et "datasheet" sur internet les spécifications de la puce). On peut étalonner la thermistance avec un thermomètre de précision en ajustant dans l équation précédente la constante valant initialement 0.5. A partir de l exemple "Fichier" "Exemples" "01.Basics" "AnalogReadSerial", envoyer l entier qui correspond au voltage mesuré vers le port COM ("Outils" "Moniteur Série" pour afficher les informations reçues par le port COM). Il suffit de cliquer sur la Téléverser (flèche en haut à gauche). Transformer cet entier en voltage puis en température et envoyer l information sur le port COM. Éventuellement étalonner la thermistance. 4. Mesures et moyennes, précision et bruit électrique Il conviendra de faire des organigrammes avant de passer à la programmation. Calcul des moyennes Faire une mesure puis la moyenne de trois mesures, puis 10 mesures et finalement 100 mesures et envoyer les quatre moyennes vers le port série (port COM) séparées par un espace. Voir des exemples utiles pour ce chapitre en Annexe B. 4

Affichage du résultat A l aide du fichier "processing_thermistance.pde" que l on copiera dans un répertoire du même nom, afficher à l aide de l environnement "Processing" la graphe en temps réel des températures mesurées et moyennées ou non. A la ligne : myport = new Serial(this, Serial.list()[2], 9600) ; il faudra éventuellement modifier le numéro du port "Serial.list()[votre numéro de port = 0, 1, 2, 3...]", la liste apparait dans l ordre en partant de 0 au lancement du programme. A la ligne : float zoomin=22.0, zoomax=24.0 ; on fixe l intervalle de température qui sera affiché, ici T [22, 24]. Les valeurs mesurées sont copiées dans le fichier "valeurs.txt". 23.6 23.5 légende V1 V2 V3 V4 23.4 valeurs (a.u.) 23.3 23.2 23.1 23 22.9 0 20 40 60 80 100 120 140 160 temps (s) Figure 3: À Droite : écran affiché par Processing en temps réel. À gauche : graphe réalisé avec les valeurs enregistrées. Que peut-on en déduire? 5. Pilotage d une LED Il conviendra de faire des organigrammes avant de passer à la programmation. A partir de l exemple "Fichier" "Exemples" "01.Basics" "Fade", faire s allumer progressivement la LED si la température augmente, s éteindre progressivement si la température diminue et se maintenir à luminosité constante si la température est stable (voir video_thermistance.avi). Attention, votre LED est branchée sur D3 et non sur D9, il faut donc modifier l exemple "Fade" ("int led = 9 ;" devient "int led = 3 ;"). Les réglages en durée et limites en écart de température sont laissés à l initiative du programmeur. Pour réaliser ce type d affichage progressif il faut disposer d une conversion digital vers analogique (DAC). La prise (pin) 3 de la carte possède une fonction DAC de type PWM. Chercher sur internet le sens de cette appellation et donner les limitations. 5

Annexe A. Exemple de codage sur 10 bits La table suivante fournit le principe du codage sur 10 bits en langage binaire. registre 1 2 3 4 5 6 7 8 9 10 valeur 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 poids 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 poids 512 256 128 64 32 16 8 4 2 1 Table A.1: Codage binaire sur 10 bits. Considérons un entier N codé sur 10 bits. Si tous ses registres contiennent 1 il prendra la valeur maximale possible à coder avec 10 registres binaires, ce qui s écrit N = 1111111111 en binaire, N = 1 512+1 256+1 128+1 64+ 1 32+1 16+1 8+1 4+1 2+1 1 = 1023 en décimal 1. Si K = 5 en décimal, puisque 5 = 0 512+0 256+0 128+0 64+0 32+0 16+0 8+1 4+0 2+1 1, K = 0000000101 en binaire que l on écrit, comme en décimal en omettant les 0 inutiles, K = 101. Annexe B. Exemples de boucle et tests en C++ Voici un exemple de boucle : int i ; float somme=0,valeur=1.5 ; for (i = 0 ; i < 10 ; i++) { somme = somme + valeur ; Voici des exemples de test : if (somme == 0) { Serial.println("rien n a ete ajoute a somme") ; if (somme > 0) { Serial.println("somme est superieure a 0") ; else { Serial.println("somme est inferieure ou egale a 0") ; 1. on obtiendra N = 3F F en hexadécimal sur le même principe... 6

Références http ://www.arduino.cc https ://processing.org 7