PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Universal I²C 8-Bit IO Board



lemmings
01.07.2009, 00:08
Hallo zusammen,

ich möchte mir ein paar kleine Universalmodule für den I2C-Bus machen.

Bevor ich die Platinen in Auftrag gebe:

Habt ihr Interesse an einer Sammelbestellung der Platinen?

Ideen für Verbesserungen?

http://www.dinao.ch/robo/UNI2C08IO-A.pdf

Ralph

HannoHupmann
01.07.2009, 07:13
Ahja und was soll diese Platine oder das Universalmodul machen?

lemmings
01.07.2009, 11:36
Ahja und was soll diese Platine oder das Universalmodul machen?


Hallo Hanno,

vielen Dank für Dein Interesse.

Das Board stellt 8 I/O-Pins am I²C Bus bereit, d.h. man kann damit beispielsweise 2 komplette Servos samt den Sensoren für die Endpositionen einfach über den I2C Bus steuern.

Ein grosser Vorteil, die Peripherie unabhängig vom Haupt-Prozessor zu halten ist die bessere Skalierbarkeit und Übersichtlichkeit bei grösseren Modellen.

Ein weiterer grosser Vorteil ist die geringe Grösse (so gross wie eine 2€ Münze), die den Einsatz nahezu überall ermöglicht.


lG

Ralph

Peter1060
02.07.2009, 10:22
moin moin,

was mich stört:
- kein Schaltplan
- Anschlüsse an 3 Seiten

Lötstoplack (beide Seiten verschieden)...wie ist das zu verstehen?

Einige Bezeichnungen (z.B. Steckverbindernamen) bringe ich im Layer des Lötstoplackes mit unter.

Mit Gruß
Peter

lemmings
02.07.2009, 12:24
was mich stört:
- kein Schaltplan
- Anschlüsse an 3 Seiten
Lötstoplack (beide Seiten verschieden)...wie ist das zu verstehen?
Einige Bezeichnungen (z.B. Steckverbindernamen) bringe ich im Layer des Lötstoplackes mit unter.


Kein Schaltplan: ja, ist so. die schaltung ist sehr trivial, da hab ich auf den schaltplan bewusst verzichtet.

anschlüsse an 3 Seiten: ja - na und? warum nicht? und - der ISP-Port wird nur zum proggen gebraucht, da müsste man den steckverbinder eigentlich nicht mal bestücken.

Löestoplack beide Seiten verschieden: der µC ist SMD, der sitzt nur auf einer der beiden seiten. daher ist der lötstoplack auf ober & Unterseite verschieden.

Steckverbinder-Namen etc. sind im Top-Layer.

lg

Ralph

robin
02.07.2009, 12:33
Hi,

warum machst du überhaupt einen extra ISP stecker?

Du kannst doch MISO,MOSI,SCK neber einander an die Anschlüsse legen und Reset mittels Jumper durchschalten. Somit wird dein Modul noch kleiner.

mfg Robin

lemmings
02.07.2009, 13:08
warum machst du überhaupt einen extra ISP stecker?
Du kannst doch MISO,MOSI,SCK neber einander an die Anschlüsse legen und Reset mittels Jumper durchschalten. Somit wird dein Modul noch kleiner.

Ciao Robin, Danke für den Hinweis.
Ich persönslich hab damit schlechte Erfahrungen gemacht. ich verwende einen AAVRISPmkII, der hat den 6-pin atmel-stecker.
kurzum - der adapter zum µC hatte nen Wackler und ich durfte den 68pin SMD aus- und einen neuen auflöten.
seitdem mag ich das gebastel nicht und da der 6-pin bei mir perfekt passt und obendrein noch kleiner als das 10-pin pinout ist ( logisch, oder? 6 ist weniger als 10! :-) ) ist das für mich der beste Kompromiss.
ich werde mir wohl einen uralt-Floppy/HD-Stecker (der, der auf die Platine aufgesteckt wird, gab es 34 und 20 pol) umbauen, dass ich das board einfach direkt stecken kann - dann hab ich auch nur an 2 gegenüberliegenden seiten pins.
ich muss mal sehen, wie das mechanisch passt, wenn ich eine platine in der hand habe ;-)

lG

Ralph

-jan_
07.07.2009, 01:38
Moin!

Also ich würd nen andren controller nehmen, der min. 3 pwm ausgänge hat. hab auch grad praktisch dasselbe ge-layoutet allerdings speziell für servos, mitm mega48/88. der hat immerhin 6, was schon für 3 Servos + Zubehör reicht, sprich 2 beine an nem hexabot..
Deine Platine reicht leider nichtmal für 1 komplettes bein mit 3 dog, vorausgesetzt man benutzt kein Soft-PWM.

Gruß Jan

lemmings
07.07.2009, 03:55
6, was schon für 3 Servos

wieso brauchst Du für einen Servo 2 PWMs?

und - ja, für einen hexa brauch ich 9 module.

HannoHupmann
07.07.2009, 08:09
3 Servos 3 PWMs ist doch logisch. Ein Hexabein 3 Servos also? Genau lesen. Abgesehen davon gibt es auch Erweiterungsplatinen die 18 Servos ansteuern könnten, also alle Hexabeine. Eine wirkliche beschleunigung für einen Hexa würde diese Platine nur bringen, wenn sie eigenständig in der Lage ist die Winkelvorgabe vom Hauptcontroller in PWM Signale umzusetzten für alle 3 Servos. Ansonsten seh ich da keine Verbesserung gegenüber zum Beispiel einem Propeller Chip.

lemmings
07.07.2009, 11:56
Ansonsten seh ich da keine Verbesserung gegenüber zum Beispiel einem Propeller Chip.

Ob es jetzt besser ist, alle I/Os möglichst an einen Prozessor zu hängen oder ob die Verteilung auf mehrere Systeme sinnvoller ist hängt am Ende mehr von den Details als von irgendeinem "best practice" Prinzip ab.

Anyway, beim Reset muss der Controller erstmal die Endpositionen der Servos anfahren.
Danach "weiss" der Prozessor, welcher PWM Duty Cycle welchem Winkel zugeordnet wird (so ungefähr, das ist ja Mechanik ;-) )
D.H. wenn der Hauptprozessor dem I/O sagt "mach mal Stellung 78° dann sollte der Prozessor auch den passenden PWM-Wert ausrechnen können - das ist ja nix kompliziertes.
Man könnte auch bestimmte Bewegungsabläufe (Gangart Trab, Gallopp, ... - ja ich weiss, ist ein Hexapod, kein Pferd) als Makro abspeichern und den Sub-Controller damit beschäftigen - der ATtiny hat zwar nicht so viel Dampf wie der ATmega, aber um ein paar I/O Ports zu pollen oder PWM für die Servos zu erzeugen ist auch für einen ATtiny schnell genug.