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); }