Il y a longtemps, j'ai acheté un PI HAT capable de contrôler un servomoteur et même de le souder, mais je l'ai complètement oublié. Lorsque je vérifiais le stock de pièces électroniques, je l'ai trouvé, alors j'ai vérifié le fonctionnement.
Après vérification, c'était toujours le produit actuel.
Il existe deux types de servomoteurs, l'un qui tourne à 180 degrés (que l'on peut dire à 90 degrés à gauche et à droite) et l'autre qui tourne à 360 degrés. Si vous suivez les informations produit pour le type de rotation à 180 degrés et le type de rotation à 360 degrés, Exemple de code J'ai pu atteindre (-pi / using-the-python-library), mais quand j'ai copié le code ici, cela n'a pas fonctionné comme prévu. Tout d'abord, je pensais que c'était une panne de soudure, mais le mouvement est le même même si je change l'emplacement (il y en a 16) où le servomoteur est connecté. Hmmm ...
Je ne pense pas que ce soit un problème que la soudure soit grumeleuse (est-ce un transfert de responsabilité!), J'ai donc essayé de changer un peu les paramètres.
Ainsi, le code suivant semblait fonctionner.
# 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
Le point est
kit.servo[ch].set_pulse_width_range(500, 2400)
Ensuite, vérifiez la Fiche technique du servomoteur SG-90, et réglez-la car il semble que le bas est une impulsion de 0,5 ms et le haut est une impulsion de 2,4 ms. Fait. Même avec ce paramètre, j'estime que ce n'est pas suffisant pour 180 degrés, mais pour le moment c'est bien.
Recommended Posts