Montag, 20. August 2012

Wie schließe ich ein Brushless Motor an

image
Brushless am Arduino zum testen.
Vielleicht für den einen oder anderen Interessant, wie eigentlich ein Brushless Motor angeschlossen wird. Für die Versorgung sind zwei Zuleitung an den Regler, die jeweils mit Rot und Schwarz farblich zu erkennen sind. Andernfalls sind am Regler die Pol Richtung gekennzeichnet. Zum Bürstenlosen Motoren führen jedoch 3 Leitungen ab. In meinem Beispiel sind die Leitungen blau, andernfalls sind die Leitungen am Regler ebenfalls Kennzeichnet. Der Motor selbst hat wiederum gelb, rot und schwarz.
image
Links zusehen, die Plus und Minus Kennzeichnung. Rechts die Kennzeichen A, B und C.
Den ersten Blauen, bzw. hier Kennzeichen B, verbinde ich mit Schwarz. Im folgendem Bild ist der gelbe Leitung an Kennzeichen A und Rot an Kennzeichen C verbunden. Nun dürfte nach Anschluss sich der Motor beim durchsteuern gegen den Uhrzeigersinn drehen.
image
Motor dreht sich Linksrum (gegen den Uhrzeigersinn)
Schließe ich den  gelben an C und den roten an A, dreht sich der Motor im Uhrzeigersinn.
image
Motor dreht sich Rechtsrum (in Uhrzeigersinn)
In welche Drehrichtung der Motor Dreht, hängt im Grunde vom Propeller ab und den Motor kann man praktisch nicht falsch anschließen, so das dieser beschädigt wird. Vorausgesetzt ist, dass alle drei Leitungen verbunden sind, um ein Drehstromkreis zu erzeugen, der den Motor zum drehen bewegt.

Montag, 13. August 2012

Netduino Sensor & Controller Shield für den Quadrocopter

Quadrocopter_38
Servo Test am neuen Neduino Shield

Irgendwann kommt die Zeit, dass man sich von Altem trennen muss. Besonders dann, wenn man einen Prototypen Shield hat, der aus zusammengesteckten Leiterbahnen besteht und dadurch viele Fehlerquellen haben kann. Zudem musste ich über eine weitere Schaltung das PWM Signal verstärken. So baumelte noch bis vor kurzem eine weitere Platine mit 4 Pegelwandlern am Shield. Eine wackelige Angelegenheit kann ich euch nur sagen...
Quadrocopter_34
Prototypen Shield mit zusätzlichen Pegelwandler

Am letzten Donnerstag kamen endlich die bestellten Arduino/Netduino Platinen aus China. Die Verarbeitung ist vernünftig und das Geld wert. Ich habe hier 4€ pro Stück bezahlt, zusätzlich Porto und Versand. Hier ist es sinnvoll gleich ein paar mehr zu bestellen. Den richtigen Pegelwandler habe ich erst aussuchen müssen. Ich habe zwei verschiedene bestellt, zum probieren. Entschieden habe ich mich für den 74HCT125N. Der Pegelwandler soll später das Pulssignal bzw. PWM von 3,3V auf 5V anheben. Zwar geht es auch mit 3,3V, aber ich habe öfters keine Reaktion beim Steuern der Servos oder Regler gehabt. Erst mit dem selbstgebastelten Pegelwandler war das Signal stabil.
Elektronik_02
Links ist der 74HCT125N und rechts der 74HCT245N

Ich überlegte zunächst, wie ich meine Sensoren anordne und wo ich später den Pegelwandler mit den Anschlüssen positioniere. Hinzu kam noch ein Anschluss für den Lithium Polymer Akkumulator, der den Mikrocontroller mit Strom versorgt. Später soll auch die Kapazität gemessen werden, sobald ich damit ein paar Versuche durchgeführt habe. Am Ende habe ich dann für mein Netduino folgende Bauteile verwendet:
Quadrocopter_35a
- Arduino Platine
- Buchsenleisten
- Stiftleisten
- einen Pegelwandler (74HCT125N)
- Buchse für einen 3S LiPo Akku
- Gelbe 3mm LED mit 20mcd Leuchtkraft
- 150Ohm Widerstand
- Druckknopf.

