I2L 2022 Groupe4

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

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

Compilation en ligne de commande avec gcc.

Oubliez le "concurrent" clang.

Compilation classique avec avr-gcc :

uniquement trois paquetages à installer :

# apt install gcc-avr avr-libc avrdude // DFU/USB dfu 6 programmer

compilation par ligne de commande :

$ 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)

téléversement sur le microcontrôleur en ligne de commande :

$ avr-objcopy -j .text -j .data -O ihex timer.elf timer.hex

$ stty -F /dev/ttyACM0 hupcl

$ avrdude -F -v -p atmega328p -c stk500v1 -b 115200 -P /dev/ttyACM0 -U flash:w:timer.hex

maitrise totale du code ;

des programmes compacts et efficaces.

Fichiers

Le circuit imprimé à utiliser est le même que celui du groupe 2 avec le clavier optionnel.