Rasp-Hat-Moteur-Moteurs-Continus

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Utiliser des moteurs à courant continu

Les moteurs continus sont utilisé pour de nombreux types de projets robotiques.

Le Hat moteur peut piloter jusque 4 moteurs continu bi-directionnel. Cela signifie que vous pouvez contrôler les moteurs en marche avant et en marche arrière. La vitesse peut également varier par incrément de 0.5% en utilisant le contrôleur PWM haute qualité du HAT moteur. Cela signifie que la vitesse peut être modifiée en douceur et que cette dernière restera stable (elle ne variera pas en fonction de la charge processeur sur le Raspberry-Pi)!

Notez que les puces des pont-H ne sont prévue pour piloter continuellement une charge dépassant 1.2A ou des moteurs ayant des pointes de courant au delà de 3A. Le HAT moteur est donc prévu pour de petits moteurs. Voyez la fiche technique de vos moteurs pour plus d'informations sur leurs caractéristiques afin de savoir s'ils peuvent être utilisés avec le HAT Moteur!

Brancher les moteurs

Pour connecter un moteur, soudez simplement deux fils sur les bornes du moteur et connectez les l'un des borniers M1, M2, M3 ou M4. Si votre moteur tourne à "l'envers", inversez simplement les connexions sur le bornier.

Le moteur est connecté sur M3 pour la démontration suivante

Rendez-vous ensuite dans le répertoire d'exemple Adafruit-Motor-HAT-Python/examples et exécutez sudo python DCTest.py pour faire tourner le moteur dans un sens puis dans l'autre.

 
Crédit: AdaFruit Industries www.adafruit.com

Contrôle de moteurs continus

Nous allons réviser le contenu du code permettant de prendre le contrôle du moteur à l'aide de la bibliothèque MotorHAT.

Nous commençons par importer les éléments nécessaires pour qu'ils puissent être utilisé par notre script :

#!/usr/bin/python
from Adafruit_MotorHAT import Adafruit_MotorHAT, Adafruit_DCMotor

import time
import atexit

La bibliothèque MotorHAT contient quelques classes dont une classe MotorHAT qui est le contrôleur PWM principal (la carte HAT moteur inclus un controleur PWM). Vous aurez toujours besoin de créer un objet et de configurer l'adresse. L'adresse par défaut est 0x60 (voyez la concernant l'empilement des HATs où il sera nécessaire de changer l'adresse).

# Créer un objet par défaut, pas de changement d'adresse I2C ou de Fréquence PWM
mh = Adafruit_MotorHAT(addr=0x60)

Le contrôleur PWM est autonome (fonctionne seul) - cela signifie qu'il continuera à fonctionner même si votre programme Python plante (ou crash du noyau Linux). C'est une bonne chose en soit car elle permet au Raspberry-Pi de se concentrer sur la gestion de l'OS pendant que le contrôleur PWM du HAT s'occupe de gérer les signaux PWM. Mais cela signifie également que les moteurs NE VONT PAS S'ARRETER lorsque le programme Python s'arrête (sauf si cela est spécifiquement prit en compte par le programme python).

C'est pour cette raison qu'il est fortement recommandé d'utiliser une section de code at exit lorsque des moteurs continus sont utilisés. at exit fera de son mieux pour arrêter tous les moteurs.

# Recommandé pour auro-désactiver les moteurs lors d'un arrêt programme!
def turnOffMotors():
	mh.getMotor(1).run(Adafruit_MotorHAT.RELEASE)
	mh.getMotor(2).run(Adafruit_MotorHAT.RELEASE)
	mh.getMotor(3).run(Adafruit_MotorHAT.RELEASE)
	mh.getMotor(4).run(Adafruit_MotorHAT.RELEASE)

atexit.register(turnOffMotors)

Créer un objet moteur

Voila, maintenant l'objet Adafruit_MotorHat est créé, nous pouvons créer un objet moteur! Notez que chaque HAT peut contrôler jusque 4 moteurs... et qu'il est possible d'avoir plusieurs HAT Moteurs le Raspberry-Pi!

Pour créer un objet pour un moteur continu, vous pouvez demander à l'objet MotorHAT de le faire pour vous avec la fonction getMotor(num) avec une valeur entre 1 et 4 (numéro correspondant au bornier M1 à M4)

myMotor = mh.getMotor(3)

Les moteurs continu sont les objets les plus simple, vous pouvez uniquement fixer la vitesse et la direction du moteur.

Fixer la vitesse du moteur

Pour ixer la vitesse du moteur, il faut appeler la méthode setSpeed( vitesse ) où la valeur de vitesse varie entre 0 (à l'arrêt) et 255 (le maximum!). La valeur vitesse représente la valeur du cycle utile PWM (PWM duty cycle) pour le moteur.

# Fixer la vitesse de démarrage (valeur entre 0=arret et 255=vitesse max)
myMotor.setSpeed(150)

Fixer le sens de rotation

Pour fixer le sens de rotation, on appelle la fonction run(direction)direction est une constante pouvant prendre l'une des valeurs suivantes:

  • Adafruit_MotorHAT.FORWARD - Moteur continu tourne en marche avant
  • Adafruit_MotorHAT.BACKWARD - Moteur continu tourne en marche arrière
  • Adafruit_MotorHAT.RELEASE - Moteur continu est désactivé (à l'arrêt). Il n'est plus propulsé mais ne sera pas maintenu bloqué à l'arrêt.
while (True):
	print "Forward! (marche avant)"
	myMotor.run(Adafruit_MotorHAT.FORWARD)

	print "\tSpeed up... (accélérer)"
	for i in range(255):
		myMotor.setSpeed(i)
		time.sleep(0.01)

	print "\tSlow down... (ralentir)"
	for i in reversed(range(255)):
		myMotor.setSpeed(i)
		time.sleep(0.01)

	print "Backward! (marche arrière)"
	myMotor.run(Adafruit_MotorHAT.BACKWARD)

	print "\tSpeed up... (accélérer)"
	for i in range(255):
		myMotor.setSpeed(i)
		time.sleep(0.01)

	print "\tSlow down... (ralentir)"
	for i in reversed(range(255)):
		myMotor.setSpeed(i)
		time.sleep(0.01)

	print "Release (arrêter les moteurs)"
	myMotor.run(Adafruit_MotorHAT.RELEASE)
	time.sleep(1.0)

Source: Adafruit DC and Stepper Motor HAT for Raspberry Pi
Créé par LadyAda pour AdaFruit Industries.

Traduction réalisée par Meurisse D pour MCHobby.be.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com