Bonjour,
Je suis en classe de spécialité SI en 1ère et nous devons réaliser une pince avec deux doigts articulés (pouce et index) lors d'un projet. Cela fait bien trop longtemps que je patauge et j'ai donc décidé de vous demander de l'aide. Le but est de pouvoir prendre et tenir des gobelets par la pince. Nous avons pour cela des boutons poussoirs pour commander le serrage des doigts (avec la Covid, on a pas le temps pour utiliser une commande vocale). Le programme doit donc permettre à l'appui de l'un ou de l'autre bouton le serrage plus ou moins important de la pince suivant la taille du gobelet (les boutons disent au programme la taille du gobelet). La pince est également sensé serrer, grâce à un capteur de force, le gobelet pour le déformer de 10% mais bon, ça, on a pas réussi à trouver les valeurs. En conséquence, nous ne pouvons pas encore faire cette partie là du programme. Cependant, je comprend pas comment faire et pourquoi il ne fonctionne pas déjà, mon cerveau refuse de comprendre ! Mon programme est donc le suivant :
#include <Servo.h>
#define br_BP 4
#define br_BPpetit 3
const int impulsion_init = 2200;
const int angle_diametre_gobelet = 34.2;
const int angle_diametre_gobelet_petit = 40.2;
boolean etat_BP;
int impulsion;
boolean etat_BPpetit;
Servo mon_servo;
void setup() {
Serial.begin(9600);
mon_servo.attach(2);
pinMode(br_BP,INPUT);
pinMode(br_BPpetit,INPUT);
mon_servo.xriteMicroseconds(impulsion_init);
}
void loop(){
etat_BP=digitalRead(br_BP);
if(etat_BP==HIGH);
{
impulsion=((angle_diametre_gobelet-193.31)/-0.0841);
mon_servo.writeMicroseconds(impulsion);
}
else (etat_BPpetit=digitalRead(br_BPpetit));
{
if(etat_BPpetit==HIGH);
{
impulsion=((angle_diametre_gobelet_petit-193.31/-0.0841);
mon_servo.writeMicroseconds(impulsion);
}
else
mon_servo.writeMicroseconds(impulsion_init);
}
}
Merci d'avance pour votre aide,
En vous souhaitant une bonne journée.