PAE 2021 Transmission d'un signal
TAJ Ahmed/TALLARITA Hugo
Sommaire
PROJET : Transmission d'un signal :
Séance 1 :
Découverte du sujet.
Objectif : Transmettre un signal codé en 8bits issue d’une diode laser. Etude des différents éléments du système.
Emetteur : Diode laser : Laser composé de semi-conducteurs permettant d’émettre une lumière monochromatique.
Récepteur : Phototransistor : Transistor sensible à la lumière permet d’émettre des impulsions électriques permettant d’étudier le signal lumineux
Choix du microcontrôleur : Microprocesseur va nous permettre de lire les données pour le transmettre au laser et aussi le recevoir du phototransistor.
Par conséquent nous avons choisi d’utiliser deux microcontrôleurs pour les deux parties du système (émetteur, récepteur).
Séance 2 :
Prise en main des éléments du système et mise en place du schéma de liaison du système.
Choix du microcontrôleur : Carte Arduino Uno
Travail à faire prochaine séance : étude des propriétés du laser et du phototransistor (puissance maximale d’émission, durée maximale d’acquisition du transistor)
Séance 3 :
Objectif n°1 : Transmettre un seul bit ente l’émetteur et le récepteur. Mise en place de l’émetteur :
Nous avons réalisé l’émission du seul bit grâce au code suivant :
Pour le récepteur on a le montage ci-dessous :
Puis nous avons réalisé le programme du récepteur :
Grâce au traceur série du logiciel on obtient la courbe suivante :
On observe bien le delay entre chaque bit transmis. La photorésistance renvoie une valeur entre 412 et 0 correspondant au tension émis par le transistor.
Séance 4 :
Mise en place de la transmission par paquets. Le matériel a changé, on a un système isolé que l’on peut manipuler facilement, on utilise une gaine pour transmettre le signal au récepteur :
Objectif n°2 : Transmettre un octet entre l’émetteur et le récepteur. Notre objectif est de transmettre un octet grâce à notre système c’est-à-dire 8 bits. Pour cela nous avons commencer par la partie émission. Nous avons dans un premier temps simplifier nos données d’entrée. Au lieu de lire une valeur pour ensuite la transmettre au laser, nous avons commencé par remplir un tableau pour que le microcontrôleur puisse le lire chaque valeur du tableau puis le transmettre au laser. Ainsi le code suivant permet de réaliser cette tâche avec un exemple de tableau :
Nous avons aussi implémenté un bit de start et de stop (les deux à 1) pour faciliter le codage du récepteur prochainement. En téléversant les informations on parvient finalement à voir l’information que l’on souhaite émettre grâce au laser (0XFF => Emission du signal lumineux ; 0X00 => Le laser n’émet rien)
Séance 5 :
Maintenant que nous savons comment émettre une trame de 8 bits, il faut savoir émettre cette trame à partir d’une valeur que l’on a. Pour cela il faut convertir la valeur en binaire (8bits), le code suivant permet de réaliser cette conversion :
Séance 6 :
Nous avons essayé d’implémenter des valeurs pour réaliser la conversion et observer si les clignotements du laser correspondaient à la valeur codée en binaire. Cependant le code ne fonctionne pas correctement. Nous avons implémenté un Serial.print dans le loop pour observer d’où provient ce problème. L’erreur provient du remplissage du tableau dans la fonction loop qui ne se remplit pas correctement pour les différentes valeurs. Par conséquent nous avons décidé de simplifier notre étude en réaliser l’émission pour une seul fois donc dans le bloc setup.
Séance 7 :
En plaçant notre code dans le bloc setup une seule trame apparaît pour la valeur implémenter. Celle-ci correspond à la conversion de la valeur 18 (0001001). En effet dans notre étude les valeurs affichées vont du LSB au MSB :
Séance 8 :
Après avoir codé l’émission, nous avons commencé la partie réception du signal. Pour cela il faut pouvoir détecter le premier bit qu’émet le laser. Donc on se propose de commencer la lecture au moment où le bit de start apparaît. De plus pour lire les données il faudrait attendre un certain temps pour être assez précis et ne pas oublier des valeurs. Pour cela lors de l’apparition du premier bit il suffira d’attendre une demi-période pour se placer entre chacune des impulsions. Le code suivant permet de réaliser la réception des données :
Séance 9 :
Lors de cette dernière séance nous nous sommes focalisés sur les erreurs de transmission. Pour cela nous avons choisi d’implémenter un code pour détecter les bits de parité et transmettre à l’utilisation s’il y’a une erreur de transmission. Pour la partie émission on a le code suivant qui convertit, émet les données et ajoute un bit de parité :
Pour la partie réception on a :
Et finalement en testant notre système on obtient le résultat suivant sur le moniteur série :
Montage final : (Sans la gaine)
