Qui lit ces articles maniaques? ..
Raspberry Pi dispose de nombreuses plates-formes d'extension appelées HAT qui sont spécialisées dans un certain domaine. Cette fois, la mission de déplacer le moteur avec Raspeye est arrivée. Au début, je travaillais dur sur la planche à pain, mais c'est devenu gênant et
Non, je devrais chercher HAT! !! !!
C'est pourquoi j'ai commencé à le chercher.
C'était 4 points.
Et j'ai trouvé ça! !! Il s'agit d'un HAT appelé RPi Motor Driver Board fabriqué par Waveshare.
Même si vous couvrez la tarte aux râpes avec HAT, vous pouvez utiliser tous les GPIO, Deux moteurs peuvent être connectés et l'alimentation peut être fournie à la tarte à la râpe! !! Nous utilisons 6 piles AA.
Exemple)
import RPi.GPIO as GPIO
from time import sleep
PWMA1 = 6
PWMA2 = 13
PWMB1 = 20
PWMB2 = 21
D1 = 12
D2 = 26
#Utiliser le numéro de port GPIO
GPIO.setmode(GPIO.BCM)
#Configurer GPIO pour une utilisation avec le moteur
GPIO.setup(PWMA1,GPIO.OUT)
GPIO.setup(PWMA2,GPIO.OUT)
GPIO.setup(PWMB1,GPIO.OUT)
GPIO.setup(PWMB2,GPIO.OUT)
GPIO.setup(D1,GPIO.OUT)
GPIO.setup(D2,GPIO.OUT)
#Paramètres PWM
motor1 = GPIO.PWM(D1,50)
motor2 = GPIO.PWM(D2,50)
#()Spécifiez une vitesse de 0 à 100 à l'intérieur
motor1.start(50)
motor2.start(50)
#Déplacez le moteur.
GPIO.output(PWMA1,1)
GPIO.output(PWMA2,0)
GPIO.output(PWMB1,1)
GPIO.output(PWMB2,0)
#Déplacer le moteur pendant 3 secondes
sleep(3)
#Arrêtez le moteur.
GPIO.output(PWMA1,0)
GPIO.output(PWMA2,0)
GPIO.output(PWMB1,0)
GPIO.output(PWMB2,0)
Avec le programme ci-dessus, il est possible de faire tourner deux moteurs pendant 3 secondes pour le moment. Regardons les programmes dans l'ordre du haut.
Il utilise le GPIO familier et la bibliothèque time sleep.
import RPi.GPIO as GPIO
from time import sleep
Déclarez le numéro de port GPIO.
PWMA1 = 6
PWMA2 = 13
PWMB1 = 20
PWMB2 = 21
D1 = 12
D2 = 26
La carte de commande de moteur peut définir deux moteurs,
** Moteur 1 avec numéro de port 12 ** ** Numéro de port 26 du moteur 2 **
Semble utiliser.
En passant plus d'électricité
** L'un des moteurs 1 a le numéro de port 6 ** ** L'un des moteurs 1 a le numéro de port 13 **
** L'un des moteurs 2 a le numéro de port 20 ** ** L'un des moteurs 2 a le numéro de port 21 **
Utilisez le.
On suppose que le courant circulera d'un côté et que l'autre côté sera GND.
GPIO.setup(PWMA1,GPIO.OUT)
GPIO.setup(PWMA2,GPIO.OUT)
GPIO.setup(PWMB1,GPIO.OUT)
GPIO.setup(PWMB2,GPIO.OUT)
GPIO.setup(D1,GPIO.OUT)
GPIO.setup(D2,GPIO.OUT)
Ceci est également familier.
Le moteur déclare PWM après la configuration GPIO.
motor1 = GPIO.PWM(D1,50)
motor2 = GPIO.PWM(D2,50)
À l'origine, GPIO ne prend en charge que l'entrée et la sortie de signaux numériques. Les signaux numériques peuvent uniquement être activés et désactivés. Le réglage de la vitesse et le réglage de la luminosité de la LED ne peuvent pas être exprimés uniquement par l'activation et la désactivation, et un signal analogique doit être envoyé. Par conséquent, il est nécessaire de contrôler la tension de sortie de manière pseudo en utilisant cette méthode PWM.
motor1.start(50)
motor2.start(50)
Vous pouvez spécifier une vitesse de 0 à 100 dans l'argument.
C'est familier.
GPIO.output(PWMA1,1) #Port 6
GPIO.output(PWMA2,0) #Port 13
Le courant provient du port 6 et le port 13 devient GND.
GPIO.output(PWMA1,0) #Port 6
GPIO.output(PWMA2,1) #Port 13
Le courant circule du port 13 et le port 6 devient GND. Cela inverse la rotation du moteur.
** Le moteur 2 a le même mouvement, il est donc omis **
Sommeil familier
sleep(3)
En coupant tout le courant circulant dans GPIO, le moteur s'arrêtera.
GPIO.output(PWMA1,0)
GPIO.output(PWMA2,0)
GPIO.output(PWMB1,0)
GPIO.output(PWMB2,0)
c'est tout.
Je me demande si quelqu'un utilise un tel HAT maniaque. .. Si vous avez des questions, faites-nous savoir ce que vous utilisez et partagez les informations!
Recommended Posts