[PYTHON] Je voulais faire fonctionner le moteur avec une tarte à la râpe, alors j'ai essayé d'utiliser la carte de commande du moteur de Waveshare

Vidéo pour le moment

IMAGE ALT TEXT HERE

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.

Conditions HAT

C'était 4 points.

Et j'ai trouvé ça! !! 20191106_234520.jpg 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. 20191108_225610.jpg

Exécutez le moteur avec Python

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.

Importer la bibliothèque

Il utilise le GPIO familier et la bibliothèque time sleep.

import RPi.GPIO as GPIO
from time import sleep

Déclaration de variable

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.

Déclaration d'utilisation de GPIO

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 contrôle du moteur utilise PWM

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.

Spécifiez la vitesse du moteur

motor1.start(50)
motor2.start(50)

Vous pouvez spécifier une vitesse de 0 à 100 dans l'argument.

Appliquez de l'électricité au moteur

C'est familier.

Rotation avant

GPIO.output(PWMA1,1) #Port 6
GPIO.output(PWMA2,0) #Port 13

Le courant provient du port 6 et le port 13 devient GND.

Rotation arrière

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 **

Bougez pendant 3 secondes

Sommeil familier

sleep(3)

Fin

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

Je voulais faire fonctionner le moteur avec une tarte à la râpe, alors j'ai essayé d'utiliser la carte de commande du moteur de Waveshare
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Quand j'ai essayé de faire une communication socket avec Raspberry Pi, le protocole était différent
J'ai essayé d'automatiser [une certaine tâche] à l'aide d'une tarte à la râpe
J'ai essayé de créer une caméra de surveillance à détection de mouvement avec OpenCV en utilisant une caméra WEB avec Raspberry Pi
Je veux exécuter l'interface graphique Python au démarrage de Raspberry Pi
Il fait froid, j'ai donc essayé de permettre d'allumer / d'éteindre automatiquement le chauffage AC avec Raspberry Pi!
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de contrôler plusieurs servomoteurs MG996R en utilisant le servomoteur PCA9685.
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
En utilisant COTOHA, j'ai essayé de suivre le cours émotionnel de la course aux meros.
J'ai essayé de sauvegarder les données avec discorde
Je voulais jouer avec la courbe de Bézier
J'ai essayé L-Chika avec Razpai 4 (édition Python)
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
J'ai essayé de créer un bouton pour Slack avec Raspeye + Tact Switch
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
J'ai essayé d'entraîner la fonction péché avec chainer
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Visualisons la pièce avec tarte aux râpes, partie 1
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé d'approcher la fonction sin en utilisant le chainer
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé d'identifier la langue en utilisant CNN + Melspectogram
J'ai essayé de compléter le graphe de connaissances en utilisant OpenKE
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
Je voulais utiliser la feuille de calcul Google avec AWS lambda, alors je l'ai essayé [Partie 2]
La première intelligence artificielle. Je voulais essayer le traitement du langage naturel, donc je vais essayer l'analyse morphologique en utilisant MeCab avec python3.
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé d'analyser les émotions de tout le roman "Weather Child" ☔️
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
Je voulais résoudre le concours de programmation Panasonic 2020 avec Python
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de notifier les informations de retard de train avec LINE Notify
Une histoire à laquelle j'ai pensé en essayant d'identifier les informations de plénitude du parking en utilisant l'image obtenue par la caméra Web et Razpai et le deep learning.
J'ai essayé de simuler l'optimisation des publicités à l'aide de l'algorithme Bandit
J'ai essayé d'exécuter Movidius NCS avec python de Raspberry Pi3
J'ai essayé de connecter Raspeye et conect + avec l'API Web
J'ai parlé à Raspberry Pi
J'ai essayé d'utiliser la console Pi I / F du kit de démarrage Raspeye IoT de Mechatrax "anyPi"
[TF] J'ai essayé de visualiser le résultat de l'apprentissage en utilisant Tensorboard
[Démarrage du shell] J'ai essayé d'afficher le shell sur le téléviseur avec un G-cluster à carte Linux bon marché
J'ai capturé le projet Toho avec Deep Learning ... je le voulais.
J'ai essayé d'approcher la fonction sin en utilisant chainer (re-challenge)
J'ai essayé de sortir le journal d'accès au serveur en utilisant Node.js
J'ai envoyé les données de Raspberry Pi à GCP (gratuit)
J'ai essayé de l'étendre pour que la base de données puisse être utilisée avec le logiciel d'analyse de Wiire
J'ai essayé de décrire le trafic en temps réel avec WebSocket
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai appris comment la télécommande infrarouge fonctionne avec Raspberry Pi
J'ai créé un serveur Web avec Razpai pour regarder des anime
J'ai essayé de traiter l'image en "style croquis" avec OpenCV
Je voulais contester la classification du CIFAR-10 en utilisant l'entraîneur de Chainer
J'ai essayé de numériser le tampon estampé sur papier en utilisant OpenCV
J'ai essayé de démarrer avec Bitcoin Systre le week-end
Je voulais résoudre le problème ABC164 A ~ D avec Python