« SE2a4 USB 2023/2024 E16 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
(correction fautes)
 
(32 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Ce wiki répertorie mon travail pour le projet Système et Réseau.
Nous avions pour objectif concevoir une carte électronique permettant de pouvoir éteindre et allumer un écran d'ordinateur via une interface Web.
La carte USB doit être fixée au niveau des boutons de l'écran de telle sorte que :
- le servomoteur puisse appuyer sur le bouton d'allumage de l'écran
- la photorésistance détecte la lumière de la led qui indique que l'écran est allumé
Le serveur Web HTTP doit également pouvoir écouter des requêtes UDP venant d'autres PCs, qui pourront donner l'ordre d'éteindre ou d'allumer l'écran.
= Conception de la carte =
= Conception de la carte =
La première étape de ce projet fut de concevoir la carte sur le logiciel KiCAD.
==Lien GIT==
Lien sur le GIT du projet KiCAD (archives.plil.fr):
Lien sur le GIT du projet KiCAD (archives.plil.fr):


Ligne 5 : Ligne 22 :


==Schéma électrique Kicad==
==Schéma électrique Kicad==
[[Fichier:Schema electrique.pdf|thumb|400px|center|PDF du schéma électrique Kicad]]
[[Fichier:Schema electrique.pdf|thumb|1700x1700px|center|PDF du schéma électrique Kicad]]


==PCB Kicad==
==PCB Kicad==
[[Fichier:PCB Kicad.png|thumb|400px|center|Image du PCB Kicad]]
[[Fichier:PCB Kicad.png|thumb|1700x1700px|center|Image du PCB Kicad]]


==Carte finie==
==Carte finie==


Moi et ma binôme Justine Morin avons soudé 2 cartes identiques de modèle n°2 (celle conçu par Justine).


Moi et Justine Morin avons soudé 2 cartes identique de modèle n°2 (celle conçu par Justine). Photo de la carte à la fin de la séance du 11/04/2024 :
===Séance du 11/04/2024===
[[Fichier:Carte seance 11-04-2024.jpg|thumb|400px|center|Photo des deux cartes]]
[[Fichier:Carte seance 11-04-2024.jpg|thumb|Photo des deux cartes|centré|933x933px]]Ce qui a été fait :
 
 
Ce qui a été fait :


* soudage partie Atmega (Atmega34u2 + quartz + condensateurs + résistances)
* soudage partie Atmega (Atmega34u4 + quartz + condensateurs + résistances)
* bibliothèque DFU téléchargée sur l'Atmega
* bibliothèque DFU téléchargée sur l'Atmega
* soudage partie USB (port USB + condensateurs + résistances + boutons)
* soudage partie USB (port USB + condensateurs + résistances + boutons)
* commande lsusb fonctionne
* commande lsusb fonctionne
* soudage des leds avec leurs résistances
* soudage des leds avec leurs résistances<br />
 
===Séance du 23/05/2024 ===
 
Soudures finalisées :
[[Fichier:20240523 104035.jpg|centré|vignette|933x933px|Photo de ma carte finie]]
 
 
 
J'ai pu faire clignoté les différentes leds de ma carte à l'aide d'un programme ''cli_led.c'' présent sur le git partie CODE du projet, dans le dossier ''Test32u4''.
 
 
Petite vidéo preuve :
[[Fichier:20240523 115023.mp4|center|vignette|Vidéo clignotement des leds]]


= Code =
= Code =


La partie codage du TP a été réalisé en langage C. Je me suis chargé de la partie serveur Web HTTP et ma binôme de la partie requête UDP.
== Contenu du code ==
Mon répertoire de code ''PSR-2023-2024_PLACE_MORIN / Libs / Reseau'' (sur le GIT), est composé de :
- 3x fichiers ''.c'' :
* ''sioux.c'' : contient la fonction de démarrage du serveur Web
* ''http.c'' : contient toutes les fonctions de gestion du serveur HTTP
* ''options.c'' : contient la fonction permettant de tenir compte d'un port spécifié par l'utilisateur pour le serveur
- 1x fichier ''.html'' : interface de la page Web
- 1x fichier ''makefile'' : pour la compilation du code
== Démarrage du serveur ==
Il faut dans un premier temps compiler le code avec le fichier ''makefile'' en exécutant la commande :<syntaxhighlight lang="bash">
make
</syntaxhighlight>Puis exécuter l'exécutable généré. Un message sur la console apparaitra pour confirmer le bon lancement du serveur, ainsi que son numéro de port.
Pour accéder sur la page Web il faudra taper sur votre navigateur : <syntaxhighlight lang="bash">
localhost:8080/valentin.html
</syntaxhighlight>8080 étant le port par défaut si l'utilisateur n'en a pas spécifié.
Pour spécifié le numéro de port après compilation vous pouvez rajouter ''-p'' suivi du numéro de port :<syntaxhighlight lang="bash">
./prog -p XXXX
</syntaxhighlight>La nomenclature ''--p'' fonctionne aussi :<syntaxhighlight lang="bash">
./prog --p XXXX
</syntaxhighlight>


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


https://archives.plil.fr/vplace/PROJET_SYSTEME_RESEAU_CODE.git
'''<u>Problème connu :</u>'''


== Choix de la partie à coder ==
Le serveur Web se lançait lorsque le contenu de ''sioux.c'', ''options.c'' et ''http.c'' étaient rassemblés dans un même fichier ''.c''. Cependant depuis que le code a été séparé en plusieurs fichiers ''.c'', je n'ai pas su faire compiler les différents codes dépendants via un ''makefile''.


Serveur UDP et thread de scan des contrôleurs d'écrans.
== Lien GIT ==
Lien sur le GIT du code (archives.plil.fr) :


Serveur HTTP de pages statiques et des deux pages dynamiques.
https://archives.plil.fr/vplace/PROJET_SYSTEME_RESEAU_CODE.git

Version actuelle datée du 30 mai 2024 à 08:00

Ce wiki répertorie mon travail pour le projet Système et Réseau.

Nous avions pour objectif concevoir une carte électronique permettant de pouvoir éteindre et allumer un écran d'ordinateur via une interface Web.


La carte USB doit être fixée au niveau des boutons de l'écran de telle sorte que :

- le servomoteur puisse appuyer sur le bouton d'allumage de l'écran

- la photorésistance détecte la lumière de la led qui indique que l'écran est allumé


Le serveur Web HTTP doit également pouvoir écouter des requêtes UDP venant d'autres PCs, qui pourront donner l'ordre d'éteindre ou d'allumer l'écran.

Conception de la carte

La première étape de ce projet fut de concevoir la carte sur le logiciel KiCAD.

Lien GIT

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

https://archives.plil.fr/vplace/PROJET_SYSTEME_RESEAU_KICAD.git

Schéma électrique Kicad

PDF du schéma électrique Kicad

PCB Kicad

Image du PCB Kicad

Carte finie

Moi et ma binôme Justine Morin avons soudé 2 cartes identiques de modèle n°2 (celle conçu par Justine).

Séance du 11/04/2024

Photo des deux cartes

Ce qui a été fait :

  • soudage partie Atmega (Atmega34u4 + quartz + condensateurs + résistances)
  • bibliothèque DFU téléchargée sur l'Atmega
  • soudage partie USB (port USB + condensateurs + résistances + boutons)
  • commande lsusb fonctionne
  • soudage des leds avec leurs résistances

Séance du 23/05/2024

Soudures finalisées :

Photo de ma carte finie


J'ai pu faire clignoté les différentes leds de ma carte à l'aide d'un programme cli_led.c présent sur le git partie CODE du projet, dans le dossier Test32u4.


Petite vidéo preuve :

Code

La partie codage du TP a été réalisé en langage C. Je me suis chargé de la partie serveur Web HTTP et ma binôme de la partie requête UDP.

Contenu du code

Mon répertoire de code PSR-2023-2024_PLACE_MORIN / Libs / Reseau (sur le GIT), est composé de :

- 3x fichiers .c :

  • sioux.c : contient la fonction de démarrage du serveur Web
  • http.c : contient toutes les fonctions de gestion du serveur HTTP
  • options.c : contient la fonction permettant de tenir compte d'un port spécifié par l'utilisateur pour le serveur

- 1x fichier .html : interface de la page Web

- 1x fichier makefile : pour la compilation du code

Démarrage du serveur

Il faut dans un premier temps compiler le code avec le fichier makefile en exécutant la commande :

make

Puis exécuter l'exécutable généré. Un message sur la console apparaitra pour confirmer le bon lancement du serveur, ainsi que son numéro de port. Pour accéder sur la page Web il faudra taper sur votre navigateur :

localhost:8080/valentin.html

8080 étant le port par défaut si l'utilisateur n'en a pas spécifié. Pour spécifié le numéro de port après compilation vous pouvez rajouter -p suivi du numéro de port :

./prog -p XXXX

La nomenclature --p fonctionne aussi :

./prog --p XXXX


Problème connu :

Le serveur Web se lançait lorsque le contenu de sioux.c, options.c et http.c étaient rassemblés dans un même fichier .c. Cependant depuis que le code a été séparé en plusieurs fichiers .c, je n'ai pas su faire compiler les différents codes dépendants via un makefile.

Lien GIT

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

https://archives.plil.fr/vplace/PROJET_SYSTEME_RESEAU_CODE.git