[PYTHON] Essayez de déplacer le servomoteur avec RasPi (version à 180 degrés)

Avant

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. IMG_3896.JPG

les pièces

  1. Parts, ou RasPi3
  2. Servomoteur SG-90
  3. Alimentation du moteur
  4. Contrôleur de moteur Adafruit 16 canaux PWM / servo HAT pour Raspberry Pi

Après vérification, c'était toujours le produit actuel.

environnement

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

Ce que j'ai levé les yeux et ce que j'ai fait

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.

référence

  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

Essayez de déplacer le servomoteur avec RasPi (version à 180 degrés)
Essayez de déplacer le servomoteur avec RasPi (version ronde et ronde à 360 degrés)
Commande de servomoteur avec Raspberry Pi
Essayez de déplacer 3 servos avec Raspeye
Essayez de brouiller l'image avec opencv2
Essayez de séparer l'arrière-plan et l'objet en mouvement de la vidéo avec OpenCV
Essayez l'algorithme Variational-Quantum-Eigensolver (VQE) avec Blueqat
Essayez d'utiliser l'appareil photo avec OpenCV de Python
Installer en spécifiant la version avec pip
[Python] Essayez pydash de la version Python de lodash
Exécuter le servomoteur SG-90 avec Raspberry Pi
Essayez de réécrire le fichier avec la commande less
Essayez de résoudre le problème du fizzbuzz avec Keras
Essai du parseur d'emacs-org orgparse pour python
Essayez de résoudre le diagramme homme-machine avec Python
Comment essayer l'algorithme des amis d'amis avec pyfof
Suivez le marqueur AR avec un servo à 2 axes
Essayez Progate Free Edition [Python I]
Obtenez la dernière version du noyau Linux avec ArchLinux