« I2L 2022 Groupe2 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
(Résumé TP 12/06)
(Ajout capture terminal)
Ligne 40 : Ligne 40 :


En fin de séance, nous avons démarré la programmation sur la comparaison de mot de passe.
En fin de séance, nous avons démarré la programmation sur la comparaison de mot de passe.
[[Fichier:Capture terminal.png|thumb|600px|center|Envoi d'un mot de passe de 10 caractères, le périphérique renvoi 01 ce qui veut dire que le mot de passe n'est pas bon]]


= Fichiers =
=Fichiers=


Projet KiCAD : [[File:I2L-2022-CLAIRET-MARETTE.zip]]
Projet KiCAD : [[File:I2L-2022-CLAIRET-MARETTE.zip]]

Version du 12 juin 2023 à 15:25

Proposition de système

Nous proposons un vérificateur de mot de passe. La carte comporterait 3 LED correspondant à 3 essais, si l'essai est mauvais la led est rouge et on passe à un nouvel essai, si l'essai est bon ça passe au vert et ensuite l'état est remis à 0. Au bout de 3 essais ratés tout est au rouge et est remis à 0 ensuite.

Contre-proposition

Pas de difficulté sur la programmation de la carte. Le code doit être programmé dans le périphérique USB. Ce périphérique USB doit comporter une interface avec un point d'accès IN et un point d'accès OUT. Le point d'accès OUT est utilisée pour envoyer le code proposé vers la carte, le point d'accès IN est utilisée pour lire la réponse de la carte (code correct ou non). Le programme sur PC utilisera la bibliothèque libusb-1.0.

Carte

Schéma
Carte

Carte soudée :

I2L-2022-G2-carte-soudée.jpg

Historique des travaux

TP du Lundi 22 mai :

Programmation en C dans le but de faire clignoter la LED, en précisant un timing précis et en utilisant l'horloge ajouté sur la carte. En fin de séance, nous étions occupés à allumer la LED uniquement lorsque nous appuyons sur un bouton.

TP du Jeudi 25 mai :

Notre carte contient désormais 7 leds (3 rouges, 3 vertes et une bleue) ainsi que 2 boutons. Dans un premier temps, nous avons programmé en C un programme qui : par défaut maintient les leds éteintes, sur l'appui du bouton gauche on allume les leds rouges et bleue et sur le bouton droit on allume les vertes.

Suite à ça nous avons pris en main un projet LUFA en y ajoutant la base "Minimal", avec lsusb -vvv nous vérifions si notre périphérique USB contient bien une interface, ce qui n'est pas le cas pour l'instant.


TP du Lundi 12 juin :

En début de projet, nous avons récupéré une base LUFA ainsi qu'une base utilisant la librairie libusb. Après avoir testé ces deux programmes, nous avons bien une interface de renseigné et le IN/OUT fonctionnel.

Nous avons rencontré un problème avec le code erreur -7 qui provenait du stockage (uint8_t EP_Data;), en ajoutant "volatile" devant le typage, cela a réglé le soucis.

Pour finir, nous avons réunis les deux projets en un seul pour plus de facilité lors de nos programmations, ce projet est disponible sur le lien GitHub dans les fichiers. Nous avons démarré la programmation de la lecture d'un mot de passe, en commençant par envoyer 10 caractères et en vérifiant la bonne réception sur le premier caractère.

En fin de séance, nous avons démarré la programmation sur la comparaison de mot de passe.

Envoi d'un mot de passe de 10 caractères, le périphérique renvoi 01 ce qui veut dire que le mot de passe n'est pas bon

Fichiers

Projet KiCAD : Fichier:I2L-2022-CLAIRET-MARETTE.zip

Projet LUFA "écho" : Fichier:I2L-2022-LUFA-echo.zip

Programme libusb-1.0 "écho" : Fichier:I2L-2022-libusb-echo.zip

Projet GitHub réunissant la partie périphérique et la partie PC : https://github.com/hisakiyo/systeme-embarque

Pour compiler le programme "libusb" il faut juste avoir installé un compilateur C et la bibliothèque libusb-1.0-0-dev.

Pour compiler le projet LUFA, il faut commencer par récupérer la bibliothèque lufa-LUFA-210130. Il faut ensuite placer le répertoire de l'archive dans un nouveau répertoire I2L créé dans le répertoire de la bibliothèque : lufa-LUFA-210130/I2L/Echo. Un simple make compile le projet et un make dfu télécharge le binaire dans le périphérique USB.