DIY Mehrkanal-Servotester

Hallo!

Wie im vorherigen Artikel über das Lineup angekündigt , habe ich die Arbeit am Projekt eines Mehrkanal-Servotesters abgeschlossen und bin bereit, alle Materialien mit der Community zu teilen. Es kann zu Hause gemacht werden, aber ich habe eine Menge Boards bestellt und jetzt sieht mein Tester so aus:


Wofür ist es?


In der Hobbyelektronik sind Systeme mit PWM-Signalsteuerung weit verbreitet. Dies ist eine Impulsfolge mit einer Frequenz von 50 Hz. Die darin enthaltenen Informationen werden in Form von Impulsdauern codiert, die zwischen 0,8 und 2,3 ms variieren können. Die Extremwerte dieses Bereichs können von Hersteller zu Hersteller leicht variieren.



Servoantriebe für den Bau von Flugzeugmodellen, Hexapoden, Manipulatoren usw. verwenden genau ein solches Signal. In der Regel haben sie drei Drähte - Strom, Common und Signal. Bei der Flugzeugmodellierung, Automodellierung und beim Flugzeugbau verwenden die Regler des Hubs von Kollektor- und bürstenlosen Motoren dasselbe Steuersignal, das die Geschwindigkeit und Drehrichtung der Triebwerke bestimmt.

Die Quelle eines solchen Signals kann ein Bedienfeld, eine programmierte Steuerung oder ähnliches sein. In der Bauphase ist es jedoch sehr häufig zweckmäßig, einen Servotester zu verwenden, der im manuellen Modus das gleiche Signal erzeugt. Auf diese Weise können Sie die Leistung der Mechanik vorab überprüfen, extreme Positionen messen usw.

Merkmale und Eigenschaften unseres Geräts


Die meisten Tester, die Sie jetzt kaufen können, sind entweder sehr einfach oder teuer. Ich wollte es so billig wie möglich machen, aber gleichzeitig die größtmögliche Funktionalität bieten. Folgendes habe ich bekommen:
  1. Sechs unabhängige Steuerkanäle. Es ist unabhängig! Normalerweise können Sie im Bereitschaftsmodus mehrere Motoren gleichzeitig anschließen, aber das Signal zu ihnen ist das gleiche. Auf meinem Gerät können Sie sogar eine im automatischen Modus ausführen und den Rest wiederum manuell usw. verwalten.
  2. Signalkonditionierung und Anzeige in Mikrosekunden. Bei den meisten Testern ist die angezeigte Anzeige nicht klar, was oder fehlt vollständig
  3. Der minimale Schritt zum Ändern der Dauer beträgt 1 μs. Das heißt, der Bereich von 0,8 bis 2,3 ms ist in 1500 Schritte unterteilt
  4. Möglichkeit, eine Verbindung zu einem PC herzustellen. Sie können es beispielsweise zusammen mit einem Raspberry Pi verwenden. Das Signal selbst wird in diesem Fall viel genauer erzeugt als mittels des Einplatinencomputers selbst
  5. Offenheit. Am Ende des Artikels finden Sie alle Dateien, die für die unabhängige Herstellung des Testers erforderlich sind

Und hier sind seine Eigenschaften:
  1. Versorgungsspannung - 5V
  2. ( ), — 100
  3. — 0,8-2,3
  4. — 1
  5. — 50
  6. — 9600, 8 bits, 1 stop bit


Während ich an dem Schema arbeitete, habe ich versucht, es so billig wie möglich zu machen und es einfach zu wiederholen. Der beliebte Controller Atmega8A-AU wurde als Steuerungscontroller verwendet.

Eine dreistellige Siebensegmentanzeige ist über ein Schieberegister und Logiktransistoren verbunden. Sechs LEDs zeigen den aktuellen Modus an und werden nach der Methode des sogenannten Charleplexing verbunden, um MK-Schlussfolgerungen zu speichern.
Zur Steuerung werden ein herkömmlicher Inkrementalgeber und zwei Tasten verwendet. Der Encoder steuert den eingestellten Winkel und die Tasten schalten den Steuermodus und den aktuellen Kanal um. Überall gibt es Kondensatoren von Kontaktprellen, so dass all dies sehr klar funktioniert.

