PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : System Design Project - AVR an Lego RCX



Florian
03.01.2010, 13:51
Hallo allerseits! :)

Vielleicht hat es der Eine oder Andere schon festgestellt, ich bin in letzter Zeit eher seltener hier ... aber das nicht ohne Grund.
Ich befinde mich mittlerweile mitten im 1. Semester meines Studiums:
BSc Mikrosystemtechnik am Imtek (Uni Freiburg)

Als Motivation gibt es im 1. Semester ein Projekt, das als Wettbewerb ausgelegt ist.
Dabei sollen in kleinen Gruppen Lego-Roboter (Generation Mindstorms RIS 1.5) gebaut werden.
Diese sollen einer Linie folgen (auch in einem Tunnel -> dunkel), Hindernissen auf der Linie ausweichen und eine Steigung entweder an Farbmarkierungen oder besser, eben an der Steigung erkennen, um die darauf folgende 90° Kurve langsamer zu passieren.

Ansich kein Problem, denkt sich der eingefleischte Roboter-Bastler, ein AVR, ein paar Sensoren, Motortreiber und Motoren, Programm schreiben, fertig.
Allerdings müssen wir den RCX und 4 Standardmotoren für den Antrieb verwenden, Zusatz-Elektronik ist allerdings erlaubt.

Da die Sensor-Eingänge des RCX ja bekanntlich sehr beschränkt sind, dachte ich mir, schließe ich einen AVR an, der die Sensoren auswertet und die aufbereiteten Daten dann analog an den RCX weitergibt.
Nun ist das Problem, dass der RCX im passiven Sensor-Modus einmal GND und einmal den ADC-Pin mit Pullup 10k gen 5V bietet.
Ich muss also, um eine Spannungsänderung im ADC messen zu können, die Spannung gen GND runterziehen, den Pullup kann man leider nicht abschalten.

Da stellt sich die Frage, wie mache ich das am besten?

Ich möchte auf jeden Fall eine externe Spannungsquelle verwenden, diese ist stabilisiert auf 5V.
Dann könnte ich ja eigentlich die RCX-Masse mit der Masse meiner Elektronik verbinden und mit Hilfe der AVR-Pins und einer Hand voll Widerstände Vcc nach unten ziehen, oder?
Je nachdem wie viele Pins ich dann auf GND setze, könnte ich dann wie beim R2R-Netzwerk die Spannung einstellen, bloß anders herum...?

Sehe ich das soweit richtig, oder habe ich einen Denkfehler?

Liebe Grüße
Florian

Besserwessi
03.01.2010, 15:12
Die massen sollte man wohl verbinden.

Wenn man als Ausgang von der eigenen Schaltung so etwas wie einen Operationsverstärker hat, stört der Pullup nicht weiter. Dageneg kann der OP erationverstärker anarbeiten. Nur für den Fall das die externe Spannungsversorgung wegfällt sollte eine Diode ran, die verhindert dass die Spannung zu hoch wird.
Eine andere Möglichkeit wäre einen Transistor in Emitterschaltung für den Übergang zu nutzen, z.B. mit Spannungsgegenkopplung. Dan ist der 10 K Pullup ein Teil des Verstärkers und man kann Spannung von etwa 0,1 bis 9,5 V ausgeben. Allerdings nicht so super linear, und der Eingangsbereich wird bei etwa 0 ... 0,6 V liegen.

Um eine analoge Spannung zu erzeugen ist ein R2R netzwerk eine Möglichkeit. Wenn es nicht so schnell sein muß, ggf, auch PWM mit Filter.

Florian
03.01.2010, 17:05
Hallo Besserwessi,
Danke für Deine Antwort!

PWM mit Filter hatte ich auch schon überlegt, allerdings bin ich mir bei den Filtern immer nicht so recht sicher, bei welchen Werten der ADC des RCX dann die Pulse noch sieht bzw. wann er eine homogene Spannung sieht.
Habe leider in Freiburg noch kein Oszi und mir wären deshalb niedrige Frequenzen, die sich mit einem Multimeter bzw. einer flackernden Leuchtdiode darstellen lassen lieber! *g*

Bzgl. R2R -> Wikipedia:
http://upload.wikimedia.org/wikipedia/commons/7/73/R2r-netzwerk.png

Ich habe gerade leider kein Layoutprogramm parat, also painte ich mal etwas ;)
Könnte man nicht etwas wie unten im Anhang dargestellt verwenden, um den 10k-Pullup als Teil eines Spannungsteilers zu nutzen?
Mein Vorschlag unten ist jetzt nicht groß durchdacht, soll mehr oder weniger nur die Idee verdeutlichen.
Ich bin allerdings am Überlegen, ob das Umschalten auf Vcc dann nicht eher etwas hinderlich wäre.
Das Zuschalten von Parallelwiderständen über Transistoren wäre wohl praktischer...

Vielleicht hat ja noch jemand einen Gedankenblitz diesbezüglich?

Nun noch ein paar Fragen zu dem, was Du geschrieben hast:
1. Welchen OP würdest Du mir ggf. empfehlen? Standard LM741?
2. Wie müsste ich eine Diode einsetzen? Ich kann mir das gerade nicht so recht vorstellen, wie die dort helfen soll/kann.
3. Hast Du ggf. für einen PWM-Glättungsfilter ein paar Werte, die normal klappen müssten bei xyz kHz PWM Frequenz?

Liebe Grüße und besten Dank schonmal
Florian