Commit 38c48da370ff2d73e5f4605907a75edb3e067fe7
1 parent
d029a016
README.md finit
Showing
1 changed file
with
42 additions
and
6 deletions
Show diff stats
README.md
1 | # Projet/Tutorat système | 1 | # Projet/Tutorat système |
2 | 2 | ||
3 | +Le but de ce tutorat est d'apprendre à utiliser et configurer une Atmega32U4 pour l'interfacer avec l'USB. Pour terminer nous devions montrer un jeu vidéo qui fonctionne avec notre manette, en utilisant en plus du joystick et des bouttons (HID), des leds et deux vibreurs. | ||
4 | + | ||
5 | +Nous avons réussi à faire communiquer un micro-logiciel en C avec la manette pour contrôler les 4 leds implémentées, et à utiliser l'interface HID de la manette comprenant le Joystick et les boutons (S2, S3, S4 et S5). | ||
6 | + | ||
7 | +Pour ce qui est des vibreurs, sur le micro-controlleur l'interface est configuré, mais le code n'est pas implémenté par manque de temps, mais ils se controllent comme les leds (sur PORTD). | ||
8 | + | ||
3 | ## Organisation du repertoire | 9 | ## Organisation du repertoire |
4 | 10 | ||
5 | -Dossier src/ contenant les sources | 11 | +Le projet est décomposé en 2 parties/dossiers: |
12 | +* 'Software' pour la gestion par l'OS avec libusb de la manettes USB | ||
13 | +* 'Hardware' pour le programme qui sera téléversé sur le 32U4, avec | ||
14 | + | ||
15 | +### Software | ||
16 | + | ||
17 | +* Dossier src/ et include/ contenant les sources | ||
18 | +* Dossier obj/ et bin/ pour les fichiers de compilations | ||
19 | +* L'executable final est bin/main.exe | ||
20 | +* Un fichier Makefile pour la compilation | ||
21 | +* Un utilitaire pour convertir un nombre héxadecimale en base décimale, hexToDec.sh | ||
22 | + | ||
23 | +### Hardware | ||
24 | + | ||
25 | +* Le driver crée pour la manette se situe dans Hardware/LUFA/Drivers/Board/AVR8/PINGUI | ||
26 | +* On y trouve le Driver pour les LEDS, pour le JOYSTICK et pour les BOUTONS | ||
27 | + | ||
28 | + | ||
29 | +* Dans le dossier Hardware/PolytechLille/Manette on trouve le fichier Manette.c, ainsi que tous les fichiers Manette.* | ||
30 | +* On y retouve aussi les fichiers Descriptors.c et Descriptors.h (qui contiennent les interfaces entre autres) | ||
31 | +* On y trouve également le Makefile qui permet de compiler Manette.c et de le lier aux drivers. | ||
32 | +On peut upload directement ce qui a été make sur la manette en utilisant "make " puis "make upload". | ||
6 | 33 | ||
7 | 34 | ||
8 | ## Compiler | 35 | ## Compiler |
9 | 36 | ||
10 | -Il faut installer les dépendances : libusb avec `apt-get install libusb-1.0` | ||
11 | -Pour compiler il faut lancer la commande `make` | 37 | +### Software |
38 | + | ||
39 | +Il faut installer les dépendances pour la partie software : libusb avec `apt-get install libusb-1.0` | ||
40 | + | ||
41 | +Dans le dossier Software/ il faut lancer la commande `make`. Pour avoir un niveau haut de verbosité (libusb en très verbeux), on peut lancer la commande `make DEBUG=1`. | ||
42 | + | ||
43 | +### Hardware | ||
44 | + | ||
45 | +Il faut installer les dépendances pour la partie hardware : `apt-get install dfu-programmer` | ||
46 | +Pour compiler il faut être dans le dossier Hardware/PolytechLille/Manette, lancer la commande `make`, puis pour téléverser `make upload` | ||
47 | + | ||
12 | 48 | ||
13 | -Pour avoir un niveau haut de verbosité, on peut lancer la commande `make DEBUG=1` | ||
14 | 49 | ||
15 | 50 | ||
16 | ## Utiliser | 51 | ## Utiliser |
17 | 52 | ||
18 | -Pour lancer le programme principale, il faut exécuter bin/main.exe | 53 | +On peut tester l'interface HID avec `jstest-gtk`. |
19 | 54 | ||
20 | -Les demo des questions se lancent avec `make demostep` (pour l'instant) | 55 | +Pour lancer le micro-logiciel dans le dossier Software, il faut exécuter `bin/main.exe`. |
21 | 56 | ||
57 | +Par défaut le logiciel cherche dans l'énumération des périphériques USB la manette avec le *vendor-id* et le *product-id* correspondant à la manette. On peut aussi lancer `bin/main.exe demo4.1`, `bin/main.exe demo4.1plus` qui requiert plus de droits, et `bin/main.exe demo4.2 <VID> <PID>` . |