Testeur de servo multicanal bricolage

Bonjour

Comme annoncé dans l' article précédent sur la gamme , j'ai terminé le travail sur le projet d'un servo-testeur multicanal et je suis prêt à partager tout le matériel avec la communauté. Il peut être fait à la maison, mais j'ai commandé un lot de planches et maintenant mon testeur ressemble à ceci:


À quoi ça sert?


Dans l'électronique de loisirs, les systèmes avec contrôle de signal PWM sont largement utilisés. Il s'agit d'un train d'impulsions d'une fréquence de 50 Hz. Les informations qu'ils contiennent sont codées sous la forme de durées d'impulsion, qui peuvent varier de 0,8 à 2,3 ms. Les valeurs extrêmes de cette plage peuvent varier légèrement d'un fabricant à l'autre.



Les servocommandes pour la construction de maquettes d'avions, d'hexapodes, de manipulateurs, etc., utilisent exactement un tel signal. En règle générale, ils ont trois fils - alimentation, commun et signal. De plus, dans la modélisation d'aéronefs, la modélisation de voitures et la construction d'aéronefs, les régulateurs de la course des moteurs collecteurs et sans balais utilisent le même signal de commande qui détermine la vitesse et le sens de rotation des moteurs.

La source d'un tel signal peut être un panneau de commande, un contrôleur programmé ou quelque chose comme ça. Mais très souvent au stade de la construction, il est pratique d'utiliser un servo-testeur, qui génère le même signal en mode manuel. Cela vous permet de pré-vérifier les performances de la mécanique, de mesurer des positions extrêmes, etc.

Caractéristiques et caractéristiques de notre appareil


La plupart des testeurs que vous pouvez acheter maintenant sont soit très simples, soit coûteux. Je voulais le rendre le moins cher possible, mais en même temps lui donner la fonctionnalité la plus large possible. Voici ce que j'ai obtenu:
  1. Six canaux de contrôle indépendants. C'est indépendant! Habituellement, vous pouvez connecter plusieurs moteurs en même temps, mais le signal est le même. Sur mon appareil, vous pouvez même en exécuter un en mode automatique, et gérer le reste à son tour manuellement, etc.
  2. Conditionnement et indication du signal en microsecondes. Dans la plupart des testeurs, l'indication affichée n'est pas claire quoi, ou est complètement absente
  3. Le pas minimum pour changer la durée est de 1 μs. Autrement dit, la plage de 0,8 à 2,3 ms est divisée en 1500 étapes
  4. Possibilité de se connecter à un PC. Vous pouvez l'utiliser, par exemple, associé à un Raspberry Pi. Le signal lui-même sera formé dans ce cas beaucoup plus précisément qu'au moyen de l'ordinateur monocarte lui-même
  5. Ouverture. À la fin de l'article, vous trouverez tous les fichiers nécessaires à la fabrication indépendante du testeur

Et voici ses caractéristiques:
  1. Tension d'alimentation - 5V
  2. ( ), — 100
  3. — 0,8-2,3
  4. — 1
  5. — 50
  6. — 9600, 8 bits, 1 stop bit


Tout en travaillant sur le schéma, j'ai essayé de le rendre le moins cher possible et de le rendre facile à répéter. Le contrôleur populaire Atmega8A-AU a été utilisé comme contrôleur de contrôle.

Un affichage à sept chiffres à sept segments est connecté via un registre à décalage et des transistors logiques. Six LED sont utilisées pour afficher le mode actuel et elles sont connectées par la méthode du soi-disant charleplexing pour enregistrer les conclusions MK.
Pour le contrôle, un encodeur incrémental conventionnel et deux boutons sont utilisés. L'encodeur contrôle l'angle défini et les boutons commutent le mode de contrôle et le canal actuel. Partout, il y a des condensateurs de rebond de contact, de sorte que tout cela fonctionne très clairement.

Les prises de testeur sont conçues pour connecter les servos eux-mêmes, programmer, connecter à un PC et alimenter. J'ai décidé de ne pas installer de régulateur de puissance sur la carte. Autrement dit, pour son utilisation, il ne fonctionnera pas pour utiliser directement la tension de la batterie. Il faut trouver une source 5V ou stabilisateur avec un courant correspondant au courant consommé par les moteurs connectés.
Lors de la vérification de la connexion d'un moteur sans balais avec un contrôleur de vitesse (ESC), le moteur lui-même est alimenté par une batterie. Si l'ESC a un contrôleur de vitesse intégré, vous pouvez alimenter le testeur directement à partir de celui-ci.



Le circuit imprimé est préparé au format Sprint Layout. Il s'agit d'une planche double face, mais je l'ai dessinée pour pouvoir la faire à la maison avec LUT ou une résine photosensible, et les cavaliers d'un côté de la planche à l'autre peuvent être facilement soudés en vias.

La face avant de la carte:



... et l'inverse:



j'ai fait cette carte manuellement et tout a vérifié et fonctionne pour moi:



j'ai également mené une petite campagne auprès des abonnés des produits de base de Chine au fan de radio et à notre hackspace local MakeItLab et j'ai trouvé des personnes qui ont soutenu la sortie d'un petit lot d'appareils. J'en profite pour leur exprimer ma gratitude. Voici l'appareil fabriqué en usine:




Liste des composants


