Arexx MNP55 User guide [de]

Bauanleitung zur

ASURO-Erweiterung „Minensucher“

AREXX / Robin Gruber

23.3.2009

1 Funktion der Schaltung

Mit Hilfe der Minensucherweiterung wird der ASURO-Roboter in die Lage versetzt, Metall, das sich unter seinem halben Tischtennisball befindet zu detektieren. Damit kann man – natürlich nur im Rahmen der Möglichkeiten des Roboters und des Bausatzes - Szenarien wie die robotergestützte Minen- oder Schatzsuche oder das Auffinden und Verfolgen von Leitungen, Armierungseisen oder Stahlträgern in Böden in vereinfachter Form ausprobieren. Im Folgenden wird die Funktion der Schaltung nur grob erklärt, da eine ausführliche Beschreibung einschließlich Grundlagen magnetischer Felder und komplexer Wechselstromrechnung den Rahmen dieser Bauanleitung sprengen würde. Ein Schwingkreis aus einem Kondensator und einer Spule mit einem einseitig offenen Schalenkern wird durch eine Operationsverstärkerschaltung zur Oszillation angeregt. Da der verwendete Schalenkern magnetisch offen ist, kann das Magnetfeld in den Raum austreten und wird durch in der Nähe befindliches Metall beeinflusst.
Abb. 1 zeigt den Schaltplan. Der Schwingkreis wird durch die Spule L1 und den Kondensator C1 gebildet. Ein solches System ist schwingfähig, da zyklisch die im elektrischen Feld des Kondensators gespeicherte Energie in im Magnetfeld der Spule gespeicherte Energie und zurück umgewandelt wird. Die Frequenz, mit der diese Umwandlung stattfindet, hängt von der Kapazität des Kondensators und der Induktivität der Spule ab. Sie berechnet sich (für kleine Verluste) zu:
f0=
1
2L C
Da diese Umwandlung nicht verlustlos abläuft, würde die Oszillation nach ein paar Perioden abklingen. Man muss daher ständig Energie nachliefern um diese Verluste auszugleichen. Aber wie beim Anschubsen einer Schaukel muss das zum richtigen Zeitpunkt passieren, sonst funktioniert es nicht. Die hier verwendete Schaltung macht das dadurch, dass sie proportional zur Spannung am
Abbildung 1: Schaltplan der "Minensuche"-Erweiterung
Kondensator Strom in den Kondensator schiebt. Realisiert wird das durch den Operationsverstärker IC1A, der mit dem Widerstand R2 und dem einstellbaren Widerstand TR1 einen nicht invertierenden Verstärker bildet. Die Spannung am Verstärkerausgang ist damit um den einstellbaren Faktor 1..3 höher als die Spannung am Kondensator. Das führt dazu, dass durch den Widerstand R1 ein Strom fließt, der umso höher ist, je höher die Spannung an C1 ist. Die Einstellbarkeit der Verstärkung ist erforderlich, da die Verluste im Schwingkreis nicht exakt vorher bekannt sind. Der Operationsverstärker IC1B ist als Komparator beschaltet und vergleicht die Spannung am Schwingkreis mit einer Referenzspannung von (je nach ASUROs Batteriespannung) ca. 0,5V und gibt das Ergebnis an den Erweiterungs-Pin INT1 weiter. R4 dient hier als Schutzbeschaltung, da im unprogrammierten Zustand des Prozessors sonst Prozessorpin und Operationsverstärkerausgang gegeneinander arbeiten würden. D4 ist anstelle der alten Linienfolge-LED eingebaut. Der linke Teil der Schaltung aus Dioden und Kondensatoren dient zur Erzeugung einer (bezogen auf die Masse der Schaltung) negativen Versorgungsspannung. Das ist erforderlich, da die Spannung am Schwingkreis um Masse herum schwingt und damit sowohl positiv als auch negativ werden kann.
In der Praxis gibt es verschiedene Methoden der Metalldetektion. Die vorliegende Schaltung unterstützt zwei davon:
1. Die Verstärkung der Schaltung und damit die Energiezufuhr in den Schwingkreis wird so eingestellt, dass die elektrischen Verluste im Schwingkreis ohne Metall in der Nähe der Spule gerade so ausgeglichen werden. Kommt nun Metall in die Nähe der Spule, so werden durch Wirbelströme (bei leitfähigem Material) oder Ummagnetisierungsverluste (bei nicht leitendem aber ferromagnetischem Material) zusätzliche Verluste verursacht, welche dann die Oszillation zum Erliegen bringen.
2. Die Verstärkung wird so hoch eingestellt, dass auch zusätzliche Verluste durch Metall in Spulennähe ausgeglichen werden, und es wird nur die Frequenz der Oszillation gemessen. Wird nun leitfähiges Material in die Nähe der Spule gebracht, so wird durch Wirbelströme im Material das Feld geschwächt, was zu einer Verringerung der Spuleninduktivität und damit zur Erhöhung der Oszillationsfrequenz führt. Bei ferromagnetischen Metall wird das Feld verstärkt, die Induktivität steigt, die Frequenz sinkt. Bei dieser Variante ist also zusätzlich zur Detektion auch eine grobe Unterscheidung möglich, welches Metall gefunden wurde.

