Um die hier beschriebene Auswuchtmaschine als Standalone-Gerät betreiben zu können, wird eine Steuerung benötigt, die sowohl den Ablauf für die Ermittlung der Messwerte kontrolliert als auch die Auswertung der Messung ermöglicht und Betrag sowie Lage der notwendigen Ausgleichsmasse angibt.
Im Bestand findet sich ein Atmel AtMega328p im 28poligen DIP-Gehäuse sowie eine LCD-Anzeige mit 2 Zeilen mit je 24 Zeichen. Ein paar Taster zur Menüsteuerung sind auch schnell gefunden, die Hardware wäre also soweit vorhanden.
Die Software soll mit BASCOM erstellt werden, der stellt Routinen zur Abfrage von einfachen Tastaturen sowie zur Ansteuerung von LCD-Displays mit Standard-Controllern zur Verfügung.
Das Schaltbild war schnell zusammen gehäkelt, für Tests habe ich auch hier zuerst mal einen Prototyp auf Lochraster-Material aufgebaut, weil die Port-Belegung noch ein wenig unsicher war. Es stellte sich z.B. heraus, dass die an sich schon vielfach erfolgreich verwendete doppelte Portbelegung für LCD-Ansteuerung und Tastaturabfrage mit den von BASCOM zur Verfügung gestellten Routinen nicht funktioniert.
Genauso stellte sich im Zuge meiner Entwicklung heraus, dass sowohl die Definition des Schlüsselwortes “$baud” im Code als auch offenbar implizit die Verwendung eines Bootloaders zur Firmwareaktualisierung, die Verwendung der Pins der Hardware-Seriell-Schnittstelle als IO-Ports verhindert. Im Umkehrschluss ergibt sich damit folgerichtig, dass immer ein SPI-Programmer zum Firmwareupdate verwendet werden muss. Aber das nur am Rande.
Das Stichwort Menü ist weiter oben ja schon gefallen, hier drängt sich also die Verwendung des prima gemachten Grundgerüsts für eine Menü-Steuerung aus dem RoboterNETZ auf. Ich habe lediglich die Vorgabetexte auf zwei Zeilen erweitert, natürlich die einzelnen Menü- und Submenü-Routinen mit passendem Leben gefüllt und darüber hinaus ein paar eigene Zeichen definiert, um in jedem State des Menüs die möglichen Richtungen für den nächsten Statewechsel per Tastatur anzuzeigen.
Doch zuerst musste die Hardware erstellt werden. Der Prototyp der Steuerung sieht so aus:
Am rechten Rand der Platine sitzen die beiden Stecker für die PWM-Motorsteuerung sowie den Eingang vom Messverstärker. Das Kabel rechts oben führt zum Programmieradapter, unten links sieht man den 16poligen Stecker für das LCD-Display, unten rechts das Kabel zur Tastatur. Der 3polige Stecker oben links ist der nicht verwendbare Anschluss der seriellen Schnittstelle. Einzelne Massepins und ein Doppelstecker für den Reset des µC vervollständigen die vorhandenen Anschlüsse. Das Poti dient zum Einstellen des Kontrasts am LCD-Display.
Das Schaltbild ist recht übersichtlich geraten:
(Click auf das Bild für größere Darstellung)
Das Layout konnte durch Verwendung von 3 Drahtbrücken einseitig realisiert werden, die Tastatur ist abgesetzt und besteht aus 5 Tasten, die zusammen einen Cursor-Kreis bilden. Die mittlere Taste ist zur Zeit unbenutzt, kann aber noch aktiviert werden, sollte sich das als notwendig erweisen.
Ohne Platine lassen sich die Schalter kaum korrekt anordnen, so dass ich kein Foto machen kann. Deshalb hier eine Abbildung vom Hersteller des Tastaturmoduls:
Auch diesmal die 3D-Ansicht der Platine zur gefälligen Begutachtung ;-)
Nachtrag
Die Platinen sind inzwischen angekommen:
Die große Platine für den µC ist hier von der Unterseite gezeigt, die Oberseite ist unbestückt wenig beeindruckend ;-)
Jetzt kann ich auch die Schalter auflöten und das gewählte Ultrablau präsentieren:
Das Auflöten der Schalter auf die Platine ist eine spannende Angelegenheit, da die Tastenkappen montiert sein müssen, um den Abstand zueinander korrekt ausrichten zu können. Somit kommt man kaum noch an die Lötstellen heran. Der mittlere Schalter muss zuerst aufgelötet werden und dient dann für die anderen als Ausrichthilfe. Das alles trifft natürlich nur für die von mir verwendeten SMD-Varianten der Schalter zu.
Die Komplettansicht des lauffähigen Prototyps der Steuerung, allerdings noch mit kleinen Defiziten in der Berechnung der Auswuchtergebnisse:
Angezeigt werden hier die X- und Y-Komponenten des resultierenden Vektors für die Korrekturmasse sowie der Winkel, bezogen auf einen beliebig festgelegten Null-Winkel, die zu applizierende Masse als relative Angabe in Bezug auf die Testmasse, mit der die Messwerte ermittelt wurden, sowie der Quadrant im Einheitskreis, in dem die Korrekturmasse angebracht werden muss. Letztere Angabe dient nur zur Kontrolle des Ergebnisses und wird im endgültigen Zustand der Software nicht mehr vorhanden sein.
Die beiden Prototypen (Steuerung mit µC und Tastatur) sind in der Zwischenzeit durch bei MME gefertigte Platinen ersetzt worden:
Unterhalb des Display sieht man den Tiefpass-Messverstärker-Messgleichrichter.
Mendocinomanni hat seiner Steuerung ein adäquates Zuhause spendiert:
Die Menüstruktur ist in einem Zustandgraphen festgehalten:
(Click auf das Bild für größere Darstellung)
Die möglichen Zustandswechsel sind mit farbigen Pfeilen angegeben. Die Farben haben jeweils eine festgelegte Bedeutung:
Pfeile mit heller Farbgebung habe ich verwendet, wenn sie über einen Text hinweg verlaufen, die Bedeutung der Farbe ist identisch.
Zusätzlich habe ich alle Zeichen in den verschiedenen Anzeigen aufsummiert, weil ich anfangs befürchtete, dass die vielen Texte den Speicher des µC sprengen werden. Diese Befürchtung erwies sich allerdings bis jetzt als unbegründet, der Chip ist momentan erst zu ca. 64% ausgelastet.
Zuletzt habe ich die Struktur des Menüs noch etwas aufgeräumter gestaltet, Festlegungen, die länger gelten in ein Untermenü verbannt und, weil die Programmiererei gerade so gut lief, noch ein paar Gimmicks eingebaut, die nicht unbedingt notwendig für die Funktion sind.
Die erste Zeile des Begrüßungsschirms kann jetzt frei gestaltet werden, hilfreich, wenn man nicht gerade Manni heißt ;-)
Der “Editor” hierfür ist, geschuldet den wenigen Tasten, nur sehr rudimentär, aber das
macht man ja auch nicht alle Tage.
Dann gibt es eine kleine “Bitte warten”-Animation und in der rechten unteren Ecke wird mit benutzerdefinierten Zeichen angezeigt, in welche Richtungen man den aktuellen
Zustand verlassen kann.
Ach ja, nicht zuletzt funktioniert auch die Bestimmung der Korrekturmasse ganz ordentlich, wenngleich ich von der Reproduzierbarkeit der Ergebnisse nicht ganz überzeugt bin. Ich hätte erwartet, dass mehr oder weniger unabhängig von der Masse des Testgewichts und/oder der (für alle vier Messungen eines Laufs gleichen) Drehzahl beim Messen, immer der gleiche Winkel und die gleiche Masse zur Korrektur der Unwucht errechnet wird. Das stimmt aber leider nicht, sowohl Winkel als auch Masse variieren leicht.
Und zu guter Letzt ist das Ergebnis des Auswuchtens noch korrekturbedürftig. Allerdings konnte ich einen sehr liederlich zusammen getackerten Testrotor durch drei zusätzlich nach Gefühl angebrachte Korrekturmassen zu sehr rundem Lauf bringen, nachdem ich mit zwei Messläufen nacheinander die beiden Seiten ausgewuchtet hatte. Mit ein bisschen gutem Willen würde ich das als Erfolg werten :-)
Im Programm noch nicht bedacht ist bisher die Korrektur einer dynamischen Unwucht. Die Aufteilung der Korrekturmasse des zweiten Laufs auf die beiden Seiten des Rotors liegt noch in der Zukunft.
Programm
Die oben aufgezeigte Menüstruktur ist im richtigen Leben des verwendeten µC durch
Befehle in BASCOM-Syntax realisiert. Ich verzichte auf die Darstellung des Listings und gebe den Downloadlink für den Code der Auswuchtsteuerung an. Auf Grund des
Umfangs ist die Vollversion von BASCOM notwendig um den Code zu übersetzen.
Die verlinkte Version V2 der Software enthält bereits Vorbereitungen auf die Erweiterung der gleichzeitigen Messung mit zwei Sensoren, allerdings sind die Änderungen nicht durchgezogen. Lediglich die Variablen sind bereits definiert und die Ansteuerung der Entlademimik für die Ausgangskondensatoren des Messgleichrichters ist umgestellt, weil die Steuerungshardware ursprünglich für die Messung mit nur einem Sensor ausgelegt wurde.
Mit ein bisschen gutem Willen ist der geneigte Nachbauer sicher in der Lage, die Arbeitsweise des Programms zu erfühlen, um den Einstieg aber zu erleichtern hier ein Schnelldurchgang mit den wesentlichen Punkten.
Der Text bezieht sich auf einen Mendocinomotor-Rotor, daher sind ungewöhnliche Vokabeln wie “5-Flächner” oder “5er Rotor” enthalten.
Kurzanleitung für das Auswuchten:
Dieser Testlauf zeigt eine Reduzierung der Unwucht von anfangs 135 auf 85, der Vorgang scheint also zumindest zielführend zu sein.
Das ganze Brimborium vom Start bis Abschluss Punkt 13 kostet etwa 15 Minuten, wobei ich den Text bis Punkt 4. inklusive parallel zu den Messungen getippt habe.
Permanente Einstellungen.
Um sich anfangs in der Menüstruktur nicht zu verlaufen, hilft ein Blick in den Zustandsgraphen.
Inzwischen ist das Menü richtig erwachsen geworden, was der Ãœbersichtlichkeit immanent nicht gut tut. Aber nach drei Messläufen findet man sich nahezu blind zurecht… vielleicht auch erst nach 4 bis 11 ;-)
Der mittlere Knopf des Steuerkreuzes hat in der Version 2 des Programms ebenfalls eine Aufgabe gefunden. Während der Motor läuft, löst der Druck auf die mittlere Taste einen Nothalt aus, was entsprechend im Display angezeigt wird. Die Motorspannung wird sofort abgeschaltet, hilfreich z.B. wenn der auszuwuchtende Rotor sich gerade in den Kopf gesetzt hat, die Halterung unangemeldet zu verlassen.
Nachtrag 11/2012
Die weitere Entwicklung der Auswuchtmaschine ist auf Eis gelegt, da absehbar wurde, dass der Zeitaufwand für einen kompletten Wuchtlauf größer ist, als Manni durch
probieren mit der Hand braucht. Dieses Verfahren beherrscht er mittlerweile perfekt.
Hinzu kommt, dass der momentane Stand der Software nicht ausreichend genau
wiederholbare Ergebnisse erzielt und die Messanlage nicht in der Lage ist, nur schwach unwuchtige Rotoren überhaupt als unwuchtig zu erkennen, geschweige denn, korrekte Ausgleichsmassen zu bestimmen.
Der letzte Punkt, der für die (vorläufige) Einstellung des Projekts spricht ist, dass Hardware und Programm noch nicht in der Lage sind, echt dynamisch zu wuchten, was für den Rotor eines Mendocino-Motors unabdingbar ist.
Sollte ein Leser dieser Seiten zielführende Ideen an der Hand haben und diese auch in BASIC-Code ausdrücken können, ist er herzlich dazu eingeladen, das Projekt weiter oder gar zu Ende zu führen.
Hier noch einmal der Link auf die bisher vorhandenen Sourcen der Auswuchtsteuerung und der Hinweis auf die Anmerkungen zum Code.