Chonomèetre de compétition est Terminé !! :P
3 participants
Page 1 sur 1
Chonomèetre de compétition est Terminé !! :P
Voici la vidéo de démo
https://www.youtube.com/watch?v=-k9k5kf5Wg4
https://www.youtube.com/watch?v=-k9k5kf5Wg4
https://www.youtube.com/watch?v=-k9k5kf5Wg4
Cout total de fabrication : 174$
tous les pièces nécessaire pour fabriquer sont diponible a blainville. www.robotshop.ca
2 board arduino Duemilanove (http://arduino.cc/en/Main/ArduinoBoardDuemilanove)
1 kit d'antennes rf
2 résistance 10kohm
fils pour branchements
2 leds(optionnel)
2 sensor de pression 24 pouces.
1 battery pack 9 volt ou le bon tranfo pour le mur
un fil usb de carré a rectangle..
https://www.youtube.com/watch?v=-k9k5kf5Wg4
https://www.youtube.com/watch?v=-k9k5kf5Wg4
https://www.youtube.com/watch?v=-k9k5kf5Wg4
Cout total de fabrication : 174$
tous les pièces nécessaire pour fabriquer sont diponible a blainville. www.robotshop.ca
2 board arduino Duemilanove (http://arduino.cc/en/Main/ArduinoBoardDuemilanove)
1 kit d'antennes rf
2 résistance 10kohm
fils pour branchements
2 leds(optionnel)
2 sensor de pression 24 pouces.
1 battery pack 9 volt ou le bon tranfo pour le mur
un fil usb de carré a rectangle..
Dernière édition par ClassicS40 le Sam 8 Mai 2010 - 13:21, édité 3 fois
Re: Chonomèetre de compétition est Terminé !! :P
J'ai réussi a tout faire fonctioner:
Voici le principe que j'utilise
arduino1 -transmitter, peut envoyer un signal mais en recoit pas, stand alone - branché sur batterie 9 volt. tout ce qu'il fait c'est capter avec un force sensor et transmet le chiffre 2 au arduino reciever si qqn a écrasé son sensor.
arduino2- reciever. est branché par usb a un ordinateur, recoit du signal et c'est lui qu a le chronomètre intégré.
Voici le principe que j'utilise
arduino1 -transmitter, peut envoyer un signal mais en recoit pas, stand alone - branché sur batterie 9 volt. tout ce qu'il fait c'est capter avec un force sensor et transmet le chiffre 2 au arduino reciever si qqn a écrasé son sensor.
arduino2- reciever. est branché par usb a un ordinateur, recoit du signal et c'est lui qu a le chronomètre intégré.
Dernière édition par ClassicS40 le Sam 8 Mai 2010 - 13:22, édité 1 fois
Re: Chonomèetre de compétition est Terminé !! :P
// ********** setup du arduino 1 - le transmitter par Sylvain Castel
// antenne apc 220 avec un cable qui relie la pin RX au tx1 du arduino ,le rest de l'antenne est connecté au ground et 5 volts
// un sensor de pression relié au analog2 ( et il y a une résistance de 10kohm entre le ground et le sensor)
// une led relié a la pin digital 13
int signalGo = 2;// juste un chiffre que j'ai choisi pour dire que qqn a passé sur le sensor du arduino transmitter
int forcePin = 2; // select the input pin for the force sensor
int val = 0; // variable pour définir la valeur qui vien du force sensor - variable to store the value coming in from the sensor
int led5=13; // je definit le terme led5 au chiffre 13 - defines "led5" as the number 13
void setup() //run one time when the Arduino first powers up
{Serial.begin(9600); //starts serial communication, only used for debgugging
pinMode(led5, OUTPUT); // j'assigne la led5 comme un output pour y envoyer ou pas l'électricité a ma led - setting the led5, as usable
}
void loop() // boucle continue - This next bit of code runs continuously
{
val = analogRead(forcePin); // lecture de la valeur qui vient du sensor de pression - read the value from the sensor
if (val>500){ // si la valeur lue est plus que 500, alors exécute le code ci dessous entre{ } - if the value is maxed out or greater than 500
digitalWrite(led5,HIGH); // allume ma led car le sensor est écrasé- turns on LED 13 sensor is pressed
Serial.println(signalGo);// on envoie un signal(le chiffre 2) a l'autre arduino (arduino2 - reciever) - send a rf signal (value 2) to the second arduino (arduino2 receiver)
delay(1000); //attend une seconde, ce qui fait qu'on peut pas écraser 2 fois rapidement le sensor - wait for a second, so that you can't press super fast the sensor 2 times in a row
}
else{
digitalWrite(led5,LOW); // éteint la led du arduino 1 - turn off led 13 on transmitter
}
}
// antenne apc 220 avec un cable qui relie la pin RX au tx1 du arduino ,le rest de l'antenne est connecté au ground et 5 volts
// un sensor de pression relié au analog2 ( et il y a une résistance de 10kohm entre le ground et le sensor)
// une led relié a la pin digital 13
int signalGo = 2;// juste un chiffre que j'ai choisi pour dire que qqn a passé sur le sensor du arduino transmitter
int forcePin = 2; // select the input pin for the force sensor
int val = 0; // variable pour définir la valeur qui vien du force sensor - variable to store the value coming in from the sensor
int led5=13; // je definit le terme led5 au chiffre 13 - defines "led5" as the number 13
void setup() //run one time when the Arduino first powers up
{Serial.begin(9600); //starts serial communication, only used for debgugging
pinMode(led5, OUTPUT); // j'assigne la led5 comme un output pour y envoyer ou pas l'électricité a ma led - setting the led5, as usable
}
void loop() // boucle continue - This next bit of code runs continuously
{
val = analogRead(forcePin); // lecture de la valeur qui vient du sensor de pression - read the value from the sensor
if (val>500){ // si la valeur lue est plus que 500, alors exécute le code ci dessous entre{ } - if the value is maxed out or greater than 500
digitalWrite(led5,HIGH); // allume ma led car le sensor est écrasé- turns on LED 13 sensor is pressed
Serial.println(signalGo);// on envoie un signal(le chiffre 2) a l'autre arduino (arduino2 - reciever) - send a rf signal (value 2) to the second arduino (arduino2 receiver)
delay(1000); //attend une seconde, ce qui fait qu'on peut pas écraser 2 fois rapidement le sensor - wait for a second, so that you can't press super fast the sensor 2 times in a row
}
else{
digitalWrite(led5,LOW); // éteint la led du arduino 1 - turn off led 13 on transmitter
}
}
Re: Chonomèetre de compétition est Terminé !! :P
// ********** setup du arduino 2 - le reciever par Sylvain Castel
// antenne apc 220 avec un cable qui relie la pin TX au RX0 du arduino ,le rest de l'antenne est connecté au ground et 5 volts
// un sensor de pression relié au analog2 ( et il y a une résistance de 10kohm entre le ground et le sensor)
// une led relié a la pin digital 13
// section pour définir la communication rf
int incomingByte = 0; // valeur recu par l'antenne rf - value recieved by rf transmission
// section de définitions pour le chronomètre - defenitions for the chronometer
unsigned long tempsPrecedent = 0, tempsActuel = 0,tempsTotal = 0; // mes variables de temps
unsigned long centitot1 = 0; // centieme to display
unsigned long secotot1 =0; // seconds to display
unsigned long minutot1 =0; // minutes to display
// définitons pour composantes hardware
int led5=13; // je definit le terme led5 au chiffre 13 - defines "led5" as the number 13select the input pin for the force sensor
int forcePin = 2; // pin analogue relie au force sensor - select the input pin for the force sensor
int val = 0; // variable représentant la valeur du force sensor -variable to store the value coming in from the sensor
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(led5, OUTPUT); // j'assigne la led5 comme un output pour y envoyer ou pas l'électricité a ma led - setting the led5, as usable
}
void loop() {
val = analogRead(forcePin); // lecture de la valeur qui vient du sensor de pression - read the value from the sensor
//début de section chronomètre relié au sensor analog2 -section start for chonometer with force sensor arduino2
if (val>500){ // si la valeur lue est plus que 500, alors exécute le code ci dessous entre{ } - if the value is maxed out or greater than 500
digitalWrite(led5,HIGH); // allume ma led car le sensor est écrasé- turns on LED 13 sensor is pressed
tempsTotal=tempsActuel - tempsPrecedent;
Serial.print("temps precedent: "); // here we print some text
Serial.println(tempsPrecedent);// here we print the preceding time
Serial.print("temps actuel: ");// here we print some text
Serial.println(tempsActuel);// here we print the actual time when the sensor was pressed
Serial.print("temps total: ");// here we print some text
Serial.println(tempsTotal);// here we print the total time in millis(tempsTotal=tempsActuel - tempsPrecedent;)
centitot1 = (tempsTotal%1000)/10 ; //centieme to display
secotot1 = (tempsTotal/1000)%60 ; // second to display
minutot1 = (tempsTotal/1000)/60 ; // minute to display
Serial.print("Votre temps: ");// here we print some text
Serial.print(minutot1);// we display minutes
Serial.print(":");// we sepate the minutes with :
Serial.print(secotot1);// we display seconds
Serial.print(":"); //we sepate the seconds with :
Serial.println(centitot1);// we display hundreds seconds
tempsPrecedent = tempsActuel; // ici on update la valeur de la variable temps précédent pour la prochain fois qu'on rentre dans le void loop -once we get our timing done, we update the value of the present time for the next time we go thru the void loop
delay(1000); //on attend une seconde pour éliminer les erreurs de double pression sur le sensor
}
else{ // si on a pas écrasé le sensor de pression
digitalWrite(led5,LOW); //éteint ma led - turn off led 13
tempsActuel = millis();// je defini la variable temps actuel a la fin
}
// fin section chronomèetre relié au sensor analog2 - end of chronometer lind to the sensor
if (Serial.available() > 0) {// ici on set pour recevoir de l'info - here we set up to recieve rf data
incomingByte = Serial.read();// definit une variable pour dire qu'on lit - variable to say we read or recieve data
if (incomingByte == 50){ // ici le chiffre 50 définit la valeur décimale du ''2'' envoyé en signal rf par la transmitter (aruidno1)
//debut du chronomèetre relié a la reception du signal - start of chrnometer with using the rf data as en event starter for chrono
digitalWrite(led5,HIGH);
tempsTotal=tempsActuel - tempsPrecedent;
Serial.print("temps precedent: ");
Serial.println(tempsPrecedent);
Serial.print("temps actuel: ");
Serial.println(tempsActuel);
Serial.print("temps total: ");
Serial.println(tempsTotal);
centitot1 = (tempsTotal%1000)/10 ; //centieme to display
secotot1 = (tempsTotal/1000)%60 ; // second to display
minutot1 = (tempsTotal/1000)/60 ; // minute to display
Serial.print("Votre temps: ");
Serial.print(minutot1);
Serial.print(":");
Serial.print(secotot1);
Serial.print(":");
Serial.println(centitot1);
tempsPrecedent = tempsActuel;
delay(500); // small pause so we dont hit twice in a row the sensor by mistake
}
else{
digitalWrite(led5,LOW); // on éteint la led 13 -turn off led 13
tempsActuel = millis();
// fin de section chronomètre relié a la reception d'un signal rf provenant du transmitter
}
// ici on a une section qui permet de debug les valeurs qui nous sont envoyées par les antennes rf
// here is a section where you can debug, and print the values recieved by your rf antenna
// say what rf antennas recieved:
http://Serial.print("I received: ");
//example withSerial.println(incomingByte);
http://Serial.println(tempsPrecedent, DEC);
}
}
// antenne apc 220 avec un cable qui relie la pin TX au RX0 du arduino ,le rest de l'antenne est connecté au ground et 5 volts
// un sensor de pression relié au analog2 ( et il y a une résistance de 10kohm entre le ground et le sensor)
// une led relié a la pin digital 13
// section pour définir la communication rf
int incomingByte = 0; // valeur recu par l'antenne rf - value recieved by rf transmission
// section de définitions pour le chronomètre - defenitions for the chronometer
unsigned long tempsPrecedent = 0, tempsActuel = 0,tempsTotal = 0; // mes variables de temps
unsigned long centitot1 = 0; // centieme to display
unsigned long secotot1 =0; // seconds to display
unsigned long minutot1 =0; // minutes to display
// définitons pour composantes hardware
int led5=13; // je definit le terme led5 au chiffre 13 - defines "led5" as the number 13select the input pin for the force sensor
int forcePin = 2; // pin analogue relie au force sensor - select the input pin for the force sensor
int val = 0; // variable représentant la valeur du force sensor -variable to store the value coming in from the sensor
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(led5, OUTPUT); // j'assigne la led5 comme un output pour y envoyer ou pas l'électricité a ma led - setting the led5, as usable
}
void loop() {
val = analogRead(forcePin); // lecture de la valeur qui vient du sensor de pression - read the value from the sensor
//début de section chronomètre relié au sensor analog2 -section start for chonometer with force sensor arduino2
if (val>500){ // si la valeur lue est plus que 500, alors exécute le code ci dessous entre{ } - if the value is maxed out or greater than 500
digitalWrite(led5,HIGH); // allume ma led car le sensor est écrasé- turns on LED 13 sensor is pressed
tempsTotal=tempsActuel - tempsPrecedent;
Serial.print("temps precedent: "); // here we print some text
Serial.println(tempsPrecedent);// here we print the preceding time
Serial.print("temps actuel: ");// here we print some text
Serial.println(tempsActuel);// here we print the actual time when the sensor was pressed
Serial.print("temps total: ");// here we print some text
Serial.println(tempsTotal);// here we print the total time in millis(tempsTotal=tempsActuel - tempsPrecedent;)
centitot1 = (tempsTotal%1000)/10 ; //centieme to display
secotot1 = (tempsTotal/1000)%60 ; // second to display
minutot1 = (tempsTotal/1000)/60 ; // minute to display
Serial.print("Votre temps: ");// here we print some text
Serial.print(minutot1);// we display minutes
Serial.print(":");// we sepate the minutes with :
Serial.print(secotot1);// we display seconds
Serial.print(":"); //we sepate the seconds with :
Serial.println(centitot1);// we display hundreds seconds
tempsPrecedent = tempsActuel; // ici on update la valeur de la variable temps précédent pour la prochain fois qu'on rentre dans le void loop -once we get our timing done, we update the value of the present time for the next time we go thru the void loop
delay(1000); //on attend une seconde pour éliminer les erreurs de double pression sur le sensor
}
else{ // si on a pas écrasé le sensor de pression
digitalWrite(led5,LOW); //éteint ma led - turn off led 13
tempsActuel = millis();// je defini la variable temps actuel a la fin
}
// fin section chronomèetre relié au sensor analog2 - end of chronometer lind to the sensor
if (Serial.available() > 0) {// ici on set pour recevoir de l'info - here we set up to recieve rf data
incomingByte = Serial.read();// definit une variable pour dire qu'on lit - variable to say we read or recieve data
if (incomingByte == 50){ // ici le chiffre 50 définit la valeur décimale du ''2'' envoyé en signal rf par la transmitter (aruidno1)
//debut du chronomèetre relié a la reception du signal - start of chrnometer with using the rf data as en event starter for chrono
digitalWrite(led5,HIGH);
tempsTotal=tempsActuel - tempsPrecedent;
Serial.print("temps precedent: ");
Serial.println(tempsPrecedent);
Serial.print("temps actuel: ");
Serial.println(tempsActuel);
Serial.print("temps total: ");
Serial.println(tempsTotal);
centitot1 = (tempsTotal%1000)/10 ; //centieme to display
secotot1 = (tempsTotal/1000)%60 ; // second to display
minutot1 = (tempsTotal/1000)/60 ; // minute to display
Serial.print("Votre temps: ");
Serial.print(minutot1);
Serial.print(":");
Serial.print(secotot1);
Serial.print(":");
Serial.println(centitot1);
tempsPrecedent = tempsActuel;
delay(500); // small pause so we dont hit twice in a row the sensor by mistake
}
else{
digitalWrite(led5,LOW); // on éteint la led 13 -turn off led 13
tempsActuel = millis();
// fin de section chronomètre relié a la reception d'un signal rf provenant du transmitter
}
// ici on a une section qui permet de debug les valeurs qui nous sont envoyées par les antennes rf
// here is a section where you can debug, and print the values recieved by your rf antenna
// say what rf antennas recieved:
http://Serial.print("I received: ");
//example withSerial.println(incomingByte);
http://Serial.println(tempsPrecedent, DEC);
}
}
Re: Chonomèetre de compétition est Terminé !! :P
Oui ca fonctionne super bien, je dois juste acheter un battery pack, 4$, car présentement j'ai un transfo walloutlet.
et je vais pouvoir faire les tests sur des longues distance mais a date avec ce que j'ai fait jsuis cappable d'enoyer du signal po-mal loin .
Aussi c le premier chonometre wireless documenté sur youtube! he
Le setup fonctionne sur de bonnes ditances, j'ai testé jusqu'a 600mètres et c'est fiable, j'ai pas testé plus loin mais les antennes peuvent envoyer le signal jusqu'a 1.2 kilomètre.
et je vais pouvoir faire les tests sur des longues distance mais a date avec ce que j'ai fait jsuis cappable d'enoyer du signal po-mal loin .
Aussi c le premier chonometre wireless documenté sur youtube! he
Le setup fonctionne sur de bonnes ditances, j'ai testé jusqu'a 600mètres et c'est fiable, j'ai pas testé plus loin mais les antennes peuvent envoyer le signal jusqu'a 1.2 kilomètre.
Dernière édition par ClassicS40 le Mer 12 Mai 2010 - 11:10, édité 1 fois
Re: Chonomèetre de compétition est Terminé !! :P
modules avec interface.
le force sensor est fixé sur une feuille d'aluminum solide. au total 48 pouce de force sensor ''tape switch''
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|