Blame view

README.md 3.14 KB
c4cb8909   rguillom   MAJ mise en page
1
  # Tutorat système - Manette de jeu Arduino en USB
b1a7d205   gcremasc   À revoir
2
  
c4cb8909   rguillom   MAJ mise en page
3
  par Rémi Guillomon et Guillaume Cremaschi
b1a7d205   gcremasc   À revoir
4
  
c4cb8909   rguillom   MAJ mise en page
5
  **Objectif :** Utiliser un shield Arduino de jeu broché sur une Arduino UNO et assurer la liaison USB à un PC.
b1a7d205   gcremasc   À revoir
6
  
c4cb8909   rguillom   MAJ mise en page
7
  ## I. Compilations et exécution
b1a7d205   gcremasc   À revoir
8
  
df996f82   rguillom   fix + README
9
  Les compilations et l'exécution se déroulent en plusieurs étapes.
a316492c   gcremasc   hj
10
  
0f27c28b   rguillom   modif
11
  -  Étape 1: Vérifiez que la carte ne soit pas flashée.
c0369a17   gcremasc   f
12
  
0f27c28b   rguillom   modif
13
14
15
  ```
  lsusb
  ```
c0369a17   gcremasc   f
16
  
b1a7d205   gcremasc   À revoir
17
  
df996f82   rguillom   fix + README
18
  Si l'ATMega16u2 est déjà flashé, il faut enregistrer le binaire du lien : https://raw.githubusercontent.com/arduino/ArduinoCore-avr/master/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-uno.hex 
3966cf83   rguillom   modifs diverses :...
19
  
df996f82   rguillom   fix + README
20
  Court-circuitez les broches GND et RESET de l'ATMega16U2 sur l'ICSP de ce micro-contrôleur
0ebd174d   gcremasc   f
21
  
df996f82   rguillom   fix + README
22
  Puis écrivez dans un terminal :
0f27c28b   rguillom   modif
23
  
df996f82   rguillom   fix + README
24
  ```
e6564705   rguillom   Update
25
26
27
  dfu-programmer atmega16u2 erase
  dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex
  dfu-programmer atmega16u2 reset
df996f82   rguillom   fix + README
28
  ```
0ebd174d   gcremasc   f
29
  
df996f82   rguillom   fix + README
30
  Débranchez et rebranchez le port USB de la carte.
c0369a17   gcremasc   f
31
  
0f27c28b   rguillom   modif
32
  -  Étape 2 : Compilation et chargement du programme main.c dans l'ATMega328P
c0369a17   gcremasc   f
33
  
df996f82   rguillom   fix + README
34
35
36
37
38
39
  Dans un terminal, entrez ces commandes.
  ```
  make all
  make upload
  ```
  Passez en root pour l'upload si nécessaire.
0ebd174d   gcremasc   f
40
  
df996f82   rguillom   fix + README
41
  Vous pouvez tester ce progrmme directement avec la commande
b1a7d205   gcremasc   À revoir
42
  
0f27c28b   rguillom   modif
43
44
45
  ```
  minicom -8 -o -b 9600 -D /dev/ttyACM0
  ```
0ebd174d   gcremasc   f
46
  
c0369a17   gcremasc   f
47
  
0f27c28b   rguillom   modif
48
  -  Étape 3: Flasher l'ATMega16U2 avec le programme de la partie 3
c0369a17   gcremasc   f
49
  
df996f82   rguillom   fix + README
50
51
52
53
54
  Entrez dans le répertoire suivant et compilez
  ```
  cd lufa-master/PolytechLille/PAD/
  make all
  ```
b1a7d205   gcremasc   À revoir
55
  
df996f82   rguillom   fix + README
56
57
  Puis Flashez le micro-contrôleur :
  Court-circuitez les broches GND et RESET de l'ATMega16U2 sur l'ICSP de ce micro-contrôleur et tapez ces lignes
3966cf83   rguillom   modifs diverses :...
58
  
df996f82   rguillom   fix + README
59
60
61
62
63
  ```
  dfu-programmer atmega16u2 erase
  dfu-programmer atmega16u2 flash PAD.hex
  dfu-programmer atmega16u2 reset
  ```
3966cf83   rguillom   modifs diverses :...
64
  
df996f82   rguillom   fix + README
65
  Débranchez et rebranchez le port USB de la carte à nouveau.
c0369a17   gcremasc   f
66
  
0f27c28b   rguillom   modif
67
  -  Étape 4: Compilation du programme sur le PC
0ebd174d   gcremasc   f
68
  
df996f82   rguillom   fix + README
69
  Placez-vous dans le répertoire Pgm PC
b1a7d205   gcremasc   À revoir
70
  
0f27c28b   rguillom   modif
71
72
73
  ```
  cd ../../../Pgm\ PC/
  ```
a316492c   gcremasc   hj
74
  
df996f82   rguillom   fix + README
75
  et compilez.
0ebd174d   gcremasc   f
76
  
0f27c28b   rguillom   modif
77
78
79
  ```
  gcc -o exe init_USB.c -lusb-1.0 -Wall -Wextra
  ```
c0369a17   gcremasc   f
80
  
0f27c28b   rguillom   modif
81
  -  Etape 5 :
c0369a17   gcremasc   f
82
  
df996f82   rguillom   fix + README
83
  Vous pouvez lancer le programme en exécutant le fichier généré.
887e4409   rguillom   mise en forme readme
84
  ```
df996f82   rguillom   fix + README
85
  ./exe
887e4409   rguillom   mise en forme readme
86
  ```
3966cf83   rguillom   modifs diverses :...
87
  
c4cb8909   rguillom   MAJ mise en page
88
  ## II. Etat du programme
c0369a17   gcremasc   f
89
  
0f27c28b   rguillom   modif
90
  -  Ce qui fonctionne :
c0369a17   gcremasc   f
91
  
df996f82   rguillom   fix + README
92
  	Le programme de l'ATMega328P est fonctionnel. Lors d'un changement d'état des boutons ou d'un déplacement du joystick, il envoie à la suite un octet de début de trame, l'octet associé au boutons, la valeur de l'axe x du joystick et celle de l'axe y. Ces trois derniers octets sont mis en forme comme conseillé dans l'énoncé.
b1a7d205   gcremasc   À revoir
93
  
df996f82   rguillom   fix + README
94
  	La réclamation des interfaces se déroule sans accroc.
3966cf83   rguillom   modifs diverses :...
95
  
df996f82   rguillom   fix + README
96
  	La connexion entre l'ATMega16U2 et le PC par les points d'accès s'établit correctement. De plus, l'envoi des données sur la liaison série par l'ATMega328P fonctionne (testé avec minicom).
c0369a17   gcremasc   f
97
  
c22ab230   rguillom   debug conflit
98
  
0f27c28b   rguillom   modif
99
  -  Ce qui ne fonctionne pas :
df996f82   rguillom   fix + README
100
101
102
103
104
  
  	Nous n'avons pas eu l'occasion de réaliser la commande des LED depuis l'exécutable du PC.
  
  	La réception des données sur la liaison série de l'ATmega16U2, via la fonction Reception_Serie() n'est en effet pas opérationnelle. Une fois initialisés, les octets des boutons et des axes des joysticks, sont bien transmis au PC (et affichés sur le terminal) mais leur valeur ne change pas malgré les intéractions avec la manette.
  
e6564705   rguillom   Update
105
  	Il est possible que la commande des LED via le PC ne soit pas non plus fonctionnelle à cause du premier point abordé.