PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interface ersetzen



Mr. S
30.03.2011, 19:02
Hallo!

Ich möchte nach langer Zeit mal wieder einen Roboter bauen. Ich besitze zwei Fischertechnik Universal-Interface (http://www.ulrich-mueller.de/interpd.htm, http://www.ulrich-mueller.de/interpp.htm) die ich früher an meinem alten 386er verwendet habe. Für alle die nichts damit anfangen können: Jedes Interface ist für einfache I/O-Aufgaben gebaut (8 digital in, 4 DC-Motoren links/rechts/aus, 2 A/D-Wandler) und wurde über LPT angesteuert. Leider nagte der Zahn der Zeit an diesen Geräten, d. h. sie zum laufen zu bringen ist nicht so einfach. Außerdem fehlt modernen Computern mittlerweile der LPT-Port. Langer Text - kurzer Sinn: Ich will ein neues Interface selber bauen, dass die selben Möglichkeiten vorsieht aber mit ATmega(s) um auch ohne Kabel arbeiten zu können.

Das neue Interface besteht aus einem ATmega8 und L293D-Motortreiberbausteinen. Geplant habe ich zwei von diesen Boards hintereinander auf eine Platine zu bringen um die zwei alten Interfaces zu ersetzen. Für die Steuerung kommt ein weiterer ATmega hinzu (ATmega328), der mit den Interfaces über TWI verbunden sein soll.

Was haltet ihr davon? Kann ich noch etwas verbessern? Vorschläge und Kommentare sind wilkommen.

Gruß,
Mr. S

Hubert.G
30.03.2011, 19:25
Du bist etwas sparsam mit den Kondensatoren.
AREF nicht auf VCC legen sondern über einen 100n nach GND.
An AVCC einen 100n nach GND. Sollte der ADC benutzt werden zusätzlich noch eine Spule wie im Datenblatt.
An die L293 VCC 100n und 10µ an VCC2.
Wenn du die Enable der L293 auch an den µC gibst, dann könntest du über PWM die Motoren in der Geschwindigkeit steuern.

BMS
30.03.2011, 19:39
Hallo,
eine Vernetzung von mehreren Mikrocontrollern ist schon anspruchsvoll, über I2C zwar relativ einfach, man muss aber dennoch mehrere Programme - also für Master und für die Slaves - schreiben.
Alternativ kann man mit Portexpandern PCF8574 arbeiten (v.a. für digitale Ein/Ausgänge), oder Analog-Multiplexern 74HC4051 für Analog-Eingänge.

Zum Schaltplan: Es fehlen noch jede Menge Kondensatoren und Elkos zum Abblocken, sonst ist die Versorgungsspannung zu instabil. Wie sieht es mit Spannungsreglern aus? Die Potis an den Analogeingängen könntest du auch auf 0 Ohm drehen, falls der Sensor außen aber mit GND verbunden sei, ergäbe das einen Kurzschluss. Brauchst du sicher kein PWM? Sonst die EN-Anschlüsse der Motortreiber noch an einen PWM-Pin vom Prozessor hängen. Und denke auch an Bedienelemente wie Taster, Display, LEDs o.ä. Reicht der L293D aus? Der kommt leider recht schnell an seine Leistungsgrenze, die 600mA im Datenblatt erreicht er nur gekühlt.

Ich würde dir aber eher raten, mit nur einem Mikrocontroller auszukommen, da würde ich den Atmega32 nehmen. Das sollte von den Pins sogar noch gut reichen, rechne einmal nach. Für 4 Motoren, die Analogeingänge und Bedienelemente reicht das gut. Die digitalen Ein/Ausgänge würde ich über I2C-Portexpander PCF8574 machen. Ich vermute auch, dass du die 16 digitalen Ein-/Ausgänge nicht alle komplett benötigen wirst.
Das dürfte insgesamt kleiner, einfacher und besser beherrschbar sein. Außerdem wirst du schneller voran kommen, da du dich nicht um die Kommunikation der Prozessoren untereinander kümmern müsstest. Auch sparst du Verzögerungen durch die Datenübertragung der Controller untereinander.

Grüße, Bernhard

PICture
30.03.2011, 19:59
Hallo!


Außerdem fehlt modernen Computern mittlerweile der LPT-Port. Langer Text - kurzer Sinn: Ich will ein neues Interface selber bauen, dass die selben Möglichkeiten vorsieht aber mit ATmega(s) um auch ohne Kabel arbeiten zu können.

Mir reicht nicht moderner Laptop mit LPT und nur 1,8 GHz Prozessor aus. Dann bleibt mir nur übrig viel Erfolg bei Realisierung deines Vorhabens wünschen. :)

Mr. S
30.03.2011, 20:28
Hallo,