2 Aufbau

2.1 Herstellen der Spule

Falls die Spule bereits fertig bewickelt, mit Kondensator beklebt und Anschlusskabeln versehen ist, wie in Abb. 8 entfällt dieser Arbeitsschritt. Falls nicht: Viel Spaß!
Jetzt müssen 400 Windungen (ja, kein Tippfehler!) dünnen Kupferlackdrahtes (0,1mm Durchmesser) auf den Spulenträger aufgebracht werden. Das passiert wie folgt.
Dem Bausatz liegt dann ein zweigeteilter Spulenträger bei, der für zwei Kernhälften gedacht ist (siehe Abb. 2).
Abbildung 2: Spulenkörper, ganz Abbildung 3: Spulenkörper, zersägt
Damit er in unseren einzelnen Kern passt, muss er auseinandergesägt werden. Das klappt am einfachsten mit einer Bügelsäge. Dabei wird der Spulenträger an einer Seite des Mittelstegs durchgesägt, sodass ein schmaler Spulenträger mit einer Wicklungskammer entsteht. Der Grat vom Sägen wird noch mit einem feinen Schleifpapier (240er oder 300er Körnung) oder einem Teppichmesser (Finger!) beseitigt. Die abgesägte andere Hälfte kann weg.
Um nun die Wicklung auf den Spulenträger zu bringen, steckt man ihn auf einen Stift oder den Schaft eines Pinsels (besser, weil konisch) und zwar am besten so, dass man bereits den Drahtanfang und ein paar Zentimeter des Kupferlackdrahtes zart mit einklemmt, wie es Abb. 4 zeigt. Um sicherzustellen, dass der Draht dann auch nicht doch irgendwie durchrutscht, kann man ihn mit etwas Klebeband fixieren.
Und dann werden sorgsam (und natürlich ohne die Wickelrichtung während des Wickelns zu ändern) und möglichst ordentlich, da sie sonst nicht drauf passen 400 Windungen des Kupferlackdrahtes aufgewickelt. Wenn der Draht reißt (für's Flicken ist zu wenig Platz) oder man sich verzählt, muss man von vorne anfangen. Es ist zwar nicht schlimm, wenn's 380 oder 420 Windungen werden, aber größer sollte die Abweichung nicht sein.
Ist man fertig mit Wickeln, kann man die Wicklung mit ganz wenig Nagellack oder Sekundenkleber fixieren. Ist dieser fest, kann man das Klebeband vorsichtig vom Pinsel oder Stift lösen und den bewickelten Spulenträger abnehmen. Auch kann man den Draht jetzt abschneiden, aber auch hier ein paar Zentimeter stehen lassen. Die Drahtenden müssen jetzt in eine Richtung zeigen und dürfen auch nicht durch das Loch im Spulenkörper gehen (siehe Abb. 5).
Abbildung 4: Wickelvorrichtung
Abbildung 5: Spulenkörper fertig
Ist der Spulenkörper soweit fertig, kann er mit wenig Sekundenkleber in den Kern geklebt werden. Die Drahtenden gehen zur geschlossenen Seite des Kerns durch den Schlitz raus (siehe Abb. 6).
Jetzt werden die Drahtenden ab der Stelle, wo sie aus den Kern auf der Rückseite herausragen plus ein oder zwei Millimeter abisoliert. Das macht man am besten mit einem Lötkolben, der etwas frisches Zinn an der Spitze hat. Damit wird der Draht solange erhitzt, bis die Isolation verschwunden und der Draht verzinnt ist. Achtung: Die dabei entstehenden Dämpfe sind ungesund und dürfen nicht eingeatmet werden!
Anschließend wird auf der Spulenrückseite der 10nF-Kondensator (Aufdruck: 103) mit Sekundenkleber festgeklebt, sodass die Anschlüsse Richtung dem Schlitz zeigen, aus dem die Drähte kommen. In Abb. 7 ist der Kondensator neben das Loch im Kern geklebt – vielleicht braucht man das Loch ja später mal für irgendwas noch. Für die Funktion der Schaltung ist dies aber unerheblich.
Die Anschlussbeinchen des Kondensators werden jetzt bis auf ca. 5mm gekürzt und die verzinnten Enden des Kupferlackdrahtes darumgewickelt (ggf. mit Hilfe einer Pinzette) und dann festgelötet.
bewickelt
Abbildung 6: Spule in Kern eingeklebt
Abbildung 7: Spule mit Kondensator
Nun kommen noch die auf 70mm gekürzten Kabel mit an beiden Enden abisolierten, verdrillten und verzinnten Enden dran. Diese werden direkt an die Kondensatorbeinchen gelötet, sodass sie Richtung Spulenmitte zeigen und zuletzt noch verflochten, wie es Abb. 8 darstellt. Die Polung ist dabei völlig egal. Steht ein Multimeter zur Verfügung, dann kann man jetzt den Widerstand zwischen den Kabelenden messen. Dieser sollte so im Bereich von 30Ω liegen. Liegt er weit darüber (60Ω und mehr), sollte kontrolliert werden, ob der Kupferdraht richtig abisoliert wurde und ob er wirklich angelötet und nicht inzwischen abgerissen ist. Liegt der Widerstand weit darunter (kleiner 10Ω), dann sollte die Lötstelle auf Kurzschlüsse untersucht werden. Kurzschlüsse im Inneren der Wicklung kann man so leider nicht detektieren. Hier also Prinzip Hoffnung!

2.2 Montage der Spule

Um die jetzt fertige Spule an den Roboter zu montieren, muss zunächst der Tischtennisball wieder abgenommen werden. Spätestens jetzt rächt es sich, wenn man statt mit ein paar Punkten den Tischtennisball vollflächig verklebt hat.
Die Spule wird nun – ebenfalls wieder mit Sekundenkleber – unten im halben Tischtennisball befestigt (siehe Abb. 9).
Abbildung 8: Fertige Spule
Achtung: Sollte ASURO noch nicht für das Aufstecken einer Erweiterungsplatine vorbereitet sein, darf der Ball erst wieder aufgeklebt werden, wenn das passiert ist.

2.3 Bestückung der Pfostenstecker

Bevor die Bauteile in die Platine kommen, müssen zunächst die Pfostenstecker eingebaut werden. Das Vorgehen hier hängt davon ab, ob ASURO schon für die Aufnahme von Erweiterungsplatinen vorbereitet ist.
a) ASURO hat noch keine Buchsenleisten für die Erweiterungsplatine
In diesem Fall müssen die Bauteile zur Linienverfolgung, nämlich die Fototransistoren T9 und T10, sowie die LED D11 aus der Platine ausgebaut werden. Dazu muss der Tischtennisball abmontiert sein. Am einfachsten geht es, wenn man die Lötstellen des zu entfernenden Bauteils gleichzeitig mit einem Lötkolben erhitzt und das Bauteil dann vorsichtig durch die Platine herauszieht. Sind die Löcher danach nicht frei, können sie mit Entlötlitze und/oder einer Entlötsaugpumpe vorsichtig freigemacht werden.
Danach werden die zwei- und dreipoligen Stecker und Buchsenleisten zusammengesteckt und – mit den Buchsen in der ASURO-Platine – in die ASURO-Platine gesteckt, wie es Abb. 10 zeigt. Darauf kommt dann die Erweiterungsplatine und erst dann werden die Stecker- und Buchsenleisten auf der Erweiterungsplatine und auf der ASURO-Hauptplatine festgelötet.
Abbildung 9: Spule in Tischtennisball eingeklebt
Abbildung 10: Montage der Pfostenstecker
Abbildung 11: Montage der Erweiterungsplatine
b) ASURO hat bereits Buchsenleisten für die Erweiterungsplatine
Die zwei- und dreipoligen Pfostenstecker werden in die im ASURO eingebauten Buchsenleisten gesteckt (siehe Abb. 10) und darauf wird die Erweiterungsplatine platziert, sodass die Pins durch die Platine schauen. Wenn alles passt, werden die Pfostenstecker auf der Erweiterungsplatine verlötet.

