…und am Anfang war der Entwurf. Ein eigenes Erweiterungsmodul für das Robo Interface soll es also werden. (Siehe hier für mehr Infos)
Grundlage sollte natürlich ein AVR sein, weil ich die am Besten kenne, und man dann auch immer gleich die Arduino Bibliotheken mitbenutzen kann 😉 Das Protokoll ist im Wesentlichen ein SPI Bus mit einer speziellen Bestätigungsleitung, das sollte sich also auch problemlos umsetzen lassen. Da die Schnittstelle mit 3,3V betrieben wird sollte auch das gesamte Modul mit dieser Spannung laufen. Die Motoren müssen aber natürlich mit 9V betrieben werden, so dass ein Spannungsregler nötig ist. Für die Motoren sind auch Treiber nötig, da habe ich den TLE4207 eingesetzt, mit dem anderen schon gute Erfahrungen gemacht haben.
Die nächste spannende Frage: In was für ein Gehäuse soll das Modul eingebaut werden? Ein Gehäuse wollte ich auf jeden Fall haben, einfach damit sich das ganze gut im Modell unterbringen lässt. Nach ein wenig Suche bin ich auf die Kassetten gestoßen, die gerade dazu einladen, Dinge dort hineinzubauen. Mit 60x60mm Grundfläche ist dort aber natürlich nicht viel Platz drin, die originalen Module haben etwa die doppelte Fläche. Nach ein wenig Überlegung kam ich dann zu dem Schluss, das gesamte Modul in SMD-Technik zu bauen, auf diese Weise kann ich die Platine zweiseitig bestücken; anders ist es kaum möglich, alles in der kleinen Box unter zu bringen.
Nach dem die grundlegenden Parameter abgesteckt waren, ging es also an den Entwurf. Leider findet man im Netz weder einen Schaltplan eines originalen Erweiterungsmoduls, noch den des Robo Interfaces, daher musste ich ziemlich improvisieren. Ich habe mit dabei beim dem 9V Teil beim dem E-Tec-Modul bedient, dessen Schaltplan unter dem Link oben von „donaupeter“ abgezeichnet wurde.
Der ganze Entwurf hat dann länger gedauert, als ich gedacht hätte, und es waren eine ganze Menge Kompromisse notwendig. Das erste Problem ist, dass nicht wirklich die Platz da ist, und die Bundhülsen als Through-Hole-Komponenten natürlich gleich den Platz auf beiden Seiten blockieren. Zudem wollte ich alle Motor-Treiber auf der Oberseite haben, damit es nicht zu einem Hitzestau kommt. Schlussendlich musste ich dann von meinem Plan abrücken, 4 Motorausgänge und 8 Tastereingänge zu haben, ich habe mich dann auf 4 Eingänge beschränkt. Wie ich später bemerkt habe, wären für mehr auch gar keine Pins mehr frei gewesen, und ein Port-Expander hat nun wirklich nicht mehr auf die Platine gepasst.
Auch so musste ich schon ziemlich tricksen, was die Pins des ATmega angeht. Schlussendlich hat es nicht gereicht, um alle drei Adressleitungen anzuschließen, daher wird die höchste Bit einfach ignoriert. Da die Software aber auch offiziell nur drei Erweiterungsmodule unterstützt, sollte das kein Problem sein. Ein Verkettung von Modulen ist natürlich auch nicht möglich. Dafür kann mein Modul aber jetzt drei einzelne Module emulieren, dazu später mehr.Leider habe ich keine fertigen Footprints für die Motortreiber für EAGLE gefunden, so dass ich mich tatsächlich mal damit beschäftigen musste, wie man selber welche macht. Ergebnis: Das ist total einfach! Man klaut sich einfach aus der Library „ref-packages“ ein Symbol und ein Package, das ungefähr passt, ändert es und fertig. Ich kann diese Anleitung nur empfehlen. Für die Bundhülsen habe ich Befestigungslöcher mit 3.2mm Durchmesser verwendet, die ich in den Librarys gefunden hatte, das war nur eine mäßig gute Idee. Dazu auch später mehr.
Nach dem Schaltplan kommt das Board. Es war im ersten Ansatz schon eine ziemliche Aktion, überhaupt alles halbwegs sinnvoll auf dem kleinen Board unterzubringen, und dann muss man ja auch noch alles routen. Ich habe ziemlich lange daran rumprobiert, und dann aber schließlich mehr oder weniger aufgegeben und aus Verzweiflung mal den Auto-Router ausprobiert. Und was soll ich sagen? Es hat ganz wunderbar funktioniert! Der hat ca. 15min an dem Board rumgerechnet und dann ein Routing produziert, an dem eigentlich nichts auszusetzen war. Ich habe noch an ein paar Stellen ein paar Abstände verbessert, aber ansonsten war das wirklich nicht schlecht. Natürlich ist das Routing nicht besonders schön, aber dafür ist auch einfach kein Platz…
Schlussendlich habe ich das Board dann bei OSH Park fertigen lassen. Inzwischen habe ich das Board bekommen und auch schon bestückt, und dabei sind mir ein paar Fehler aufgefallen:
- Der EXT-Konnektor ist gespiegelt, gerade und ungerade Pins sind jeweils genau getauscht. Das wird noch interessant, wenn man da ein Kabel anschließen will.
- Der Footprint für C2 ist viel zu groß, da muss ich mich vertan haben. Zum Glück passt mein Kondensator aber gerade noch so in die Mitte.
- Die Lötflächen für die Bundhülsen sind eigentlich ein bisschen zu groß, die haben einen viel kleineren Überstand als die Schraubenköpfe, für die das gedacht ist. Hier hätte man also noch ein bisschen Platz sparen können.
Wenn Interesse besteht, sind hier die originalen EAGLE-Dateien, inklusive der Fehler! Ich habe auch noch zwei Boards hier (OSH Park liefert ja immer drei), die kann ich bei Bedarf gerne abgeben, eventuell auch bestückt.
Hallo Niklas Rother, ich bin selbst FT-Nutzer und besitze ebenfalls ein Robo-Interface. Bei meiner Suche nach der passenden Extension bin ich wegen der geforderten Preise blass geworden und schließlich über Ihre Homepage gestolpert.
Ein sehr interessantes Projekt Ihr ftRoboRxt! Gern würde ich mir ebenfalls eines bauen, habe mich allerdings noch nie mit Arduino oder ähnlichem beschäftigt…
Meine SW-Welt befasste sich mit dem Motorola 68HC11, mit welchem ich auch schon verschieden Projekte gemacht haben (Dia Überblendsteuerung, Metronom, ..). Ferner habe ich bei Rollei-Twin-Projektoren die Speichermodul-Schnittstelle debugged und das Programm-Dongle und Speichermodule nachgebaut.
Sie erkennen sicherlich, dass das schon einige Jahre her ist.
SMD-Löten stellt für mich, da ich da beruflich mit zu tun hatten kein Problem dar. Meine Frage ist, können Sie mir ein „Komplett-Paket“ (Schaltplan, LP-Daten, SW, ..) zukommen lassen?
Ich grüße Sie freundlich
K.Kronenberg
Hallo Klaus,
Alle Dateien habe ich vor einiger Zeit auf GitHub veröffentlicht: https://github.com/nrother/ftroboext
Dort ist der Schaltplan als EAGLE-Datei und auch die letzte Version des Quellcodes. Hilft das weiter?
Grundsätzlich kann man so ein Modul bestimmt auch mit einem 68HC11 bauen, schlussendlich ist es einfach nur ein SPI-Slave mit ein paar Motortreibern.
Schöne Grüße
Niklas
Hallo Niklas,
vielen Dank für die Antwort! Ich habe mir die Daten schon mal runtergeladen. Bevor ich mich selbst noch mal tief in das Thema „umsetzen mit HC11“ knie, will ich lieber bauen. Falls noch was von den zwei Boards existiert, würde ich eines (unbestückt) übernehmen wollen und natürlich auch bezahlen (Paypal, …).
Liebe Grüße sendet
Klaus
Sehr gerne, die beiden Boards liegen hier noch rum. Ich melde mich mal per E-Mail bei dir für die weiteren Details.