Voici la liste complète des liens:
  1. Atmega8A-AU TQFP44
  2. BC56-12GWA. , , aliexpress
  3. SN74HC595DR SOIC16
  4. BCR108E6327 SOT23 — 3
  5. KP-2012SGC, 0805 — 6
  6. EC12E24204A9
  7. T491C226K016AT (22-16, C)
  8. 0,1 0805 — 7
  9. 1 0805
  10. 1 0603×4
  11. 300 0603×4 — 3
  12. DTSM20-4.3N — 2
  13. 5,08
  14. Peigne de contact PLS-40 (26 broches requises)
  15. Cavalier

Logement


J'ai également dessiné et imprimé sur une imprimante 3D un petit mandrin et une poignée d'encodeur. Fichiers à télécharger un peu plus tard.




Firmware


Les fichiers du firmware seront à la fin de l'article. Vous pouvez flasher le contrôleur à l'aide de n'importe quel programmeur ISP via un connecteur standard à 6 broches. Sur la carte, six des huit broches à gauche de l'encodeur sont principalement conçues pour cela.
Les bits de fusible doivent être réglés comme indiqué sur la figure:



Travail de testeur


Bien sûr, il est plus facile de voir une fois:



Pour démarrer le testeur en mode de contrôle manuel, il est nécessaire que le cavalier «PC / Manuel» soit installé à la mise sous tension.

Lors du démarrage en mode manuel, le message «HI» s'affiche à l'écran et le testeur passe en mode veille lorsque l'utilisateur sélectionne la durée initiale du signal. Grosso modo, du bord ou du milieu de la plage. Lorsque vous appuyez sur le bouton gauche, le contrôle se produit à partir de zéro, lorsque vous appuyez sur le bouton droit, à partir du milieu. Après avoir cliqué sur l'un des boutons, la génération du signal commencera, le premier canal deviendra actif et passera en mode «1».

En mode de fonctionnement, le bouton MODE commute les modes de contrôle, en changeant l'incrément. Le mode actuel est affiché à l'aide de six LED. Il existe quatre modes manuels (étape 0.1; 1; 10 et de 0 à 150, c'est-à-dire entre les bords des plages) et deux automatiques (marche / arrêt). Un appui long sur le bouton MODE met le canal en mode de contrôle automatique et le moteur commence à osciller doucement d'un côté à l'autre. Une courte pression sur le bouton MODE arrête ou reprend automatiquement le mouvement. Un appui long sur le bouton MODE ramène le canal au mode de contrôle de l'encodeur.

Le bouton CHANNEL bascule entre les canaux actifs. Le canal actif actuel est affiché à l'écran en code binaire à l'aide de points binaires. Un appui long sur ce bouton met le testeur en mode de génération des mêmes impulsions sur tous les canaux.

Veuillez noter que les chiffres de 0 à 150 sont affichés sur l'indicateur, ce qui correspond approximativement à l'angle du servo variateur et peut être converti en durée d'impulsion. Pour recalculer, il suffit de multiplier les lectures par dix et d'ajouter 800. Par exemple, s'il y en a dix sur l'indicateur, alors la durée d'impulsion est de 900 μs.

Connexion ordinateur


Si vous utilisez un Raspberry Pi, vous pouvez simplement brancher Rx, Tx et GND en bas à gauche de la carte. Si vous n'avez pas de port COM compatible TTL sur votre ordinateur, vous pouvez utiliser un adaptateur USB-COM, qui est très bon marché. Vous pouvez également prendre la tension du port USB 5V, mais n'oubliez pas que son courant maximum est de 500mA! La vitesse de connexion est de 9600.
Pour que le testeur démarre en mode de contrôle à partir d'un PC, il est nécessaire de l'allumer sans cavalier. Dans ce cas, les lettres «PC» seront affichées sur l'indicateur et le testeur passera en mode veille pour les commandes du PC. Jusqu'à l'arrivée du premier paquet complet, aucun signal ne sera émis sur tous les canaux.

Les durées d'impulsion doivent être envoyées en microsecondes de 0 à 1500. Autrement dit, deux octets sont consommés par canal.

Le paquet de données doit comprendre 16 octets: deux premiers octets 0xFF pour indiquer le début du paquet, puis 12 octets de durée d'impulsion pour chaque canal et à la fin deux octets de la somme de contrôle. La somme de contrôle est nécessaire pour vérifier l'exactitude du colis et doit être égale à la somme de toutes les durées.

1er octet - 255 (0xFF)
2e octet - 255 (0xFF)
3e octet - octet haut du premier canal
4e octet - octet bas du premier canal
5e octet - octet haut du deuxième canal
6 octets - octet bas du deuxième canal
7e octet - octet haut du troisième canal
8e octet - octet bas du troisième canal
9e octet - octet haut du quatrième canal
10e octet - octet bas du quatrième canal
11e octet - octet haut du cinquième canal
12e octet - octet bas du cinquième canal
13e octet - octet haut du sixième canal
14e octet - octet bas du sixième canal
15e octet - octet haut de la somme de contrôle
16e octet - octet bas de la somme de contrôle

Exemples de paquets valides (en décimal):
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (tous les moteurs en position initiale)
255 255 2 238 0 0 0 0 0 0 0 0 0 0 0240 (premier moteur en position médiane)
255 255 2 238 2 238 2 238 2238 2238 2238 17148 (tous les moteurs en position médiane)

Fichiers à télécharger


Carte de circuit imprimé
Firmware
Model pour imprimer le boîtier
Et, excusez-moi, un lien vers l' article principal sur mon site .

Source: https://habr.com/ru/post/fr395963/


All Articles