[PYTHON] Ich wollte den Motor mit einer Raspeltorte laufen lassen, also habe ich versucht, das Motor Driver Board von Waveshare zu verwenden

Video vorerst

IMAGE ALT TEXT HERE

Wer liest diese verrückten Artikel? ..

Raspberry Pi verfügt über viele Erweiterungsplattformen namens HAT, die auf ein bestimmtes Gebiet spezialisiert sind. Diesmal kam die Mission, den Motor mit Raspeye zu bewegen. Zuerst habe ich hart am Brotbrett gearbeitet, aber es wurde mühsam und

Nein, ich sollte nach HUT suchen! !! !!

Deshalb habe ich angefangen, danach zu suchen.

HAT Bedingungen

Es waren 4 Punkte.

Und das habe ich gefunden! !! 20191106_234520.jpg Es ist ein HAT namens RPi Motor Driver Board von Waveshare.

Selbst wenn Sie den Raspeltorte mit HAT bedecken, können Sie alle GPIOs verwenden. Es können auch zwei Motoren angeschlossen werden, um die Raspeltorte mit Strom zu versorgen! !! Wir verwenden 6 AA-Batterien. 20191108_225610.jpg

Lassen Sie den Motor mit Python laufen

Beispiel)

import RPi.GPIO as GPIO
from time import sleep

PWMA1 = 6 
PWMA2 = 13
PWMB1 = 20
PWMB2 = 21
D1 = 12
D2 = 26

#Verwenden Sie die GPIO-Portnummer
GPIO.setmode(GPIO.BCM)

#Richten Sie GPIO für die Verwendung mit dem Motor ein
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)

#PWM-Einstellungen
motor1 = GPIO.PWM(D1,50)
motor2 = GPIO.PWM(D2,50)


#()Geben Sie eine Geschwindigkeit von 0 bis 100 an
motor1.start(50)
motor2.start(50)

#Bewegen Sie den Motor.
GPIO.output(PWMA1,1)
GPIO.output(PWMA2,0)

GPIO.output(PWMB1,1)
GPIO.output(PWMB2,0)

#Bewegen Sie den Motor 3 Sekunden lang
sleep(3)

#Stoppen Sie den Motor.
GPIO.output(PWMA1,0)
GPIO.output(PWMA2,0)

GPIO.output(PWMB1,0)
GPIO.output(PWMB2,0)

Mit dem obigen Programm ist es möglich, vorerst zwei Motoren 3 Sekunden lang laufen zu lassen. Schauen wir uns die Programme der Reihe nach von oben an.

Bibliothek importieren

Es verwendet das bekannte GPIO und die Zeitschlafbibliothek.

import RPi.GPIO as GPIO
from time import sleep

Variable Aussage

Deklarieren Sie die GPIO-Portnummer.

PWMA1 = 6 
PWMA2 = 13
PWMB1 = 20
PWMB2 = 21
D1 = 12
D2 = 26

Motor Driver Board kann zwei Motoren einstellen,

** Motor 1 mit Anschlussnummer 12 ** ** Motor 2 Port Nummer 26 **

Scheint zu verwenden.

Beim Weiterleiten von mehr Strom

** Einer von Motor 1 hat Port Nummer 6 ** ** Einer von Motor 1 hat die Portnummer 13 **

** Einer von Motor 2 hat die Portnummer 20 ** ** Einer von Motor 2 hat die Portnummer 21 **

Verwenden Sie die.

Es wird angenommen, dass Strom von einer Seite fließt und die andere Seite GND ist.

Erklärung zur Verwendung von 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)

Das ist auch bekannt.

Die Motorsteuerung verwendet PWM

Der Motor deklariert PWM nach dem GPIO-Setup.

motor1 = GPIO.PWM(D1,50)
motor2 = GPIO.PWM(D2,50)

--Portnummer, an der Sie PWM als erstes Argument verwenden möchten

Ursprünglich unterstützt GPIO nur die Ein- und Ausgabe digitaler Signale. Digitale Signale können nur ein- und ausgeschaltet werden. Geschwindigkeitsanpassung und LED-Helligkeitsanpassung können nicht nur durch Ein- und Ausschalten ausgedrückt werden, und es muss ein analoges Signal gesendet werden. Daher ist es notwendig, die Ausgangsspannung unter Verwendung dieses PWM-Verfahrens auf Pseudo-Weise zu steuern.

Geben Sie die Drehzahl des Motors an

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

Sie können im Argument eine Geschwindigkeit von 0 bis 100 angeben.

Schalten Sie den Motor ein

Das ist bekannt.

Vorwärtsrotation

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

Strom fließt von Port 6 und Port 13 wird zu GND.