2.4 Anbringen des Tischtennisballs

Sind die Pfostenstecker in der Platine verlötet, wird die Erweiterungsplatine wieder abgezogen und für die restliche Bestückung beiseite gelegt. Nun wird das Anschlusskabel der Spule durch das Loch in der ASURO-Platine gezogen und der Tischtennisball mit der darin eingeklebten Spule wieder vorsichtig und nur mit drei bis vier Klebepunkten auf die ASURO-Platine geklebt.

2.5 Bestückung der Platine

Sobald die Pfostenstecker (und ggf. auch die Buchsenleisten) eingelötet sind, kann man die Platine wieder abziehen und die restlichen Bauteile bestücken. Nach Bestückungsplan (siehe Abb. 13) wird in folgender Reihenfolge bestückt. Bis auf R7 werden alle Widerstände – wie bei ASURO – stehend eingelötet, was bedeutet, dass ein Beinchen um 180° gebogen werden muss. Bei R7 werden beide
Abbildung 12: Erweiterungplatine mit
Pfostensteckern
Beinchen um 90° abgewinkelt.
In folgender Reihenfolge wird bestückt:
IC1: Erstmal nur der Sockel, auf richtige Polung achten! D1, D2, D3: 1N4148, auf richtige Polung achten! C4, C5, C6: 100nF keramisch R1, R2, R3, R7: 10kΩ 5% (braun, schwarz, orange, gold) R4: 220Ω 5% (rot, rot, braun, gold) R5: 1kΩ 5% (braun, schwarz, rot, gold) R6: 100kΩ 5% (braun, schwarz, gelb, gold) C2, C3: Elko 100µF, mind 16V, auf richtige Polung achten! TR1: Spindeltrimmer 20k stehend D4: LED 5mm rot, auf richtige Polung achten! CON1: Schraubklemme, Kabeleingang muss zum Platinenrand zeigen. IC1: Jetzt wird der TS912 in den Sockel eingesteckt. Vorher ggf. die Beinchen zusammenbiegen
und auf richtige Polung achten (Einkerbung im oder Markierung auf Gehäuse muss Richtung Einkerbung im Sockel zeigen)!
Abbildung 13: Bestückungsplan
Abbildung 14: Fertig aufgebaute Erweiterunsplatine
Anmerkung: Die Anschlüsse VCCOUT1/2, GNDOUT1/2 und ADC2OUT/ADC3OUT werden erstmal nicht benötigt. Sie können später zusammen mit dem Befestigungsloch in der Platine verwendet werden, um zwei Abstandssensoren nach dem Triangulationsprinzip anzuschließen. Dann kann ASURO sowohl autonom navigieren, als auch dabei metallische Objekte finden. Genaues dazu findet sich in „Mehr Spaß mit ASURO, Band II“. Die Triangulationssensoren werden dabei aber statt direkt an der ASURO-Platine an der Erweiterungsplatine angeschlossen.

