modularer Aufbau der Steuerung von Robotern
Hallo zusammen,
ich möchte folgendes diskutieren und (optimal) aus dem Ergebnis neue bzw. erweiterte Standards gewinnen:
Bisher werden individuelle Roboter häufig auf Basis eines Prozessor-Eval-Board aufgebaut, was immer ein mehr oder weniger grosser Kompromiss darstellt.
Ich möchte anregen, einzelne logische Baugruppen zu definieren und im Detail bis zur Serienreife zu planen, die jeweils zueinander passen (kompatible Stecker und Protokolle) und so zu individuellen Robotern zusammengesetzt werden können.
Jedes dieser Module sollte eine gewisse "Eigenintelligenz" besitzen, um vom Hauptprozessor lediglich komplexe Befehle, die dann abgearbeitet werden (für den Antrieb z.B. zu bestimmten Koordinaten zu fahren oder für einen Greifer, den Gegenstand an Pos. x zu greifen bzw. an Pos. y abzusetzen).
Ziel ist, den Hauptprozessor zu entlasten.
Um die zu definierenden Standards diskutieren zu können (eine Grundlage, was man bauen will, auch wenns heute technisch nicht mach- und bezahlbar ist) schlage ich als Zielmodell einen humanoiden Roboter vor, d.h. ein künstliches Sketett, was in etwa dem Menschen nachempfunden ist.
Spontan fallen mir folgende Themen (zum Standardisieren) ein:
- Energieversorgung (Akku-Ladeschaltung, Buck Boost Converter (Schaltnetzteil), Redundanz, welche Spannungen, ...)
- Energieversorgungsnetz (welche Farben, welcher Leiterquerschnitt, welche Steckverbinder, welche Steckerbelegung, ...)
- Datenbus (I2C DeviceIDs und Stecker sind bereits definiert)
- 2-Achsen Schrittmotorsteuerung High-Power für Antrieb
- 3-Achsen Schrittmotorsteuerung Mid-Power für Greifarm
- 2-Achsen Servosteuerung High-Power für Antrieb
- 3-Achsen Servosteuerung Mid-Power für Greifarm
- Hinderniserkennung (Ultraschall, IR-Laser Reflektion, ...)
- Positionserkennung (GPS oder besser Galileo, ein "wo bin ich" Device)
- Gleichgewichtserkennung / Beschleunigungssensoren
- Hauptprozessor
...
Beispielsweise könnte das Gleichgewichtssystem ein autonomes Gerät am I2C Bus sein, welches sich nur ums Gleichgewicht kümmert.
Die Gewichte/Belastungen der Extremitäten lassen sich an der Stromaufnahme der jeweiligen Antriebe (per I2C) abfragen, daraus ergibt sich ein mehr oder weniger vollständiges Bild der gesamten Kraft- und Gewichtverteilung.
Was denkt ihr?
Ralph
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von lemmings
Aber: wenn man z.B. für die Stromversorgung ein 40V Netz definiert, woraus sich dann alle Verbraucher ihren Strom per Schaltregler holen - im Vergleich zu einem 12V Netz würde der Strom nur 1/3 betragen ==> niedrigerer Querschnitt bei gleicher Leistung, dadurch weniger Gewicht.
Zitat:
Zitat von Gock
Nicht ganz: der meiste Strom wird ja in den Motoren verbraucht, die nach Deinen Angaben Schrittmotoren sind und die benötigen den gleichen Strom, egal wie hoch die Spannung ist...
:-)
Da der Schrittmotor bei entsprechender Drehzahl (Bspw. 500 RPM) Frequenzen von einigen 100khz bis zu ein paar Mhz "normal" sind ist der Schrittmotor auch eine nennenswerte Induktivität.
wenn ich das maximale Drehmoment abverlange muss ich auch den Strom gewährleisten.
Bei der Frequenz kann der induktive Widerstand schon stark angestiegen sein. wenn ich das Drehmoment will muss ich mit der Spannung rauf.
Ich brauche die hohe Spannung letztlich als Reserve um die hohen Ströme hinzubekommen.
Die Spannung sollte nicht über 50V liegen (ich will keine "Vorsicht Hochspannung" Warnschilder ;-) ), d.h. wenn eine Li-Ion Zelle eine Ladeschluss-Spannung von 4.2 V hat und ich 12 Zellen habe lande ich bei maximal 50V bis minimal 12 x 2.5V (Schlussentladespannung) 30V => alle angeschlossenen Module, die nennenswert viel Energie brauchen, müssten sich aus dem ungeregelten Netz bedienen.
Der technische Aufwand ist ein zusätzlicher Schaltregler, d.h. eine Spule, eine Diode, ein paar R's und C's und ein Microcontroller mit Analog-Input und PWM-Output.
Durch die insgesamt höhere Spannung habe ich entsprechend niedrigere Ströme bei gleicher Leistung, dadurch brauche ich weniger Leitungsquerschnitt, was wieder gut für's Gewicht ist.
"Nach Oben" würde ich die Grenze unterhalb von dem setzen, was als "tödlich" angsehen wird... und das sind (glaube ich, müsste man mal recherchieren :-) ) 60V.
Heisst: wenig Gewicht haben wollen erfordert dünne Leitungen
dünne Leitungen bedeutet niedrige Ströme, bei gleicher Leistung bedeutet das hohe Spannung.
Je höher die Spannung, desto leichter wird das Modell.
Der Preis dafür ist ein intelligenter Regler an jedem Verbraucher, der nur das aus dem Netz entnimmt, was gebraucht wird.
Damit sind Konstrukte mit Längsreglern wie dem 7805, die die restliche Energie in Wärme umsetzen, grundsätzlich nicht wünschenswert.
Der Roboter soll ja alles andere sein als eine mobile Heizung, die sich autonom bewegt.
... obwohl... ein warmer Roboter, der dir an kalten Wintertagen folgt, um dich zu wärmen hat auch etwas :-)
[/quote]
Zitat:
Zitat von lemmings
Es gibt heute so viele schöne integrierte Schaltungen ...
Zitat:
Zitat von Gock
Also ehrlich gesagt sind Schrittmotoren für ein solches Projekt nicht unbedingt das gelbe vom Ei.
Da gibt es heute auch besseres mit höheren Leistungsdichten, zB Piezomotoren oder SynchronServomotoren. Aber das alles steht und fällt mit Größe, Kosten und Komplexität des Projekts sowie Getriebeauslegung und anderer Hardwarefestlegungen. Wahrscheinlich aber werden die Kosten massgeblich.
je nach Anwendung kann man doch das perfekte Modul für den jeweiligen Antrieb designen.
was braucht ein Servo-Antrieb?
einen DC-Motor, ein Getriebe, ein Potentiometer, 2 Gabellichtschranken, ein Längswiderstand, um die Stromaufnahme zu regeln.
eine halbe "Full Bridge" (d.h. 4 MosFETs oder 4 PWM-Pins für die Gates), ein Getriebe (das ist halt mechanisch), einen ADC-Eingang für's Poti, 2 I/O-Pins (oder, wenn ich die LEDs in den Gabellichtschranken pulsen will, um die Stromaufnahme zu reduzieren noch 2 Pins mehr) und noch einen ADC für die Stromregelung
4xPWM, 2x ADC, 4x standard-I/O.
Dazu noch SDA&SCL für I²C-Bus.
ein ATtiny24A wäre perfekt.
Das Modul könnte man auf einer 3x3cm oder max 4x4cm Platine (siehe Bild) unterbringen.
Je nachdem, wie intelligent man den ATtiny programmiert (I²C Protokoll, logische Funktionen wie "drehe 3200 1/100 Umdrehungen" verteilt über eine Zeit von 5,3 Sekunden mit maximal 2cm/s Beschleunigung, ...) kann man das Teil dann als universelle Steuerung für Servos in den Baukasten legen. und 4x4cm ist nicht wirklich gross... den meisten Platz auf der Platine brauchen die Stecker und die Leistungs-MosFETs
Zitat:
Zitat von lemmings
Der ULN2803 gehört gar nicht auf's Prozessorboard, der gehört zusammen mit einem ATTiny24A auf ein 8-Bit Open Collector I/O Modul.
Zitat:
Zitat von Gock
Das hängt definitv vom Anwendungszweck ab und kann so pauschal nicht gesagt werden. Du hast da offenbar schon was spezielles im Kopf...
Ja und auch wieder Nein... Für kleine Aufbauten mag das durchaus OK sein, die jeweiligen Prozessor-Eval-Boards einzusetzten oder etwas universelles zu verwenden, bei dem 1001 Peripherie-Geräte mit auf dem Board sind. sobald das aber etwas komplexer wird ist dieses Vorgehen, alles mit einem prozessor zu machen , immer nur ein schlechter kompromiss.
Soll ein Roboter denn durch die Anzahl der I/O-Pins des Prozessors bestimmt sein?
Ich will weg von den Kompromissen. das geht nur individuell mit speziellen Lösungen, die dann aber wieder für sich eigenständige und funktionsfähige module sind.
Zitat:
Zitat von lemmings
I²C Bus => ATTiny => Darlington (so wie PCF8574A, der ATTiny kostet etwa das Gleiche, ist aber frei was die I²C ID angeht).
Zitat:
Zitat von Gock
Dieser Tiny kann aber nicht viel, er hat nicht mal einen 16BitCounter onboard, geschweige denn ein komplettes TWI Modul.
Du brauchst ja auch gar nicht mehr. für ein simples I/O-Modul reicht das völlig.
[quote="Gock"]
Da kommt Dein Tyny sehr schnell an seine Grenzen.
/quote]
Simmt, aber wie ich's oben schon beschrieben habe reichen die mageren Funktionen der ATtiny's für die kleinen Dinge aus.
Die ATtiny's sind billig und unkompliziert.
Ob man dann den oder einen anderen Chip und aus der Automotive-Serie oder sonstwoher nimmt spielt doch keine Rolle.
Welcher Bus verwendet wird sollte auch kein allzugrosses Problem darstellen... I²C und CAN sind nicht so sehr verschieden - zumindest nicht elektrisch....
ein Projekt kann ja auch ein Farb-LCD mit Grafik entwickeln, wo dann das LCD auch nebenbei mit anderer Software auch als ein I²C Monitor/Analyzer eingesetzt werden könnte... oder eine LED-Balkenanzeige "I²C - Load" im 8-Bit I/O Modul ;-)
Ralph
Liste der Anhänge anzeigen (Anzahl: 1)
noch ein paar Annahmen zum Diskutieren :-)
Hallo,
einige bisherige Kommentare haben uns darauf hingewiesen, dass es zur Modularität auf Seite der Software-Entwicklung schon ein paar Bestrebungen und auch gute Ansätze gibt.
Da ich denke, dass man das Rad nicht neu erfinden muss, sollten wir diese Ansätze, die Überlegeungen dazu, mit einbeziehen.
Was ganz sicher spezifiziert werden muss ist der Bus, über den die Kommunikation läuft, welche Daten über diesen Bus übertragen werden sollen und für welche Datentypen der gemeinsame Bus tabu ist.
Unter'm Strich wird ein vollständiger humanoider Roboter sicherlich auch so Komplex, dass es nicht nur einen zentralen Prozessor gibt, sondern einen Haupt- und entsprechend viele Sub-Prozessoren, die sich dann um die jeweiligen Peripherie-Gruppen kümmern.
wie die Kommunikation zwischen Haupt- und Sub-Prozessor dann aussieht - wir werden sehen. Es könnte (und sollte vermutlich auch) Ethernet sein.
Die Kommunikation zwischen Sub-Prozessor und jeweiliger Peripherie - das können
Antriebsmodule, Sensoren, Aktoren, ... sein - erfolgt (denke ich) sinnvollerweise über den lokalen I²C Bus des Sub-Prozessors.
Der Hauptprozessor kann dem Subprozessor für den rechten Arm durchaus sagen "mach mal den Finger krumm", der Hauptprozessor muss sich nicht wirklich selbst mit den Motoren in der jeweiligen Peripherie auseinandersetzen.
Es könnte z.B. so aussehen wie im Anhang1 - die gelben, roten und grünen Elemente sind Haupt- bzw. Sub-Prozessoren. Die hellblauen Elemente sind die jeweiligen Peripheriegeräte.
Natürlich kann man das ganze auch zu etwas kleinerem als einem Humanoiden aufbauen. Dann hat es eben nur eine fahrbare Plattform und nur einen drehbaren Arm.
Oder so ähnlich.
Die Berührungssensoren an Armen und Beinen könnten z.B. Dehnungsmessstreifen sein - oder Taster.
Je nachdem würde man dann dafür I/O Module mit analogen oder digitalen Eingangsports verwenden.
Wenn man die Berührungssensoren z.B. überall mit Dehnungsmessstreifen realisiert (die Idee an sich hört sich für mich nicht so schlecht an) braucht man dazu unzählige analoge IO-Ports, die über die ganze Oberfläche verteilen.
Wegen der wiederkehrenden Anforderungen bietet sich aus meiner Sicht die Modularität an.
Ich denke, für die Kommunikation zwischen dem jeweiligen Sub-Controller und den Peripherie-Modulen gibt es wenig sinnvolle Alternativen zu I²C.
Physikalisch ist die maximale Buslänge auf eine Arm/Beinlänge beschränkt - das ist mit I²C OK und ich denke, wenn der Humanoid sich an eine Tastatur setzt und 10 Finger blind auf der Tastatur schreibt - der Hauptprozessor dem rechten Arm über den Bewegungs-Subprozessor den direkten Befehl erteilt, ein "k" zu drücken...
ich denke nicht, dass auch bei 600 Anschlägen in der Minute der I²C Bus nicht zu einem Bottleneck wird - erstens ist das aus Prozessorsicht immer noch langsam und zweitens gibt vorher die Mechanik auf.
Ich kann ja auch schneller denken, als ich sprechen kann.
Und ich kann auch schneller sprechen, als ich schreiben kann.
Das Verhältnis passt also :-)
Kommunikation, die sehr datenintensiv ist wie z.B. Video- oder Bild- Daten sehe ich nicht auf dem I²C Bus.
Die 2 Augen im Kopf des Humanoid werden sicherlich Kameras sein. Vermutlich werden diese Kameras entweder am Hauptprozessor oder an einem Sub-Prozessor für "räumliches Sehen (der wieder den Sub-Prozessoren für Orientierung und Bewegung Rückmeldungen liefern kann, was die Kalibrierung der echten zur errechneten Position angeht) und Bilderkennung" angeschlossen.
Der Bandbreitenbedarf für die Kommunikation hier ist im gesamten System einmalig hoch und sollte nicht als Referenz angenommen werden.
Für diese Art der Kommunikation muss man ohnehin eigene Schnittstellen haben und - was spricht gegen WLAN-Web-Cams, die die Bilddaten per WLAN in den Bruskorb (da hätte ein normaler PC Platz (wohin nur mit den Akkus :-) ) zum Haupt-Controller überträgt - oder, wenn der Hauptcontroller im Kopf sitzt, einfach USB-Cams.
Die Bewegung der Augen (X/Y, Iris, Fokus) kann dann wieder über "standard-Module" erfolgen. Z.B. mit 4 Servos (4x PWM out für die Servos, 8x digital in für die Lichtschranken der jeweiligen Endpositionen und 4x analog in für die jeweilige Stromaufnahme der Servos - das könnte so ein Standard-Modul sein) - jeweils einem Servo pro Achse oder Bewegung.
Angenommen, die Kommunikation zu den Peripherie-Modulen würde per I²C erfolgen (was sich anbietet, aber noch diskutiert werden müsste).
Die Belegung des I²C Anschluss ist im RN-Standard spezifiziert, bei dem Software-Protokoll auf dem Bus gibt es bereits Ansätze (ID-Autoconfig, Capabilities in eine Tabelle eintragen etc.).
Damit dieses und andere Themen weiterkommen müsste eigentlich nur noch Hardware vorhanden sein, die sich entprechend programmieren lässt.
"Haupt-Prozessoren" und "Sub-Prozessoren" gibt es genug - die jeweiligen Prozessor-Eval-Boards mit ihrer begrenzen Anzahl Ports.
Bei der Peripherie gibt es ein bischen etwas (L297/L298 - Lösungen , ...) aber nicht wirklich viel.
Genau hier will ich ansetzen.
Wenn man sich auf das Design der Hardware einigen kann (und das sollte nicht so schwer sein) und auf diesem Weg nach und nach ein paar Standard-Module zusammenbekommt kann man parallel auch an den Software-Themen wie dem Busprotokoll weitermachen.
Die I²C Adresse automatisch zu verwalten hat den enormen Vorteil, dass auf dem Peripherie-Modul kein Jumperfeld für die Adresse vorhanden sein muss.
256 Adressen sind 8 Jumper - das ist viel Platz auf der Platine ;-)
So, erstmal wieder genug Text :-)
Ralph
Liste der Anhänge anzeigen (Anzahl: 3)
Ich versuch's mal anhand einer konkreten Anforderung:
Ich möchte 2 Servomotoren steueren, die Stromaufnahme der Servomotoren soll überwacht werden (Feedback für Load) und ich möchte an Start- und Endstellung jeweils eine Gabellichtschranke haben, um die genaue Position zu bekommen.
Die Platine unten adaptiert einen 8-Bit IO Port, um 2 Servos nebst Lichtschranken anzuschliessen.
An den oberen Anschlüssen (normale 2x3 Pfostenstecker, die am Rand der Platine sitzen - "quasi-SMD" :-) ) schliesst man die Servos (Mitte) bzw. rechts und links die Lichtschranken an, auf der einen Seite den ersten Servo, auf der anderen Seite der Platine den zweiten Servo.
Belegung wie http://www.rn-wissen.de/index.php/RN....C3.B6tigen.29
der 2x5polige Stecker unten passt auf einen 8-Bit Standard I/O-Port nach http://www.rn-wissen.de/index.php/RN..._.288_Ports.29
in die GND-Leitung der beiden Servo-Stecker ist jeweils im Layout ein Widerstand (0.1 - 1 Ohm) eingeschliffen, um über einen ADC den Spannungsabfall messen zu können.
Je höher die mechanische Belastung des Servo, desto grösser die Stromaufnahme, je höher die Stromaufnahme, desto höher der Spannungsabfall am Widerdand, den ich per ADC messen kann.
Natürlich ist das nicht die echte Stromaufnahme des Motor, der gemessene Wert ist natürlich um die (sehr geringe) Stromaufnahme der Servo-Elektronik verfälscht.
Aber ich denke, das ist genau genug und mit vertretbarem Aufwand nicht besser machbar.
Die Platine ist 1" x 1" gross und man kann sie entweder mit Schrauben oder Kabelbindern (3mm Löcher vorhanden) befestigen oder auch die überschüssigen Ecken einfach "wegdremeln", wenns noch kleiner werden soll.
Ähnliche Module kann ich mir auch für 8 x Open Collector, 8 x Optokoppler, 8 x Analog-In (mit Vorwiderstand, Spannungsteiler und Puffer-Kondensator für jeden Port auf der Platine), ... vorstellen - oder eben auch 8-Bit I/O-Ports als Modul am I²C Bus, die man dann mit der Platine unten zu einem I²C-Controller für 2 Servos "veredelt".
Interessant ist das für die Leute ohne Löterfahrung und auch die Leute, die Standard-Lösungen nicht immer wieder aufs Neue von Hand aufbauen wollen (wie z.B. ich) und lieber bequem ein fertiges Modul nehmen wollen.
Ich werde mir ein paar dieser Platinen machen lassen. Ich habe gesehen, dass die Platinen bei den 10 Stück, die ich mir machen lassen will, pro Stück recht teuer sind, der Preis aber rapide fällt (es ist ja eine kleine Platine und die Einrichtungskosten werden pro Auftrag berechnet), wenn die Stückzahl steigt.
Besteht Interesse an einer Sammelbestellung?
habt ihr Verbesserungsvorschäge (Design / Layout) ?
[ Nein, ein Ethernet-Thermometer kommt nicht mit auf die Platine ;-) ]
Besteht interesse an weiteren derartiger kleiner Module, bei denen man Sammelbestellungen machen kann? Welche?
Ralph
Liste der Anhänge anzeigen (Anzahl: 1)
8xOpen Collector
so könnte ein 8x Open Collector Treiber / Adapter aussehen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von robin
Man muss sich beim Bau des Roboters an die Maße der einzelnen Module halten, was die Freiheit beim aufbau stark einschränkt.
Sorry wenn das jetzt zynisch klingt, aber ich hatte das Thema "mechanische Grösse der Elektronik" zurückgestellt, da ich nicht damit gerechnet habe, dass jemand ein Problem mit der Bauform bekommt, wenn die verwendeten Module insgesamt kaum grösser als die Stecker sind. Für Spezialanwendungen sind Standardmodule sicherlich nicht passend.
;-)
Zitat:
Zitat von robin
Auf der anderen seite hast du in deinem ersten post etwas von Modulen geschireben, die alle über einen Bus miteinander kommunizieren, wozu deine Letzten zwei Posts nicht passen, hier sind nur Adapter, die aber keine ersparnis von Ein-/Ausgängen am µC ermöglichen.
Wegen dem bisher wenigen Feedback und auch dem Hinweis einzelner Member, dass das zu umfangreich ist, hab ich die Komplexität etwas zurückgenommen.
Ein Controller-Modul, was nur am I²C Bus hängt, und 8 I/O Pins bereitstellt konnte so wie unten aussehen (0.8" x 1" gross) , der ISP-Anschluss zum Programmieren ist aus Platzgründen nur 6-pol ausgeführt.
damit hätte man auf weniger als 12cm² einen Controller für 2 Servos, oder 8x OpenCollector Out, oder 4x analog in, 2x analog out und 2x open collector oder auf 5cm² Bit Digital In/Out, ... alles, was sich so zusammenstecken lässt.
Zitat:
Zitat von robin
Ich finde wie gesagt die Idee nicht schlecht, jedoch würde ich in eine andere Richtung denken. Wieso macht man nicht einfach eine art "Sammelforum", in dem jeder Schaltungen zu einzelnen Modulen und der dazugehörenden Firmware hochladen kann und sie somit anderen zur verfügung stellt.
Gibt es schon: http://www.rn-wissen.de
Zitat:
Zitat von robin
- Flexibles Platinenlayout, da nur die schaltpläne hochgeladen werden
Genau das sehe ich nicht als Vorteil.
Einen Robotor zu bauen ist ein komplexes Projekt.
- Idee (und die Idee begreifen)
- Mechanik
- Antrieb (Motoren und Kraftübertragung)
- Elektronik (Hardware)
- Steuerung (Firmware)
- Applikation
Aus meiner Sicht kann man am Ehesten bei der Elektronik standardisieren, ohne sich individuelle Lösungen zu verbauen.
Um von Grund auf von einem Schaltbild zu einer fertigen bestückten Platine zu kommen braucht man etwa:
Layout-Programm, geeigneten Drucker, Standbohrmaschine, Säge, UV-Lampe, Platinenmaterial, Ätznatron, Eisen-III-Chlorid oder Ammonium-Persulfat (gibt auf Dauer IMMER Ärger wegen den Schäden), Lötkolben, Lötzinn.
Mal abgesehen von den Leuten, die aus Prinzip alles selbst machen wollen...
Ein paar wären sicherlich schon glücklich, wenn Lötkolben und Lötzinn reichen würden.
Das bekommt man nur hin, wenn man sich auf Standardmodule einigt und die dann zusammen herstellen lässt.
Alles andere ist nicht bezahlbar.
Ralph
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat von Gock
Ok, nehmen wir das einfach mal so an. Wenn ich das richtig sehe, kommen die Wannenbuchsen seitlich daran, d h die Größe erhöht sich um diese.
Ja, Du hast mich beim Schönreden erwischt. Die Platine wird dadurch grösser als das eigentliche Stück Epoxy. aber nur etwa 5mm pro seite im mittel.
mir geht es aber um die platinengrösse (Kosten, mm² fläche der platine) und um "Lötfreundlichkeit"
Zitat:
Zitat von Gock
Wie wäre folgendes: Benutze gewinkelte Wannenbuchsen in SMD an der Oberseite, die seitlich gesteckt werden und den µC befestige von unten direkt drunter. Dadurch wird es erstmal kleiner. Die Bohrungen könnte man diagonal machen, das gibt mehr Stabilität, vielleicht braucht man in einem solch mobilen System sogar 3 Schrauben.
Könntest Du mal 3,2mm Bohrungen vorsehen und die Umrisse bemaßen, damit man die Größe abschätzen kann?
Ups, das war jetzt viel auf ein Mal...
die Variante gewinkelte Wannenbuchsen / Proz unten drunter bringt wegen dem 2x so grossen footprint der stecker keine kleinere Platine (siehe bild)... aber schonmal überlegt, wie du das "von Hand" löten willst ? ;-)
Bohrungen? die Platine ist 0.8 x 1" bzw. 1" x 1" (oder auch 2,54 cm x 2,54cm) gross,
d.h. da passen gerade mal etwa 64 x 3mm Löcher drauf, dann ist die Platine weg.
Bei den Adaptern hab ich 3.2mm (sollten 3.2mm sein) Löcher vorgesehen, auch beim controller ist noch platz für 2 löcher... und - ohne zuviel von dir wegen der mechanik wissen zu wollen - ein gegenstand, der 2,5 x 2,5 cm gross ist (oder auch 3cm x 3cm mit steckern) ist mit 2 x M3 Schrauben perfekt befestigt, das hält auch so gut genug.
das ist so gross wie ein 2 Euro Stück... 3 schrauben ist zwar kein problem (ich guck mal), aber IMHO völlig oversized :-) :-)
Update:
so, temp2.png jetzt mit bemassung und 3 Löchern - damit es auch sicher hält 8-)