Rückrotation

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

Der Strom fließt von Port 13 und Port 6 wird zu GND. Dies kehrt die Drehung des Motors um.

** Motor 2 hat die gleiche Bewegung, daher wird sie weggelassen **

Bewegen Sie sich für 3 Sekunden

Vertrauter Schlaf

sleep(3)

Ende

Durch Ausschalten des gesamten durch GPIO fließenden Stroms stoppt der Motor.

GPIO.output(PWMA1,0)
GPIO.output(PWMA2,0)

GPIO.output(PWMB1,0)
GPIO.output(PWMB2,0)

das ist alles.

Ich frage mich, ob jemand so einen verrückten HUT benutzt. .. Wenn Sie Fragen haben, teilen Sie uns bitte mit, was Sie verwenden, und teilen Sie die Informationen!

Recommended Posts

Ich wollte den Motor mit einer Raspeltorte laufen lassen, also habe ich versucht, das Motor Driver Board von Waveshare zu verwenden
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Als ich versuchte, eine Socket-Kommunikation mit Raspberry Pi durchzuführen, war das Protokoll anders
Ich habe versucht, [eine bestimmte Aufgabe] mit einem Raspeltorte zu automatisieren
Ich habe versucht, mit OpenCV eine Bewegungserkennungsüberwachungskamera mit einer WEB-Kamera mit Raspberry Pi herzustellen
Ich möchte Python GUI ausführen, wenn Raspberry Pi startet
Es wird kalt, also habe ich versucht, das automatische Ein- und Ausschalten der Klimaanlage mit Raspberry Pi zu ermöglichen!
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, mehrere Servomotoren MG996R mit dem Servotreiber PCA9685 zu steuern.
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Mit COTOHA habe ich versucht, den emotionalen Verlauf des Laufens von Meros zu verfolgen.
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich wollte mit der Bezier-Kurve spielen
Ich habe L-Chika mit Razpai 4 (Python Edition) ausprobiert.
Ich habe versucht, mit Raspberry Pi 4 eine Umgebung von Ubuntu 20.04 LTS + ROS2 zu erstellen
Ich habe versucht, mit Raspeye + Tact Switch eine Schaltfläche für Slack zu erstellen
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Verwendung des digitalen Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, die Sprache mit CNN + Melspectogram zu identifizieren
Ich habe versucht, das Wissensdiagramm mit OpenKE zu ergänzen
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich wollte die Google-Tabelle mit AWS Lambda betreiben, also habe ich es versucht [Teil 2]
Die erste künstliche Intelligenz. Ich wollte die Verarbeitung natürlicher Sprache ausprobieren, daher werde ich die morphologische Analyse mit MeCab mit Python3 versuchen.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, die Emotionen des gesamten Romans "Wetterkind" zu analysieren
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich wollte den Panasonic Programming Contest 2020 mit Python lösen
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Eine Geschichte, bei der ich darüber nachdachte, die Informationen über die Fülle des Parkplatzes anhand des von der Webkamera und Razpai erhaltenen Bildes und durch tiefes Lernen zu ermitteln.
Ich habe versucht, die Anzeigenoptimierung mithilfe des Banditenalgorithmus zu simulieren
Ich habe versucht, Movidius NCS mit Python von Raspberry Pi3 auszuführen
Ich habe versucht, Raspeye und conect + mit der Web-API zu verbinden
Ich habe mit Raspberry Pi gesprochen
Ich habe versucht, die Pi Console I / F von Mechatraxs Raspeye IoT Starter Kit "anyPi" zu verwenden.
[TF] Ich habe versucht, das Lernergebnis mit Tensorboard zu visualisieren
[Shell-Start] Ich habe versucht, die Shell mit einem billigen Linux-Board-G-Cluster auf dem Fernseher anzuzeigen
Ich habe das Toho-Projekt mit Deep Learning aufgenommen ... ich wollte.
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren (Re-Challenge)
Ich habe versucht, das Zugriffsprotokoll mit Node.js auf dem Server auszugeben
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Ich habe versucht, es zu erweitern, damit die Datenbank mit der Analysesoftware von Wiire verwendet werden kann
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe gelernt, wie die Infrarot-Fernbedienung mit Raspberry Pi funktioniert
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
Ich habe versucht, das Bild mit OpenCV im "Skizzenstil" zu verarbeiten
Ich wollte die Klassifizierung von CIFAR-10 mit dem Chainer-Trainer in Frage stellen
Ich habe versucht, den auf Papier gestempelten Stempel mit OpenCV zu digitalisieren
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich wollte das ABC164 A ~ D-Problem mit Python lösen