le programme :
// PROGRAMME LECTEUR MP3 SUR BASE VMUSIC2 A PARTIR D'UN CLAVIER PS2
// Christian PIERREDON 2010
// librairie keyboard
#include <PS2Keyboard.h>
#include <SoftwareSerial.h>
const int DataPin = 4;
const int IRQpin = 3;
PS2Keyboard keyboard;
// définition des branchements du calvier
#define KBD_CLK_PIN 3
#define KBD_DATA_PIN 4
#define VMUSIC_RX 6
#define VMUSIC_TX 7
SoftwareSerial SFTserial = SoftwareSerial(VMUSIC_RX, VMUSIC_TX);
void setup() {
delay (1000);
keyboard.begin(DataPin, IRQpin);
delay (500);
// define pin modes for tx, rx, led pins:
pinMode(VMUSIC_RX, INPUT);
pinMode(VMUSIC_TX, OUTPUT);
// définition de la vitesse de transmission
Serial.begin(9600);
SFTserial.begin(9600);
delay(1000);
// Stopper la lecture
Serial.print ("vst"),
Serial.print (0x0D,BYTE);
SFTserial.print ("vst"),
SFTserial.print (0x0D,BYTE);
}
//#define is_printable(c) (!(c&0x80)) // don't print if top bit is set
void loop() {
if(keyboard.available()) {
byte c = keyboard.read(); //lecture du clavier
switch (c){
// touche pause = barre d'espace
case 0x20:
Serial.print ("vst"),
Serial.print (0x0D,BYTE),
SFTserial.print ("vst"),
SFTserial.print (0x0D,BYTE);
break;
//STOP
case 0x0D:
Serial.print ("vp"),
Serial.print (0x0D,BYTE);
SFTserial.print ("vp"),
SFTserial.print (0x0D,BYTE);
break;
// Lecture des fichiers du lecteur 1
case 0x1B:
Serial.print ("VPF 01.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x05:
Serial.print ("vpf 02.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x06:
Serial.print ("vpf 03.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x04:
Serial.print ("vpf 04.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x0C:
Serial.print ("vpf 05.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x03:
Serial.print ("vpf 06.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x0B:
Serial.print ("vpf 07.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x83:
Serial.print ("vpf 08.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x17:
Serial.print ("vpf 09.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x01:
Serial.print ("vpf 10.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x09:
Serial.print ("vpf 11.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x78:
Serial.print ("vpf 12.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x07:
Serial.print ("vpf 13.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x60:
Serial.print ("vpf 14.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x31:
Serial.print ("vpf 15.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x32:
Serial.print ("vpf 16.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x33:
Serial.print ("vpf 17.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x34:
Serial.print ("vpf 18.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x35:
Serial.print ("vpf 19.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x36:
Serial.print ("vpf 20.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x37:
Serial.print ("vpf 21.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x38:
Serial.print ("vpf 22.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x39:
Serial.print ("vpf 23.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x30:
Serial.print ("vpf 24.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x2D:
Serial.print ("vpf 25.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x3D:
Serial.print ("vpf 26.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x71:
Serial.print ("vpf 27.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x77:
Serial.print ("vpf 28.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x65:
Serial.print ("vpf 29.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x72:
Serial.print ("vpf 30.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x74:
Serial.print ("vpf 31.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x79:
Serial.print ("vpf 32.mp3"),
Serial.print (0x0D,BYTE);
break;
// Lecture des fichiers du lecteur 2
case 0x75:
Serial.print ("vpf 33.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x69:
Serial.print ("vpf 34.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x6F:
Serial.print ("vpf 35.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x70:
Serial.print ("vpf 36.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x5B:
Serial.print ("vpf 37.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x5D:
Serial.print ("vpf 38.mp3"),
Serial.print (0x0D,BYTE);
break;
case 0x61:
SFTserial.print ("vpf 39.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x73:
SFTserial.print ("vpf 40.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x64:
SFTserial.print ("vpf 41.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x66:
SFTserial.print ("vpf 42.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x67:
SFTserial.print ("vpf 43.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x68:
SFTserial.print ("vpf 44.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x6A:
SFTserial.print ("vpf 45.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x6B:
SFTserial.print ("vpf 46.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x6C:
SFTserial.print ("vpf 47.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x3B:
SFTserial.print ("vpf 48.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x27:
SFTserial.print ("vpf 49.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x5C:
SFTserial.print ("vpf 50.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x7A:
SFTserial.print ("vpf 51.mp3"),
SFTserial.print (0x0D,BYTE);
break;
//case 0x78:
//SFTserial.print ("vpf 52.mp3"),
//SFTserial.print (0x0D,BYTE);
//break;
case 0x63:
SFTserial.print ("vpf 53.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x76:
SFTserial.print ("vpf 54.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x62:
SFTserial.print ("vpf 55.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x6E:
SFTserial.print ("vpf 56.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x6D:
SFTserial.print ("vpf 57.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x2C:
SFTserial.print ("vpf 58.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x2E :
SFTserial.print ("vpf 59.mp3"),
SFTserial.print (0x0D,BYTE);
break;
case 0x2F:
SFTserial.print ("vpf 60.mp3"),
SFTserial.print (0x0D,BYTE);
break;
}
}
}