« I2L 2022 Groupe4 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 11 : | Ligne 11 : | ||
== 3 parties à faire == | == 3 parties à faire == | ||
* Prog SE: | |||
Prog SE: | |||
- LED | - LED | ||
Ligne 21 : | Ligne 19 : | ||
<s>- Haut Parleur (pas dans notre use case)</s> | <s>- Haut Parleur (pas dans notre use case)</s> | ||
* Prog USB: | |||
Prog USB: | |||
- LUFA | - LUFA | ||
* Prog PC: | |||
Prog PC: | |||
- Lib usb | - Lib usb | ||
Par défaut le micro processeur a un bootloader qui permet de faire de la programmation (sans passer par le SPI) , l'utilitaire que nous utilisons est DFU/USB. | Par défaut le micro processeur a un bootloader qui permet de faire de la programmation (sans passer par le SPI) , l'utilitaire que nous utilisons est DFU/USB. | ||
"5.2 ATMega328p : Chaîne de compilation (2/2)" de https://rex.plil.fr/Enseignement/Systeme/Systeme.PSE/systeme.html | "5.2 ATMega328p: Chaîne de compilation (2/2)" de https://rex.plil.fr/Enseignement/Systeme/Systeme.PSE/systeme.html | ||
<nowiki>#</nowiki> apt install gcc-avr avr-libc <s>avrdude</s> '''//''' '''DFU/USB dfu 6 programmer''' | <nowiki>#</nowiki> apt install gcc-avr avr-libc <s>avrdude</s> '''//''' '''DFU/USB dfu 6 programmer''' | ||
$ avr-gcc -mmcu=atmega328p -DF_CPU=8000000UL -c -Wall -I. -Os timer.c -o timer.o '''// compilation source en un . objet''' | $ avr-gcc -mmcu=atmega328p -DF_CPU=8000000UL -c -Wall -I. -Os timer.c -o timer.o '''// compilation source en un . objet''' | ||
Ligne 54 : | Ligne 37 : | ||
$ avr-gcc -mmcu=atmega328p -g -lm -Wl,--gc-sections -o timer.elf timer.o '''// édition des liens (afin d'obtenir un exécutable)''' | $ avr-gcc -mmcu=atmega328p -g -lm -Wl,--gc-sections -o timer.elf timer.o '''// édition des liens (afin d'obtenir un exécutable)''' | ||
$ avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex '''// nécessaire pour les utilitaires''' | |||
$ avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex | |||
$ | $ dfu_programmer atmega16u2 erase | ||
$ dfu_programmer atmega16u2 flash time.hex | |||
$ dfu_programmer atmega16u2 reset | |||
= Fichiers = | = Fichiers = | ||
Le circuit imprimé à utiliser est le même que celui du groupe 2 avec le clavier optionnel. | Le circuit imprimé à utiliser est le même que celui du groupe 2 avec le clavier optionnel. |
Version du 22 mai 2023 à 08:10
Clavier de raccourcis programmables - par Axel Lebas & Wassim Djamaa & Maxime Vitse
Proposition de système
Une carte avec 4 boutons programmables via un fichier de configuration qui est fourni par l'utilisateur. Accompagnée d'une LED.
Contre-proposition
Bonne idée. Votre périphérique USB sera programmé avec une interface comportant un point d'accès OUT pour envoyer les chaînes de caractères à envoyer sur pression des boutons. Il serait intéressant d'écrire ces chaînes dans l'EEPROM de l'ATMega16u2 pour qu'elles persistent une fois le périphérique débranché. Les LED du périphérique doivent permettre d'indiquer quelles touches sont programmées. Le programme de configuration sera écrit avec la bibliothèque libusb-1.0.
3 parties à faire
- Prog SE:
- LED
- Bouton
- Haut Parleur (pas dans notre use case)
- Prog USB:
- LUFA
- Prog PC:
- Lib usb
Par défaut le micro processeur a un bootloader qui permet de faire de la programmation (sans passer par le SPI) , l'utilitaire que nous utilisons est DFU/USB.
"5.2 ATMega328p: Chaîne de compilation (2/2)" de https://rex.plil.fr/Enseignement/Systeme/Systeme.PSE/systeme.html
# apt install gcc-avr avr-libc avrdude // DFU/USB dfu 6 programmer
$ avr-gcc -mmcu=atmega328p -DF_CPU=8000000UL -c -Wall -I. -Os timer.c -o timer.o // compilation source en un . objet
$ avr-gcc -mmcu=atmega328p -g -lm -Wl,--gc-sections -o timer.elf timer.o // édition des liens (afin d'obtenir un exécutable)
$ avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex // nécessaire pour les utilitaires
$ dfu_programmer atmega16u2 erase
$ dfu_programmer atmega16u2 flash time.hex
$ dfu_programmer atmega16u2 reset
Fichiers
Le circuit imprimé à utiliser est le même que celui du groupe 2 avec le clavier optionnel.