Freitag, 27. Juli 2012

Brushless Motoren und Regler

image
Brushless Motor und Regler

Vor einigen Wochen stellte ich fest, dass der Regler nicht immer den Motor so steuert, wie ich es erwarte. Das liegt wohl daran, dass ich mich an die Fahrtenregler für normalere Motoren gerichtet habe. Dass nun die Regler für Brushless Motoren ein paar Merkmale haben, wie sie richtig funktionieren, war mir bis vor kurzem unbekannt. Zum einen sollte das PWM Signal nicht gerade auf 2ms Impuls stehen, da sonst das Menü vom Fahrtenregler angesprochen wird. Die Mittelstellung ist für den Start besser geeignet, also 1,5ms.

image
Brushless Motor. Die drei Anschlüsse sind notwendig um ein Drehstromkreis zu erzeugen.

Beim Arduino kann einfach ein PWM Signal erzeugt werden, das genau für einen Servo oder hier für einen Regler geeignet ist. Anders ist es bei dem Netduino, womit sich PWM Signale erzeugen lassen, die nicht mehr für das Regeln geeignet sind. Zwar kann ein Digital Servo mit einer höheren Frequenz durchgesteuert werden, jedoch muss immer das Verhältnis von Periodendauer und Pulslänge übereinstimmen. Werden diese Werte überschritten, so kann sich, wie in meinem Fall, der Motor im wahrsten Sinne des Wortes abrauchen.

Leider war da kein Regler. Daher habe ich ersatzweise ein Bild von einem Servo verwendet.
#include <Servo.h> 

Servo pwm;

void setup() {
  pwm.attach(9);
}

void loop() {
  // Periodenlänge ist aus der 
  // Bibliothek bei 20ms

  // Startbereich
  // Pulslänge von 1ms
  pwm.write(0);  

  delay(1000);       
  
  // Mittelstellung
  // Pulslänge von 1,5ms
  pwm.write(90);  

  delay(1000);   
  
  // Endbereich
  // Pulslänge von 2ms
  pwm.write(180);  

  delay(1000);             
}
Beispiel Ansteuerung eines Servos oder Reglers mit Hilfe der Bibliothek für Arduino

In einigen Foren habe ich Werte gefunden, die außerhalb des gedachten Bereiches liegen. Obwohl mir das bekannt war, habe ich die Werte probiert, da ich zu diesem Zeitpunkt noch keine ausreichenden Erfahrungen hatte, was Brushless Motoren und deren Regler angeht. Bei normalen Servos ist es weniger problematisch, da diese einiges aushalten. Bei kleinen Servos kann das Getriebe oder der Potentiometer mit dem Servohebel brechen.


using System;
using Microsoft.SPOT;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.NetduinoPlus;
using System.Threading;

namespace ServoControlExample
{
    public class Program
    {
        public static void Main()
        {
            PWM pwm = new PWM(Pins.GPIO_PIN_D5);

            while (true)
            {
                // Für jedes setzen, wird immer 
                // eine Periodendauer von 20ms
                // verwendet. In der Sekunden 
                // wird diese Periode 50 mal 
                // wiederholt, das entsprechend
                // 50Hz darstellt.

                // Startbereich 
                // Pulsdauer bei 1ms
                pwm.SetPulse(20000, 1000);
                Thread.Sleep(1000);

                // Mittelstellung
                // Pulsdauer bei 1,5ms
                pwm.SetPulse(20000, 1500);
                Thread.Sleep(1000);

                // Endbereich
                // Pulsdauer bei 2ms
                pwm.SetPulse(20000, 2000);
                Thread.Sleep(1000);    
            }            
        }
    }
}
Beispiel Ansteuerung eines Servos oder Reglers mit Hilfe der PWM Klasse aus dem .NET Micro Framework

