[PYTHON] Versuchen Sie, den Servomotor mit RasPi (180-Grad-Version) zu bewegen.

Vor

Vor langer Zeit habe ich einen PI HAT gekauft, der einen Servomotor steuern und sogar löten kann, aber ich habe ihn komplett vergessen. Als ich den Bestand an elektronischen Teilen überprüfte, fand ich ihn und überprüfte den Betrieb. IMG_3896.JPG

Teile

  1. Teile oder RasPi3
  2. Servomotor SG-90
  3. Stromversorgung für Motor
  4. Motorsteuerung Adafruit 16-Kanal-PWM / Servo-HAT für Raspberry Pi

Nach der Überprüfung war es immer noch das aktuelle Produkt.

Umgebung

  1. python 3.7.3
  2. adafruit-circuitpython-servokit 1.2.1

Was ich nachgeschlagen habe und was ich getan habe

Es gibt zwei Arten von Servomotoren, einen, der sich um 180 Grad dreht (was als 90 Grad nach links und rechts bezeichnet werden kann) und einen, der sich um 360 Grad dreht. Wenn Sie den Produktinformationen sowohl für den 180-Grad-Drehtyp als auch für den 360-Grad-Drehtyp folgen, Beispielcode Ich konnte erreichen (-pi / using-the-python-library), aber als ich den Code hier kopierte, funktionierte es nicht wie erwartet. Zunächst dachte ich, es sei ein Lötfehler, aber selbst wenn ich die Stellen ändere, an denen die Servomotoren angeschlossen sind (es gibt 16 Stellen), ist die Bewegung dieselbe. Hmmm ...

Ich denke nicht, dass es ein Problem ist, dass das Löten klumpig ist (ist es eine Übertragung der Verantwortung!), Also habe ich versucht, die Parameter ein wenig zu ändern.

Der folgende Code schien also zu funktionieren.

# Adafruit 16-Channel PWM/Servo HAT & Bonnet for Raspberry Pi & SG90 sample
#
# see:
# https://learn.adafruit.com/adafruit-16-channel-pwm-servo-hat-for-raspberry-pi
#
# test system:
# python 3.7.3
# adafruit-circuitpython-servokit 1.2.1

import time
from adafruit_servokit import ServoKit

# Set channels to the number of servo channels on your kit.
# 8 for FeatherWing, 16 for Shield/HAT/Bonnet.
kit = ServoKit(channels=16)

ch = 1

kit.servo[ch].set_pulse_width_range(500, 2400)

# 0..180 step 30 angle
for v in range(0,181,30):
    print( "value=", v )
    kit.servo[ch].angle = v
    time.sleep(1)

# 0, 180 step 90 angle x 3set
for i in range(1,3):
    for v in range(0,181,90):
        kit.servo[ch].angle = v
        time.sleep(1)

# stop(90 angle)
kit.servo[ch].angle = 90

Der Punkt ist

kit.servo[ch].set_pulse_width_range(500, 2400)

Überprüfen Sie dann das Datenblatt des Servomotors SG-90 und stellen Sie es ein, da es den Anschein hat, dass die Unterseite einen Impuls von 0,5 ms und die Oberseite einen Impuls von 2,4 ms hat. Hat. Selbst mit diesem Parameter denke ich, dass es für 180 Grad nicht ausreicht, aber vorerst ist es gut.

Referenz

  1. https://learn.adafruit.com/adafruit-16-channel-pwm-servo-hat-for-raspberry-pi
  2. https://learn.adafruit.com/adafruit-16-channel-pwm-servo-hat-for-raspberry-pi/using-the-python-library
  3. http://akizukidenshi.com/catalog/g/gM-08761/

Recommended Posts

Versuchen Sie, den Servomotor mit RasPi (180-Grad-Version) zu bewegen.
Versuchen Sie, den Servomotor mit RasPi zu bewegen (360-Grad-Rund- und Rundversion).
Servomotorsteuerung mit Raspberry Pi
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Versuchen Sie, das Bild mit opencv2 zu verwischen
Versuchen Sie, den Hintergrund und das sich bewegende Objekt des Videos mit OpenCV zu trennen
Probieren Sie den Variational-Quantum-Eigensolver (VQE) -Algorithmus mit Blueqat aus
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Installieren Sie, indem Sie die Version mit pip angeben
[Python] Probieren Sie pydash der Python-Version von lodash aus
Den Servomotor SG-90 mit Himbeer-Pi betreiben
Versuchen Sie, die Datei mit dem Befehl less neu zu schreiben
Versuchen Sie, das Fizzbuzz-Problem mit Keras zu lösen
Test von emacs-org parser orgparse für Python
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
So testen Sie den Friends-of-Friends-Algorithmus mit pyfof
Folgen Sie der AR-Markierung mit einem 2-Achsen-Servo
Probieren Sie Progate Free Edition [Python I]
Holen Sie sich die neueste Linux-Kernel-Version mit ArchLinux