Demande d'aide pour un projet d'échecs contrôlé par la voix

Bonjour
Nous souhaitons créer un programme permettant de faire bouger deux moteurs pas à pas provenant d'une imprimante 3D pour un jeu d'échec contrôlé par la voix. Nous rencontrons des difficultés au niveau du code et ne parvenons pas à faire tourner nos moteurs comme nous le souhaitons. Avec une case équivaut à un carré de 2,5 cm de coté. Prenant cela en considération, nous vous demandons votre aide.
Merci de votre soutien

Bonjour

les informations données sont totalement insuffisantes en dehors du fait d’utiliser une boule de cristal.

Quel code, quel moteurs, branchés comment ? etc ….

Bonjour digrame_cleusb
Quel type d'entraînement:
Si c'est des vis sans fin, quel en est le pas.
Si c'est des courroies crantées, quel déplacement par tour ?

Quel contrôleurs utilises tu pour les moteurs?

A+
Cordialement
jpbbricole

#include <AccelStepper.h>


#define motorInterfaceType 1


#define dirPinA 2
#define stepPinA 3
AccelStepper stepperA(motorInterfaceType, stepPinA, dirPinA);


#define dirPinC 4
#define stepPinC 5
AccelStepper stepperB(motorInterfaceType, stepPinC, dirPinC);

void setup() {
  
  stepperA.setMaxSpeed(1000); 
  stepperA.setAcceleration(100); 
  stepperB.setMaxSpeed(1000); 
  stepperB.setAcceleration(100); 
}

void loop() {
  
  stepperA.moveTo(1000); 
  stepperB.moveTo(1000); 

  stepperA.move(500);
  stepperB.move(500);
 
}



voici notre code qui ne fonctionne pas"

nos moteurs sont des moteurs pas à pas Nema 17 avec un pas de 1,8° provenant d'une imprimante pangea pro

Bonjour digrame_cleusb

Ca c'est ok, je suppose que tu as des drivers A4988?

Comment seront déplacées les pièces?

Cordialement
jpbbricole

C'est un travail scolaire?

oui c'est un projet en science de l'ingénieur.

Je ne suis pas sûr que ce soit exactement cela, mais c'est certainement quelque chose qui s'en rapproche.
Ensuite le déplacement se fait par des courroies crantées et nous souhaitons utiliser un aimant sous le plateau se déplaçant via de rails d'imprimante 3D.
Voici notre schéma.

Ce programme sert à reconnaître la voix et à envoyer le signal à la carte Bluetooth, peut-être que cela peut vous aider (fait avec MIT App Inventor) :

Il faudrait laisser au moteur le temps d'arriver à destination avant d'envoyer la commande suivante.

Vous avez lu la documentation?
Pour faire tourner les moteurs, il faut appeler periodiquement l'une des méthodes runxxx comme run(), runSpeed(), runSpeedToPosition()

Si vous devez faire fonctionner les moteurs ensembles et synchronisés il faut utiliser la classe multiStepper plutôt que la classe AccelStepper.

Bonjour,

Et quid des pièces qui peuvent se déplacer au-dessus d'autres comme dans les mouvements:

  • du Cheval
  • du petit et du grand roque (Roi et Tour)

A suivre...

Peux tu me mettre le fichier AIA en ligne, il faut le zipper.

On essaye juste de faire les mouvements simples comme les déplacements linéaires et diagonales (comme la reine).

On peut très bien faire des déplacements en diagonale virtuellement, en zigzagant entre les pièces.

Désolé, on ne peut pas envoyer de fichiers en tant que nouveaux utilisateurs.

@ jpbbricole Effectivement, je n'y avais pas pensé ;-)

Maintenant, faudra mécaniquement prévoir le passage entre les pièces pour ne pas les faire tomber

Sinon, algorithme très intéressant et largement à la portée de futurs ingénieurs pour ces mouvements en zigzag en complément des mouvements académiques

A suivre...

Pas de problème, d'ici peu de temps tu pourras.

Il faudra, peut-être prévoir ajuster la base des pièces, pour éviter quelles se touchent.
Au niveau de la conception du système, il faudra prévoir 2 contacts pour mettre les axes X et Y à zéro, au démarrage de l'installation.

Il faudrait plutôt un électroaimant qui serait désactivé pendant les déplacements à vide ou autre option, un servo qui éloigne l'aimant pendant ces déplacements.