Enseignement de spécialité
Description
Ces pages concernent l'enseignement de spécialité dédié à la spécialité système embarqué de Polytech'Lille. Plus particulièrement la filière Internet et sécurité.
Vous allez concevoir et réaliser un dispositif couvrant tous les domaines couverts par la spécialité système embarquée filière internet des objets.
Votre objectif est de commander un système embarqué minimal à l'aide d'une application tournant sur un téléphone :
- l'application mobile se connecte au réseau par WiFi ;
- le site Web contacté par l'application mobile communique avec le système embarqué en série asynchrone au dessus d'un bus USB.
D'un point de vue protocoles :
- la communication entre l'application mobile et le serveur Web utilise le protocole HTTP ;
- la page Web utilisée par l'application mobile communique avec le microcontrôleur de votre circuit imprimé par simple envoi d'octets sur une liaison série.
Carte électronique
La carte électronique qu'il vous est demandé de réaliser est une carte très simple comportant un microcontrôleur minimal permettant d'implanter un périphérique USB de type port série et de gérer quelques LED.
Pour vous faciliter la tâche le schéma électronique est déjà en partie réalisé, voir ci-contre.
Il vous reste à ajouter les composants suivants :
- une LED témoin d'alimentation avec sa résistance associée, pour ces deux composants vous utiliserez des empreintes 1206 impérial ;
- deux condensateurs de filtrage pour l'alimentation USB (100nF et 4,7uF par exemple), toujours avec des empreintes en 1206 impérial ;
- une ou deux LED commandées par le microcontrôleur sur des ports libres en utilisation normale de la carte, même remarque pour les empreintes.
Une fois le schéma électronique complété et validé par un intervenant, vous pouvez passer au routage de votre carte. Le routage consiste à placer les composants le mieux possible pour pouvoir transformer les connexions entre broches de circuits en pistes cuivres. Tout l'art consiste à minimiser la longueur des pistes, le nombre de façes et surtout à ne jamais faire en sorte que des pistes se touchent (sinon court-circuit). Vous allez partir sur une seule face, ce qui facilitera la création du circuit imprimé par la graveuse du service électronique. Nous vous promettons qu'il est possible de réaliser ce routage sur une seule face et sans faire passer de piste sous les composants à l'exception du microcontrôleur. Pour le microcontrôleur vous avez le droit de passer entre les deux rangées de broches, mais pas entre deux broches adjacentes.
Une difficulté de votre routage est de positionner les deux connecteurs 4 broches alignés et écartés de 12,3mm. Cette disposition est nécessaire pour que votre carte puisse s'enficher sur les connecteurs J1 et J2 du programmateur dont le cicruit imprimé est donné à droite.
Pour vous aider les composants présents sur le schéma électronique partiel sont déjà placés de façon optimale. Par optimale, nous voulons dire que ce placement permet le routage tel que décrit plus haut à condition que vous placiez correctement les autres composants.
Projets KiCAD :
- le projet KiCAD PeiP à compléter : File:2023-carte-partielle.zip ;
- le projet KiCAD du programmateur : File:2023-programmateur.zip.
Une fois votre routage validé par un encadrant, demandez sa fabrication sur le site plateforme électronique. La carte fabriquée, il ne vous reste plus qu'à souder les composants et à la programmer avec un Arduino servant de programmateur.
Programmation de la carte
La dernière étape est celle de la programmation de la carte. Le principe est d'arriver à lire un octet sur une liaison USB/série et à implanter cet octet comme valeur d'attente pour le clignotement de la LED commandée (en considérant l'unité de cette valeur en centième de seconde par exemple).
Vous partirez du code fourni à la page {\tt https://wiki-ima.plil.fr/mediawiki/index.php/PeiP\_enseignement\_spécialité\_SE\_2022/2023}. Nous vous laissons enrichir la fonction {\tt usbFunctionWriteOut} du fichier source {\tt tiny85\_peip/main.c} avec les commandes de votre choix. Vous pouvez aussi ajouter des variables globales et une fonction pour implanter le minuteur, cette fonction est à appeler dans la boucle principale de la fonction {\tt main}. La compilation se fait via la commande {\tt make} dans le répertoire {\tt tiny85\_peip\_2022\_1LED/default}.
La programmation de la carte se fait obligatoirement via le connecteur ISP avec un programmateur Arduino. La commande pour télécharger le code sur la carte est (remplacez éventuellement {\tt -c arduino} par {\tt -c stk500v1} pour certains programmeurs) :
\begin{verbatim} avrdude -c arduino -p attiny85 -P /dev/ttyUSB0 -b 19200 -U flash:w:cdctiny85.hex avrdude -c arduino -p attiny85 -P /dev/ttyUSB0 -b 19200 -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m \end{verbatim}
Testez ensuite la carte en utilisant la commande Unix {\tt minicom -os}, rentrez dans le troisième item du menu et sélectionnez {\tt /dev/ttyUSB0}, sélectionnez 9600 bauds, supprimez le contrôle de flux matériel, sortez du sous-menu et enfin prenez le premier item "sortie".