2.6 Inbetriebnahme

Ist der Tischtennisball mitsamt Spule aufgeklebt und die Platine bestückt, so wird diese nun auf den (ausgeschalteten!) Roboter gesteckt. Dabei muss kontrolliert werden, dass keines der Bauteile der ASURO-Platine die Lötstellen der Erweiterungsplatine berührt. Die Kabel von der Spule werden dabei auf der Seite der Schraubklemme CON1 unter der Platine herausgeführt und dann – Polung ist egal – in der Schraubklemme festgeschraubt.
Um die Oszillation im Schwingkreis sichtbar zu machen, wird zunächst das folgende Programm eingespielt (MinesweeperTest1):
#include "asuro.h"
extern volatile unsigned char count72kHz;
int main(void) {
unsigned char oscillation; Init(); DDRD &= ~(1<<2); // Change Port D Pin 2 to input StatusLED(OFF);
while(1) {
count72kHz=0; oscillation = FALSE; while (count72kHz<100) {
// Detect low level if ((PIND & (1<<2)) == 0) oscillation = TRUE;
} // If oscillator is running, no metal object is within // range, so LED should be off
if (oscillation) FrontLED(OFF); else FrontLED(ON); } return 0;
}
Dieses sorgt dafür, dass die LED ausgeht, wenn der Oszillator läuft. Je nach verwendeter Detektionsart (Zusammenbruch der Oszillation oder Änderung der
Oszillatorfrequenz) wird unterschiedlich abgeglichen. Zunächst wird der Abgleich für den einfachen Fall des Zusammenbrechens der Oszillation erklärt und dieser sollte auch zu Testzwecken (und mit obigem Programm) in jedem Fall als erstes vorgenommen werden.
Leuchtet nach dem Einschalten die rote LED auf der Erweiterungsplatine nicht, so wird der Spindeltrimmer so lange nach rechts gedreht, bis sie aufleuchtet. Der Trimmer kann bis zu zehn Umdrehungen in eine Richtung gedreht werden und geht auch nicht kaputt, wenn er weiter gedreht wird. Sind die zehn Umdrehungen durch und es passiert nichts, muss mit der Fehlersuche weitergemacht werden...
Klappt das soweit, stellt man den Roboter auf eine garantiert metallfreie Unterlage (Plastik- oder Holzkiste, Tisch ohne Nägel oder Schrauben in der Nähe...) und dreht den Trimmer soweit nach links, bis die LED ganz ausgeht. Es kann erforderlich sein, diesen Abgleich später zu wiederholen, da Temperaturdrift und Änderungen der Batteriespannung den nun präzise eingestellten Arbeitspunkt verschieben können. Je sorgsamer man den Abgleich durchführt, umso empfindlicher ist der Sensor, aber umso wahrscheinlicher ist es, dass man nachtrimmen muss.
Nähert man sich nun mit einem metallischen Objekt (Schraubenzieher, o.ä.) dem Tischtennisball, so sollte – spätestens bei Berührung – die LED wieder angehen.
Der Sensor ist nun so empfindlich, dass er auch kleine Schipsel Alufolie durch einen Karton hindurch orten kann.
Möchte man nur die Frequenzveränderung messen, so gleicht man den Sensor am besten in der fertigen Applikation ab. Dabei wird der Roboter dem maximal zu erwartendem Sensorsignal ausgesetzt (also die Metallfäche oder das Metallobjekt möglichst nahe dran), und der Trimmer so weit nach links verdreht, dass auch dann die LED nicht ausgeht. Folgendes Programm kann für die Demonstration der Funktion verwendet werden (MinesweeperTest2):
#include "asuro.h" #include <stdio.h>
extern volatile unsigned char count72kHz;
int main(void) { unsigned char oldlevel=0, newlevel; unsigned int freq; int i; char s[9]; Init();
DDRD &= ~(1<<2); // Change Port D Pin 2 to input StatusLED(OFF); while(1) {
freq=0; for (i=0; i<100; i++) { count72kHz=0; // This counter is incremented in timer interrupt
FrontLED(OFF); while (count72kHz<72) {
// Detect level change
newlevel = PIND & (1<<2);
if (oldlevel != newlevel) {
oldlevel = newlevel;
freq++;
FrontLED(ON);
} } } sprintf(s,"%5d\n\r",freq); SerWrite(s,7);
} return 0; }

