Projet RaspiRadio! (2008-2009) - BTS Systèmes Numériques - PDF
Document Details
2009
BTS
Mr Musso
Tags
Summary
Ce document est un projet d'examen de BTS Systèmes Numériques - Option Informatique et réseaux, année 2008-2009. Le projet porte sur la création d'un petit système informatique capable de recevoir et d'écouter la radio FM, utilisant le bus I²C. Les instructions incluent les spécifications, des étapes, des exigences et des données techniques pour le projet.
Full Transcript
BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! Projet RaspiRadio ! 2008-2009 Mr Musso -Document Professeur- Pag...
BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! Projet RaspiRadio ! 2008-2009 Mr Musso -Document Professeur- Page |1 BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! Fiche Récapitulative de la séance PRESENTATION GENERALE Matériel : RaspiRadio. Domaine d’appartenance : Les Réseaux et Modes de Transmission. DONNEES PEDAGOGIQUES Centre d’intérêt :. Objectif Pédagogique Principal : Les Réseaux et Modes de Transmission – BUS I2C. Capacités et Compétences Terminales : Capacités Compétences Terminales C5.4 Exploiter un réseau local industriel ou un bus de terrain Type de TP : TP d’Acquisition des Fondamentaux Pré requis : Programmation en Langage C/C++. Savoir : Savoir configurer et utiliser le BUS I2C. Savoir Faire : Savoir configurer et utiliser le BUS I2C sous Linux. Conditions de réalisation : Durée du cours : Durée du TD : 1h Durée du TP : 7h Organisation des élèves en TP : Organisation par Monômes. Degré d’autonomie : Les élèves pourront poser les questions qui leur seront nécessaires. Evaluation : Les élèves seront évalués durant les séances de TP en leur posant des questions et en vérifiant l’avancée de leur travail (évaluation formative) puis les élèves auront à rendre le sujet du TP qui contiendra les réponses du TP, L’évaluation finale aura lieu dans un Devoir Surveillé qui aura lieu ultérieurement. DONNEES TECHNIQUES Environnement matériel et logiciel nécessaire : Ordinateurs PC sous Windows 7 Pro 32bits et cible RaspiRadio à Base de RaspberryPi en route. Documents à utiliser : Support de cours distribué et complété en cours ou prise de notes de cours. Sujet du Projet. Annexes du Projet. Mr Musso -Document Professeur- Page |2 BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! RaspiRadio : Ecouter la Radio FM sur un RaspBerry ?! Objectifs du Mini Projet : Modifier la fréquence de réception de la Radio FM. Mettre en œuvre le bus I2C sur RaspberryPi. Mettre en œuvre le protocole I2C. S’approprier un schéma électronique. Utiliser une librairie de fonctions. Concevoir une application en langage C/C++. Ecrire une application en langage C/C++. Concevoir une application en langage C/C++ avec interface graphique avec QT. Sujet : De nos jours nous pouvons avoir internet à n’importe quel endroit de la planète grâce à nos téléphones mobiles… mais il fut un temps ou internet n’existait pas et un temps où on ne pouvait l’avoir uniquement à la maison, il est aussi possible de se trouver dans une zone ou le réseau n’est pas suffisant pour écouter la radio par internet… L’objet de notre mini projet est de concevoir un petit système informatique qui sera capable de recevoir et d’écouter la radio FM. Ce petit système sera greffé au système Raspidomo existant que vous avez déjà utilisé. Il existe des composants électroniques qui permettent de recevoir la radio, et qui peuvent être pilotés par le bus i²C ! Il existe plusieurs références plus ou moins performantes et onéreuses mais nous nous pencherons sur le composant TEA5767. Dans un premier temps, en guise de test unitaire, il faudra concevoir un programme de test en ligne de commande. La fréquence à écouter sera passée en paramètre au programme et le programme devra modifier la fréquence en pilotant le composant TEA5767. Une fois ce programme fonctionnel, vous créerez avec QT un petit programme avec une interface graphique composé (au minimum) d’une case pour saisir la fréquence à écouter et un bouton pour valider la saisie et piloter le composant TEA5767. Libre à vous d’améliorer les fonctionnalités et l’ergonomie de votre logiciel ! En principe, toutes les documentations nécessaires se trouveront sur le serveur ! Documents fournis : ANNEXE A : ANNEXE B : Matériels & Logiciels : - PC Sous Windows 10 - RaspiDomo sous Rasbpbian - G++ Quelques Conseils : Rappelez-vous que vous êtes des techniciens supérieurs en Informatique Industrielle mais que vous ne devez pas non plus oublier le français. Ce qui signifie que vous DEVEZ aussi être capable de fournir des documents (Rapports, Fiches de Tests etc…) dans un français correct… De plus, n’oubliez pas de m’appeler pour valider votre travail chaque fois que c’est spécifié… Mr Musso -Document Professeur- Page |3 BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! I. Test Unitaire : Application en ligne de commande 1. Lisez la documentation du TEA5767, Lisez la documentation du Raspberry Pi et en particulier de son GPIO. Produisez un schéma de câblage complet de notre « RaspiRadio ! ». 2. Vérifiez, sur la maquette du « RaspiRadio ! », que le câblage soit correct. Vous pourrez accéder au « RaspiRadio ! » en utilisant le partage Windows \\172.16.5.11\pi Vous créerez un répertoire personnel dans lequel vous travaillerez. Vous prendrez le contrôle de la ligne de commande du « RaspiRadio ! » en utilisant putty et le SSH. Programmez par petites étapes successives, faites des affichages, indentez votre code et commentez-le !!! 3. Etudiez la documentation du TEA 5767, quelle est l’adresse I²C de celui-ci. Mettez en place le programme : écrivez la fonction principale, écrivez le système qui permet de recevoir un paramètre et de l’afficher, ouvrez la connexion avec le TEA5767. 4. Etudiez la documentation du TEA 5767, quel(s) est(sont) le(s) registre(s) dans le(s)quel(s) il faudra aller lire et/ou écrire pour passer le composant en « Mute » ou pour désactiver le « Mute » ? 5. Rajouter au programme précédent le petit programme de test suivant : une fois la communication avec le composant établie, mettez en marche le mode « Mute » pendant 5 secondes puis repassez en mode normal. 6. Etudiez la documentation du TEA 5767, quel(s) est(sont) le(s) registre(s) dans le(s)quel(s) il faudra aller lire et/ou écrire pour modifier la fréquence démodulée par le composant ? 7. Rajouter au programme précédent la portion de programme qui permettra de modifier la fréquence démodulée par le TEA en fonction de la fréquence qui aura été passée en paramètre à la ligne de commande. L’algorithme de haut niveau de votre application est le suivant : DEBUT Réception du paramètre passé à la ligne de commande (cf. question 3) Ouverture de la communication avec le TEA (cf. question 3) Modifier la fréquence démodulée par le TEA (cf. question 6) Passage en Mode MUTE (cf. question 4) Attente 5 secondes (cf. question 4) Passage en Mode NON-MUTE (cf. question 4) FIN Faites valider… !!! Mr Musso -Document Professeur- Page |4 BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! II. Classe TEA5767 : Application en ligne de commande à utilisant une classe Ce qui vous est demandé est de concevoir une classe tea5767 qui permettra de piloter le composant électronique et de changer les stations de radio. La classe se nomme tea5767 et contient toutes les fonctions qui permettront de piloter la radio, ainsi le Main sera beaucoup simplifié ! Votre projet comportera 3 fichiers : Le fichier tea5767.h contient la déclaration de la classe, de ses attributs (en private) et de ses méthodes (en public). #ifndef TEA5767 #define TEA5767 #include using namespace std; class tea5767 { public: tea5767(char* master_device,unsigned char address); // méthode - constructeur ~tea5767(); // méthode - destructeur int set_frequency(double freq); // méthode - réglage de la fréquence courante int set_mute(bool value); // méthode - mute la sortie son de la radio private: int i; int send_command(void); // méthode - envoi de la commande au composant unsigned char command; unsigned char frequencyH; unsigned char frequencyL; unsigned int frequencyB; double current_frequency; }; #endif Le fichier tea5767.cpp contient la définition des méthodes de la classe. #include tea5767.cpp" tea5767::tea5767(char* master_device, unsigned char address) { } tea5767::~tea5767() { } int tea5767::send_command(void) { } int tea5767::set_frequency(double freq) { } int tea5767::set_mute(bool value) { } Mr Musso -Document Professeur- Page |5 BTS Systèmes Numériques – Option Informatique et réseaux Informatique Matérielle – N°6 – Le BUS I²C – Projet RaspiRadio ! Le fichier test_tea5767.cpp est le fichier Main du projet. #include using namespace std; #include "tea5767.h" int main(int argc, char **argv) { tea5767 radio(argv,0x60); radio.set_frequency(atof(argv)); sleep(5); radio.set_mute(true); sleep(5); radio.set_mute(false); return 0; } Programmez par petites étapes successives, faites des affichages, indentez votre code et commentez-le !!! Faites valider… !!! III. IHM QT La dernière étape de ce projet consiste à utiliser la classe tea5767 que vous avez précédemment créé dans un projet QT pour créer une IHM simple et esthétique pour piloter le TEA5767. Vous travaillerez sous Linux. Vous devrez installer QT (si vous ne l’avez pas déjà). https://www.qt.io/download-qt-installer? Une fois QT installé vous pouvez le lancer et démarrer un nouveau projet QT Widgets. Dans votre projet vous devrez rajouter les fichiers tea5767.h et tea5767.cpp que vous avez créé plus tôt. L’interface que vous créerez devra - au minimum - permettre de : - Modifier la fréquence de la radio que l’on veut écouter - Passer en mute - Enlever le mute L’interface devra être la plus lisible et la plus facile à utiliser possible, vous pourrez rajouter un peu de graphismes pour l’agrémenter ! Mr Musso -Document Professeur- Page |6