Pilotage Servo Moteur 28byj-48 depuis raspberry.
Code exemple + montage :
https://ben.akrin.com/driving-a-28byj-48-stepper-motor-uln2003-driver-with-a-raspberry-pi/
Liste des ports Raspberry => la commande python $ pinout lance le descriptif dans la console.
https://www.raspberrypi-france.fr/comment-utiliser-les-port-gpio-raspberry-pi/
Tout sur le moteur : 28BYJ-48 : http://www.loutrel.org/Moteurpasapas.html
La fréquence d’excitation maximale théorique est 100 Hz, soit tE = 10ms.
Pour un tour de moteur (Wave, Full Step) il faut donc au minimum 10 ms*32 = 320 ms, soit une vitesse maximale de 1/0.32 = 3.12 t/s ou 187 t/mn.
Après réduction mécanique de 64, l’arbre de sortie a donc une vitesse maxi de 187/60 = 3 t/mn.
Dans la pratique, j’ai pu pousser la fréquence d’excitation à 500 Hz (voir 600 Hz ) , ce qui donne 15 t/mn en sortie, sans garantie sur la durée de l’expérience…
Capter signal bouton poussoir fin de course :
https://raspberry-lab.fr/Composants/Executer-script-pression-bouton-sur-Raspberry-Francais/
GPIO2 + GND
- En gros boucle permanente de test d’état de GPIO2 (2 états 0 (contact) et 1 (rien))
- Lorsque le GPIO2 passe à état 0 => signal capturable par Python « etat = GPIO.input(pinBtn) »
Pilotage via ARDUINO DUE
Quand le Raspberry pilote le servo il devient indisponible pour autre chose => l’idée est d’envoyer les instructions de positions via SerialUSB a l’Arduino qui traitera les déplacement des servos.
A SAVOIR :
- Une fois le programme chargé depuis l’IDE dans l’Arduino, le code s’active en boucle.
- Pour envoyer des commandes passer par l’interface serial de l’IDE (ou distante) => le prévoir au départ.
- L’Arduino ne gère qu’un seul programme à la fois => il faut TOUT embarquer dans 1 seul fichier.
- Les fichiers sont préparés depuis l’IDE et injecté dans la carte.
- L’IDE ne tourne pas sur le Raspberry : Linux+taille mémoire + pas de reconnaissance du DUE dans l’IDE Linux 🙁 => Préparer le code sous Windows (Port Programming) et faire tourner sous Raspberry avec un vison ReaVNC sur le PC.
- l’injection d’un ficher nouveau écrase le fichier précédent.
- Possible de simuler la compilation (pour vérifier l’absence d’erreur de code)
- L’injection est précédée d’une compilation.
Librairies Steppers Motors à embarquer dans l’Arduino :
- Standard Stepper : https://www.arduino.cc/reference/en/libraries/stepper/
- AccelStepper https://www.airspayce.com/mikem/arduino/AccelStepper/index.html avec accélération et gestion position finale.