Blame view

README.md 3.07 KB
b1a7d205   gcremasc   À revoir
1
2
3
4
  READ ME
  
  Tutorat système
  
887e4409   rguillom   mise en forme readme
5
  Rémi Guillomon et Guillaume Cremaschi
b1a7d205   gcremasc   À revoir
6
  
df996f82   rguillom   fix + README
7
  Objectif : Utiliser un shield Arduino de jeu et assurer la liaison USB à un PC.
b1a7d205   gcremasc   À revoir
8
  
df996f82   rguillom   fix + README
9
  I. Compilations et exécution
b1a7d205   gcremasc   À revoir
10
  
df996f82   rguillom   fix + README
11
  Les compilations et l'exécution se déroulent en plusieurs étapes.
a316492c   gcremasc   hj
12
  
0f27c28b   rguillom   modif
13
  -  Étape 1: Vérifiez que la carte ne soit pas flashée.
c0369a17   gcremasc   f
14
  
0f27c28b   rguillom   modif
15
16
17
  ```
  lsusb
  ```
c0369a17   gcremasc   f
18
  
b1a7d205   gcremasc   À revoir
19
  
df996f82   rguillom   fix + README
20
  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 :...
21
  
df996f82   rguillom   fix + README
22
  Court-circuitez les broches GND et RESET de l'ATMega16U2 sur l'ICSP de ce micro-contrôleur
0ebd174d   gcremasc   f
23
  
df996f82   rguillom   fix + README
24
  Puis écrivez dans un terminal :
0f27c28b   rguillom   modif
25
  
df996f82   rguillom   fix + README
26
  ```
e6564705   rguillom   Update
27
28
29
  dfu-programmer atmega16u2 erase
  dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex
  dfu-programmer atmega16u2 reset
df996f82   rguillom   fix + README
30
  ```
0ebd174d   gcremasc   f
31
  
df996f82   rguillom   fix + README
32
  Débranchez et rebranchez le port USB de la carte.
c0369a17   gcremasc   f
33
  
0f27c28b   rguillom   modif
34
  -  Étape 2 : Compilation et chargement du programme main.c dans l'ATMega328P
c0369a17   gcremasc   f
35
  
df996f82   rguillom   fix + README
36
37
38
39
40
41
  Dans un terminal, entrez ces commandes.
  ```
  make all
  make upload
  ```
  Passez en root pour l'upload si nécessaire.
0ebd174d   gcremasc   f
42
  
df996f82   rguillom   fix + README
43
  Vous pouvez tester ce progrmme directement avec la commande
b1a7d205   gcremasc   À revoir
44
  
0f27c28b   rguillom   modif
45
46
47
  ```
  minicom -8 -o -b 9600 -D /dev/ttyACM0
  ```
0ebd174d   gcremasc   f
48
  
c0369a17   gcremasc   f
49
  
0f27c28b   rguillom   modif
50
  -  Étape 3: Flasher l'ATMega16U2 avec le programme de la partie 3
c0369a17   gcremasc   f
51
  
df996f82   rguillom   fix + README
52
53
54
55
56
  Entrez dans le répertoire suivant et compilez
  ```
  cd lufa-master/PolytechLille/PAD/
  make all
  ```
b1a7d205   gcremasc   À revoir
57
  
df996f82   rguillom   fix + README
58
59
  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 :...
60
  
df996f82   rguillom   fix + README
61
62
63
64
65
  ```
  dfu-programmer atmega16u2 erase
  dfu-programmer atmega16u2 flash PAD.hex
  dfu-programmer atmega16u2 reset
  ```
3966cf83   rguillom   modifs diverses :...
66
  
df996f82   rguillom   fix + README
67
  Débranchez et rebranchez le port USB de la carte à nouveau.
c0369a17   gcremasc   f
68
  
0f27c28b   rguillom   modif
69
  -  Étape 4: Compilation du programme sur le PC
0ebd174d   gcremasc   f
70
  
df996f82   rguillom   fix + README
71
  Placez-vous dans le répertoire Pgm PC
b1a7d205   gcremasc   À revoir
72
  
0f27c28b   rguillom   modif
73
74
75
  ```
  cd ../../../Pgm\ PC/
  ```
a316492c   gcremasc   hj
76
  
df996f82   rguillom   fix + README
77
  et compilez.
0ebd174d   gcremasc   f
78
  
0f27c28b   rguillom   modif
79
80
81
  ```
  gcc -o exe init_USB.c -lusb-1.0 -Wall -Wextra
  ```
c0369a17   gcremasc   f
82
  
0f27c28b   rguillom   modif
83
  -  Etape 5 :
c0369a17   gcremasc   f
84
  
df996f82   rguillom   fix + README
85
  Vous pouvez lancer le programme en exécutant le fichier généré.
887e4409   rguillom   mise en forme readme
86
  ```
df996f82   rguillom   fix + README
87
  ./exe
887e4409   rguillom   mise en forme readme
88
  ```
3966cf83   rguillom   modifs diverses :...
89
  
df996f82   rguillom   fix + README
90
  II. Etat du programme
c0369a17   gcremasc   f
91
  
0f27c28b   rguillom   modif
92
  -  Ce qui fonctionne :
c0369a17   gcremasc   f
93
  
df996f82   rguillom   fix + README
94
  	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
95
  
df996f82   rguillom   fix + README
96
  	La réclamation des interfaces se déroule sans accroc.
3966cf83   rguillom   modifs diverses :...
97
  
df996f82   rguillom   fix + README
98
  	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
99
  
c22ab230   rguillom   debug conflit
100
  
0f27c28b   rguillom   modif
101
  -  Ce qui ne fonctionne pas :
df996f82   rguillom   fix + README
102
103
104
105
106
  
  	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
107
  	Il est possible que la commande des LED via le PC ne soit pas non plus fonctionnelle à cause du premier point abordé.