15/03/2014

Un clavier PS/2 avec un Arduino



Salut tout le monde !
Dans cette article, je vais vous montrer comment utiliser un clavier PS/2 avec un Arduino, le code couleur des clavier Compaq (ou similaire) et comment utiliser le clavier en mode Azerty.


1/ La librairie PS/2 keyboard

Pour pouvoir utiliser le clavier, il faut utiliser la librairie PS/2 keyboard, librairie assez simple avec beaucoup de possibilité. Voici le lien pour la télécharger :
http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html

La librairie possède quatre commandes pour pouvoir l'utiliser :

PSKeyboard ***;
Créé un objet pour le clavier.

***.begin(DataPin, IRQpin)
Démarre la connexion avec le clavier. DataPin correspond au pin de donnée (on peut prendre n'importe lequel), et IRQpin correspond au pin de l'horloge, qui ne peut être mit que sur les pin avec interruption (2 et 3 sur l'Arduino Uno).

***.available()
Renvoie 1 si une touche est presser sur le clavier.

***.read()
Renvoie le caractère de la touche presser.

(remplacer *** par le nom de l'objet PS2Keyboard)

2/ Code couleur des clavier Compaq

Voici le code couleur des clavier Compaq, qui est un peu spécial :



Et si vous utiliser un connecteur PS/2, voici les connexion :

3/ Utiliser le clavier en Azerty

Si vous avez déjà lancer le programme d'exemple de la librairie, vous avez surement vu que le clavier est reconnu comme qwerty, et non pas azerty. Pour pouvoir écrire en azerty, il y a deux solutions, une permanente et une à inclure dans le code.

Solution permanente :
La solution permanente est de modifier le fichier PS2Keyboard.h pour mettre le mode azerty par défaut. D'abord, ouvrez le fichier avec WordPad (ou Notepad++) puis aller à la ligne ou il y a écrit :
static void begin(uint8_t dataPin, uint8_t irq_pin, const PS2Keymap_t &map = PS2Keymap_US);
et changer "PS2Keymap_US" en "PS2Keymap_French". Maintenant vous pouvez enregistrer puis re-compiler le programme d'exemple, et les touches entrer sont normalement en azerty.

Solution incorporer dans le code :
Pour ne pas a avoir à changer le fichier PS2Keyboard.h, on peut changer le format du clavier directement depuis la commande "***.begin" en ajoutant "PS2Keymap_French" après les variables des broches, ce qui donne :
***.begin(DataPin, ClockPin, PS2Keymap_French);

Voilà, c'est terminer pour ce petit tutoriel sur le clavier PS/2 avec l'arduino, et si vous avez des questions posez les en commentaire.

30/01/2014

[TUTO] Arduino sur un ATMega328 sans le PicoPower



Salut tout le monde, voilà que je fais mon premier tutoriel.
Comme vous le savez, il existe deux versions de l'ATMega328 : le 328 et le 328P. La version P intègre le PicoPower, une technologie qui permet de consommé moins d'énergie. Mais le problème, c'est que le bootloader de l'Arduino est conçu pour la version P, et pas la classique. Alors si comme moi, vous vous êtes tromper de version, vous ne pourrez pas installer le bootloader sur le 328. Mais il y a une astuce qui permet de contourner ce problème.


1. Trouvez le fichier
Pour contourner le problème, il faudra modifier le fichier de config d'avr-gcc. Pour cela, rendez-vous dans :
...\Arduino\hardware\tools\avr\etc
La, vous trouverez un fichier nommé avrdude.conf. Vous devez faire une sauvegarde de ce fichier ! Personnellement, j'ai fais deux dossier, un avec le fichier de base, un avec le fichier modifier.

2. Modifier le fichier

Après avoir fais une sauvegarde, ouvrez le fichier avec WorldPad (ou autre) et chercher la partie ATMega328P. Dans cette partie ce trouve les fichier de configuration du microcontrôleur. Alors vous devez remplacer la ligne
signature      = 0x1e 0x95 0x0F;
par
signature      = 0x1e 0x95 0x14;
et vous pouvez sauvegarder le fichier.

3. Installer le bootloader

Maintenant, vous pouvez installer le bootloader sur votre ATMega328 dans l'IDE Arduino. 

4. Programmer l'ATMega328

Après avoir installer le bootloader, vous devez changer le fichier avrdude.conf modifier par l'original. Alors, votre ATMega328 sera détecter comme un ATMega328P.

Merci d'avoir lu mon premier tuto et bonne prog'  !