Contrôle des servomoteurs sur le #RaspberryPi

Better PWM on the Raspberry Pi

Dans le cadre de mon projet d’astronomie «SpacePi» Raspberry Pi, je souhaite pouvoir contrôler à distance l’orientation du module caméra. Je veux pouvoir m’asseoir loin de la plate-forme de caméra et contrôler où elle pointe à l’aide d’une interface Web et (en option, et parce que je peux très bien) via une télécommande Wii.

Donc, je fais actuellement des recherches sur la meilleure façon de faire cela.

J’ai trié le mécanisme réel en achetant l’un de ceux-ci: Pan / Tilt Dagu qui vient avec deux de ces moteurs. Je prévois de construire une sorte de base LEGO car je n’ai pas envie d’essayer de l’équilibrer sur le bas du servo! ?

Les moteurs fonctionnent à une vitesse connue à environ 4,8 V, ce qui est parfait car c’est ce qui sort du Pi. Sauf que je ne pense pas que ce soit sûr de faire ça. Je sais que les rails 3.3v ont une puissance maximale de 50ma, mais je pense que les amplis disponibles sur le 5V sont exactement ce qui reste après que le Pi a pris environ 700ma. Cela peut signifier qu’il me reste assez d’amplis, mais je n’ai pas envie d’essayer cela sur l’un de mes Pis bien-aimés! Cela signifie donc une alimentation supplémentaire pour les servomoteurs. D’accord, je peux vivre avec ça. Je préfère ne pas, tu comprends, donc si quelqu’un le sait est sûr pour alimenter le Pi, s’il vous plaît laissez-moi savoir!

Le contrôle des servos se fait via PWM, aka Pulse Width Modulation. C’est quelque chose que l’Arduino fait très bien, mais que le Raspberry Pi fait moins bien. C’est parce que l’Arduino est ce que l’on appelle un «système en temps réel», ce qui signifie que lorsqu’il est en cours d’exécution, sa boucle de programme, rien d’autre ne peut utiliser le processeur. Littéralement, la seule chose qui fonctionne est ce que vous lui avez dit de courir. Le Raspberry Pi, en revanche, est ne pas un système en temps réel comme Linux lui-même est toujours en train de disparaître en arrière-plan, prenant des cycles de processeur. Cependant, j’ai trouvé des moyens de faire en sorte que le Pi donne l’impression qu’il est un système en temps réel et pour faire PWM «correctement».

Alors, quelques pages Web à consulter:

Après avoir examiné tout cela, j’aurais d’abord essayé la version Python. J’aime Python, c’est mon genre de langage. Mais le l’auteur de PyZiPi a dit qu’il ne convient pas à la servocommande.

Si Python échoue, je passerai d’abord à C / C ++ avec PigPio car cela semble le plus simple, mais je finirai probablement par utiliser ServoBlaster et sauter à travers les cerceaux requis pour le faire fonctionner. (Il y a toutes sortes de choses mentionnées comme «userland» dont j’ai entendu parler et qui me fait peur!).

L’autre chose à essayer, bien sûr, est d’essayer le Bibliothèque WiringPi-Python ce qui signifie que vous pouvez utiliser la bibliothèque WiringPi à partir de Python. Cela semble certainement fonctionner, comme Gordon Henderson l’a laissé entendre dans la section commentaires de ce page de blog.

Plus à venir! (Une fois que j’ai la plate-forme servo pan / tilt entre mes mains)

  • GERUI RC-Servo Testeur 3CH numérique Multi ECS Consistance Régulateur de vitesse Contrôle Contrôle Contrôle de direction Testeur CCPM Master pour hélicoptère RC Voiture Bateau avec 3 indicateurs de
  • Carte de Commande Servos Pilote de Servomoteur à Double Canaux Futaba SG90 Series Module de Débogage de L'appareil à Gouverner