Hello,
bon, le Trap se met au bricolage, ça va fumer....
et je commence par demander un peu d'aide, mais c'est pour une bonne cause, tenter de faire fonctionner de façon très simple un tensionneur de harnais, pour les consoleux... et oui, ils ont droit eux aussi à leur part de bonheur.
C'est comme pour un tensionneur déjà abordé dans le forum, merci à RacingMat d'avoir ouvert le bal, mais la version sur laquelle je tente d'y exploser mes neurones, serait plus simpliste.
Un seul paramètre. On freine, et le harnais, les bretelles se tendent et vous plaquent au baquet. Et tenter de le faire de manière réaliste... en simulant, quoi.
Aucune possibilité de récupérer une quelconque info dans le système console, xbox, sony et tuttiquanti... on va faire dans le rustique. Mais avec un peu de finesse.
Ci-dessous, deux beaux croquis. Avec les codes correspondants.
Le premier, 1 servo, avec alim, et un contacteur. Momentané. A monter sur pédalier, et quand on appui sur la dite pédale de frein, le contact se fait, et plus on garde le pied dessus, plus le servo va tendre les bretelles, et simuler la pression contre le dossier. Si on relâche, ca revient au repos, mais, astuce, si on relâche et qu'on ré-appui desuite, comme quand on pompe en freinage, le servo reppart immédiatement pour finir sa course... en gardant la pression déjà commencée... comme avec l'inertie qu'a la réalité d'un vrai freinage.
Là où ça se complique pour moi, c'est que j'ai un second montage pour mettre un capteur hall, dans le pédalier, éviter un contact physique avec un bouton pressoir, et les emmerdes qui vont avec, casse, alignement du montage, maintenance...etc....
Le montage fonctionne parfaitement pour allumer une led...
Mais je ne sais pas comment remplacer le bouton pressoir du premier montage, par le capteur du second montage... et surtout; comment mixer les deux codes....
Help, please...
Le premier montage :
Afficher le Spoiler
#include <Servo.h> //import de la bibliothéque Servo
Servo accel; //création de l'objet Servo "accel"
int pinServo=8; //pin de commande du servo
int pinBouton=2;//pin de lecture du bouton poussoir et contact au grd
int cumul=0; //variable d'appui
void setup() {
pinMode(pinBouton,INPUT_PULLUP); //mode INPUT_PULLUP pour le poussoir
accel.attach(pinServo); //liaison de l'objet Servo au pin de commande
Serial.begin(9600);//pour lecture sur la console (Optionnel)
}
void loop() {
boolean etatBouton=digitalRead(pinBouton); //lecture de l'état du bouton
//si le bouton est appuyé
if (!etatBouton){// en mode INPUT_PULLUP on obtien 0 quand on appuie !
cumul++; // on fait augmenter la valeur de la variable
if (cumul>1000) //test limite d'augmentation
cumul=1000;//mise à limite si dépassement
}
//si le bouton n'est pas appuyé
else{
cumul--; //on fait diminuer la valeur de la variable
if (cumul<0) //test si limite de diminution
cumul=0;//mise à la limite si dépassement
}
Serial.println(cumul); //on affiche la valeur sur la console (Optionnel)
int angle=map(cumul,0,1000,0,179); //on transforme en angle
accel.write(angle); //on positionne le servo
}
Le second morceau :
Afficher le Spoiler
int Led = 13;//LED pin
int sensor = 3; //sensor pin
int val; //numeric variable
void setup()
{
pinMode(Led, OUTPUT); //set LED pin as output
pinMode(sensor, INPUT); //set sensor pin as input
}
void loop()
{
val = digitalRead(sensor); //Read the sensor
if(val == LOW) //when magnetic field is detected, turn led on
{
digitalWrite(Led, HIGH);
}
else
{
digitalWrite(Led, LOW);
}
}
Bien, si un bon chirurgien aux doigts de fée pouvait tenter la greffe.... ce serait cool...
Pour encourager, je poste photos, codes, croquis, pour ceux que ça intéresse...