vielen Dank für die nützlichen Antworten. Um eine Vernetzung komme ich nicht herum, da ich wie erwähnt zwei von den Dingern bauen möchte für 8 Motoren etc. (später vielleicht noch eine dritte Erweiterung). Einen Bootloader für den Control-MP für die Steuerungsprogramme habe ich schon fertig und die Kommunikation soll sowieso auf ein Minimum beschränkt werden. Damit sind dann zwei Roboter gleichzeitig an einem "Arbeitsort" steuerbar (z. B. einer hält fest und dreht während der andere "bearbeitet").

Das mit der Spule muss ich übersehen haben, ist aber auch nicht nötig. Ich habe in einem anderen Projekt nur einen Temperatursensor am A/D und das funktioniert ohne Spule gut. Ein Kurzschluss ist theoretisch möglich, aber ich habe mir nicht anders zu helfen gewust, da die Sensoren zwischen dem Port und GND liegen. Wenn ich die Steckerleiste aufgebe und neue einzelne Stecker auf die Platine packe, kann ich das aber auch ändern.

Spannungsregler sind zwei (5V und 9V) mit Kondensatoren auf einer Extra-Platine verbaut. PWM wäre nicht schlecht, allerdings fehlen mir dazu ja die Pins. Welche Alternative gibt es denn zum L293D mit mehr Power? H-Bridge mit MOSfets? Den PCF8574 möchte ich nur sehr ungerne verwenden weil ich auf dem TWI eigentlich nur die ATmegas haben möchte.

Vielen Dank,
Mr. S


P.S.:

Mir reicht nicht moderner Laptop mit LPT und nur 1,8 GHz Prozessor aus. Dann bleibt mir nur übrig viel Erfolg bei Realisierung deines Vorhabens wünschen. :)
Sowas (Laptop) habe ich nicht. Ich habe nur einen Computer und der ist erst zwei Jahre alt. Außerdem funktionieren die Dinger nicht mehr richtig. Die Betriebsspannung muss man vor jedem Einsatz neu herausfinden und die alten MS-DOS-Programme funktionieren auch nicht richtig unter Win7.

nanoBean
30.03.2011, 22:08
und die alten MS-DOS-Programme funktionieren auch nicht richtig unter Win7.

wenn das das einzige Problem gewesen waere, haettest du auch freedos neben win7 parallel installieren koennen (http://freedos.sourceforge.net/)

Du kannst auch eine Schnittstellenkarte nachruesten. Kosten vielleicht 15€ und du hast dann i.d.R. zwei serielle und eine parallele Schnittstelle. Aber dann fehlt natuerlich der Lerneffekt.

Hat eigentlich jemand schon Erfahrungen mit den usb-parallel Adaptern gemacht?

Mr. S
31.03.2011, 10:18
wenn das das einzige Problem gewesen waere, haettest du auch freedos neben win7 parallel installieren koennen (http://freedos.sourceforge.net/)
Wenn! Ist es aber leider nicht. Wie gesagt, bei jedem Betrieb muss ich erst einmal mit einem regelbaren Netzteil herausfinden welche Betriebsspannung funktioniert. Vor Jahren hat 9V noch gut funktioniert, bei meinem letzten Versuch waren es nur noch 7,6V. Nee, da muss ich was neues bauen. Ein neues Interface zu kaufen kommt für mich auch nciht in Frage, da es pro Stück mindestens 100 € kosten würde.

Eckhard
07.04.2011, 14:46
Hallo,

hatte auch mal so ein Interface. Was die Spannung betrifft, da werkelt normalerwiese ein 7805 drin. Der ist recht tolerant was die Eingangsspannung angeht und notfalls leicht zu tauschen. Eine weitere Idee wäre ja auch die Interfaces über einen Mikrocontroller anzusteuern.
Das Protokoll ist nicht sonderlich kompliziert und im Manual ja auch dokumentiert. Dort gibt es sogar den Sourcecode in 8086 Assembler.
Hatte mir damals anhand dessen das Protokoll in C nachgebaut weil ich keine Lust auf Basic hatte. Ich wäre mir auch nicht sicher ob die L293D die gleiche Leistung bringen wie die H-Brücken auf den Interfaces.

Eckhard

Mr. S
07.04.2011, 16:35
Hallo Eckard,

eine Möglichkeit wäre, an Stelle von L293D einfach TLE4202B (2 A) zu verwenden. Ich weiss, es gibt solche Projekte, die die alten Interfaces mit einem MC ausrüsten, aber wie weiter oben erwähnt möchte ich evtl. noch weitere Interfaces bauen. PWM wäre auch noch interessant. Dafür würde ich auch auf zwei Motoren verzeichten und dann mehr Interfaces bauen.

Die 7805 zu tauschen hat keine Verbesserung gebracht.

Besten Dank,
Mr. S