Im Zeitalter von .Net Framework und Bibliotheken wird einem einiges abgenommen. Ich erinnere mich noch, wie ich lange nach den Einstellwerten für den ATMega16 gesucht habe, und so wirklich zufrieden war ich damit nie. Bei nachfragen in bekannten Foren konnte mir keiner weiter helfen. Und ja, ich habe gegoogled! Smiley mit herausgestreckter Zunge

Donnerstag, 26. Juli 2012

Halterung für Netduino und Switch

image
Der 5 Port Switch links, und rechts der Netduino

Nachdem es mich zum X-ten mal gestört hat, dass mein Controller immer mit dem Klettband hin und her wackelte, beschloss ich, die erforderliche Halterung zu bauen. Die Kästchen hatte ich mir bereits vor Wochen gekauft. Damit diese auch Halt finden, müssen wieder ein paar Quadratrohre bearbeitet werden.

image
Unterseite, die später mit dem Rumpf vom Quadrocopter festgeschraubt wird.

Wie immer liegt der Aufwand eher am Werkzeug, so dass ich oftmals improvisieren musste, um meine Löcher zu bohren. Leider habe ich nur einen Kasten mitgenommen, sonst hätte ich die andere Hälfte ebenfalls bearbeitet. Schließlich gehört hier noch ein Access Point dazu und der kleine LiPo Akku für die Stromversorgung. Morgen kommen noch weitere Löcher, da z.B. der Netduino in der Position noch nicht erreichbar ist für Netzwerk oder USB.

Dienstag, 24. Juli 2012

Fehlersuche auf meinem Shield

Fehlersuche_02
Fast nicht zu erkennen. Unterbrechung an der Leiterbahn.
Irgendwann musste es ja so kommen. Hin und wieder reagierten die Regler nicht oder in einem Test sogar der Digital Servo. Mit einem einfachen Messgerät konnte ich die Unterbrechung feststellen. Da ich ja immer noch unterwegs bin, habe ich keine Lötstation dabei. Deshalb habe ich die Stelle vorrübergehend überbrückt.
Naja. Leider ist die Lötarbeit von mir miserabel, weil mein Lötkolben keine richtige Spitze bildet. So langsam brauche ich eine neue Lötstation mit einem Lötkolben, bei dem ich leichter Ersatzteile finde.

Samstag, 21. Juli 2012

So weit draußen

image
Kein UMTS. Mit dem Mobiltelefon sieht das auch nicht besser aus.

Es gibt Teile in Deutschland, die soweit von den Städten (oder von mir aus auch von der Zivilisation) entfernt sind, da würde es mich nicht wundern unbekannte Ureinwohner zu finden.
Wie jedes Jahr besuche ich meinen Vater am Geburtstag. Wer kein Auto zur Verfügung hat, der fährt mit der Bahn. Und hierbei bin ich immer wieder überrascht, was man heutzutage alles als "Bahnhof" bezeichnen darf. Zwar ist es in meiner Stadt auch eher dürftig, dennoch ist es ein Bahnhof mit Bahnsteig, Automaten, einem Kiosk der nicht in Betrieb ist und überbedachtem Fahrradstand. Auf der Strecke von Uelzen nach Gifhorn scheinen sich Bahnhöfe anders zu definieren. Einige davon scheinen nur einen Automaten zu haben, andere Bahnhöfe scheinen in einer Geisterstadt zu liegen. Zumindest sehe ich noch Menschen an den Bahnhöfen aussteigen und vereinzelt sieht man auch mal ein Fahrzeug.
Am Ziel angekommen, als ich endlich die Stadt Gifhorn erreichte, kam auch der Empfang wieder.

Freitag, 20. Juli 2012

Pegelwandler für den Regler

Microcontroller und Regler mit Pegelwandler

Nach dem ich einen Pegelwandler über dem Breadboard ausprobiert habe, dachte ich "löte doch mal das gleich auf die Platine!". Damit ich auch die richtigen Widerstände verwende, habe ich kurzerhand die Schaltung für meine Bedürfnisse berechnet. Im Grunde reicht die Grundformel R=U/I. Zunächst suchte ich in meinen Kisten nach den passenden Transistoren, und fand schließlich auch die PNP Varianten. Zuvor habe ich nur NPN verwendet, wodurch ich noch ein Inverter benötigt habe, um das richtige Ausgangssignal zu erhalten.

