Étape 3: Créer des Circuits de contrôleur de Servo : théorie
Servos exigent ce qu’on appelle la Modulation de largeur d’impulsion à leur fil signal à comprendre où vous voulez le palonnier à se tourner vers. Modulation de largeur d’impulsion est l’acte d’ajuster le facteur de marche d’une forme d’onde comme une onde carrée. Servos analogiques, plus besoin de 1 à 2 ms de signal (tension positive) et 7 – 18 ms de signal (zéro de tension). La feuille de données pour les servos SG90 dit qu’ils fonctionnent à 50 Hz (20ms) mais j’ai trouvé qu’ils fonctionnent bien plus de 90 Hz. Le signal sur doit toujours être entre 1 et 2 ms cependant.
Vous pouvez trouver de nombreux exemples en ligne de commande des servos avec Arduino ou même une puce 555 minuterie, mais je vais devenir vraiment fondamentaux ici et utiliser les composants seulement discrets. Nous allons utiliser le Circuit de multivibrateur Astable ! Juste un avertissement, ce circuit a tendance à être... jumpy, et vos servos gagnera beaucoup de personnalité.
Le multivibrateur Astable crée une onde carrée à une fréquence déterminée par le temps de charge du condensateur résistance dans le circuit. Ce qui est soigné sur ce circuit, c’est que le cycle de l’onde carrée peut être réglé en ajustant les deux séries de résistances et de condensateurs.
J’ai constaté que lorsque les condensateurs dans ce circuit sont 220 nF, les résistances doivent être 5 – 15k pour les ms 1-2 à l’heure et 48k pour environ 8ms de temps d’arrêt. Maintenant, au total, c’est 10 ms ou fréquence de 100 Hz, ce qui est beaucoup plus élevée que la fréquence de fonctionnement indiquée pour ces servos, mais j’ai trouvé ces valeurs par essais et erreurs, et ils ont travaillé pour moi.
Le joystick 2 axes (https://www.parallax.com/product/27800) que j’utilise est tout comme celles que l'on trouve dans les contrôleurs de playstation. Lorsque vous déplacez le joystick dans le x ou l’axe des ordonnées, il modifie la résistance des deux potentiomètres, un pour l’axe x et l’autre pour y. Ces valeurs de résistance sont ~ 5 k dans le centre et descendre à 0 et jusqu'à 10 k lorsque vous déplacez le joystick.
Donc, si nous fixons notre garnitures potentiomètres à 5k dans le circuit, nous pouvons utiliser chaque potentiomètre de l’axe du levier de commande pour changer la largeur d’impulsion de 1 à 2 ms de signal, et donc contrôle la position de la corne de servo, notre cou robot.
L’inconvénient à l’utilisation de ce circuit est que vous devez séparer alimentations pour chaque servo parce qu’elles interfèrent avec les signaux de l’autre. Vous ne pouvez pas il suffit d’exécuter les deux circuits en parallèle avec une pile. Pas un super gros problème, mais il ajoute une étape supplémentaire dans le processus de câblage plus tard. Cela signifie aussi que nos manette de parallaxe pré soudé doit être libéré de son Conseil d’administration parce qu’elle vient soudé, avec un terrain d’entente.