2.7 Fehlersuche

Funktioniert die Schaltung nicht wie beschrieben, so geht es an die Fehlersuche. Hier gibt es leider weniger Debug-Möglichkeiten, als bei der ASURO-Platine, daher ist ein Multimeter unter Umständen hilfreich.
Als erstes sollte man überprüfen, ob das Testprogramm fehlerfrei compiliert und auch
tatsächlich geflasht wurde. Danach sollte man die Lötstellen nochmals kontrollieren und die Bauteilewerte überprüfen.
Sind die abisolierten und verzinnten Anschlüsse der Spule korrekt in der Schraubklemme
oder wird nur die Isolation kontaktiert? Beim ausgeschalteten(!) Roboter müssen sich die ca. 30Ω der Spule zwischen den Schrauben messen lassen.
Wird ein viel höherer Widerstand angezeigt, ist das Kabel nicht richtig in der Schraubklemme, an der Suchspule wurde der Draht nicht richtig abisoliert und es besteht daher kein Kontakt oder der dünne Draht auf der Spule ist beim Zusammenbau gerissen. Letzteres findet meist in der Nähe des Kondensators statt.
Ist der Widerstand viel kleiner liegt ein Kurzschluss auf der Platine oder in der Spule vor. Hier ist es sinnvoll, das Kabel nochmal aus der Schraubklemme zu nehmen und nochmal den Widerstand an der Schraubklemme zu messen. Wird der Widerstand nun viel größer als 30 Ohm, so liegt der Kurzschluss auf Seiten der Spule.
Zwischen GNDOUT1 und VCCOUT1 muss sich bei eingeschaltetem Roboter die
Betriebsspannung von 4,5 .. 5,5V messen lassen. Wenn nicht, ist die Batterie leer, der Roboter nicht eingeschaltet, die Leitung des Batteriehalters ab, oder eine kalte Lötstelle im Bereich des hinteren Pfostensteckers auf der Aufsteckplatine oder am Roboter.
Die Spannung am Operationsverstärker kann zwischen den Pins 4 Minus (wenn die Kerbe
im IC oben ist, links unten) und 8 Plus (rechts oben) abgegriffen werden. Die Spannung sollte mindestens 2V mehr als die Batteriespannung betragen.
Loading...