Die Testbuchsen dienen zum Anschließen der Servos selbst, zum Programmieren, zum Anschließen an einen PC und zur Stromversorgung. Ich habe beschlossen, keinen Leistungsregler auf der Platine zu installieren. Das heißt, für seine Verwendung funktioniert es nicht, die Batteriespannung direkt zu verwenden. Es ist erforderlich, eine 5-V-Quelle oder einen Stabilisator mit einem Strom zu finden, der dem von den angeschlossenen Motoren verbrauchten Strom entspricht.
Bei der Überprüfung der Verbindung eines bürstenlosen Motors mit einem Drehzahlregler (ESC) wird der Motor selbst von einer Batterie angetrieben. Wenn der Regler über einen eingebauten Drehzahlregler verfügt, können Sie den Tester direkt von dort aus mit Strom versorgen.



Die Leiterplatte ist im Format Sprint Layout vorbereitet. Dies ist eine doppelseitige Platine, aber ich habe sie gezeichnet, damit ich sie mit LUT oder einem Fotolack zu Hause machen kann, und Jumper von einer Seite der Platine zur anderen können leicht in Durchkontaktierungen eingelötet werden.

Die Vorderseite des Boards:



... und umgekehrt:



Ich habe dieses Board manuell erstellt und alles überprüft und funktioniert für mich:



Ich habe auch eine kleine Kampagne unter den Abonnenten von Commodities aus China für den Radiofan und unseren lokalen Hackspace MakeItLab durchgeführt und Leute gefunden, die die Veröffentlichung einer kleinen Menge von Geräten unterstützten. Ich nutze diese Gelegenheit, um ihnen meinen Dank auszudrücken. Hier ist das werkseitig hergestellte Gerät:




Komponentenliste


Hier ist die vollständige Liste mit Links:
  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. PLS-40 Kontaktkamm (26 Stifte erforderlich)
  15. Jumper

Gehäuse


Ich habe auch einen kleinen Dorn und einen Encodergriff auf einen 3D-Drucker gezeichnet und gedruckt. Dateien, die etwas später heruntergeladen werden sollen.




Firmware


Die Firmware-Dateien befinden sich am Ende des Artikels. Sie können den Controller mit jedem ISP-Programmierer über einen 6-poligen Standardanschluss flashen. Auf der Platine sind in erster Linie sechs der acht Stifte links vom Encoder dafür ausgelegt.
Die Sicherungsbits müssen wie in der Abbildung gezeigt gesetzt werden:



Testerarbeit


Es ist natürlich einfacher, einmal zu sehen:



Um den Tester im manuellen Steuermodus zu starten, muss der Jumper „PC / Manual“ beim Einschalten installiert sein.

Beim Starten im manuellen Modus wird die Meldung „HI“ auf dem Display angezeigt und der Tester wechselt in den Standby-Modus, wenn der Benutzer die anfängliche Signaldauer auswählt. Grob gesagt, vom Rand oder von der Mitte des Bereichs. Wenn Sie die linke Taste drücken, erfolgt die Steuerung von Null, wenn Sie die rechte Taste drücken, von der Mitte aus. Nach dem Klicken auf eine der Tasten startet die Signalerzeugung, der erste Kanal wird aktiv und wechselt in den Modus „1“.

Im Betriebsmodus wechselt die MODE-Taste die Steuermodi und ändert das Inkrement. Der aktuelle Modus wird mit sechs LEDs angezeigt. Es gibt vier manuelle Modi (Schritt 0.1; 1; 10 und von 0 bis 150, dh zwischen den Rändern der Bereiche) und zwei automatische (Start / Stopp). Durch langes Drücken der MODE-Taste wird der Kanal in den automatischen Steuermodus versetzt und der Motor beginnt sanft von einer Seite zur anderen zu schwingen. Ein kurzer Druck auf die MODE-Taste stoppt automatisch oder setzt die Bewegung fort. Durch langes Drücken der MODE-Taste kehrt der Kanal in den Encoder-Steuermodus zurück.

