Modèle - Sn-Bretagne



T?L?M?TRIE Introduction?:La section Parcs & Jardins va participer prochainement à une course de tondeuses autoportées qui va durer 24heures sans arrêt. 2 tondeuses vont être utilisées. La section SEN a été sollicitée pour concevoir un système électronique embarqué permettant de faire des mesures sur ces tondeuses durant la course. Les relevés seront envoyés sur un PC à l’aide d’une liaison radio sans fil et seront stockés pour réaliser des analyses sur les moteurs. Le système embarqué sera également capable d’afficher des données et de pouvoir limiter le régime moteur pour éviter la casse.D’autre part, il serait intéressant de suivre sur une carte le trajet des tondeuses, nécessitant alors un dispositif GPS, ce qui permettrait également de comptabiliser le nombre de tours réalisés par les différents pilotes.Un site web sera développé à cette occasion afin de présenter le travail réalisé autour de cette course et il serait intéressant de développer en direct, des news pendant la course (classement, incidents, déroulement, informations diverses....).Il serait question également de développer une application Android et de communiquer en bluetooth avec le PC contenant l’application. Une personne pourrait alors se déplacer avec sa tablette et visualiser en temps réel certaines données.Notre client est donc la section MPJ (maintenance des matériels parcs et jardins)Bilan des t?ches à réaliserSite WEB (avec un CMS)Joomla, Drupal...Application qui re?oit les donnéesprogramme PythonApplication qui affiche les donnéesprogramme PythonApplication qui stocke et analyse les donnéesprogramme PythonModule embarqué et affichageArduinoEnvoi des données sans filZigbeeRécupération des données GPSModule compatible ArduinoAffichage sur tablette androidApp Inventor (Bluetooth)Application qui dialogue en bluetooth Programme PythonSTAND-12700077470290440945085APPLICATION ANDROID4168775329882560255152232025SERVEUR WEB – LIAISON 3G76644502765425MODULE XBEE USBAPPLICATION PYTHON75120503841755426075117475ARDUINO + XBEE – MODULE GPS – MODULE AFFICHAGE EMBARQU?S1588006213677532448501565275Les activitésPour parvenir à réaliser tout ou partie du projet assez complexe, vous allez travailler en essayant d ‘atteindre des mini-objectifs. Lorsque le fonctionnement global sera compris, il sera alors possible d’aller vers l’objectif final.Objectif N°?1?: faire communiquer 2 PC (hyperterminal) en mode sans fil en utilisant les modules XBEE.Nécessite de configurer 2 modules.Objectif N°2?: programmer un module Arduino, équipé d’un module XBEE et envoyer des trames sur un PC (hyperterminal).Nécessite le module XBEE shieldObjectif N°3?: Réaliser un serveur web et y installer un CMS (Joomla , Drupal).Objectif N°4?: Installer un afficheur 2x16 caractères sur Arduino et afficher des infos.Objectif N°5?: Installer, utiliser App-Inventor et tester un programme préfabriqué. Tests, compréhension et modification d’une application (thermomètre) Application télémétrie?bluetooth (sauvegarder sous un autre nom et ne garder que l’affichage de la température). Objectif N°6?: Développement d’ un programme Python qui re?oit des données sur sa liaison série RS232. Objectif N°7?: Développement d’IHM en Python avec PyQt?, en vue de réaliser l’application Python (partie visuelle).Objectif N°8?: Installer et configurer le module GPS sur Arduino et récupérer les données sur Hyperterminal.Des tests de télémétrie pourront être réalisés ensuite sur la tondeuse RL500 où sera installé un Arduino?: la vitesse de la tondeuse serait capturée par exemple, la tension batterie, le soulèvement de la machine....Activité 1?:Utiliser App-Inventor avec une application Android déjà réalisée?(termometre_vermell) qui permet de se connecter en bluetooth à un capteur et d’indiquer des valeurs de température.L’objectif est de modifier le présentation de l’application. Application à modifier?: Application modifiée3479164-444521590-635 L’utilisation de App-Inventor nécessite d’avoir un compte gmail. L’installation de java6 est nécessaire (mais pas java7).Activité 2?:Réaliser un sketch Arduino qui permet d’acquérir une tension continue sur une des entrées analogiques (AN0) et d’envoyer la valeur correspondante au PC (via USB du module Arduino).Principe?:GNDAN0Générateur simulant un capteurUSBModule ArduinoPC (HyperterminalOu console)Pour la visualisation sur le PC de la tension provenant du capteur, on prendra le moniteur série de l’application Arduino (onglet Outils).Créer un sketch intitulé ??telemetrie1??. Ouvrir le fichier ??AnalogReadSerial?? à partir de l’onglet Fichier, Exemples, Basics. En vous basant sur cet exemple, écrivez les lignes de votre propre programme. La liaison série est paramétrée en 9600 bauds.Utilisez les noms suivants pour les constantes et les variables?globales:??entreeCapteur0?? nom donné pour l’entrée AN0 (constante)??tensionCapteur0?? nom donné pour la tension issue du capteur (variable)Placez le ??delay à 500ms??. Lorsque votre programme est prêt, testez-le. Dans le moniteur série, des valeurs s’affichent en fonction de la tension appliquée sur AN0. Il s’agit de valeurs décimales comprises entre 0 et 1023. Il faut modifier le programme afin que la valeur affichée soit la même que celle du capteur?: exemple, si le capteur fournit 2.2V, il faut afficher 2.2.Pour cela, il faut ajouter une variable et une expression?:Utilisez la variable? globale ??valeur???: float valeur = 0 au bon endroit.Ajoutez la ligne suivante?: valeur = (5*tensionCapteur0)/1024.A la place de SerialPrintln(tensionCapteur0), écrire SerialPrintln(valeur).Lorsque votre programme est prêt, testez-le.Imprimez votre programme et commentez-le pour être capable de le réutiliser par la suite.Activité 3?:Le sketch précédent permet d’envoyer un nombre décimal image de la tension présente sur l’entrée AN0. L’objectif de cette nouvelle activité est de réaliser un programme Python et une toute petite interface graphique qui va afficher la valeur de cette tension (et d’une température) avec PyQt Designer.Principe?:GNDAN0Générateur simulant un capteurUSBModule ArduinoPC Applicatin Python et PyQt1ère étape?: création de la mini-interface graphique avec PyQt Designer.Vérifier que Python3.3 est installé. Vérifier que PyQt Designer est installé. Sinon il faut télécharger depuis le serveur ftp, le fichier suivant?selon le PC: PyQt5-5.1.1-gpl-Py3.3-Qt5.1.1-x32.exePyQt5-5.1.1-gpl-Py3.3-Qt5.1.1-x64.exeCréer un répertoire ProjetPython sur le disque C. Vous enregistrerez les fichiers de l’application à l‘intérieur.Ouvrir QtDesigner.Dans la fenêtre de dialogue, choisir Widget et cliquer sur créer. On obtient l’interface Qt avec un widget Form vide.250190103505Modifier le titre de la fenêtre dans l’éditeur de propriétés sur la droite et trouvez la propriété ??WindowTitle?? de la classe Qwidget. Mettre ??Mesure de la température??. Faire ??Entrer??.Enregistrez votre fichier dans votre répertoire et nommez-le ??MesureTemp??. Remarque?: L’extension du fichier est *.ui. A ce stade, vous devez avoir ceci?:47879099695L’étape suivante consiste à placer des widgets de sorte que l’on se retrouve avec ce ??mini widget?? Form?:153606562230Pour cela, il faut 3 labels (voir c?té gauche et faire glisser les Widgets dans la fenêtre).Il faut 1 LCD Number ,1 Spin Box et 1 Push Button.Enregistrer votre travail et fermer QtDesigner.Ce fichier doit maintenant être ??converti?? en langage Python. Nous allons créer un fichier nommé ??ui_MesureTemp.py?? de la manière suivante?:Ouvrir la fenêtre de commande DOS (cmd).Placez-vous dans le répertoire où se trouve votre fichier en tapant directement cd /ProjetPython.Vérifiez avec la commande ??DIR?? que votre fichier ??MesureTemp.ui?? s’ y trouve.Puis entrez?la commande suivante?: pyuic5 –o ui_MesureTemp.py –x MesureTemp.uiFaire ??entrer???; il ne doit pas y avoir de message particulier. Fermer la fenêtre.Ouvrir l’IDLE de Python3 (Démarrer- programmes) et ouvrir le fichier ?? ui_MesureTemp.py??.Faire F5 pour exécuter le programme. La fenêtre précédente appara?t.150749057785L’étape suivante va consister à créer le programme principal indépendant de la partie programme de l’interface graphique (ceci est alors plus simple lorsqu’il faut changer des éléments de cette interface).Pour cela, télécharger depuis le serveur ftp, le fichier ??MesureTempMain.py???; il est déjà préparé pour être adapté à votre application. Il s’agit des lignes nécessaires au minimum pour afficher la fenêtre graphique.############################################ Date: novembre 2013 # # Auteur: JM LETELLIER ## Projet: course de tondeuses 24h ## Co-auteur: ############################################# --- importation des modules utiles ---from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *import os,sys# classe principale:class myApp(QWidget, Ui_Form): # la classe re?oit le Qwidget principal# Note : ici self représente la classe def __init__(self, parent=None): QWidget.__init__(self) # initialise le Qwidget principal self.setupUi(parent) # Obligatoire # fonction principale exécutant l'application Qtdef main(args): a=QApplication(args) # crée l'objet application f=QWidget() # crée le QWidget racine c=myApp(f) # appelle la classe contenant le code de l'application f.show() # affiche la fenêtre QWidget r=a.exec_() # lance l'exécution de l'application return r# pour rendre le fichier *.py exécutableif __name__=="__main__": # pour rendre le code exécutable main(sys.argv) # appelle la fonction mainAvec ce programme, vous ne pouvez pas encore ouvrir l’interface graphique?; vous devez importer le programme précédent ?? ui_MesureTemp.py??.Ajouter l’instruction?: from ui_MesureTemp.py import * dans la partie importation des modules.Lancer l’exécution de ce programme (F5) et vérifier que l’interface appara?t sans erreur. Les actions sont pour l’instant inopérantes?; normal car le programme n’est pas terminé. Fermer le programme.L’étape suivante va consister à insérer un ??bout de programme?? (un module), qui va s’occuper de gérer la communication série.C’est à partir du SpinBox que la communication va pouvoir s’établir en sélectionnant le bon numéro de port.Ajouter la ligne suivante?dans le programme.39306543815Ajouter ensuite la ligne suivante?:39306510160Lorsque vous cliquerez sur le bouton ??OUVRIR?? (le spinBox), la procédure ??ouvrirPort() s’exécutera.Ajouter la procédure ouvrirPort()?:4787902540Cette partie va utiliser le module comRS232 que vous avez importé au début de ce programme. Soit la communication s’établit, soit il y a un message d’erreur ??impossible d’ouvrir le port de communication??.Les 3 lignes suivantes?: 1831340-635s’occupent d’exécuter un programme (ici ??afficherDonneeTemp??) à chaque fois qu’une donnée est re?ue sur le port série. C’est comme si on faisait fonctionner un autre programme en parallèle des autres. Il va permettre de modifier l’affichage de la valeur dans le LCD.Il faut donc ajouter la procédure afficherDonneeTemp(), à la suite?:Dernière partie à ajouter?: il s’agit d’une classe qui s’occupe de la réception des données provenant du port série, de la récupération de la valeur et de l’envoi de cette valeur à la procédure afficherDonneeTemp().47879098425Lorsque vous branchez l’Arduino avec son programme et que vous connaissez le numéro de port de connexion, vous pouvez enregistrer et lancer l’application. Sélectionner le bon port et appuyer sur le bouton ??ouvrir???; le programme ne doit pas donner de message d’erreur.L’interface appara?t avec la valeur qui s’affiche?; modifier la tension de l’entrée AN0 de l’Arduino et vérifier que la valeur du LCD change également.131699010795Remarque?: la valeur de la température est basée sur le capteur LM35 qui fournit une tension sur l’entrée AN0 de l’Arduino de 10mV/°C. Il faudra penser à ajouter une instruction dans le programme Arduino qui permettra d’afficher une température et non une tension comme dans l’activité2. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches