Go Down

Topic: envoi de données midi par un touchpad! (Read 2210 times) previous topic - next topic

buttercanes

Jan 18, 2011, 02:00 pm Last Edit: Jan 18, 2011, 02:08 pm by buttercanes Reason: 1
salut a tous
je vous explique mon probleme:
j'ai une arduino pro mini, un ecran tactile 4 fils et une led I2C blinkM
mon but est de transmettre des donnes midi vers un Kaoss pad via l'ecran et ma pro mini le truc c'est que je ne comprend pas comment compiler correctement le code pour que ça fonctionne de plus ma led doit etre allumée en fading quand l'ecran n'est pas touché et clignoter rapidement si je touche le pad
je laisse un lien d'exemple de ce que ça doit donner
merci a ceux qui vont lire ce topic et qui pourront m'aider!
;)
http://www.youtube.com/watch?v=UTL3zCQhRqE/
http://www.youtube.com/watch?v=RoHGI8rdbPs&feature=related/
http://www.youtube.com/watch?v=1p2PwtdcCNg&feature=related/
et pour finir les données midi a transmettre:

Channel 1 (default for Kaoss pad)

Pad On/Off                 CC92               0 and 127
Pad X Axis                 CC12               0-127
Pad Y Axis                 CC13               0-127
Program                      Program C       0-127


Channel 2 (default for Digitech Whammy)

Pad On/Off                 CC0                 0 and 127
Pad X Axis                 CC11               0-127
Pad Y Axis                 CC10               0-127 (Not used by whammy pedal)
Program                      Program C       0-127


buttercanes


B@tto

Personnellement, je ne vois pas la question  ::)
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

buttercanes

en fait j'ai compilé un code pour mon ecran tactile qui fonctionne je lit les coordonnées sur le serial board mais je ne comprend pas comment ajouter les données midi a envoyer vers mon element externe

B@tto

Je ne sais pas si tu as déja regardé sur le playground mais il y a pas mal d'exemple qui je pense pourraient te donner certaines réponses déja :
http://www.arduino.cc/playground/Main/InterfacingWithHardware#MIDI
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

buttercanes

oui je l'avait vu deja mais en fait a chaque fois que j'essai d'ajouter ce type de valeur midi ma sequence est mauvaise et c'est cela que je ne comprend pas en fait ça fait des jours que je fait des test en je n'arrive plus a trouver de solution d'ou ma detresse... lol

buttercanes

je peut te montrer la sequence utilisé pour l'ecran  tactile si tu veut

B@tto

Si tu publis ton code en effet il sera plus facile de t'aider ^^
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

buttercanes

#8
Jan 19, 2011, 06:04 pm Last Edit: Jan 19, 2011, 06:06 pm by buttercanes Reason: 1
voila le code de l'ecran:
// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// Touch panel wiring
// Connect to Arduino these wires (used to drive power)
#define Lo 2 // LEFT to digital output 2
#define Bo 3 // BOTTOM to digital output 3
#define Ro 4 // RIGHT to digital output 4
#define To 5 // TOP to Digital output 5

// Connect to Arduino these wires (used to read the touch position)
#define Ti 0 // TOP also to analog input 3
#define Ri 1 // RIGHT also to analog input 4

#define LED 13 // LED event
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


// vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// current touched
int touchX = 0;
int touchY = 0;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
}

void loop()
{
if (touched())
{
Serial.print("X=");
Serial.print(touchX);
Serial.print(" Y=");
Serial.println(touchY);

digitalWrite(LED, HIGH);
delay(50);
digitalWrite(LED, LOW);
}

}

// return TRUE if touched, and coords in touchX and touchY
boolean touched()
{
boolean touch = false;

// Horizontal routine - set L to gnd and R to Vcc
// set L = ground
pinMode(Lo, OUTPUT);
digitalWrite(Lo, LOW);
// set R = Vcc
pinMode(Ro, OUTPUT);
digitalWrite(Ro, HIGH);
// T e B high impedance (input mode)
pinMode(To, INPUT);
pinMode(Bo, INPUT);
// wait a bit, then read from Top
delay(10);
touchX = analogRead(Ti);

// Vertical routine - set T to gnd and B to Vcc
// Set B = Vcc
pinMode(Bo, OUTPUT);
digitalWrite(Bo, LOW);
// set T = gnd
pinMode(To, OUTPUT);
digitalWrite(To, HIGH);
// R e L high impedance (input mode)
pinMode(Ro, INPUT);
pinMode(Lo, INPUT);
// wait a bit, then read from Right
delay(10);
touchY = analogRead(Ri);

// Only if coords are below 1000
if(touchX < 1000 and touchY < 1000)
touch = true;

return touch;
}



int sensorPin = A3;    // select the input pin for the potentiometer
int ledPin = 10;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor


 // declare the ledPin as an OUTPUT:
/

Go Up