Souris PS2
sources : https://github.com/rucek/arduino-ps2-mouse
Les souris optiques peuvent être considérées comme des capteurs de déplacement à deux dimensions.
Matériel testé : souris Trust 15390
Bibliothèque utilisée : https://github.com/rucek/arduino-ps2-mouse
La souris testée est de technologie optique à LED :
- Une LED rouge éclaire une surface,
- une micro-caméra filme ce support,
- un processeur interprète le défilement des aspérités comme un mouvement.
Câblage
Le protocole PS2 utilise 4 fils :
- 0V ou GND
- 5V ou VCC
- Horloge ou CLK
- Données ou DAT
Identifier les rôles des 4 fils utilisés par le câble PS2 : ils sont parfois explicitement nommés sur la carte de la souris.
Dans les exemples qui suivent, les ports DAT et CLK doivent être connectés aux ports numériques 5 et 6 de l’Arduino.
Programmation
Il faut télécharger les fichiers PS2Mouse.cpp et PS2Mouse.h sur le dépôt arduino-ps2-mouse.
Puis les placer dans le dossier du programme.
Mesure des déplacements
#include "PS2Mouse.h"
#define DATA_PIN 5
#define CLOCK_PIN 6
PS2Mouse mouse(CLOCK_PIN, DATA_PIN);
void setup() {
Serial.begin(9600);
mouse.initialize();
}
void loop() {
MouseData data = mouse.readData();
if (data.position.x != 0 or data.position.y != 0) {
Serial.print(data.position.x);
Serial.print("\t");
Serial.println(data.positiony);
}
delay(20);
}
Mesure de la position
#include "PS2Mouse.h"
#define DATA_PIN 5
#define CLOCK_PIN 6
PS2Mouse mouse(CLOCK_PIN, DATA_PIN);
long int x = 0; // Position absolue suivant x
long int y = 0; // Position absolue suivant y
void setup() {
Serial.begin(9600);
mouse.initialize();
}
void loop() {
MouseData data = mouse.readData();
if (data.position.x != 0 or data.position.y != 0) {
x += data.position.x;
y += data.position.y;
Serial.print(x);
Serial.print("\t");
Serial.println(y);
}
delay(20);
}
