So dann doch besser nicht

Die Entwicklungen am Quadcoper schreiten voran, der Gyrosensor ist bestellt und wir können Euch mal ein Video zeigen, wie es auch laufen kann. Ganz sicher wird unser Quadcopter seinen Jungfernflug auf dem freien Feld und nicht im Wald bestreiten.

[youtube http://www.youtube.com/watch?v=_Q5dbNigOiQ]

Mal sehen, ob wir den Vogel aus dem Video auch engagieren können, die Geräuschkulisse hat was für sich.

In den nächsten Tagen werdet Ihr dann ein neues Video von unserem Fortschritt sehen, ein alter Bekannter ist auch dabei 😉

Günstige Originalprogrammer für Studenten

Wenn ihr relativ günstig in die Mikrocontrollerprogrammierung einsteigen wollt und zudem auch Studenten seid, könnt ihr das nötige Material dafür bei embedded projects erwerben.
Dort werden Euch Starterkits und Programmer der gesamten Atmel-Produktpalette für wenig Geld und eine relativ komplizierte und detaillierte Legitimationserklärung geboten, Angaben über Universität und das Projekt werden nötig. Wir haben dies getan und nun endlich einen originalen AVR-Programmer für den halben Preis erstanden, das lohnt sich im Hinblick auf Kompatibilität mit Atmels Firmwareupdates und den ersparten Stress gegenüber einem Klon aus Asien, auf den man dann auch mal gut und gerne 3-4 Wochen warten darf.

Wir wünschen Euch dann schon mal viel Spaß und Erfolg mit euren Projekten, mit günstiger Originalhardware von Atmel.

20120815-170805.jpg

Wie programmiere ich denn nun den XMega unter Linux?

Ich hatte ja schon vor kurzem auf unserer Facebook-Page versprochen einen Artikel darüber zu schreiben wie man einen ATXMega128A1 unter Linux Mint 13 programmieren kann und was dazu benötigt wird.

Also fange ich mal damit an, was ich softwareseitig so alles nutze. Auf meinem Laptop ist ein zur Zeit aktuelles Linux Mint 13 x64 (Maya) installiert mit Mate als Desktop und Compiz als Fenstermanager. Als IDE zur Programmierung für bisher alle von uns genutzten AVRs nutze ich Eclipse CDT mit dem AVR-Plugin. Dazu sind die folgenden Schritte notwendig:

Wie programmiere ich denn nun den XMega unter Linux? weiterlesen

Wie ist denn nun der Innenwiderstand???

Wie ihr aus dem vorausgegangenen Artikel entnehmen könnt, hat der Innenwiderstand des Ausgangspin am ATXmega wohl nicht so ganz zu Theorie und Simulation gepasst. Falsch gedacht! Mittels einfacher Bestimmung durch die halbe Klemmenspannung ergibt sich ein Innenwiderstand von knapp 60 Ohm, genug also um die Schaltung zu treiben.
Daher hab ich die Schaltung kurzerhand mal mit dem Funktionsgenerator befeuert und mir das Signal am Oszilloskop angesehen. Wieso zeigt der Funktionsgenerator denn keine Amplitude? Er wird doch sicherlich nicht kaputt sein. Nein, wenn ich ihn abschließe, zeigt er das eingestellte Signal. Einzige Lösung: En Kurzer!
Da hatte sich ne Litze auf dem weg zum Lötpunkt verirrt und schloss das Signal mit Masse kurz. Gut dass es jetzt wie simuliert funktioniert und Atmel einen Überlastungsschutz eingebaut hat 😉

PWM-Booster

Da wir in unserem Quadcopter einen ATXmega verwenden, welcher mit 3,3V betrieben wird, während die Motorcontroller ein 5V-PWM Signal erwarten muss das Signal entsprechend verstärkt werden. Natürlich hätte es eine weniger reißerische Überschrift als ‚Booster‘ getan, gerade wenn es sich um eine Pegelwandlung handelt, aber das Thema gestaltet sich doch ein wenig größer als gedacht.

Zunächst noch einmal kurz zu den grundlegenden Parametern:
Wir wollen auf Grund der Größe und Komplexität auf einen TTL-Chip verzichten, von 3,3V auf 5V wandeln, die Frequenz ist dabei nicht größer als 16kHz, der Duty-Cycle bei 5-10%. Die Rise- und Fall-Zeiten des Signals am AVR waren nicht im Datenblatt von Atmel dokumentiert, weshalb dafür eine Messung an unserem Oszilloskop zu Rate gezogen wurde.

Ich habe zunächst mal eine einfache Transistorschaltung in LTspice eingeklickt, ein paar Parametter angepasst und simuliert. Natürlich muss da auch der Innenwiderstand der Quelle, also dem ATXmega und der Lastwiderstand des Motorcontrollers berücksichtigt werden, was sich gar nicht einfach gestaltete. Der Lastwiderstand wurde mit 20kOhm als ausreichend klein angenommen, sollte soweit passen, der Innenwiderstand des Output-Pin am ATX war in keinem Datenblatt von Atmel angegeben, sodass ich den Maximalstrom am Pin und die Versorgungsspannung des AVR dafür nutzte, den Widerstand zu berechnen. Dieser ergibt sich aus 8mA und 3,3V als 412Ohm und liefert in der Simulation ein wirklich verwertbares Ergebnis. Selbst der Strom durch Rb ist mit 3.5mA im absolut verträglichen Bereich.

In Realitas gibt es mal wieder Probleme und es dürfte daran liegen, dass der Innenwiderstand des Pin doch nicht den Wert besitzt, den man theoretisch errechnen kann. Die Schaltung tuts am AVR einfach nicht. Alle softwarespezifischen Probleme wie Pullup und sonstiges können ausgeschlossen werden, da wir alles durchprobiert haben, morgen geht es dann weiter mit einer Bestimmung des Innenwiderstandes per Ausgleichgerade. Mal sehen, was das so bringt…