Zusätzlich kamen natürlich auch Kabel und Überbrückungstücke hinzu, um den richtigen Schaltkreis herzustellen. Nachdem ich mit dem Löten fertig war, musste ich noch das Lötfett entfernen. Das ging am besten mit heiß Wasser und Seife (mit anschließendem ausreichenden Trocknen, versteht sich).
Quadrocopter_36
Mein fertiges Netduino Shield, (oder fast fertig)

Das was nicht so schön ist habe ich auf der Unterseite verlötet.
Quadrocopter_37
Gelb sind die Signalleitungen. Rot für anliegende Spannung, wie z.B. +5V.

Nun kurz zur Erklärung der Funktionsweise des Shields:
  • Die LED soll später die Aktivität des Controllers wiedergeben.
  • Auf den Buchsen wird der Beschleunigungssensor gesteckt, um die Lage des Quadrocopter zu stabilisieren.
  • Auf die vier 3-Pin Anschlüsse kommen jeweils die Regler für die Brushless Motoren. Das PWM Signal wird zuvor mit dem Pegelwandler von 3,3V auf 5V angehoben.
  • Die weisse Buchse ist der Anschluss für einen 3S LiPo Akku, um den Netduino mit Strom zu versorgen.
Das sind noch nicht alle Funktionen, die ich für dieses Shield geplant habe. Wenn ich mit den Tests soweit durch bin, kann ich sicher ohne weiteres die Platine mit den erforderlichen Bauteilen ergänzen.
Geplant sind noch:
  • Magnetsensor
  • Gyroskop
  • Akkukapazitätsmessung
  • Anschluss für ein Display

Freitag, 3. August 2012

Den HMC5883L 3 Achsen Magnet Sensor auslesen

Arduino_HMC5883L_01
Der Sensor am Arduino Nano 3.0

Zuerst habe ich gedacht, dass der Sensor nicht funktioniert, bis ich den Beispielcode angepasst habe. In der Wiki zu diesem Sensor ist leider noch ein veralteter Code zu einer frühen Version vom Arduino Compiler. Nach einem Hinweis stellte sich heraus, dass sich die Bibliothek vom Arduino 1.0 gegenüber seiner älteren Version geändert hat. Im Quellcode der Datei HMC5883L.cpp war es notwendig, den Eintrag “#include <WProgram.h>” in “#include <Arduino.h>” abzuändern und die Einträge “wire.send” in “wire.write”. Anschließend ließ sich der Code auf den Arduino Nano 3.0 beschreiben und daraufhin auch erfolgreich auslesen.

image
Ausgabe der Daten, die vom Sensor gemessen werden.

Aus den drei Achsenwerten kann dann über das Gauß-Verfahren der Nordpol gemessen werden. Jetzt fehlt mir noch eine Portierung auf den Netduino.

Arduino_HMC5883L_02
Einfache Verkabelung des Sensors

Ich denke, das dürfte die Sache erleichtern, wenn ich zu den Beispielen auch ein Schaltbild bzw. wie in diesem Bild hier zeige, wie die Komponenten miteinander verbunden werden.

image
Die Fritzing Software in der Steckplatinen Ansicht.

Die Software “Fritzing” ist hier sehr gut geeignet. Sie ist zwar noch im Beta Status, kann jedoch schon sehr viel. Am besten sieht man sich das Youtube Vorstellungsvideo an. Es lohnt sich, dort rein zuschauen.

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.

Gehäuseentwurf für Signalleuchten (Part 2)

Heute morgen sah ich mir mein Druckergebnis an und dachte: Nein, das sieht nicht nach einem Kristall aus. Also im Internet gesucht und ein T...