Die CHANNEL-Taste wechselt zwischen aktiven Kanälen. Der aktuell aktive Kanal wird auf dem Display im Binärcode mit Bitpunkten angezeigt. Durch langes Drücken dieser Taste kann der Tester auf allen Kanälen die gleichen Impulse erzeugen.

Bitte beachten Sie, dass die Zahlen von 0 bis 150 auf der Anzeige angezeigt werden. Dies entspricht ungefähr dem Winkel des Servoantriebs und kann in die Impulsdauer umgerechnet werden. Zur Neuberechnung reicht es aus, die Messwerte mit zehn zu multiplizieren und 800 zu addieren. Befindet sich beispielsweise zehn auf dem Indikator, beträgt die Pulsdauer 900 μs.

Computerverbindung


Wenn Sie einen Raspberry Pi verwenden, können Sie einfach Rx, Tx und GND unten links auf der Platine anschließen. Wenn Ihr Computer keinen TTL-kompatiblen COM-Anschluss hat, können Sie einen USB-COM-Adapter verwenden, der sehr günstig ist. Sie können auch die Spannung des 5-V-USB-Anschlusses verwenden, aber denken Sie daran, dass der maximale Strom 500 mA beträgt! Die Verbindungsgeschwindigkeit beträgt 9600.
Damit der Tester im Steuermodus von einem PC aus starten kann, muss er ohne Jumper eingeschaltet werden. In diesem Fall werden die Buchstaben „PC“ auf der Anzeige angezeigt und der Tester wechselt in den Standby-Modus für Befehle vom PC. Bis das erste vollständige Paket eintrifft, gibt es auf allen Kanälen kein Signal.

Die Impulsdauer muss in Mikrosekunden von 0 bis 1500 gesendet werden. Das heißt, zwei Bytes werden pro Kanal verbraucht.

Das Datenpaket sollte aus 16 Bytes bestehen: zuerst zwei Bytes 0xFF, um den Beginn des Pakets anzuzeigen, dann 12 Bytes Impulsdauer für jeden Kanal und am Ende zwei Bytes der Prüfsumme. Die Prüfsumme ist erforderlich, um die Richtigkeit der Verpackung zu überprüfen, und sollte der Summe aller Dauern entsprechen.

1. Byte - 255 (0xFF)
2. Byte - 255 (0xFF)
3. Byte - hohes Byte des ersten Kanals
4. Byte - niedriges Byte des ersten Kanals
5. Byte - hohes Byte des zweiten Kanals
6 Byte - niedriges Byte des zweiten Kanals
7. Byte - hohes Byte des dritten Kanals
8 .. Byte - Low-Byte des dritten Kanals
9. Byte - High-Byte des vierten Kanals
10. Byte - Low-Byte des vierten Kanals
11. Byte - High-Byte des fünften Kanals
12. Byte - Low-Byte des fünften Kanals
13. Byte - High-Byte des sechsten Kanals
14. Byte - Low-Byte des sechsten Kanals
15. Byte - High-Byte der Prüfsumme
16. Byte - Low-Byte der Prüfsumme

Beispiele für gültige Pakete (dezimal):
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (alle Motoren in die Ausgangsposition)
255 255 2 238 0 0 0 0 0 0 0 0 0 0 240 (erster Motor in die Mittelstellung)
255 255 2 238 2 238 2 238 2 238 2 238 2 238 17 148 (alle Motoren in mittlerer Position)

Dateien zum Herunterladen



Firmware-
Modell für Leiterplatten zum Drucken des Gehäuses
Und, entschuldigen Sie, einen Link zum Hauptartikel auf meiner Website .

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


All Articles