Leider bin ich etwas gestolpert, als ich meinen Kaffee an meinen Tisch brachte.

Was hier allerdings auffallen dürfte ist, dass ich nicht die Werte genommen habe, die ich eigentlich berechnet habe, sondern Widerstände mit einem geringeren Wert. Da ich meistens mit 1 Milliampere rechne, ist es nicht weiter tragisch, wenn die Belastung auf 2mA oder 3mA ansteigt und für meine Anwendungen absolut ausreichend. Abgesehen davon, hätte ich sonst eine Platine voller Widerstände, und das wäre dann schon eine Verschwendung.

Widerstände 8x2,2kOhm und 4x1,5kOhm, 4xPNP BC177A und 4xNPN BC547A Transistoren, 1 Platine und Steckstifte zum anschließen.

Zugegeben passt auf der Platine noch mehr, dennoch sollte es erst einmal reichen. Vielleicht fällt mir später noch etwas ein, dass ich als Schaltung gebrauchen könnte.
Die fertigen 4 Pegelwandler. Von Links kommt das Signal vom Microcontroller und links vom schwarzen Transistor wird der Regler angeschlossen.

Kurz warum ich hier Pegelwandler brauche. Normalerweise würden die Servos, oder zumindest die kleinen, mit einem Spannungsimpuls von 3,3V auskommen. Schließt man hier einen normalen an, so kann es vorkommen, dass der Spannungsabfall zu groß ist und das Signal nicht ausreichend für den Regler zu lesen ist. In meinem Fall sind es die Regler für die Brushless Motoren, die keine ausreichende Entkopplung zum Stromkreis haben.

Defekter Brushless Motor

Brushless Motor, Regler und der Arduino zum programmieren des Reglers

Ärgerlich. Jetzt bin ich mit dem größten Teil der Programmierung durch, ist mir beim justieren ein Motor im wahrsten Sinne abgeraucht. Nach dieser neuesten Erfahrung musste ich feststellen, dass der Regler für Brushless Motor in einem schädlichen Bereich steuern kann. Vielleicht kann ich erst einmal einen Tricopter konfigurieren, um meine Tests fortzuführen und gegebenenfalls auch mal zu fliegen.

Mittwoch, 18. Juli 2012

Provisorischer Pegelwandler von 3,3V auf 5V

PWM Signal über den Pegelwandler und Inverter

Heute morgen habe ich meine Bestellung von ein paar Pegelwandlern abgesendet. Obwohl ich mir sicher bin, dass es dann mit der Ansteuerung der Regler funktioniert, habe ich testweise einen Pegelwandler aus zwei Transistoren, 3 Widerständen und einem Inverter zusammengesteckt.
Es funktioniert! Zuvor ging es mit dem großen Servo nur teilweise und eigentlich wackelte der Arm nur ein wenig hin und her. Das gleiche dürfte auch bei den Reglern der Fall gewesen sein, so dass sich die Motoren nur ungenau und fast nur auf Vollgas drehten.

Der provisorische Pegelwandler wandelt den Impuls von 3,3V auf 5V. Zumindest sollte das so sein. Es kamen hier jedoch nur 3,8V an, reichte allerdings, dass der Servo nun mit dem PWM Signal etwas anfangen konnte. Besser wäre es, wenn ich das vorher ausgerechnet hätte, dann wäre ich näher an der gewünschten Signalstärke.
Wenn meine bestellten Teile ankommen, dann kann ich erst mal einen neuen Netduino Shield löten.

Ameisen Simulation und andere Dinge

Wer lange sich schon mit C# beschäftig, hat sicherlich schon mal was von AntMe gelesen oder gehört. Diese Idee hatte ich aufgegriffen und mi...