Uiuiuiuiui...
Das wird wohl schwerer als gedacht.
Mal sehen
Also, lass mich mal spinnen:
Für die 8 Servos brauchen wir PWM-fähige I/Os, die liegen an folgenden Steckern:
IO_PWM/T0/T1 -> 4 Stück
IO_PWM/T2/T3 -> 5 Stück
UART_SPI1/T5 -> 3 Stück
UART_SPI2/T4 -> 3 Stück
Davon müßte man dann 8 aussuchen (möglichst nicht zugehörig zu Timer 0 und 2).
4 LEDs, 4 Buttons: 8 I/Os oder ein PCF8574 via I2C
Beeper: Für den Beeper müßten wir auch einen PWM-fähigen Ausgang nehmen, da reicht aber ein 8-Bit Counter/Timer (0 oder 2).
8 Transistoren: Klar 8 I/Os oder 2. PCF8574 via I2C
X Reflexoptokoppler -> X ADCs (oder schlechter auch X I/Os)
2 Bumper -> 2 I/Os (oder wie beim RP6 mit 2 Status-LEDs verschaltet)
2 Sharps -> 2 I/Os oder ADCs (je nach Sharp)
TCN75, Beschleunigungs-/Kompasssensor, 2x SRF02 -> Klar I2C-Bus, kein Problem
USB-Host:
Schwierig: Da braucht's eine 3,3V und 5V Spannung, eine Verbindung zum ISP-Stecker der M256 (für MOSI, MISO, SCK). Da hängen auch noch Pegelwandler für den SDCard Slot dran, keine Ahnung, ob das problemlos machbar ist. SS wird auch gebraucht, ist aber nicht direkt auf der M256 an einem Stecker verfügbar bzw. wird für den SDCard Slot benutzt.
Zusätzlich braucht man wohl noch mind. 3 I/Os und (falls gewünscht) Status-LEDs und einen Wannenstecker für ein paar GPIOs. Da müßte RolfD mehr sagen. Insbesondere scheint man auch 3,3V-Pegelwandler für alle IOs zu brauchen (?).
Ich halte das für eine solche Platine für übers Ziel hinausgeschossen. Man müßte auf jeden Fall erst ein Muster aufbauen, um zu gucken, ob das so klappt.
Das ist schon eine Herausforderung ... Wir sind bei dir ...
Gruß
Dirk
Uiuiuiuiui...
Das wird wohl schwerer als gedacht.
Mal sehen
Hallo Fabian,
handelt es sich um bestückte Platine oder nur geätzte? Oder ist es dann nur ne Adapterplatine mit Wannenstecker? USB-Host wäre natürlich geil, ich persönlich hätte gern ein Solarladeregler drauf, könnte noch diesbezüglich mal googeln. Und dann noch was der Dirk vorgeschlagen hat für die Orientierung - wird ja alles kein Platz mehr haben, also evtl. optionale Platine? Interessiert bin ich, Frage ist nur noch wie es am Ende ausschaut.
Hi Xenergy,
Prinzipiell ist sie erst mal nur geätzt. Da wir aber wohl aus platzgründen auch SMD-Bauteile verwenden müssen, müssen wir darüber noch sprechen. Denn vielleicht kann nicht jeder das noch löten bzw nicht jeder hat nen lötkolben, der das hinbekommt.
Wenns soweit ist, kann man ja fragen, wie jeder es machen möchte!
@Dirk:
Welches sind denn die pwm-IOs der jeweiligen Stecker?
Und welche davon sind den jeweiligen Timern zugeordnet???
Ich durchblicke das grade nicht.
Wenn wir 8 Servos wollen, und die auf 2 Steckern verteilt sind, ist das irgendwie ... schlecht.
Da würd ich fast die Version der Servolib für die M32 präferieren. Aber nur fast. Erst mal praobier ichs aus!
Wir könnten die 5 von der IO_PWM/T2/T3 und die übrigen drei von der IO_PWM/T0/T1 nehmen. Oder je vier Stück... je nachdem was besser hinhaut.
Aber dennoch müsst ich wissen: welche Pins (PK5,...) sind die PWMs, die wir nehmen dürfen.
Danke dir.
Grüße
Also, die PWMs mit 16-Bit Timer/Counter sind:
OC1A, OC1B, OC1C -> PB5, PB6, PB7
OC3A, OC3B, OC3C -> PE3, PE4, PE5
OC4A, OC4B, OC4C -> PH3, PH4, PH5
OC5A, OC5B, OC5C -> PL3, PL4, PL5
Vorschlag:
Je die 3 von UART_SPI1/T5 (OC5x) und UART_SPI2/T4 (OC4x) und z.B. OC3B, OC3C (PE4, PE5) von IO_PWM/T2/T3.
Blöd, aber man muss immer noch 3 Stecker für 8 Servo-Anschlüsse "anzapfen"...
Übrigens:
Wenn du den ADC-Stecker ADC_IO2/CMP für die analogen Geschichten (Liniensucher) nimmst, gibts da noch mit OC3A (PE3) einen vollwertigen PWM-Ausgang, mit dem man sogar die LEDs der Reflexoptokoppler per PWM dimmen kann!
P.S.:
Für den Beeper kann man OC2A (PB4) oder OC0B (PG5) oder OC2B (PH6) nehmen.
Geändert von Dirk (12.11.2012 um 19:52 Uhr)
Gruß
Dirk
Danke dir.
habe heute schon einiges geschafft, das mit den Servos gehe ich morgen an.
Ob ich wirklich 8 schaffe, von drei Steckern... Wir Werdens sehen
Wenns zu chaotisch wird, werdens vielleicht "nur" sechs servos.
grüße
Sechs Ausgänge mit PWM für die Servos ist ja auch nicht schlecht. Für die letzten 2 kann man ja "normale" Portpins nehmen oder besser die OC0A, OC2x (wie für den Beeper).
Ich bin sehr gespannt, was du schon gemacht hast ...
Gruß
Dirk
Hi...
wie wärs denn als Servo Unit damit:
http://www.pololu.com/catalog/product/280
oder damit:
http://www.shop.robotikhardware.de/s...roducts_id=198
Ich meine damit jetzt nicht ein extra Board sondern ein PIC oder von mir aus auch Avr, der optimiert für die Aufgabe als Servo Controller (ggf. mit SoftPWM) arbeitet. Es erspart massenhaft IO Leitungen am M256, kritisches Timer gefummels, es wäre auch mit anderen Platinen einsetzbar usw. usw. Hat natürlich den "Nachteil", das man dann den Chip erst programmieren müsste... bzw. den fertig mit dem Board zusammen verkauft.
@Fabqu
Zum USB Host... meines Wissens braucht man tatsächlich nicht mehr an Hardware als das was Du beschreibst. Und eben einiges an Software, die ich derzeit einfach nicht sehe wie sie zu stande kommen sollte.
LG Rolf
Sind Sie auch ambivalent?
RolfD:Ja, könnte man machen. Auf dem RNBFRA-Board (http://www.rn-wissen.de/index.php/RNBFRA-Board) macht das ein AT90S2313 Coprozessor für 10 Servos.Ich meine damit jetzt nicht ein extra Board sondern ein PIC oder von mir aus auch Avr, der optimiert für die Aufgabe als Servo Controller (ggf. mit SoftPWM) arbeitet.
Man muss halt abwägen:
Der kleine uC braucht auch Platz auf der Platine zusammen mit seinem Quarz, ISP-Stecker, ein paar Kondensatoren.
Reizvoll ist das schon: Man hat dann einen eigenen uC on board, der über I2C und/oder UART mit dem RP6-System verbunden ist und darin beliebige Aufgaben übernehmen kann. Das Servo-Controller-Programm kann über I2C (Slave) oder UART angesteuert werden.
Nachteil: Der uC hat natürlich von Haus aus keinen RP6-Bootloader, so dass man ihn nicht über den RobotLoader programmieren kann. Man braucht einen ISP-Programmer.
Gruß
Dirk
Lesezeichen