SE2a4 USB 2023/2024 E5

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

Mon projet

L'objectif est de concevoir un système permettant de gérer l'état des écrans d'une salle de travaux pratiques.

Le système est composé des éléments suivants :

  • des cartes USB fixées sur les écrans et connectées en USB sur la station la plus proche ;
  • des serveurs Web sur chaque station qui peuvent être accédés en utilisant un navigateur Web classique.

Le serveur Web d'une station, en plus de servir des pages Web, va gérer les cartes USB locales et écouter les requêtes UDP de gestion des écrans.

Je vais donc programmer à la fois le micro-contrôleur des cartes USB et le serveur Web.


La carte :


Ma carte va être architecturée autour d'un ATmega32u4 et comporter quelques LED commandées en plus de l'écosystème du microcontrôleur et de ce qui est nécessaire pour faire fonctionner servo-moteur et photo-récepteur.


Voici comment s'organise l'ATmega32u4 :

ATmega.png


Dans un premier temps, j'ai utilisé Kicad afin de réaliser le schématic de mon PCB.

PDF du schématic :

Schema.pdf

On y retrouve les différents blocs qui vont composer ma carte, tel que les connecteurs (ISP,USB), le servo-moteur, la photo-résistance, les LEDs, les boutons et le micro-contrôleur.

Ensuite, j'ai effectué le routage de ma carte en essayant d'optimiser le placement et routes de mes composants. Le micro-contrôleur prend une place centrale.

Routage du PCB :

PCB.png


Ensuite, j'ai soudé mes composants en testant au fur et à mesure le bon fonctionnement afin de pouvoir corriger au cas où.Photo de la carte soudée :

Unnamed.jpg

Pour finir, j'ai attaqué la partie logicielle.

Comme j'avais un AVR sans chargeur DFU/USB j'ai du l'installer.

avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U lfuse:w:0xFF:m -U efuse:w:0xF7:m

Ensuite, j'ai flashé cette commande sur l'AVR :

avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U flash:w:ATMega32U4-usbdevice_dfu-1_0_0.hex

Puis j'ai connecté ma carte en USB et vérifié qu'elle est bien en mode DFU/USB avec la commande lsusb.

Lien sur le GIT du projet KiCAD (archives.plil.fr) :

https://archives.plil.fr/hdonnege/Projet_Syst_Res_S8

Code

Choix de la partie à coder

Serveur UDP et thread de scan des contrôleurs d'écrans.

Serveur HTTP de pages statiques et des deux pages dynamiques.

Réalisation

Lien sur le GIT du code (archives.plil.fr).


https://archives.plil.fr/hdonnege/Projet_Syst_Res_S8