PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleinserie: hardware für die M256 WIFI



fabqu
06.11.2012, 13:31
So, in diesem Thread können wir mal diskutieren, ob wir eine Platinen-Kleinserie herstellen lassen könnten.
Diese würde ich auf EAGLE designen und - sollten wir genug Personen sein - dann könnten wir die Platine fräsen lassen.

FRAGE 1: Wer kennt jemanden, der die Platine (sagen wir einmal 20-30 Stück) fräsen / ätzen kann? Was kostet das bei diesen Stückzahlen? Was bei 50 Stück?

Frage 2:
Was soll denn alles drauf??????????
Ich denke mal, es freut sich jeder über 4 Taster, 4 LEDs, einen Beeper, einen Temperatursensor TCN75 aus dem M128 und einen Servoverteiler für 8 Servos und vielleicht (da nicht schwierig) noch zwei SRF02-Anschlüsse.
Lassen wir diese Dinge also mal außer Acht, was braucht man noch?
Gyro? Beschleunigungssensor? Kompass? GPS???? Zweiter Akkuanschluss?

Natürlich muss man immer bedenken, dass die Platine im RP6-Format vom Platz her beschränkt ist... und jemand (darin bin ich nicht sehr gut) muss die Software erstellen...

Viel Spass beim Diskutieren!
Fabian

Dirk
06.11.2012, 17:23
Hallo Fabian,

gute Idee! Ich bin dabei ...

Zu Frage 2:
Es gäbe für mich 4 Bereiche, aus denen Hardware-Anwendungen für die Platine kommen könnten:

1. Bereich: Wie du vorgeschlagen hast: Features der M32 und M128 übernehmen ->
5 Taster, 5 LEDs, Beeper, evtl. Mic, I2C-Temperatursensor, Sockel für I2C-EEPROM, 3..8 Servoanschlüsse, 2..6 ADC-Anschlüsse könnten dann dabei sein.

2. Bereich: Lage-Orientierung im Raum ->
Z.B. 3-Achsen-Beschleunigungssensor, Kompass, evtl. Gyro ...

3. Bereich: Orientierung und Zielführung ->
Fest aufgebaut 2 Distanzsensoren (IR oder US), 2 Wärmesensoren (z.B. "Snake vision" des Asuro), 2 Mics mit Verstärkern, Anschlüsse für 4 Reflexoptokoppler zum Linienfolgen, Anschlüsse für Bumper hinten, Farbsensor ...

4. Bereich: Stromversorgung ->
Für einen Zusatzakku oder ein Solarpanel könnte man ja Anschlüsse/Elektronik schon draufbauen ...

Natürlich kann man keine eierlegende Wollmilchsau bauen. Man wird also auswählen müssen.

fabqu
06.11.2012, 17:57
Coole Ideen!
ich würde vier Taster nehmen, da sie recht schön vorne auf die Platine passen. Man muss bei so vielen Ideen wirklich ein bisschen auf den Platz schauen.
eeprom find ich gut. Wobei ich nicht weiß, ob mans brauchen kann, man hätte ja auch noch die SD.
Wie sind denn die Meinungen zum Mic? Für mich persönlich bringt's das nicht. Und es braucht mit OP, kondensator etc recht viel Platz... Was meint ihr so?
Das snakeVision könnte man natürlich 1:1 nachbauen. Jedoch müsste man Bedenken, dass man dann (wie auch wenn man Sensoren wie Srf02 etc fest am Board anbringt) eine Ausrichtung des Bords quasi vorbestimmt. Zumindest, wenn man nach wie vor Vorwärts fahren möchte :D
reflexoptokoppler wären klasse!!! Brauchen wir unbedingt! Dann könnte man auch in der Lib gleich ne fertige Funktion schreiben zu "dunkle/weiße linie gefunden" oder eben "nicht gefunden".
zur Stromversorgung: solange nicht zuviel Leistung von der Platine abverlangt wird, könnte man es in SMD-Technik bauen, das erspart einiges an Platz.

fabqu
07.11.2012, 07:14
Vielleicht wäre ein Berührungssensor mit dem NE555 ne nette Spielerei? Ist ein NE555 mit zwei BC547, die an einer Antenne hängen. Wird sie berührt, schaltet der Output durch. Aber der liegt bei Berührung nur bei etwa 2-3,5 V, da wird man dann einen Analogen Input benötigen.

RolfD
07.11.2012, 11:36
Zum Thema Kleinserien... wir hatten ja schon privat gemailt... Man muss das Rad ja nich dauernd neu erfinden. Platinenservices gibts genug und auch erschwinglich.

http://www.mikrocontroller.net/topic/25320

Da hier für die M256 gefragt wird bin ich raus aus dem Thema da ich keine M256 hab.

Davon ab halte ich es aber auch nicht für sinvoll, die M256 mit der M128 Hardware (mic, i2c-speicher, den x-ten LCD2x16 Port oder sonst was ) nachzurüsten. Den größen Kundenstamm spricht man an wenn man was baut, was für ALLE Module einen Vorteil bringt.
Ich wüsste jetzt so nicht, was der RP6 noch dringend an Hardware braucht oder mit seinen bescheidenen cpus ausschöpfen kann, ich sehe eher ein riesen defizit in der Software bzw. der Konnektivität als Bremse zu größenen CPUs und Architekturen.

Genau da läge aber noch viel Potential... ARM7/9 Prozessoren oder ein PC/104 System z.B.
Oder ein Grafikdisplay - was aber kaum Sinn macht weil ALLE bisher verwendeten CPUs auf RP6 Boards zu mikrig dafür sind.
Ein USB Host wär auch ne Idee... wenn die Prozessoren nicht an der Datenflut ersticken würden...
Als Standalone Board (ohne RP6 Unterbau) wären sicherlich Relaiskarten für 12 und 230V interessant... u.a. komplette wetterstations-sensorik, auch da GrafikLCDs, Keypad Anschlüsse, USB Hosts usw...

Ein kapazitiver Schalter ist was nettes für nen alten Kosmos E-Baukasten oder fürs Steckbrett aber was soll der an einem Bot? Also finde ich zumindest.

Aber wie gesagt.. da ich das M256 nicht habe und auch nicht beabsichtige zu kaufen (zumindest nicht als Addon für den RP6) bin ich da raus.
LG Rolf

lasergehirn
07.11.2012, 12:11
> Grafikdisplay

Nur wozu braucht man ein Display wenn man schon eine Funkverbindung hat?
Dann kann man auch den 30" Monitor des Rechners oder den eines Smartphone dazu verwenden und hat dann eh viel mehr Möglichkeiten.
Wenn der Roboter umher fährt sieht man auf so nem Display doch eh kaum was.

> Ich wüsste jetzt so nicht, was der RP6 noch dringend an Hardware braucht

Naja das was Dirk schon für Orientierung vorgeschlagen hat: Beschleunigungssensor usw. - um die Lokalisierung zu erleichtern.
Dazu evtl. noch IR oder Ultraschall Baken die man aufstellen kann um die Position besser ermitteln zu können.
Gibt da diverse Projekte wo sowas gemacht wurde.

fabqu
07.11.2012, 12:25
Soso, also die Idee wäre eben gewesen, ein Modul zu erstellen, das einiges Neues an Hardware bietet (Orientierung, SRF02...) und DAZU noch alles, was die M32 und M128 so an Spielereien dabei haben, der M256 aber fehlt.
Also Beeper, Servos, Taster, Temperatur und evtl Micro.
Denn wer die M256 verwendet, muss/will nicht unbedingt die M128 und/oder die M32 mitbenutzen bzw erst anschaffen müssen. Das könnte man eben auch alles von der M256 steuern.

Deine Idee, die wir schon Diskutiert haben, war ja, einen neuen Controller für die M128 zu basteln, den man anstelle des C-Control-Unit-Rießenknochens aufstecken kann. Diese Idee find ich nach wie vor super und angehenswert ;)
Dieses Projekt soll das andere ja nicht ablösen :D
Grüße,
Fabian

RolfD
07.11.2012, 14:55
@Lasergehirn
Was es zum Thema Orientierung gibt (Beschleunigung, GPS, Kompass), ist alles per i2c oder RS232 5/12V anzubinden und auf diversen "kleinen vorgefertigten Platinchen" zu beziehen. Dazu hat Dirk auch selbst ein Projekt laufen... ich weis nicht ob es Sinn macht sowas als Kleinserie anzubieten. Interessenten gäbs sicherlich aber letztlich ist das so "einfach" das auch jeder sowas auf einem ex-Board hinbekommt (Dirk, bitte nicht als Abwertung verstehen). Gleiches gilt auch für viele andere Sensortypen.

Zum Grafikdisplay, es gibt aber weit mehr Leute die keine M256 und damit kein Wlan haben wie ich schon sagte... es ist müßig darüber zu streiten wenn Du das nur aus deiner Sichtweise siehst.

Aber noch mal.. das Problem ist weniger die Hardware, sondern eher die Software. Mir ist weder eine erweiterbare andröd/ifun App für den RP6 bekannt, noch wüsste ich von einem Webinterface bzw. einem PC-Programm, welches die Daten (ggf. auch von neuen Sensoren) auswerten/austauschen kann (quasi Remote KI). Remotrol ist immer noch Quasi Standard in dem Bereich - trotz aller Ankündigungen zume Thema Remote Control per Wifi. Das Wifi Board ist lediglich eine Funkbrücke welches das USB Kabel an einem Board umgeht - und es hat andere Möglichkeiten ein Programm zu erstellen als das C-Basic einer CCpro. Das allein macht es aber noch nicht zur eierlegenden Wollmilchsau! Und auch nicht zu einer autark fliegenden Ifun-Quadcopterdrohne... mit Kettenantrieb.

Ich möchte nicht das der Eindruck entsteht, ich hätte was gegen das M256 aber es ist nun mal so, das es vergleichsweise große Löcher in die Geldbörse reist und gemessen an dem was es _mehr_ bringen soll gegen ein anderes Modul (M32/M128)... es weder Softwareseitig noch Hardwaremäßig ein Meilenstein ist, da es quasi auf wlanfunk und einem dummen "Webserver" degradiert wird. Leute die genau das wollen, werden mit dem Board glücklich werden aber es kann darüber hinaus nicht viel mehr als die anderen Boards. Warum also nur für das Board extra Hardware entwickeln? Die vorhandenen Boards ergänzen sich im großen und ganzen und wenn man mit einem Rp6+M32+M128+M256+1 bis 2 EXBoards hantiert, hat man alle Möglichkeiten die das System bietet. Mal ausgenommen die Dinge, die ich oben gelistet habe...

Und noch mal... es mangelt aus meiner Sicht eher an offener, stabiler Software wie beim CT-Bot oder Arudino, die das alles problemlos zusammenführt, als an irgendwelchen ne555 Schaltungen... Wenn man da Hardwaremäßig was auf die Beine stellen will... dann doch eher was, das möglichst vielen nutzt, oder? Geht mal davon aus, das sich sowas nur lohnt wenn ihr min. 20-50 Leute/Platinen zusammen bekommt.
LG Rolf

Nachtrag.. @Fabqu .. ich seh das Projekt "Erweiterungsplatine für M256" auch nicht als 'Konkurenz' zu meiner Idee mit dem Ersatz für die CCpro CPU. Ich mach mir nur halt Gedanken zum Thema "wie erreiche ich so viele Leute mit dem Projekt, so das es sich lohnt das auch umzusetzen und nicht nur Brainfuck bleibt". Fragt euch doch mal selbst.. "Woran könnte jeder 10te M256 Besitzer so viel Interesse haben das er weitere 100 Euro für eine fertige Platine zahlt." .. wohl wissend, das man die M256 auch gut solo betreiben kann (und die meisten hier eine Platine wie Dirks Projekt nach seiner Anleitung selbst gelötet (Exboard) bekommen da letztlich nur + und - sowie die 2 i2c drähte verbunden werden müssen). Stellt mal eure eigenen Pläne etwas zurück und denkt umfassender.
Ich denke, da fallen sowohl das 50-cent Mic (was nicht mehr kann als ein simpler Klatschschalter) sowie auch der ne555 dann ganz schnell raus oder belegen bestenfalls nur sonst ungenutzten Platz.

Ein einfaches Netzteilboard mit Max232, Displayport und USB Host für Standalone Betrieb des M256 würde vermutlich mehr Käufer ansprechen als jede andere bisher genannte Fummelei. Mich würde allerdings wundern wenn nicht Arexx bald damit raus kommt.

lasergehirn
07.11.2012, 21:21
Und noch mal... es mangelt aus meiner Sicht eher an offener, stabiler Software


Na denn ma los, statt ellenlange posts lieber Software bauen ;-)


> Mir ist weder eine erweiterbare andröd/ifun App für den RP6 bekannt,
...
> trotz aller Ankündigungen zume Thema Remote Control per Wifi.

Das Modul gibts doch erst kurz und da war auch noch Sommer ...
Remotrol wird nur von zwei drei Hobbyanwendern in der Freizeit entwickelt... das des nicht in 2 monaten fertig wird ist doch klar :rolleyes:


> CT-Bot

Der c't Bot hat ja sogar nur einen einzelnen ATMEGA32 und das WLAN Modul was es dafür gibt ist auch nur eine seriell-WLAN Brücke und die kostet mit Bauteilen und Platine zum selbst löten 170 Euro extra ohne das man da noch ne programmierbare CPU dabei hätte - OK ist auch von 2006 oder so....
Es gibt zig Roboterprojekte die nur mit AVRs arbeiten und damit gut laufen.
Der RP6 kann da komplexer werden weil recht einfach mehrere ATMEGAs draufgebaut werden können.
Nen ARM7 oder sowas bringt doch keinen echten Vorteil - damit kannste auch nix reissen was number crunching anbelangt.
Dann entweder gleich was richtig dickes draufbauen oder auf nen Host PC auslagern.


Wenn es da irgendeine tolle Fernsteuerungssoftware für den c't Bot gibt (?) und die wirklich so toll ist wie Du sagst und das da alles völlig problemlos läuft - na dann dürfte es ja möglich sein die Software von der einen auf die andere Plattform zu portieren.



> Ein einfaches Netzteilboard mit Max232, Displayport und USB Host für
> Standalone Betrieb des M256 würde vermutlich mehr Käufer ansprechen

Das kann man ja ggf. auf dieselbe Platine packen und alles optional bestückbar machen.
Wenns jemand nicht braucht lötet ers eben nicht drauf.
Formfaktor genauso wie die Erweiterungsmodule - dann kann mans einfach unten drunter schrauben (ohne RP6).

Die Steckverbinder kann man ja zumindest teilweise mit mehreren Modulen kompatibel halten die pinbelegungen
werden wohl recht ähnlich sein
(ggf. mit paar Steckbrücken oder so wenn irgendwo was nicht so gut passt).

RolfD
08.11.2012, 01:56
Na denn ma los, statt ellenlange posts lieber Software bauen ;-)

Spar dir deine ****** Sprüche...
https://www.roboternetz.de/community/threads/58790-Projekt-FreeRTos-auf-RP6

>Nen ARM7 oder sowas bringt doch keinen echten Vorteil - damit kannste auch nix reissen was number crunching anbelangt.

http://web.eecs.umich.edu/~panalyzer/pdfs/ARM_doc.pdf

Kleine Arm7/9 Prozesoren sind üblicher Weise mit dem 4-10 Fachen Takt und voller 32 Bit Architektur ausgestattet, das allein verspricht eine min. 8 bis 100 fache Leistung gegenüber einem AVR Prozessor.
Man rechnet bei ARM7 mit 0.95 MIPS/MHz (32 Bit) und ARM9 mit ca. 1,1 MIPS/MHz (32 Bit), ein AVR hat bestenfalls 1 MIPS/MHz (8 Bit). ARM Prozessoren.. selbst die einfachen wie NXP2138 laufen mit min. 60 MHz und normal über 200 MHz statt bestenfalls 20 MHZ wie der AVR. AVR9 CPUs sind sogar Linux fähig.
Wieviel Numbercrunching .. oder Beispiele für deine falsche Aussage ... sollens denn noch sein?

>Wenn es da irgendeine tolle Fernsteuerungssoftware für den c't Bot gibt (?) und die wirklich so toll ist wie Du sagst und das da alles völlig problemlos läuft - na dann dürfte es ja möglich sein die Software von der einen auf die andere Plattform zu portieren.

http://www.heise.de/ct/projekte/machmit/ctbot/wiki/ct-Bot-Software
Ja dann fang an...

>> Ein einfaches Netzteilboard mit Max232, Displayport und USB Host für Standalone Betrieb des M256 würde vermutlich mehr Käufer ansprechen
>Das kann man ja ggf. auf dieselbe Platine packen und alles optional bestückbar machen.

Richtig... kann man.. wenn man vorher drüber nachdenkt und ellenlange Posts baut.
In dem Sinne...
LG Rolf

fabqu
08.11.2012, 07:10
Mann, Leute!!!
Kriegt euch mal wieder ein! Wir wollen hier bitte KONSTRUKTIV über Hardwareerweiterungen ZUR M256 (siehe Thread-Titel) sprechen.

Vorschlag @Rolf: 1. Kannst du mir näheres zu deinem USB-Host geben? Wie stellst du dir das vor? Was benötigt man dafür? Was soll das leisten?
2. Können wir das Thema ARM7/9 dann auch langsam angehen? Ab 6.Dez habe ich etwas mehr Zeit, da könnte ich in EAGLE einiges hinbekommen, wenn uns bis dahin klar ist, was wir wollen/brauchen.

Vorschlag @Rest: Mir schwebte hier eine reine Spielerei vor. Für mich ist der RP6 nichts weiter, als eine spielerische Lernhilfe zum Erlernen von Elektronik und Programmierung in C und LabView. Mehr nicht. Daher stehe ich auf Sachen wir NE555-Berührungssensoren, CNY70-Linienfinder und das SnakeVision.
Da ich diese neue Hardwarekomponente jedoch nicht für mich mache (ich habe sowas schon...) bringt mir bitte KONKRETE VORSCHLÄGE, was noch drauf soll.

BITTE: Keine Religionsfragen mehr zum AVR-ARM7-Dilemma :D

Danke euch.
Schönen - entspannten - Tag noch an alle.

RolfD
08.11.2012, 08:01
Also zu deinem Vorschlag 1.
Google mal "usb host chip" und guck dir die ersten beiden Links an... einer von FTDI und einer von Maxim.
Man baucht nix ausser einem passendem Chip und Software.
Was damit möglich ist steht bei "Key Features" und "Aplikation/Uses".... beim Maxim Chip MAX3421E.

Aber es macht wenig Sinn, z.B. eine 2 Mio Pixel cam per USB ans System anzuschließen wenn die Daten JEDEN Prozessor der RP6 Reihe gnadenlos überfordert. Dann wären aber zumindest billige Wlan Dongels, Cams, Speichersticks, Bluetooth und was weis ich alles möglich...

Einfache Schaltungen probiert man wirklich besser auf einem Steckbrett oder später auf dem Ex-Board aus.. statt auf einer geätzten, lackierten, bedruckten zweiseitigen Platine. Und da ich dein Vorschlag 2 auch beachte, endet der Post dann hier...
Es ist übrigends keine Religionsfrage.. sondern eine Knowhow Frage... aber lassen wir das... ich halt mich zukünftig dazu bedeckt.
LG Rolf

Nachtrag: Ich hab für solche Spielereien übrigends ein NetIO Board von Polin mit 644 CPU und kleinem Steckbrett hier liegen.. kostet nur 10% eines RP6 bzw. die hälfte einer M32 und rennt mit 16 bzw. 22 MHz. Das Addon Board dazu kostet mal grade 12 Euro und da ist neben einem Kartenleser, IR-Empfänger und LCDport sogar Platz um ein ne555 drauf zu klatschen... Aber macht was ihr für richtig haltet... ich hab ja keine Ahnung .. und sonst alles was ich brauche :)

fabqu
08.11.2012, 10:02
Hab mir den MAX3421E gerade angesehen, sieht interessant aus. Und außer USB, uC und 3,3V braucht der ja nix, oder?
Software eben... sowie MOSI und MISO. Kann man die GPIOs denn tatsächlich für eigene Zwecke nutzen?

Das einzige Problem, das ich sehe, sind dann die 3,3V. Versorgung wäre kein problem, aber es besteht die Gefahr, dass jemand die für den RP6 "normalen" 5V auf die IOs draufhaut. Hält der Chip das aus?

fabqu
08.11.2012, 17:42
HIER (http://datasheets.maximintegrated.com/en/ds/MAX3421EVKIT-1.pdf)habe ich mal ein nettes Datenblatt zu einem Maxim-Eval-Kit gefunden.
Auf Seite 6 wäre quasi die Schaltung, die wir hier bräuchten. Natürlich ohne Schnickschnack wie LEDs und Taster, denke ich mal. Die GPIOs kann man ja auf Pins führen.
Meine Fragen: Was sollen auf Seite 6 die Sachen an den Pins 26 und 27? Brauchen wir die?
Und kann man den in den I2C mit einbinden? Auf welchen Pins?

Grüße

EDIT: An Pin 26/27 hängt der 12MHz Quarz... Wer lesen kann ist klar im Vorteil ;)

fabqu
09.11.2012, 15:45
Ich habe zwar noch keine ANgebote eingeholt oder so, aber für 5 Platinen, zwei Layer, mit Dukos & Co zahlt man pro Platine "nur" etwa 25 Euro. Finde ich nciht wirklich viel! Und es wird natürlich billiger, wenn man mehr bestellt. 5 ist aber häufig das Minimum.
Gibts denn sonst keine Ideen, was da noch so drauf könnte?
Oder ist hier im Forum grad bissl tote Hose?
Man könnte die Platine z.B. um 2,7cm verlängern und ein Bumper-Board mit drauf machen, mit 2 Bumpern und 2 Sharp GP2Dxxx:
23673
Und in den trapezförmigen Ausschnitt, der vorne an der Platine anfällt, könnte man ein kleines CNY70-Liniensucherboard reinsetzen.
Dann müsste aber diese Dinge halt nachträglich jeder selbst aussägen :D

@Dirk: Soll ich deine Hardware für den part Orientierung mal übernehmen?

Dirk
09.11.2012, 18:17
@fabqu:
Zu dem Preis müßten sich ja doch einige Interessenten für so eine Platine finden! Also: Machbar. Oder?

Die Hardware der Orientierung-Platine können wir gern übernehmen. Preislich sind das sicher die günstigsten Sensoren. Leider hat das Kompass-Modul HDMM01 nur 2 Achsen, was die Neigungskorrektur per Software etwas mühsam macht: Man braucht dafür eigentlich 3 Achsen.
Für unsere Neuentwicklung würde ich daher etwas anderes vorschlagen: Ein "LSM303DLM 3D Kompass und Beschleunigungssensor Modul" (http://www.watterott.com/de/LSM303DLM-3D-Compass-and-Accelerometer). Es besteht aus 3-Achsen Kompass und 3-Achsen Beschleunigungssensor und ersetzt damit den HDMM01 und den 3D-BS, den ich genommen hatte, weil sie preisgünstig sind. Der Kombisensor ist zwar mit 28,51 € nicht so billig, aber besser als HDMM01 und 3D-BS zusammen. Zudem nimmt er beim Platinenlayout nicht so viel Platz weg und braucht einfach nur VDD, GND, SCL, SDA ohne Pegelwandler.
Einverstanden?
Was den 3,3V-I2C-Slave-Anschluss angeht, muss der natürlich nicht sein. ABER: Er ist mit seinen 7 Pins so gestrickt, dass man auch noch einen 3-Achsen-Gyro (http://www.watterott.com/de/Gyro-ITG-3200-Breakout) direkt anstecken KÖNNTE. Ganz nette Option ...! Man hätte dann eine 9DOF IMU.

fabqu
11.11.2012, 13:37
Ich werde kommende Woche, wenn ich's schaffe, mal das erste Board als Vorschlag hier rein stellen.
was ich versuche umzusetzen:
4 LEDs
4 buttons
beeper
Den Vorschlag von Rolf mit dem USB-Host
eigene stromversorgung
8 servos
8 Transistoren mit uln2803
2 srf02
tcn75 temperatursensor
die Idee vom Dirk mit den umgebungssensoren (die neue, etwas teurere Version)
Außerdem kommen zwei Platinen dran, die man dann quasi abbrechen kann: eine mit einigen cny70 für Liniensucher und eine für zwei Bumper und zwei Sharps.
natürlich xbus und hoffentlich auch den usrbus ;)

Ich hoffe, ich hab grad nx vergessen.
und vor allem hoffe ich, das geht alles drauf.
dann könnte man mal pro forma die Platine bei 2-3 platinenherstellern Anfragen, was die in der Herstellung kosten würde. Dann haben wir denke ich einen Anhaltspunkt.

Viele grüße
fabian

Ps: ich würde mich freuen, wenn sich noch ein paar mehr Leute einbringen. Das bedeutet natürlich nicht, dass sich jeder, der sich einbringt, auch an den kosten beteiligen muss! Das können wir ja diskutieren, wenn es soweit ist.

Dirk
11.11.2012, 15:07
Hallo fabian,

wie machst du das auf der Platine mit der Verbindung zur M256?

Nimmst du direkt da an der Hinterkante, wo bei der M256 die 4 Wannenstecker sind, auch 4 Wannenstecker (bzw. da ist ja noch einer (UART_SPI1/T5) hinter dem Poti und der ADC_IO1-Stecker, so dass es ja insg. 6 sind!)? Dann würde man ja mit 4 bis 6 Flachkabeln mit Steckern zur M256 verbinden? Das ist ja ganz schön happig!

Oder wie machst du das?

fabqu
11.11.2012, 16:40
GUTE FRAGE!!!
Sinnvoll wäre es denke ich schon, die Stecker hinten zu plazieren. Das wären dann vier Stück:
IO_PWM/T0/T1 (8 IOs)
IO_PWM/T2/T3 (8 IOs, davon 2 ADCs)
ADC_IO2/CMP (7 IOs, davon 5 ADCs)
UART_SPI2/T4 (8 IOs)

Aber dafür müsste ich gleich mal wissen, welcher Stecker für was geeignet wäre...
Welchen für die Servos? Damit könnte man mal anfangen. Nimmt man die vorhandene M32-Servo-Lib, oder macht man was neues für die M256 mit PWMs? Gleich den IO_PWM/T0/T1? Würde doch am meisten Sinn machen.
Den UART_SPI2/T4 würde ich für den ULN2803 nehmen.
Dann könnte man mit dem IO_PWM/T2/T3 die vier Taster abfragen (mit Widerständen wie bei der M32 mit einem ADC) und 4 LEDs steuern sowie den Beeper und einen leistungsstarkern Transistor zum Abschalten von größeren Verbrauchern wie den Servos, einer Kamera oder so. Den letzten Pin nimmt man zum Messen der Akkuspannung vom Zweitakku, genau wie bei der Base.
ADC_IO2/CMP könnte man für 5 CNY70s nutzen, samt Schalter.
Gibts sonst noch Vorschläge, was wohin soll?

@Rolf:
Ich bin noch nicht ganz in dem USB-Host-Thema drin. Aber viel braucht das Ding ja nicht... Wie genau das aussieht, muss ich erst noch rausfinden. Eigentlich benötigt man ja erst mal nur +/- sowie SPI, oder? Und eben ne USB-Buchse!?!?!?

Hier mal ein Bild der M256, damit jeder weiß, wo welcher Stecker liegt:
23705

ex535
11.11.2012, 16:46
Hallo Fabian,

ich bin dabei.
Auch wenn ich nicht zu dem RP6 machen kann.
Leider hat mich das raspberry pi Board zur Zeit in der Mangel....grins

Gruß
Kurt

Dirk
11.11.2012, 18:53
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 ... ;)

fabqu
11.11.2012, 20:09
Uiuiuiuiui...
:confused:
Das wird wohl schwerer als gedacht.
Mal sehen ;)

Xenergy
11.11.2012, 20:48
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.

fabqu
11.11.2012, 21:12
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!

fabqu
12.11.2012, 09:31
@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

Dirk
12.11.2012, 19:41
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.

fabqu
12.11.2012, 21:02
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

Dirk
12.11.2012, 21:10
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 ... :)

RolfD
12.11.2012, 21:45
Hi...
wie wärs denn als Servo Unit damit:
http://www.pololu.com/catalog/product/280
oder damit:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_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

Dirk
13.11.2012, 03:07
RolfD:
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.
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.

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.

fabqu
13.11.2012, 07:01
Dann halte ich aber dagegen:
Wenn man ein eigenes Controllerboard bauen möchte, also ein aktives Board, kann man genausogut auch einfach die M32 anstöpseln. Die kann 8 Servos steuern und mit der neuen Slave-Lib gehts glaube ich auch ganz gut von der M256 aus.
Die Idee ist prinzipiell super, aber wie gesagt: Wer möchte (mehr) Geld für ein Modul ausgeben, das vielleicht schon zu Hause rumliegt? Samt Bootloader, fertigen Programmen, weiteren Funktionen und schon fertig gelötet!

Aber eigentlich will ich die Idee hier nicht beschneiden.
Wenn die Allgemeinheit das will, dann bau ichs drauf. Man braucht dann aber jemanden, der sich um das Programm und um einen Loader kümmert.
Und wenn schon ein uC auf der Platine sitzt, brauchen wir sicher keine weiteren Steckverbinder als den I2C, oder? Denn dann kann der auch gleich alles andere (Beeper, LEDs, blabla) übernehmen. Wobei wir dann wieder bei einer M32-Kopie sind - irgendwie.

fabqu
13.11.2012, 09:39
@Dirk:
Stell ich mich so doof an, oder gibts zu deinem Kompass-Vorschlag kein Datenblatt?
http://www.watterott.com/de/LSM303DLM-3D-Compass-and-Accelerometer

Ich bräuchte Gehäusemaße und Pinbelegung... Aber ich finde da nur etwas zum Chip, nicht zum Trägerboard.

EDIT: Soll ich mich denn eigentlich auch um das GPS und den 3,3V-I2C kümmern? Das wäre denke ich noch drinnen.
Das GPS braucht ja 5V, GND und RS232, sonst nix!?
Und für die 3,3V brauchts zwei Transistoren und einen 3,3V-Regler. Sonst auch nix!????! Dann hätte man die von dir beschriebene Option, den Gyro zu verwenden. Mit 50 Euro ists aber absolut kein Schnäppchen.
Aber lieber 3,3V-I2C haben und nicht brauchen, als brauchen und nicht haben :D


EDIT2:
Ist das CNY70, wie im Bild, das richtige? Es gibt doch irgendwie zwei Hersteller, und der eine hat eine andere Pinbelegung als der andere... man schaut von oben auf die LEDs, dann ist rechts die Markierung und oben und unten sind die Einkerbungen.
23717

Dirk
13.11.2012, 12:42
@Fabian:
Das haben die bei Watterott wohl gelöscht,- und ich habe es auch nicht. Vielleicht kannst du um Zusendung mindestens der Platinenbelegung und -größe bitten!?
Das GPS-Modul, das ich benutzt hatte, braucht 3,3V Versorgungsspannung, TX ist 5V-TTL-kompatibel, RX muss (falls überhaupt genutzt) über einen Spannungsteiler an 5V angepaßt werden (wie in meinem Schaltplan zu sehen). RS232 (also z.B. ein MAX232) wird NICHT benötigt, da RX/TX 3,3V-TTL-Pegel haben. Auf der Platine braucht man dann eigentlich nur einen 5-poligen Steckkontakt für das GPS-Modul (VCC evtl. schaltbar, da das Modul dauerhaft 20mA wegzieht). Auf der Platine müßte man dann eine Verbindung zu einem UART (RX/TX) herstellen.
Ja, ich weiß, dass es bei den CNY70 zwei Pin-Varianten gibt. Da ich nicht zuhause bin, kann ich gerade nicht nachsehen.

RolfD
13.11.2012, 13:23
@Fabqu & Dirk
Also ich meinte schon explizit ein entsprechend fertig konfektionierten Servokontroller und kein weiteres freiprogrammierbares Subsystem.
http://www.adafruit.com/products/815
Sowas muss auch nicht viel Platz beanspruchen und man beachte auch die Preise für sowas! Zudem verkauft sich so ein Chip sicher auch alleine ohne das Board...
Schaut euch doch mal bitte die Relationen an... 1/3 des Boards belegen die Anschlußpinns, ein weiteres drittel bei uns vermutlich unnötige Resistoren und Anschluß udn Lötpads und ein letztes drittel vielleicht der Chip mit bissel Hühnerfutter.
Der Ansatz mit dem AT90S2313 Kontroller vom RNBFRA Board scheint mir schon ein sehr guter Vorschlag zu sein.

Mir persönlich reichen aber die Möglichkeiten Servos am RP6 anzuschließen da ich nur einen oder zwei für Sonar-Radar bzw. IR-Radar brauche. Ein Aktor wie Beispielsweise ein Arm selbst zu bauen ist mir mechanisch zu kompliziert, fertige Arme besitzen meist bereits schon die Steuerelektronik. Ich wüsste also nicht was ich mit so viel Servos am RP6 anfangen soll.
LG Rolf

fabqu
13.11.2012, 14:11
Das wäre möglich.
Auf dem Board sitzt ein 16fach LED-Triber für I2C, den könnte man dazu nehmen.
Momentan habe ich das mit den Servos zwar schon einmal fertig, aber das muss ja nicht die letztendliche Lösung sein.
Gibts Pro oder Contra zur Lösung mit dem LED-Treiber oder für eine Softwarelösung seitens der M256???
Wer präferiert hier was???

RolfD
13.11.2012, 15:14
@Fabqu
Also du bist mir was schnell "fertig" ... ich bin immer noch am Informationen und Anregungen zusammen suchen.. aber ich finds klasse das du dich da so reinhängst. Das ist das eine... das andere - Wir haben die Möglichkeit ein sehr gutes IO Board für den RP6 zu entwickeln, ich würde die Funktionalität nicht nur auf die M256 begrenzen wollen weil eben nicht alle eine M256 haben. Hab ich aber auch schon mehrfach gesagt.

Ich preferiere daher für Servo Anschlüsse die Lösung mit dem I2C PWM LED Treiber Chip an erster Stelle.. oder einem AT90S2313 Kontroller vom RNBFRA Board an zweiter Stelle. Beide Lösungen wären auch für andere Boards interssant, erste benötigt aber nich mal Zusatzsoftware eines AT90S2313. Es mag da aber auch noch weitere Alternativen geben. Die IO Pinnchen der Main CPU da zu nutzen (verschwenden) find ich nun nicht so die gute Idee - auch wenn es sich technisch anbietet weil der Mega256 so viele PWMs hat. Es sind aber eben auch nicht nur PWMs... sollte man nicht vergessen...

Für bot2bot Kommunikation fände ich ein Anschlußplatz für ein RFM12 noch interssant. Das Wifi auf dem M256 ist zwar ok für die Kommunikation zwichen PC und Bot(s) aber um mal wieder den Schwarmbot Gedanken von Dirk aufzugreifen, braucht man eigentlich eine _preiswerte_ Möglichkeit damit sich 2 oder mehr Bots untereinander verständigen können. Ich halte das RFM12 dafür am besten geeignet, zumal es mit knappen 5 Euro/Stück sehr preiswert ist. Ob man da die SMD Variante oder die Steckpfostenversion nimmt ist eher eine design Frage. Ich würde aber in jedem Fall ein solches Board vorsehen. Das Board ist zudem gut dokumentiert und es gibt Software dafür. Für Leute denen die Reichweite nicht ausreicht gibts auch das RFM12BP, allerdings müsste man das softwareseitig dämpfen da 500mW für den Hausgebrauch doch was viel Sendeleistung ist. Dies hat auch andere Anschlußmaße.
http://www.mikrocontroller.net/articles/RFM12
(leider hat das roboternetz.de noch kein eigenen Artikel über das Funkmodul)
Andere Borads als das RFM12 würden natürlich auch gehen, vorausgesetzt sie bieten dieses Preis/Leistungsverhältnis. Mir ist nur kein anderes bekannt (ausser der zu teuren Xbee). GGf. kann man auch die Antenne direkt als Leiterbahn Spirale vorsehen, (http://www.hoperf.com/upload/rf/ANTENNAS_MODULE.pdf) ansonsten benötigt man als Minimalconfig nur die üblichen i2c Leitungen auf 3,3v angepasst und 3,3v Vcc, ich würds allerdings voll verdrahten. Also mit Int und Sel Leitung.

Wobei ich grade bei Mikrocontroller.net sehe:
Achtung nicht alle Module sind für 5V geeignet, alle Typen mit "B" am Ende sind nur für 3,3V. Es gibt da also Unterschiede...
http://www.hoperf.com/rf/fsk/20.htm
Und da die Infos...
LG Rolf

fabqu
13.11.2012, 16:07
Hier mal die Daten vom Kompass:
Größe: 0,5 x 0,9 inch
http://www.pololu.com/catalog/product/1273/specs

Pinbelegung:
http://www.pololu.com/picture/view/0J3165
http://www.pololu.com/picture/view/0J3166

Soviel dazu.
Nun zum Thema:
Ich habe bis jetzt schon einiges an Anregungen, ich schreibs mal zusammen:
1. SM303DLM 3D Kompass und Beschleunigungssensor (http://www.watterott.com/de/LSM303DLM-3D-Compass-and-Accelerometer) (Braucht I2C, 5V, GND, kostet ca. 30,- )
2. Navilock NL-552ETTL GPS (http://www.elv.de/navilock-nl-552ettl-engine-modul.html) (benötigt TX, RX mit Spannungsteiler für 5V, 3,3V und GND, kostet ca. 35,- )
3. MAX3421E USB Peripheral/Host Controller with SPI Interface (http://www.maximintegrated.com/datasheet/index.mvp/id/3639) (benötigt USB-Buchse, SPI zwischen 1,4 und 3,6V, 5V und GND, kostet ca. ziemlich wenig!? )
4. Servo-Verteiler entweder für M256-Software-PWM-Lösung oder mit PCA9685-16-LED-Controller (http://www.nxp.com/documents/data_sheet/PCA9685.pdf) (braucht I2C, 5V und GND, kostet !? )
5. 3,3V-Regler mit 3,3V-I2C (siehe Dirks Projekt HIER (http://www.rn-wissen.de/index.php/RP6v2_Orientierung) und HIER (https://www.roboternetz.de/community/threads/59387-RP6%28v2%29-Experimentierplatine-Orientierung))
6. wenn 3,3V-I2C, dann auch möglich:Gyro ITG-3200 Breakout (http://www.watterott.com/de/Gyro-ITG-3200-Breakout) (braucht I2C auf 3,3V, 3,3V und GND, kostet aber knappe 50,- )
7. eigene Spannungsversorgung 5V on Board wäre sicherlich wünschenswert. Dann auch gleich verpolungssicher, mit Sicherung.
8. Beeper
9. 4 Buttons
10. 8 Transistoren zum Schalten von irgendwelchen Verbrauchern
11. RFM12-WLAN-Modul, siehe oben. Ist klein, braucht nicht viel (I2C), nette Idee! Mit IR-bot2bot-Kommunikation kann man ja ned die Welt reißen :D
12. TCN75-Temperaturfühler für I2C, siehe M128
13. Platzfüller (SnakeVision-Anschluss, 3-7facher CNY70-Anschluss, Vorbereiteter Spannungsteiler für alles Mögliche, NE555, ... )

Nun mal im Detail:
1. fände ich super, kostet nicht die Welt, braucht quasi keinen Platz (kann man ja hochkant stecken) und keine Pins, da I2C
2. Naja, kann man geteilter Meinung sein. Theoretisch bräuchte man dann halt auch RS232 mit einer Art Pegelwandler für RX und 3,3V Anschluss. Letzteren haben wir ja aber evtl sowieso.
3. Ich werde erst mal versuchen, diesen Baustein "auszulagern", das heißt, ihn auf ein kleines Nebenboard zu quetschen (das z.B. vorne im Trapezförmigen Ausschnitt platz hätte), aber ich finde, auf die Platine selbst sollte er aus Platzgründen nicht.
MAL NE FRAGE DAZU: Es gibt für 8 Euro einen WLAN-USB-Stick, hier z.B. (http://www.amazon.de/gp/product/B006Q35000/ref=ox_sc_act_title_3?ie=UTF8&smid=A1YJU9RIMEUNF2). Kann man sowas mit dem Host nutzen? Oder sind da Treiber erforderlich???
4. Servos fände ich einfach klasse. Wie wirs machen, weiß ich noch nicht, ich probier das morgen mal mit dem I2C-Chip aus, habe ihn nur leider nicht in meiner EAGLE-Lib. Also muss ich ihn erst suchen oder - schlimmer! - erst selbst erstellen.
5. Ist denke ich immer brauchbar!!! Sind nur 3 ICs (ein 3,3V-Regler und zwei Transistoren). Da sie nur Infos weitergeben, reichen kleinste SMD-Transistoren.
6. Man kann ja wie beim Dirk die 3,3V-I2C-Pins so anordnen, dass man dieses Ding einfach draufstecken kann. Dann kann jeder selbst entscheiden! 50 Euro find ich aber zu happig für dieses Ding.
7. Das benötigt halt wirklich viel Platz, alleine die Sicherung, die Diode (gegen Verpolung liegt sie hinter der Sicherung von + auf GND. Wird der Akku falsch herum angeschlossen, geht sie durch und die Sicherung verbrutzelt) und der On-Off-Schalter brauchen ne Menge Platz. Daher müsste man sich überlegen, ob man das will, oder ob man alles übers +5V-Boardnetz der Hauptplatine macht.
8. -10. jaja, ich spiel halt gern!
11. Sau geile Idee! Wenn es nicht allzuviel Platz braucht, werd ich das gleich morgen mal ansehen. Gleiches Problem wie bei 4.: Keine Lib für EAGLE... :(
12. Naja, da wir erstmal die M128 nicht mit der M256 nutzen können, fänd ichs gut. Nimmt auch keinen platz weg, da ich sie momentan unter der Sicherung und der Diode platziert hab.
13. analog zu 8.-10. :D

Was wir machen könnten:
Eine Umfrage wie für die M256: Jeder kann drei Punkte vergeben, wie er will. Dann würden wir sehen, was die Leute für wichtiger erachten und was nicht.
Natürlich muss das unverbindlich sein, damit nicht jeder, der abstimmt, denkt, er müsse das dann auch bezahlen.

Viele Grüße!

RolfD
13.11.2012, 17:37
Zu 3. ja man könnte dann ein Wlan Modul.. oder ein Bluetooth.. oder ein USB Speicherstick .. oder sonst was da rein schubsen aber du bräuchtest für alles eben auch passende Treiber auf der Prozessorseite. Im Falle eines Speichersticks z.B. eben ein Treiber für das FAT Dateisystem oder andere Filesysteme. Aber auch das ist eine eigene Welt, vieles wird in embeded Linux z.B. supportet, ich sehe aber nicht wie.. oder wer .. ein Wlan Treiber auf ein ützeligen Atmega256 umcoden soll... USB ist nur eine Schnittstelle wie RS232, SATA, CAN, RS485 oder I2C ...
Zu 5. Auch für Pegelumsetzer gibts fertige Lösungen... als Beispiel nur der MAX3003E.
Zu 6. Ein Gyro ist ne feine Sache, aber ich denke für ein Kettenbot doch weit übers Ziel hinaus geschossen. Ein einfacher kleiner preiswerter HDMM01 reicht für 90% aller Fälle aus. Vielleicht besteht die Möglichkeit beides.. je alternativ einzubauen?
Zu 7. wer das Board als Aufsatz eines RP6 nutzt, braucht kein Gebemsel mit extra 5v Netzteil, Schalter, Sicherung usw... wer die Karte als Standalone (ohne RP6) mit der M256 nutzen will, wird jedoch dankbar dafür sein. Ein vollwertigen Ersatz für das Baseboard ist das jedoch immer noch nicht, da ja dann immer noch die Motortreiber des Baseboards fehlen. Ich würde also eher von einer Nutzung mit Baseboard ausgehen.. und da ist wie gesagt kein extra Netzteil nötig. 3,3 V wären evtl. aber schon brauchbar. Da langen aber auch evtl. 2-3 Dioden in Durchlassrichtung.
Zu 8-10. Wie wärs statt Tastern mit einem Anschluß für ein Keypad mit Widerständen? Das belegt genau 1 AD Port und liefert dir üblicher Weise 16 Keys. http://www.miniinthebox.com/de/4-x-4-zubehoer-bord-matrix-tasten-gesteuert-adc-ad-port-tastatur-ad-tastatur_p394563.html
Die Schaltung/Idee gibts so quasi auch schon auf der M32, wenn ich mich nicht irre.
Solltest du das PWM IC verwenden, kannst du dessen Ports ( die man vermutlich nicht alle als Servos braucht ) auch als LED Port verwenden. PWM 0% oder PWM100% entspricht ja auch einer 0 oder 1.
Zu 11. Du brauchst für das SMD Modul nur Lötpads an die richtigen Stellen setzen, da sist normales Rastermaß, für die Steckversion reicht ne Pfostenleiste.
Zu 12. Temp-Fühler sind immer gut... und wenns nur ist um die Stauhitze zwischen den Platinen zu messen... die gibts aber auch als i2c oder singlewire Device. Mit dem RFM12 Device kann man übrigends so weit ich weis - wenn man die richtig einstellt - auch Außenfühler von Wetterstationen im 433Mhz Band usw. auslesen. Da dürfte es nur schwer sein an Docu zu kommen um die Daten zu decodieren. Ob das auf einem Bot sinn macht... keine Ahnung.

Evtl. könnte man noch ein PIR Modul vorsehen, also einen Infrarot Bewegungsmelder mit Fresnell Linse. Die gibts auch als Fertigmodule. Die Frage ist nur, braucht man sowas wenn man schon ein Snake Modul hat.. bzw. ergänzen die sich ggf. sogar.
http://www.conrad.de/ce/de/product/172500/SMD-PIR-Bewegungsmelder-Hygrosens-PIR-T1-M1-L0-Betriebsspannung-3-12-V14-mA-Oeffnungswinkel-120-Reichweite-max/0231043&ref=list
Allerdings sind die nicht auf der Platine direkt montierbar, da muss man mit ner mitgelieferten Kabelbrücke arbeiten.

Ich würde so konfiguriert 2 Boards nehmen. wenn sie so ausgelegt sind, das sie auch mit einem normalen i2c Bus (und vielleicht ein paar IO Leitungen) und z.B. auch an der M32/M128 zu betreiben sind. Das Navilock Modul ist als Zusatzmodul sicher nett aber ich brauch es nicht. GPS ist zu grob um damit indoor zu navigieren - mal abgesehen davon, das GPS indoor eh nur selten wirklich funktioniert. Und für outdoor Betrieb ist weder das Fahrwerk des RP6, noch sein Energievorrat ausgelegt. Da müsste man schon ne Mopedbatterie mitschleifen damit sich das lohnt... die kleinste Auflösung ist nämlich nur ca. 5m und selbst die kann noch je nach Satellitenstand und Empfangsbedingungen um mehrere zig Meter pro Minute "wandern". Um das mal klar zu sagen, man würde mit GPS in einem großen Zimmer nicht mal durch eine Tür finden, man könnte nur mit Glück gegen die richtige Wand dotzen... vorausgesetzt das Zimmer hat kein Dach...

Evtl. wären an allen 4 Ecken des Boards IR-Empfänger Dioden nett.. die eine CPU auswerten können müsste. Als Vorbereitung für ein IR Orientierungssystem mit im Raum stehenden IR Baken. Wie das genau aussehen müsste weis ich noch nicht. Wenn aber 3 oder 4 IR Baken Impulse einer zu messenden Frequenz ausstrahlen, müsste der Bot sich auf Grund der Strahlungsfrequenz, Richtung und Intensität orientieren können. Ob das praktisch funktioniert weis ich leider nicht, es gehört mit zu meinen Todo's für irgendwann mal das aus zu probieren. Allerdings ist sowas anfällig für Schatten, es stört evtl. andere IR-Vorgänge usw... also da is noch viel zu arbeiten dran bevor man da was planen kann. Eine andere Überlegung dazu von mir ist, ein IR Reciever auf ein Servo zu setzen, dann bräuchte man nur ein Port für IR und einen für PWM und die Richtung ist genauer auszumachen als mit 4 Recievern und Triangulation.
LG Rolf

Dirk
13.11.2012, 21:43
Ich bin verwirrt!
Wir müßten, glaube ich, Entscheidungen treffen:
Fragen:
1. Bauen wir eine Platine zur Montage auf dem RP6 mit M256?
2. Bauen wir eine Platine zum Stand-alone Betrieb der M256 ohne RP6?
3. Bauen wir eine Platine für einen herumfahrenden Roboter?
4. Bauen wir eine Platine überwiegend zum stehenden Betrieb?
5. Bauen wir eine Platine als Ergänzung der M256?
6. Bauen wir eine Platine als Ergänzung zum RP6-System?
7. Bauen wir eine Platine für möglichst viele Funktionen?
8. Bauen wir eine Platine, die dem RP6 beim Zurechtfinden in seiner Welt hilft?
9. Was wollen wir thematisch erreichen?
10. Wollen wir Funktionen on board, für die es zunächst keine Anwendung/kein Hardware-Gegenüber gibt?

Je nach dem, wir wir diese Fragen beantworten, fallen manche Optionen weg.
Beispiel 1: Ein Tastatur-Anschluß spricht für eine stationäre Lösung, also nicht für einen fahrenden Roboter. Das selbe gilt für ein Netzteil.
Beispiel 2: Ein separater Servotreiber (und keine Nutzung der I/O-Ports der M256) spricht für eine Ergänzung des RP6-Systems durch diese Platine und eher nicht für eine Ergänzung der M256 (wofür will man denn dann die PWM-I/O-Ports nutzen? Wenn man - extrem formuliert - alle Funktionen der M256 spart und durch externe Funktionen ersetzt, braucht man die M256 selbst ja nicht mehr.)

Also: Wir brauchen eine Zielsetzung.
Meine Meinung ist:
Das Hauptthema ist die Ergänzung der M256 um sinnvolle Funktionen, die dem RP6-System helfen, sich in der Welt zurecht zu finden und Aufgaben zu erledigen.
Dabei gibt es sicher Funktionen, die sinnvoll darüber hinaus verwendet werden können, aber da müßte man m.E. auswählen.

Was denkt ihr?

RolfD
14.11.2012, 06:57
@Dirk
Warum müssen Optionen denn wegfallen? Gibts Platzprobleme oder sonstige Gründe dafür?
Ich gehe davon aus, das bei einer Geschichte die vielseitig ausgelegt ist, es natürlich immer Dinge gibt die nicht gebraucht werden.

Im Falle der Tastatur entfällt aber bestenfalls ein AD Port... wobei ich auch 4 Taster wie ursprünglich geplant über ein Restistornetzwerk nutzen würde... man spart also nix. Für mich gibts auch kein Unterschied zwischen einer mobilen oder stationären Lösung an Hand der Tasteranzahl. Es wäre natürlich möglich, alternativ 4 Taster an 4 Ports zu hängen... Es geht mir hier um einen einzelnen AD Port für ein externes Keypad, nicht um 16 Keys dem Board.
Schaust du dir die Bots unten auf der Seite http://www.rn-wissen.de/index.php/RNBFRA-Board an, findest du dort auch große Keypads... und die Bots sehen nicht nach einer Fehlkonstruktion aus, oder?

Davon ab wäre aber auch eine eigene i2c Terminalplatine mit Keys, genug LEDs und einem Anschluß für GrafikLCDs und ggf. einem Subprozessor als "Grafikengine" ein schönes Projekt. Dann könnte man sich fummeleien mit externen Keypads sparen.

Gleiches beim Servotreiber... warum soll man die Main CPU unbedingt damit belasten, PWM Impulse zu produzieren wenn solche Aufgaben wunderbar zu deligieren sind? Die PWM Ausgänge sind ja sicherlich z.B. auch als Counter/Int Eingänge oder normale Ports zu verwenden. Davon ab ist das IO-Bord mit Prozessorpwms lediglich eine mechanische Klemmhilfe um Servos anzuschließen, elektrisch macht es absolut nichts. Quasi eine Art Luxusadapter für Servostecker. Und die Servotreiberlösung hat auch noch deutlich mehr pwms.... also was spircht für ein Bord das nur Klemmhilfe ist, wenn man doppelt so viel PWMS ohne Cpu-Pins zu verschwenden haben kann? Braucht man für ne elektisch neutrale Klemmhilfe tatsächlich ein geätztes Board?


Wenn man - extrem formuliert - alle Funktionen der M256 spart und durch externe Funktionen ersetzt, braucht man die M256 selbst ja nicht mehr.

Richtig. Mein Reden. Ich sehe die Funktionalität der M256 im Wlan und in der Tatsache, das mehr Speicher zur Verfügung steht. Man braucht sie also ggf. doch. Aber genau das ist der Punkt - so viel Vorteile darüber hinaus bietet die M256 nicht - habe ich auch schon immer so geschrieben. Die M128 mit einem anderen Bootloader würde bis auf Wlan gleiches bzw. mehr leisten da sie 64K Ram hat. Servos kriege ich aber auch an die M256 angeschlossen, was soll also ein IO Board leisten? Und jetzt komme ich dann auch zu deiner Fragenliste.

Zielsystem sollte ein RP6 mit M256 mit "üblicher Nutzung" sein. Das ist ein autonomer indoor Bot UND eine stationäre Plattform für Versuche. Nicht nur eins von beiden.
Wenn hier nur 2 oder 3 Leute eine Klemmhilfe für Servos brauchen, dann sollen diese 2 oder 3 Leute bestimmen was sonst noch auf das Board drauf kommt. Fertig. Wenn aber Ziel ist (und dafür plädiere ich) eine vielseitige, und von anderen Prozessorboards verwendbare IO Platine entstehen zu lassen, die man in Kleinserienstärke fertigen lassen kann, das muss die Geschichte zum einen zumindest so universell ausgelegt sein, das andere CPU-Boards anschließbar sind. Zum anderen bin ich der Meinung, das die 10 Fragen letztlich jeder für sich selbst beantworten sollte und wir diese Antworten nicht duch unnötige Einschränkungen vorweg nehmen müssen. Es gibt meines Erachtens zumindest bisher keinen Grund, irgendwas streichen oder einschränken zu müssen. Übrigends hat auch die M128 genügend IO Leitungen frei so das sie so ein IO Board ansteuern könnte. Was spricht also dagegen, das IO Board nicht wenigstens auch für M128er auszulegen? Etwa nur die Software der CCPro? Das Einzige Board für den RP6 mit mehr als 8 K Ram soll ausgeschlossen werden weil bisher es hier keiner hinbekommen hat trotz Doku das Ding in ASM zu programmieren/erweitern oder den Bootloader zu tauschen?

Ich würde mir das an eurer Stelle noch mal gut überlegen... letztlich lohnt sich der Aufwand für so ein Board nur wenn man auch genug davon verkauft. Je mehr man einschränkt, je weniger Leute haben was davon.
LG Rolf

fabqu
14.11.2012, 07:22
Hi ihr zwei, guten Morgen erst mal!
jaja, ich bin mir auch noch nicht sicher, was wir genau anstreben sollen. Einerseits wäre es schön, ein Board zu haben, das der Anschlüsse wegen eben recht schön zur M256 passt - einfach, weil ich diese momentan als einzige nutzen möchte (und base eben). Das trifft aber eben auch nur auf mich und ein paar andere zu.
Somit hat auch Rolf recht, es wäre schön, ein Board zu haben, das mehr kann.

Ich versuche das jetzt einfach mal unter einen hut zu bringen, z.B. (das ist nur EIN Beispiel) dadurch, dass ich mich jetzt entschieden habe, die vier von mir geplanten vier Taster mit Widerständen zu versehen, damit sie mit nur einem ADC-Pin funzen. Dabei steckt man das kleine Button-Brett (10x28mm groß) auf drei Pins (+, -, ADC). Das Button-Brett steht dann also an der vorderen linken Kante der Platine aufrecht, die Buttons zeigen also nach vorne. Kann man mir da folgen??? Somit kann man dieses Button-Brett auch einfach abziehen, und jede beliebige Tastatur anbringen.

Ich versuche also momentan, Dirks Fragen 5, 6, 7, 8 und 10 mit einem JA zu beantworten :D

Natürlich wird uns dann irgendwann einmal der Platz ausgehen. Gestern habe ich den Kompass aus Platzgründen senkrecht stehend am Rand der Platine angebracht - wird bestimmt technisch nicht die beste Idee gewesen sein, die ich bisher hatte :) ich gehe mal davon aus, dass der Kompass parallel zum Boden ausgerichtet sein soll.

Dennoch gibts Lösungen, sowas zu designen. Einige Module (GPS z.B.) werden ja ohnehin möglichst weit oben angebracht und nur mit einem Kabel mit der Platine verbunden. Andere kann man über anderen Objekten anordnen, an die man nachträglich nicht mehr hin muss (z.B. über Leitungen... )
Ich tüftle da noch einiges rum, mal sehen, wie wir das hinbekommen.

Um euch mal das Choas vor Augen zu halten, hier ein Bild :D

23726

Links ist die fertige Bumper-Platine (stehend), oben ist das Button-Brett.
Auf der Platine sind schon Stromversorgung (fraglich, ob die bleibt), Servos für M256, TCN75, NE555 (:D ) und ULN2803.
Ein kleines, dreifaches CNY70-Board passt gerade in den Ausschnitt vorne rein, aber das kommt evtl wieder raus.


EDIT:
Noch ne Frage: Stört es jemanden, wenn ich auf die vier Schraublöcher (siehe Foto) verzichte???

RolfD
14.11.2012, 07:53
Guten Morgen :)


Noch ne Frage: Stört es jemanden, wenn ich auf die vier Schraublöcher (siehe Foto) verzichte???

Gegenfrage... spricht eigentlich was dagegen, eine Platine zu entwickeln, die über die ganze Länge des Baseboards geht - falls es zu Platzproblemen kommt? Ich meine... wo steht, das Zusatzboards nur halbe Kartenlänge haben dürfen? Ich denke, dann wären auch alle Schraublöcher und Sonderwünsche unter zu bringen. Das aber nur so als Idee nebenbei.

Das Bord sieht doch schon mal gut aus... und da ist noch Platz satt.
LG Rolf

fabqu
14.11.2012, 08:05
Nun ja, dagegen spricht höchstens der Preis, denn Platinenhersteller richten die Preise nach:
- Layer (wir haben zwei, mehr wird sau teuer und mit EAGLE nicht mehr zu realisieren)
- Größe (wir haben hier, mit Bumperplatine und dem oberen Brett 100x124mm) -> Größe ist bei uns der preisbestimmende Part
- Durchkontaktierungen, Material, Genauigkeit, ... das liegt bei uns alles im unteren Kostenbereich, da brauchen wir nicht viel.

Ich designe jetzt mal einen Servoverteiler mit dem I2C-Chip, mal sehen, wie viel Platz der braucht.
Übrigens: Der TCN75 passt auch wunderbar direkt unter den ULN2803 :D wieder was gespart ;)

RolfD
14.11.2012, 11:20
Über welche Kosten reden wir denn nun? "dagegen spricht höchstens der Preis" .. welcher? Gegen welchen als kurzes Board?
Das 4 Lagen Multilayer wenig bringt ist klar aber Strom fließt durchaus um Ecken und Durchkontaktierungen. Also da kann schon noch einiges zusammen geschoben werden. Bis auf die Hauptbefestigungen braucht man eigentlich keine Schraublöcher, die sind mal für 1602 Displays vorgesehen gewesen aber da die Dinger auch alle unterschiedliche Löcher bzw. die M-Platinen sogar Langlöcher zum anpassen haben.... man befestigt am besten oben drauf eine Kunststoffplatte wo man sich letzlich dann eigene Bohrlöcher für Displays, servos und was weis ich noch rein setzt. So meine Erfahrung. Eigentlich reicht eine 3-Bolzen Halterung aus (die zwei vorne und das eine in der Mitte). Ich weis aber nicht ob die M256 genau so gebohrt ist wie die anderen M-Platinen. Na jedenfalls hast du da erst eine Packungsdichte von max. 30-40 %... da geht noch was.
Da scheint nun auch ein Netzteil oder externe Spannungsversorgung geplant zu sein, wenn man tatsächlich vor hat, 8 oder 16 Servos gleichzeitig zu betreiben ist das auch sinnvoll, nur ist der Bot dann nicht mehr autark. Unter Last stehende Servos ziehen locker mal als Blockierstrom 2,5 A und selbst im Arbeitsbereich haben die 1-2 A ... 8*2,5 A sind aber schon 20 Ampere.. ich würd da also eher ein 500W Computernetzteil vorsehen... das dünne Leiterbahn Drähtchen da brennt schon bei 2 Servos unter last durch...

LG Rolf

fabqu
14.11.2012, 11:58
Für die normale Platine, also nennen wir sie mal "halbe RP6-Norm" (112x90mm), ohne viel Blabla, zwei Layern, und Dukos, kostete bei 5 produzierten Platinen eine etwa 20-25 Euro. natürlich ohne Teile!!!
Was es für größere kostet und vor allem für eine doppelt so große, muss ich erst erfragen. Das geht von meiner arbeit aus leider ned.
Aber das kann jeder gerne selbst mal machen:
Googlen nach "Platine herstellen lassen", ein paar Ergebnisse anklicken und eingebe: Maße, zwei Layer, fertig mit Durchkontaktierungen.
Grüße

Dirk
14.11.2012, 14:56
@Rolf & @Fabian:
Ich kann eure Argumente alle gut nachvollziehen. Ich hätte auch gern eine Platine, die "alles" kann und würde die sofort kaufen.
Somit ist es für mich bei diesem Planungsstand fast egal, was noch weg oder dazu kommt: Ich bin eh dabei.

Insofern: Bitte meinen Fragenkatalog nicht falsch verstehen. Er soll keine Kritik sein.

Aber: Wenn ich eine Platine für einen fahrenden Roboter baue, will ich da drauf vor allem die Dinge haben, die thematisch z.B. zur Orientierung hilfreich sind. Das ist eine Einengung des Möglichen, erfüllt dann aber einen konkreten Einsatzzweck. Dazu kann man dann optimieren: Sensoren abschaltbar machen, die nicht gebraucht werden, auf niedrigen Stromverbrauch achten (relevant bei Akkubetrieb). Solch eine Platine würde ich mir wünschen, weil sie passend zu einer Aufgabe zugeschnitten ist.
Rolfs Argument, dass man ja mit der RP6-Plattform auch ganz andere Dinge tun kann, als immer nur herumzufahren, teile ich und mache das auch zu 90%. Für diesen Zweck wünsche ich mir natürlich auch die eierlegende Wollmilchsau-Platine, wenns geht über die ganze RP6-Länge.

Bei unseren Statements merke ich, dass wir (also ich auch) zwischen diesen Polen schwanken.
Mein Statement war nur, dass wir uns entscheiden sollten/könnten. Du, Rolf, hast ja geschrieben, dass wir uns doch quasi gar nicht entscheiden müssen, weil ja noch Platz genug auf der Platine ist.
Aber ist das alles? Für einen fahrenden Bot brauchen wir manches nicht (auch weil es unbenutzt ggf. Strom verbraucht), für einen stehenden RP6 als Experimentier-Plattform für Eingabemedien, Sensoren, Kommunikation und Aktoren können wir von allem nicht genug haben und könnten - überspitzt - auch ein 230V-Netzteil draufsetzen und/oder eine separate Servo-Stromversorgung.

Also: Ich schwanke auch, lasse mich aber gern überraschen, was rauskommt: Ich bin mittlerweile sicher: Es wird was Gutes!

@Fabian: Die nicht genutzten Befestigungslöcher (7 insg.) können wir auf jeden Fall weglassen. Das Kompass-/Beschleunigungssensorboard kann auch senkrecht stehen bleiben: Die Achsen kann man softwaremäßig tauschen. Allerdings dürfen in der Nähe keine magnetisch aktiven Teile sein.
Zum Thema Gyro fällt mir gerade noch ein: Teuer und für einen Raupenbot nicht zwingend notwendig. Richtig! Der sollte steckbar sein, wenn wir ihn als Option wollen, dann gibt es allerdings auch für einen Raupenbot eine Anwendung: Eine kleine Plattform auf dem RP6 bei voller Fahrt mit Hilfe von 2 Servos waagerecht zu halten, ist eine große Herausforderung (Anmerkung: Bei Panzern geschieht das ähnlich so mit der Kanone, die trotz Pitch des Panzers immer auf ein Ziel/Horizont gerichtet bleibt...). Da sehe ich schon einen Wettbewerb mit einem Schnapsglas mit Wasser auf der Plattform!

fabqu
14.11.2012, 15:54
@Dirk:
Danke für die CNY-Sache!
Und ich kann den Kompass wirklich auch hochkant verwenden??? Leuchtet mir irgendwie noch nicht ein, denn dann müsste man sich schwer tun, magnetische Felder der Erde zu messen!?!?!? ODER???

Ich habe heute leider nicht viel geschafft, aber mal sehen wies weiter geht.

An Löchern lasse ich auf jeden Fall die vier üblichen Löcher stehen und auch das unten in der Mitte, solange nicht unbedingt anders nötig.

Grüße


EDIT: Wer das Board für den Kompass (HIER (http://www.pololu.com/catalog/product/1273/specs)) kauft, der hat ja eigentlich schon 1,8V sowie 3V durch das Board...
Wollte wissen, ob man das für den 3,3V-I2C nutzen kann, oder ob der wirklich nur 3,3V-Pegel annimmt?

RolfD
14.11.2012, 16:50
@Fabqu
Das genannte Kompass Board wird durch das hier (http://www.pololu.com/catalog/product/2124) ersetzt...
Clearance: This board is being replaced by the newer, pin-compatible LSM303DLHC carrier (http://www.pololu.com/catalog/product/2124).
Da steht aber auch:

The carrier board includes a low-dropout linear voltage regulator that provides the 3.3 V required by the LSM303, which allows the sensor to be powered from a 2.5–5.5 V supply. The regulator output is available on the VDD pin and can supply almost 150 mA to external devices.
Ich lese daraus, das man an diesem Board 3,3V bei 150mA am VDD Pin abzapfen kann. Eine recht ungewöhnliche Lösung an 3,3V zu kommen aber ok.. warum nicht :)
Zur Lageberechnung des Kompass, es ist einem 3d Kompas absolut egal aus welcher Richtung ein Magnetfeld kommt... es funktioniert ja auch in allen Lagen. Der Punkt ist, richtet man den RP6 nach Norden aus (mit einem anderen Kompass), müsste der Sensor auch Norden feststellen. Ändert man seine Montagelage in irgend eine Richtung, muss man dieses mit einberechnen. Sprich ... sagt der Kompas 45° weil er eben 45° schräg montiert ist, muss man von dem Messwert eben 45° abziehen... damit 0° rauskommt. Mit der Abweichung aus magnetischem und geophysischem Norden macht man es ja quasi genau so. Es ist halt nur blöd bei jeden Messwert erst eine Korrekturberechnung anstellen zu müssen aber meine Güte... so tragisch wär das auch nicht zumal da eh rumgerechnet werden muss.

@Dirk .. hm hm.. da ist schon was dran... Aber eine eierlegende Wollmilchsau wollen und können wir garnicht bauen.
Die Frage ist, wo zieht man da Grenzen? Ich habe oben versucht Grenzen auszuleuchten.. Wie gesagt, als reines M256 IO Board sind ne menge Interessenten aussen vor und gucken in die Röhre. Würde man da ne Forenabstimmung machen, kann ich mir an 3 Fingern abzählen wie die ausgeht.
Ich frage mich eben, ob es wirklich technisch notwendig ist, das nur auf die M256 zu beschneiden - was ich nicht glaube - und was dann sonst der Grund ist, warum es trotzdem geschehen soll. Die Servos bzw. PWMs können es wohl allein nicht sein. Wie ich aufgezeigt habe ist ein RP6 mit 8 Servos energiemäßig recht schnell überfordert und als Montagehilfe für Servosstecker allein braucht man kein "IO Board" für 25 Euronen... sowas lötet man sich aus ein paar Pfostenstecken und Pertinaxresten im nu selbst.
Ich hab es schon mal gesagt... das Board sollte für 25 Euro auch was können... ein Exboard plus paar Pfostenstecker kostet nur 20 euro.... und da passt immer noch ein ne555 und sogar ein Kompass drauf.
LG Rolf

fabqu
14.11.2012, 16:52
Cool, danke!!!
:D

Dirk
14.11.2012, 18:18
@Rolf & @Fabian:

Ich denke auch, dass man die 3,3V (oder 3,0V?) von der Kompass-Platine gut nehmen kann, um die I2C-Pullups auf der 3,3V-Seite zu versorgen. Auch die Gyro-Platine kommt damit gut aus (braucht nur 6,5mA). Wenn man die INT-Anschlüsse des Moduls nutzen will, müßte man an denen doch noch Pegelwandler einbauen.

Beim Kompass ist die Lage wirklich unwichtig. Sie sollte aber mit ihren Achsen genau parallel zu den Roboterachsen sein, damit man sich nicht dumm und dämlich rechnet. Da man das Modul ja aber z.B. etwas höher auf eine Stiftleiste setzen kann, könnte man es ja vielleicht doch waagerecht montieren, weil man auch nicht-magnetische Teile und nicht stark stromführende Leitungen darunter legen kann. Aber: Hochkant geht auch ...

@Fabian:
2 Fragen:
a) Sollten wir schon eine RN-Wissen-Seite aufmachen?
b) Hast du schon so etwas wie einen Schaltplan oder handschriftliches als Entwurf? Wenn ja, könnte ich vielleicht schon mit dem Schaltplan anfangen...

RolfD
14.11.2012, 20:14
@Dirk
ööömmm.. ne ganz dumme Frage... bei Verwendung des "LSM303DLHC 3D Compass and Accelerometer" kann der Gyro nicht entfallen?
Ich frage weil ein 3D Kompas mit Accelerometer eigentlich schon alle Lage- und Beschleunigungsdaten erzeugt.
Zu was braucht man da ein Gyro? Ist der feiner oder schneller in der Auflösung als ein Accelerometer/3D Kompass?
"Echte Gyros" arbeiten ja nach dem Trägheitskreiselprinzip, in so einem Chip steckt aber kein Kreisel. Folglich misst der doch das gleiche was auch ein 3-Achsen Accelerometer messen würde? Irgendwie ist mir jetzt nicht ganz klar, wo da der Unterschied zwischen einem Accelerometer und einem Gyro liegt. Vielleicht bis auf das ein Gyro ein Lagesignal als Frequenz erzeugt, welches wir aber nicht auswerten würden. Oder gehts da wirklich um die Kraftvektoren... als Unterschied von Drehung und Richtungsbescheunigung? Wenn es Sinn macht, den Gyro doch im System zu lassen.. gibts vielleicht auch schon Chips die Kompass, Accelerometer und Gyro in einem enthalten unter 70 €?

Bedeutet das letztlich, das wir demnächst Winkeldaten vom 3D Kompass, Beschleunigungsdaten vom 3 Achsen Accelerometer so wie Daten vom 3 Achsen Gyro zu verarbeiten haben wenn der RP6 ne Kurve fährt?

Vor allem... da alles über den i2c geht.. wäre es ..wenn der Gyro bleibt... dann nicht besser die Gyrofrequenzen zusätzlich an Counter Pins der CPU zu legen damit Messergebnisse nicht erst durch den i2c Bus müssen?
Es müsste zumindest die Reaktionsgeschwindigkeit der CPU auf Lageänderungen deutlich erhöhen und präzisieren... wenn ich so an dein Schnapsglas denke...

Kannst du mir da mal auf die Sprünge helfen, Dirk?
LG Rolf

Nachtrag: http://www.pololu.com/catalog/product/1268
Was haltet ihr davon? 49$ .. macht ca. 40 Euronen.. 1 Board... und alles drin was das Herz begehrt?
Allerdings produziert das Board keine Gyrofrequenzen....
Sensitivity range (configurable): Gyro: ±250, ±500, or ±2000°/s
Accelerometer: ±2, ±4, ±8, or ±16 g
Magnetometer: ±1.3, ±1.9, ±2.5, ±4.0, ±4.7, ±5.6, or ±8.1 gauss

Im Prinzip erledigt sich meine Frage damit oben... wieder was gelernt.

Dirk
14.11.2012, 21:06
@Rolf:
Der Gyro kann echte Lageänderungen im Raum feststellen, wie du schon gesagt hast durch den Trägheitseffekt (früher des drehenden Kreisels, bei den MEMS-Gyros durch Frequenzänderung von vibrierenden Strukturen in den MEMS-Chips). Die MEMS sind überhaupt eine supergeile Entwicklung, über die ich gern noch mehr wüßte.

Bei den Beschleunigungssensoren (auch MEMS, tolle Technik!) messen wir tatsächlich die Beschleunigung. D.h.: Wenn wir z.B. für die Richtungskorrektur des Kompass damit die Lage berechnen (z.B. 30% Schräglage nach rechts ...), dann ist das nur dann zuverlässig, wenn KEINE Beschleunigung auftritt. Der RP6 darf sich also eigentlich nicht bewegen, wenn man mit dem Beschleunigungssensor die Lage bestimmen will. Damit braucht man in den INS z.B. der Flugzeuge oder Raketen auch den Kreisel, zusätzlich zum Kompass und Beschleunigungssensor, denn der Kreisel erfasst Lageänderungen weitgehend unabhängig von der Beschleunigung.

Alle drei Sensoren in einem Chip gibt es schon: http://invensense.com/mems/gyro/mpu9150.html

Ob man mit Auslesen der 3 Sensoren über I2C und mit den Berechnungen der Daten (mit Winkelfunktionen ...) tatsächlich so schnell klarkommt, dass man das Schnapsglas auf dem fahrenden RP6 stabilisieren kann: Keine Ahnung. Probieren wirs aus. Und wenn nicht: Ich trinke den Schnaps auch so.

RolfD
14.11.2012, 22:29
Also ich habe leider nur ein Board (http://www.lipho.de/index.php?main_page=product_info&cPath=260_270_121_0_880_885_1820&products_id=238625) bisher mit einer MPU9150 gefunden und das ist mit 94 Euro arg teuer.
Die Idee mit dem MPU9150 gefällt mir sehr, das Ding hat aber ein LGA sockel, den ich mir nicht zutraue zu löten da ich schon mit SMD auf Kriegsfuß stehe.
Dort werden aber auch die von mir angesprochenen 9 Achsen Boards (http://www.lipho.de/index.php?main_page=product_info&cPath=260_270_121_0_880_885_1820&products_id=227380) für 44€ angeboten - was kostengünstiger ist als ein separates Kompass- und ein Gyro-Board - und weniger Platz braucht.
Daher schlage ich vor, zumindest auf ein 9 Achsen Board umzusteigen.
LG Rolf

fabqu
15.11.2012, 09:42
Hi!
Erst mal das, was mich stört:
Jedes Board fürn I2C hat ne andere Pinbelegung. Das ist einfach zum Kotzen :mad:
Mal SCL-SDA-GND-VCC, mal sind SCL und SDA vertauscht und so weiter. Die SRF02er habens ganz anders: VCC-SDA-SCL-GND.
Die Idee mit dem http://www.pololu.com/catalog/product/1268 finde ich super, man kann ja (wenn die doofe Pinbelegung die gleiche wäre) beide aufs Brett zaubern.

@Dirk:
Wie das mit dem RN-Wissen geht, weiß ich ned, habe ich noch nie gemacht.
Da wir uns ja noch nicht 100%ig einig sind, was letzten endes alles drauf kann und soll, würde ich aber fast noch abwarten.
Zur zweiten Frage: Ein schematic in EAGLE habe ich schon, aber das ist vielleicht momentan noch zu chaotisch. Wenn ich das mal bereinigt habe, stelle ichs hier ein.
OK?

RolfD
15.11.2012, 11:39
@Fabqu

beide aufs Brett zaubern
Versteh ich jetzt nicht. Das Modul ersetzt alle anderen Kompass/Accelerator/Gyro Module bisher.. Leistungsmäßig wie auch preislich .. und verschafft dir Platz... warum dann noch "beide"?
Zu den Pinbelegungen... wohl wahr... es gibt da keine Norm oder Regel.
LG Rolf

fabqu
15.11.2012, 13:11
Naja, wegen dem Preis.
Solange es möglich ist, packe ich mehr aufs Brett, als du, Dirk und ich brauchen. Vielleicht will ja jemand das 20 Euro billigere Modul, dafür ohne Gyro!?
Und dann soll er halt wenigstens die Möglichkeit haben, das eine ODER das andere zu verwenden...
Und es geht jetzt, habe beide drauf. Und zwei SRF02, und das TCN75.
Jetzt ist mal dieser Servotreiber für I2C an der Reihe. Jedoch hat jetzt, mit der M256er Belegung, alles recht schön platz. Ich kann ja mal beides erstellen, dann kann man sich ja später für eines entscheiden...

Grüße

fabqu
15.11.2012, 19:26
Habe ein paar Fragen zum USB-Host.
Habe DIESEN (http://www.circuitsathome.com/downloads#Arduino_USB_Host_Shield_Documentation)Sc haltplan gefunden, und in etwa nachgebaut. Ohne den ganzen Schabernack natürlich.
Was machen denn die zwei TEILE HIER (http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXurtvu.pdf)? bzw. brauchen wir die???
An einen ist MISO und Int angeschlossen, an den anderen MOSI, die Clock, Reset und SS. Von denen wird dann alles weiter an den Programmieradapter (6 Pins) gegeben.
Aber MISO, MOSI, SCLK und MRST kann ich doch auch direkt an die 6 Pins hängen, oder?

Dann wäre das USB-Board fertig. Wie machen wirs mit der Stromversorgung? On Board, oder via USB?
23753

RolfD
15.11.2012, 20:38
Hi Fabian,
Du meinst das Schaltbild...?
http://www.circuitsathome.com/chome_downloads/USBhostShield_10.pdf
Die LS125/126 sind Leitungstreiber. Ich dachte, die wären im MAX mit drin.
Ich hab wegen dem USB Host noch mal hin und her überlegt... und denke es ist besser den nicht drauf zu bauen bzw. erst mal auf Eis zu legen.
Die Gefahr, das es nicht funzt ist zu groß, man müsste da wohl besser erst noch mal recherchieren, was es in Sachen USB Host und USB Gerätetreiber zum Arduino gibt.
Da würde ich auch als erstes wegen Software stöbern.
Vielleicht gibts da auch fertige kleine Boards wie die Kompass/Gyro Geschichte...
Es wär ärgerlich da 20% von der Platine für nen nicht nutzbares Teil zu verballern.
LG Rolf


Nachtrag:
Das
http://site.gravitech.us/Arduino/USBHOST-4NANO/Schematic.pdf
ist ein Schaltplan von einem Teil für Arduiono Nano mit dem Max Chip
http://www.gravitech.us/usadforarna.html
Da ist Docu und Software verlinkt, es scheint auch ohne die komischen LS125/126 auszukommen...

Weitere Boards bzw. Softwarelibs hab ich hier
http://www.circuitsathome.com/arduino_usb_host_shield_projects
hier
https://www.sparkfun.com/products/9628
und hier
http://arduino.cc/forum/index.php?topic=120499.0
gefunden.

Also es scheint doch zu gehen mit dem Host.
Was ich bemerkenswert finde.. der MAX Chip scheint ja GPIO Pins zu haben .. in und out.. was ja so weit ich weis, nichts anderes wie IO-Leitungen sind...da isses sicher net falsch, ein paar kleine LEDs an die GPouts anzuklemmen.
Da müsst man aber ins Manual des Chip gucken ob die Leitungen eine LED treiben können...
Also vielleicht doch drauf aufbauen... aber sich an die Designs der anderen Boards anlehnen.. dann sollte nix schief gehen. Auf einem Router mit OpenWRT kann man mit Hilfe von GPIO Pins sogar nen Kartenleser für SD Karten nutzen.. aber das nur so als Beispiel für die Verwendung der GPIOs. Uns fällt da sicher noch mehr ein.
Hatte ja vorhin etwas Zweifel aber es scheint wirklich nicht so schwierig zu sein. Also doch versuchen.

fabqu
16.11.2012, 08:13
Hi!
Ich war gestern schon fertig :D
Die Platine ist jetzt groß genug, um genau in den Ausschnitt vorne in der RP6-Platine reinzupassen (18x30mm).
Die Routenbreite ist zwar nur 0,2mm, das sollte aber für einen professionellen Platinenhersteller nicht das Problem sein. Muss ich jedoch erst anfragen.
Die Platine:
23758
Das Schema:
23757

Es besteht also nur aus dem MAX mit USB-Buchse, Quarz, 3,3V-Regler (5V muss man anstecken ODER via USB drangeben ODER via Brogrammieradapter, niemals zwei gleichzeitig!!!) und Pins für die GPIOs. Und halt den Schnickschnack, den der MAX braucht.
Jetzt hab ich ihn auf jeden Fall mal da, ob wir ihn brauchen oder nicht können wir ja dann entscheiden.
Leider jedoch ohne Taster (Reset) oder LEDs oder sonst was...

Grüße

fabqu
16.11.2012, 11:52
Nochmal ich:
Ich glaube Rolf wollte ein RFM12, oder?
Dafür brauche ich: 3,3V, einen 3,3V-I2C, GND. Und du meintest was von einer Antenne, was aber schwierig sein dürfte. Ich könnte natürlich eine SMD-Chipantenne einplanen!? Aber sie als Leiterbahn zu designen ... ich weiß nicht.
Eine Mandelbrotantenne wäre natürlich denkbar, braucht aber dennoch platz. und wie fein man Platinen Herstellen kann, weiß ich noch nicht.

Und @Dirk:
Habe etwas bei deinem 3,3V-I2C nicht ganz verstanden:
Deine Datenleitung (5V) wird durch einen MOSFET auf 3,3V gedrosselt ( ? ). Aber bei der Clock hast du einen Spannungsteiler (4k7 und 10k, macht 3,4V) verwendet!?
Warum nicht auf beiden einen MOSFET?
Dienen R5 und R6 (je 4k7) als Pulldown?

Danke! Fabian

RolfD
16.11.2012, 13:27
Hi Fabian,
also zu den Leiterbahnantennen vom RFM12 hatte ich ein Link mitgepostet, wo genaues drin steht.
Von einer SMD Antenne halte ich nicht so viel da man dann wieder gucken muss das man die richtige bekommt... usw. Ausserdem ist die Abstrahlcharakteristik nich so dolle... kennt jeder von Wlan Sticks, steht auch im AntennenPDF.
Ein stück Draht in der richtigen Länge tut es da auch obwohl ich ne Kringel-Antenne schöner fände. "Fein" muss die Antenne auch nicht sein... nur die richtige Länge muss sie haben.

Es gibt die RMF12 als 5V und als 3,3V Modul... Unterschied ist wohl der folgende Buchstabe. .. als B z.B.
Dementsprechend fällt auch das I2C dafür aus.

Zum USB Host... willst du das tatsächlich auf einer separaten Platine anbieten? Wundert mich zwar jetzt aber ok... So kann man die GPIOs natürlich nicht nutzen. Dann sah ich noch, das Du Steuereingänge wie INT nicht verdrahtest. Ich weis es nicht genau aber USB im Poll Betrieb ist keine gute Idee fürchte ich. Leider hab ich aber auch zu wenig Ahnung von USB Hosts um da was sagen zu können.
Beim RFM12 ist der INT jedoch wichtig.

LG Rolf

Dirk
16.11.2012, 16:54
@Fabian:

Habe etwas bei deinem 3,3V-I2C nicht ganz verstanden: Deine Datenleitung (5V) wird durch einen MOSFET auf 3,3V gedrosselt ( ? ). Aber bei der Clock hast du einen Spannungsteiler (4k7 und 10k, macht 3,4V) verwendet!? Warum nicht auf beiden einen MOSFET? Dienen R5 und R6 (je 4k7) als Pulldown?

R5/R6 sind die Pullups auf der 3,3V-Seite (Jumperbar (JP15/16), weil manchmal ja auch schon Pullups auf angeschlossenen I2C-Slave-Platinen mit drauf sind).

Für SCL habe ich einen Spannungsteiler (5V auf 3,3V) benutzt, um einen MOSFet einzusparen. Du kannst natürlich für SCL auch einen MOSFet nehmen. Möglich ist das mit dem Spannungsteiler R3/R4, weil SCL ja immer ein Ausgang des Masters ist und beim Slave also immer ein Eingang. Deshalb ist eine bidirektionale Pegelanpassung für SCL (mit MOSFet) nicht unbedingt nötig.

RolfD
16.11.2012, 22:24
@Dirk & Fabian

weil SCL ja immer ein Ausgang des Masters
öhmmmms... Das stimmt so nicht... bzw. es ist etwas komplizierter ... Siehe Abschnitt:
http://en.wikipedia.org/wiki/I%C2%B2C#Clock%20stretching%20using%20SCL

One of the more significant features of the I²C protocol is clock stretching...
LG Rolf

fabqu
17.11.2012, 08:45
Brauchen wir sie dann trotzdem, oder nicht?

Es wäre dann an der zeit, uns über das bisher heikelste Thema zu unterhalten:
Sollen wir IOs und ADCs nun konform für die M256 verdrahten, das hieße mit vier wannensteckern am hinteren Rand der Platine.
oder soll ich solche Möglichkeiten offen lassen?
wie machen wir's?
Bisher haben wir ja einiges an den I2C angeschlossen. Die servos mit dem I2C-Board sind aber recht platzintensiv, fast sogar mehr als mit den beiden wannensteckern.

Grüße

RolfD
17.11.2012, 09:11
Da wäre vielleicht erst mal zu klären wie viel IO Leitungen - und welche ... man letztlich auf dem Board braucht?
Was willst du mit 4 Wannensteckern auf dem Board wenn quasi eh nur i2c genutzt wird?
Ich halt mich da ansonsten raus. Mir persönlich hat die recherche zum Board viel gebracht und spass gemacht.
LG Rolf

fabqu
17.11.2012, 11:08
Nun ja...
Wir (vorwiegend ich :D ) wollte(n) ja auch Beeper, vier Taster, NE555, vier LEDs, acht Transistoren, 3-5 CNY70, SnakeVision, vielleicht zwei Spannungsteiler für irgendwas (LDRs, ...), einen Batteriespannungssensor......

Mir fällt da viel ein!

Das gute aber wäre, wenn man den Servo-I2C noch einbaut, hätte man ja prinzipiell 16 IOs auf der Platine, die JEDER ansteuern kann, wie er will. Dann könnte man zwar acht davon für Servos vorbereiten (mit einer eigenen 5V- oder wahlweise 6,6V-Spannungsversorgung, vielleicht diese sogar durch BUZ11 komplett abschaltbar) und hätte acht weitere IOs... auch ne nette Sache!
So viele Möglichkeiten...
Aber wenn wir den nehmen, dann müssen wir uns bitte auf eine Adresse einigen: man kann 6 Adressbits setzen (A0 bis A5). zwei würde ich wählbar machen, den Rest würde ich vordefinieren z.B. auf 0!?
Ist das OK? Ansonsten fressen schon die Adressjumper enorm Platz!

Und @Dirk: War dein CNY70-7fach-Board schon in Verwendung? Hat alles so geklappt, wie erwartet? Dann übernehme ich deinen Plan so.

RolfD
17.11.2012, 12:47
@Fabian
Was ist an einem Adress selekt Pad denn groß? im einfachsten Fall machst du 6 einzelne Lötbrücken und wenn du selbst das noch optimieren willst machst du eine Gänseblume... also ein Massepad in der Mitte und 6 Adressleitungen als Blätter.. da kann sich jeder selbst die Brücken löten... man verstellt die Adressen ja nich dauernd... Das Ding ist keine 10 qmm groß... sowas kanst du sogar auf die Rückseite packen... (wie anderes auch)
Aber ich sag ja.. warum einfach wenns auch schwierig geht...
LG Rolf

fabqu
17.11.2012, 13:00
Dann brauchts aber für jedes Adressbit eine Durchkontaktierung!!! Das passt nunmal nicht hin.
Hier mal mit nur zwei veränderbaren Bits, aber als Jumper:
23769
Alle anderen (A2 bis A5) habe ich auf GND gelegt.

EDIT: Warum braucht man eigentlich einen 220-Ohm-Widerstand zwischen jedem PCA9685-Ausgang zum Servo? Kann ich die weglassen???

RolfD
17.11.2012, 13:07
Stimmt.. sieht alles sehr eng aus.. vor allem rundrum...

Also weisste... du optimierst da aufs mü und quetscht Bauteile ... und rundrum wird Quadratdezimeterweise Kupfer weggeätzt... irgendwas läuft da falsch oder?
Lg Rolf

fabqu
17.11.2012, 13:14
Nein :D
Die weißen flächen drum herum sind da, weil das Bauteil (bzw. der ganze Servo-Block) nach gar nicht auf der Platine steht!

RolfD
17.11.2012, 13:17
Scherzkeks :D

SlyD
17.11.2012, 13:19
Hallo,

ein paar Vorschläge dazu:
Die Steckverbinder von RP6-M32 und M256 könnte man doch einfach beide vorsehen und wahlweise bestückbar machen.
Also z.B. die AD Kanäle und I/Os der M32 und M256 so verschalten, dass man
entweder das eine oder das andere Modul anschließen kann (nicht beide gleichzeitig natürlich).
Da die M256 viel mehr Spezialfunktionen auf den Pins bereitstellt, eventuell noch ein paar Jumper / Steckbrücken oder
0 Ohm Widerstände wenn man etwas für das jeweils anders Modul umkonfigurieren muss.
Die I/O Steckverbinder von M32 und M256 sind grundsätzlich pinkompatibel (nur hat die M32 eben deutlich weniger Hardwaremodule und diese liegen nicht auf denselben Pins).
Eventuell kann man da mit ein paar Steckbrücken arbeiten und einen der I/O Steckverbinder für die M32 konfigurierbar machen.

Für die AD Kanäle könnte man den 14 poligen Steckverbinder der M256 und den 10 poligen der M32 nahe beieinander
positionieren. Dann kann man sogar die gleichen AD Kanäle auf beiden Modulen verwenden.


Lieber einen Steckverbinder der M256 weniger nutzen, dafür mit der M32 kompatibel machen.
Die anderen Steckverbinder der M256 kann man immer noch auf zusätzliche Experimentierplatinen verlegen und dort verwenden,
sagt ja niemand dass die allesamt auf EIN einziges Sensormodul geführt werden müssen ;-)



Was ihr mit dem USB Host anstellen wollt ist mir nicht so ganz klar.
Was genau soll daran denn angeschlossen werden?

Wie ja schon angeklungen ist, braucht man dafür eigentlich ein ausgewachsenes
Treiberframework und ein Betriebssystem wie Linux.
Für einfache Sachen wie USB Speichersticks und Joystick / Tastatur bekommt man das natürlich hin, aber glaubt bitte nicht,
dass man da einfach Bluetooth/WLAN Sticks/Webcams oder ähnlich komplexes benutzen könnte! Das war bis vor ein paar
Jahren schon mit einem ausgewachsenen Linux ein Problem dass ans laufen zu bekommen.

Die Transceiver Hardware ist das kleinste Problem dabei und der verwendete Prozessor/Rechenleistung spielt auch
keine Rolle solange kein Linux darauf läuft.

Nein, Speichersticks sind meiner Meinung nach nicht interessant. Da sind microSD Karten wie sie auf der M256
verwendet werden besser geeignet aufgrund extrem geringerem Software overhead und um Größenordnungen
geringerem Energiebedarf.


Es gibt übrigens sogar eine Software(!) HOST Lib für ATMEGAs die immerhin für 1.5MBit/s USB Geräte funktioniert und
noch nichtmal einen Transceiver benötigt:
https://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2007/blh36_cdl28_dct23/blh36_cdl28_dct23/index.html



Um damit mal rumzuspielen ist der USB Host sicher nutzbar, aber ich würde vorschlagen eure Zeit lieber in gute Sensorik und
sonstige Funktionen zu investieren und vielleicht das Modul mit M32 und M256 und ggf. auch M128 nutzbar zu gestalten.
:)


Gruß,
SlyD

fabqu
17.11.2012, 13:33
Hi SlyD :D

das mit der Kompatibilität zur M32 versuche ich gerne umzusetzen!
Ich werds zumindest versuchen.

Mit dem Host: Ich fand, die Idee hört sich gut an, und z.B. eine Maus könnte man doch, denke ich, damit umsetzten bzw eben den Bot fernsteuern (soweit ich weiß schickt eine Maus nur einige bits, die dann eben Tastendruck, +/- x-Richtung und +/- y-Richtung enthalten).
Zumindest habe ich mal sowas in Assembler umgesetzt, ist aber auch schon einige Jahre her.

Ich mache mich mal an die zweifache Nutzung: M32 und M256
:)

Danke dir!

RolfD
17.11.2012, 13:52
Eine Lasermaus als Ersatz für die Encoderscheiben wäre z.B. aber indoor mal was neues für den RP6... ich halte die Idee mit dem USB Host nach wie vor für gut... auch wenn ich Slyds bedenken zum Treiberframework teile und es nicht allein mit dem Kontroller getan ist. Ich weis nicht ob es einfachere Möglichkeiten gäbe, eine optische Maus anzuklemmen. Aber es geht auch nicht nur um Mäuse... BT is auch Thema... IRDA ... Eine Verbindung zu IFones hab ich auch schon gesehen... also Serial Emulation.. PDAs können das auch zum Teil... Das U in USB steht ja immerhin für Universal.... Dafür muss der USB Host wie auch der RMF12 für hohe Datenraten aber auch schnellstmöglich und effizient angeschlossen sein.. also mit INT. Ansonsten aber volle Zustimmung zu Slyds Beitrag.

LG Rolf

SlyD
17.11.2012, 15:47
Eine Lasermaus als Ersatz für die Encoderscheiben wäre z.B. aber indoor mal was neues für den RP6...


Das ist jedenfalls schon öfters hier diskutiert worden (und wird glaube ich irgendwo sogar in der Anleitung vorgeschlagen) - kann mich nicht mehr erinnern ob das auch mal wer umgesetzt hatte, aber ist gut möglich.
Man kann viele der Sensoren in Mäusen auch ohne USB ansteuern - die kann man sogar einzeln kaufen bei Bedarf ;-)



BT is auch Thema... IRDA ...

Geht ebenfalls alles ohne USB.
BT Module haben fast alle eine serielle Schnittstelle.
IRDA geht auch mit nem UART und einem entsprechenden Chip dafür.
:-)




Mit dem Host: Ich fand, die Idee hört sich gut an, und z.B. eine Maus könnte man doch, denke ich, damit umsetzten bzw eben den Bot fernsteuern


Naja Du kannst auch die Maus an Deinem PC nutzen und die Befehle per WLAN übertragen - aber das wäre ja zu einfach ;)

MfG,
SlyD

RolfD
17.11.2012, 16:01
@Slyd..
klar geht das auch irgendwie alles anders... es gibt für alles irgendwelche Chips... aber eine genormte Schnittstelle .. preiswerte Dongels... ich finde das sind schon gute Argumente.
Du kennst sicher das ISO-OSI Modell und USB ist nun mal eine gängige, definierte Phys-Layer Schicht auf der man gut und einfach aufbauen kann. Es wäre aber auch das hier selten angesprochene CAN oder sonst was möglich... wenns dafür Anwendung gäbe ausser Autotachos zu frisieren...
Ich mag propietäres Gefummel nicht sonderlich - vor allem wenns zum Selbstzweck wird.
Sowas ist kaum portierbar und bleibt immer in den Anfängen stecken weil Synergieen fehlen.
Leider stehe ich mit der Sichtweise nur recht alleine, was RP6 Vorhaben angeht... hab ich zumindest oft das Gefühl wenn ich hier poste.
LG Rolf

Ach ja und das mit der Maus per WLAN hab ich aus gesundheitlichen Gründen überlesen... mein Blutdruck is schon hoch genug :D

Dirk
17.11.2012, 16:39
@Fabian:

1. Die CNY70-Schaltung hatte ich vor längerem für einen anderen Bot aufgebaut. Da war sie ok. Müßte also passen, habe sie aber schon lange nicht mehr ausprobiert.

2. Ich würde mich auch dafür aussprechen, alle Funktionen der neuen Platine über Wannenstecker an der Hinterkante der Platine an die µC-Platinen M32/M128/M256 anzudocken. Das macht es den meisten Nutzern einfach, die Funktionen zu nutzen. Leider gibt es keine für alle 3 Platinen identische Pinbelegung, so dass man mindestens 2 Stecker-Belegungen und/oder Jumper zur Belegungsänderung braucht für ADC-Kanäle und andere Portpins.

3. Mit ist noch eingefallen: Wenn jeder auf der Platine das bestücken/aufstecken soll, was er braucht, dann wäre es ja keine gute Idee, die 3,3V von der Kompassplatine zu nehmen, weil man die dann ja zwangsläufig braucht, wenn man z.B. den 3,3V-I2C-Bus nutzen will. Gibt es da vielleicht noch eine andere Option?

SlyD
17.11.2012, 17:07
@Rolf
> Du kennst sicher das ISO-OSI Modell

Ich habe schon embedded Geräte mit Linux und ARM CPU entwickelt, an Linux Kerneltreibern rumgeschraubt und mit professionellen
Roboterplattformen gearbeitet bzw. entwickele gerade selbst an einer (nicht für AREXX).
Aktuell muss ich einen BLDC Motorcontroller mit ARM Cortex-M, CAN Bus und allem drum und dran entwickeln.
Also so ein ganz kleines bisschen Ahnung habe ich wohl ;-)


> und USB ist nun mal eine gängige, definierte Phys-Layer Schicht

Nur bewegen wir uns hier im low-power embedded Bereich.
Da ist es völlig normal und üblich sowas direkt ohne solchen völlig unnötigen und energie-ineffizienten
Overhead wie bei USB anzusteuern.
Man spart sich dadurch jede menge Aufwand und Kopfschmerzen.
USB vereinfacht für Mikrocontroller gar nichts - ganz im Gegenteil ;-)

Klar wenn sowieso Linux auf nem Gerät läuft und USB Hosts im Chipset enthalten sind ist das gut.
Aber sonst? Ne...fasst man freiwillig höchstens mit der Kneifzange an.


Gerade sowas wie IRDA - das ist dasselbe wie UART mit ein paar einfachsten Hilfsschaltungen dahinter (die es fertig als billigen Chip
von diversen Herstellern gibt).
Du würdest da also mit USB einen extremen Aufwand betreiben um letztendlich doch wieder ein UART zu haben ;-)
Bei Bluetooth ists dasselbe Spielchen wenn man eh SPP o.ä. nutzen möchte.


> CAN:

MCP2515 ist DIE standard Lösung dafür - Software gibts für den AVR auch schon fertig.
CAN per USB an nem Mikrocontroller? Äääh.... ich klink mich dann mal aus, das wird mir zu abgefahren ;-)



@Dirk:

Gibt es da vielleicht noch eine andere Option?

3.3V wäre zumindest auf der M256 vorhanden und kann auf dem 6 poligen WLAN ADC Stecker abgegriffen werden.
Da ist ein 800mA Regler auf der Platine - da geht also noch was.

MfG,
SlyD

RolfD
18.11.2012, 14:12
@Slyd

Nur bewegen wir uns hier im low-power embedded Bereich.
Da ist es völlig normal und üblich sowas direkt ohne solchen völlig unnötigen und energie-ineffizienten
Overhead wie bei USB anzusteuern.

Richtig... aber muss das zwangsläufig immer so sein bzw. bleiben ?

Die Anforderungen wachsen bekanntlich mit den Möglichkeiten, welche widerum durch die Fähigkeiten begrenzt und durch Inovation erweitert werden. Wenn man deiner Argumentation folgt, könnte man auch überspitzt sagen, es war unnötig nach dem 8080 ein 80(1|2|3|4)86er, den pentium, und folgende zu entwickeln. Teure Großrechner gabs schließlich damals schon und im low end Bereich muss man eben akzeptieren wenns mal nich so schnell oder propietär zu geht.
Nein der Argumentation kann ich nicht folgen... und es ist auch in erster Linie eine Knowhow Frage.. und keine Geld Frage. Auch ein Zusammenhang, der immer hier wieder aufkocht. Wir sind hier schließlich großen Teils von bereits fertig entwickelten Chips, Schaltplänen und Mini-boards abhängig... deren Effizienz anderswo bereits bewiesen ist. Manchmal ist es ganz gut, auch mal über den eigenen Tellerrand zu schauen. Es hilft u.a. auch beim neu gruppieren von Vorurteilen und festgefahrenen Meinungen. (wobei ich niemandem hier direkt auch Defizite diesbezüglich unterstellen möchte, ich warne nur vor dieser Sichtweise.)

Slyd und ich diskutieren da zwischendurch öfter drüber.. und sind dabei vermutlich näher einer Meinung als viele denken. Aber lasst uns wieder zurück zum Projekt gehen.
LG Rolf

SlyD
18.11.2012, 15:43
Hallo,

grundsätzlich ist Abstraktion eine gute Sache.
Bei Hardware aber nur bei Anwendungen wo es auch Sinn macht.



es war unnötig nach dem 8080 ein 80(1|2|3|4)86er, den pentium, und folgende zu entwickeln.

Na also der Vergleich passt rein gar nicht.
Die schnelleren Prozessoren sind dazu notwendig MEHR Daten schneller verarbeiten zu können.

Aber wenn ich nur eine 100kBit/s (oder ähnlich) Datenverbindung zu einem ganz bestimmten Gerät brauche(!!!) für
dass ich sowieso einen eigenen Treiber für meine Hardware schreiben muss, dann muss
ich die Daten nicht erst über eine 12MBit/s USB Verbindung (mit zusätzlicher externer Hardware wohlgemerkt) leiten und
durch 5 Software Abstraktionschichten jagen.
Das ist INEFFIZIENT und erhöht die Kosten, den Energiebedarf und den Entwicklungsaufwand ;-)

Ein Gerät per SPI/UART ansteuern ist im günstigsten fall mit 3 Zeilen Code für alles inklusive erledigt.
Bei USB hätte man für den gleichen simplen Transfer allerdings gleich viele tausend Zeilen,
benötigt zusätzliche externe Hardware, kostet jede menge Rechenzeit, Energie und verursacht immensen Entwicklungsaufwand.

Alles um letztendlich doch wieder nur ein putc(char c) zu haben ;-)



und sind dabei vermutlich näher einer Meinung als viele denken.
Aber lasst uns wieder zurück zum Projekt gehen.

Jep hier sind wir schonmal einer Meinung ;-)
/Offtopic Ende.


MfG,
SlyD

Dirk
18.11.2012, 16:51
@Fabian & alle:
Ich habe mir mal über Steckerbelegungen für zwei Wannenstecker auf der neuen Platine Gedanken gemacht. Damit soll die Verbindung zu ADC- und I/O-Ports der µC-Platinen (M32, M128 und M256) hergestellt werden (also für alles, was NICHT I2C heißt!).

Das sind dann 2 10-polige Stecker, die wir auf die Hinterkante setzen müßten.
Einer (ADC) für die ADC-Portpins (Linienfolger ...) und einer (I/O) für sonstige (digitale) I/O-Portpins.

Die beiden Stecker können so genutzt werden, dass ...
... der ADC-Stecker mit den beiden ADC-Steckern auf der M32 und M128 und mit dem ADC_IO2/CMP-Stecker der M256 1:1 verbunden werden kann und ...
... der I/O-Stecker mit den I/O-Port-Steckern auf der M32 und M128 und mit einem beliebigen (!!) Stecker IO_PWM/T0/T1, IO_PWM/T2/T3, UART_SPI1/T5 oder UART_SPI2/T4 verbunden werden kann.

Dabei sind 5 ADC- und 7 sonstige I/O-Portpins von JEDER der 3 Platinen (M32, M128, M256) auf der neuen Platine nutzbar. Das müßte für unsere Zwecke eigentlich reichen und ist für die Besitzer von jeder der 3 µC-Platinen attraktiv (also nicht nur für M256-Besitzer!).

Vielleicht hilft es dir ..., vielleicht bist du aber auch schon weiter, dann nichts für ungut!

Tabelle im Anhang!

fabqu
18.11.2012, 18:04
Ist ja super!
Danke dir!!!

Welche 5 ADCs wollen wir denn nehmen?
wir haben:
3-5 CNY70
Taster
NE555 (:D )
Batterie
2x SnakeVision
2 Spannungsteiler habe ich als Platzfüller reingestellt, die kann man mit allem möglichen bestücken (z.B. 68kOhm für LDRs... )

Mein Vorschlag:
3 CNY70, Batterie, und die vier Taster.

Man könnte ja noch zusätzlich den 14poligen ADC-Stecker der M256 drauf machen (wenn platz ist) für den rest???

Zu den IOs:
einen für die CNY70
einen für die Stromversorgung der Servos
einen für den Beeper
einen um das SnakeVision abzuschalten und einen für den Taster der SnakeVision
???

Dirk
18.11.2012, 18:23
Vorschlag:

5 ADCs:
Z.B.: Batterie dauerhaft, 3 CNY70, 4 Taster
Als Option mit Anschluß des ADC_IO1-Steckers der M256 (+ 8 ADCs): 2..4 weitere CNY70, 2x Snake Vision, 2x weitere analoge Sensoren (oder 1x NE555).

7 I/Os:
Z.B.: 1x CNY70 (PWM-fähig), 1x Power Servos, 1x Beeper (8-Bit-Timer-Output), 2x Snake Vision, 2x Bumper hinten (o.ä.)
Was ist mit den 4 LEDs? Steuerst du die anders an, oder brauchen wir da auch I/O-Ports?

fabqu
18.11.2012, 18:38
Momentan ist ja der PCA9685 16fach Treiber eingebaut, der steuert momentan 8 Servos an, 4 LEDs und hat dann noch vier weitere IOs, die momenatn nur als Pin rausgeführt sind.

fabqu
18.11.2012, 21:02
So,
nun mal das (vielleicht) fast fertige Platinchen:
Gesamt:
23784
der Bottom Layer:
23785
der Top Layer:
23786
Soll ich auch die Schemata hochladen?

Zur Platine (bzw eigentlich den 5 Platinen) : Links (hochkant) die Bumperplatine für zwei Sharp GP2Dxx und zwei Taster. Tasterdruck wird auch mit LED angezeigt. Ich überlege, statt den zwei Sharps auch 2 SRF02 verwendbar zu machen. Dann kann man die zwei Analogen Datenleitungen der Sharps als I2C nehmen!

Im oberen Streifen sind links die Bumperplatine, die man dann einfach vorne auf die Hauptplatine stecken kann. Daneben ist eine CNY-Platine mit 3 oder (mit Jumper) 5 CNY70, schaltbar mit einem Transistor. Eine LED, die anzeigt, ob sie an sind, kommt noch.

Im Ausschnitt der Hauptplatine ist der USB-Host, mit eigener 3,3V Versorgung (holt er sich aus den 5V vom USB ODER dem 6-Pin-Prog-Stecker) und Pinherausführungen für 8x GPIs, 8x GPOs und 2x 5V sowie 2x GND und 2x 3,3V.
Ob wir das Ding behalten, ist ja noch nicht so ganz klar. Momentan braucht es ja aber auch keinen weiteren Platz :D

Zur Hauptplatine:
Da fehlt noch die Verbesserung mit der IO-Buchse und der ADC-Buchse, hier noch die alte Jumperlösung.
Wird aber morgen oder Dienstag umgesetzt.

Würd mich über Kritik freuen!
Grüße und schönen Sonntag Abend noch

Dirk
18.11.2012, 21:33
Soll ich auch die Schemata hochladen?
Ja, gern...!

fabqu
19.11.2012, 07:10
So, hier mal als zip. Anders konnte man ja gar nix erkennen...

inka
19.11.2012, 09:10
hallo allerseits,

ich verfolge das thema von anfang an mit großem interesse, hätte auch interesse an einer solchen platine, beteilige mich also auch an den herstellungskosten. Ich möchte damit meine M32 ergänzen...
Aus meiner sicht finde ich die servonaschlüsse super, beschleunigungsmesser und kompass auch, auch die neue bumperplatine ist toll. Zu den servos: ich glaube nicht, dass jemand alle 8 servos nutzen wird, ich habe für meine vier bei meinem aufbau auch einen steckanschluss (2 lötpinns) für einen zusätzlichen (extern zu ladenden) akkupack von vier aa-accus vorgesehen. Ist so etwas auch hier anschließbar? Die vier accus kann man ja überall mit einem stück klettverschluss anbringen...

fabqu
19.11.2012, 09:19
Hi Inka,
ja, das ist möglich. Auf der Hauptplatine siehst du oben rechts einen roten Aufdruck "Max 10V", dort kannst du - wie auch beim normalen RP6 - einen Akku mit maximal 10V anbringen.
Diese Versorgung ist durch eine Sicherung abgesichert. Auf Polung muss man achten, bei falscher Polung fliegt die Sicherung!
Außerdem kannst du mit einem Jumper (Rechts oben, genau unter der Sicherung) entscheiden, ob du ein Akkupack für diese Platine und ein anderes für die Hauptplatine nutzt, oder ob du beide zusammen schaltest. bei letzterer Variante wird das Pluspol dieser Erweiterungsplatine mit dem Batterieanschluss des XBUS zusammengeführt.

@all:
Wie kann ich denn zwei Akkupacks nutzen, aber zusammen? Da muss man doch irgendwie eine Diode zwischen die beiden setzen!?!?

Viele Grüße!

PICture
19.11.2012, 09:31
Hallo!

Um die Ausgleichströme beim paralellen Anschliessen von zwei Akkus A1 und A2 (am besten mit gleicher Spannung) zu vermeinden, würde ich einen Brückengleichrichter D1-D4 (am besten Schottky) empfehlen (siehe Skizze). ;)
zum Bot VCC VCC vom Lader
+ +
A V
D3 | | D4
+-|<-|---+->|-+
| | |
+->|-+-----|<-+
+| D1 D2 |+
A1 - - A2
--- ---
-| |-
+------+------+
|
===
gemeinsames GND

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

fabqu
19.11.2012, 09:36
Und bei nicht gleichen Spannungen??

PICture
19.11.2012, 09:40
Am besten wäre dann die Akkus mit nur gemeinsamen GND Anschluss an zwei unterschiedliche VCC's im Bot getrennt anschliessen und separat Laden. Ich meine Akkus mit unterschiedlicher Zellenanzahl, also grösserem Spannungsunterschied, z.B. 4,8 und 6 V. ;)

fabqu
19.11.2012, 09:52
Jo, ist glaube ich auch einfacher.
So habe ichs jetzt bei diesem Board gemacht. Es besteht halt die Angst, dass jemand die Versorgungsspannung dieses Boards aus Versehen mit dem UBAT des XBUS zusammenschließt, obwohl jeweils ein eigener Akku vorhanden ist.
Aber da kann man ja explizit drauf hinweisen!
danke dir!

PICture
19.11.2012, 10:06
Dabei wäre (gemeinsamer) Stecker/Buchse mit Sicherung vor Falscheinstecken am sichersten.

RolfD
19.11.2012, 10:11
Es ist sicher ne gute Idee, die Servos separat und ggf. mit höhreren Spannungen zu versorgen. Von einer Parallelschaltung von Accus würde ich aber abraten. Zum einen gibt das trotz Gleichrichter Probleme spätestens beim laden bzw. wenn man unterschiedliche Amperestundenaccus hat, zum anderen selbst wenn das bis dahin klappt, versagt bei Unterspannung immer gleich der ganze Bot. Da kann man sich die Accuspannungsprüfung auch fast schenken. Die Base prüft bereits die Boardspannung, ein separater Accu mit separater Spannungsprüfung für die Servos würde jedoch Sinn machen. Durchbrennende Sicherungen bei Verpolung finde ich auch nicht mehr unbedingt Zeitgemäß... eine Diode mit entsprechend Leistung wäre da besser. Sind Spannungsregler nicht auch Kurzschlußfest? Braucht man da überhaupt noch eine Sicherung? Wenn da mehrere Servos unter Last anlaufen, fließen sowieso zweistellige Amperwerte.. macht es Sinn das abzusichern?
LG Rolf

Nachtrag... ach ja.. die Bohrlöcher sind immer noch alle drin und die Platine nur halb voll... Mal davon abgesehen das es sich wegen der paar Leitungen kaum lohnt ein Doppellayer zu bauen.... in Sachen Packungsdichte geht da noch ne Menge denke ich.

fabqu
19.11.2012, 11:03
Hi!
Zum Akku:
Separate Stromversorgung ist drin. Dann kann auch jeder die Servos nutzen.
Ich hatte bisher immerhin acht Stück genau so angeschlossen, wie es auf der Platine gemacht wird und hatte nie irgendwelche Probleme mit zu hohen Strömen, das hat immer alles super gefunzt! Also von daher sollte es denke ich keine Probleme geben.

Zur Packungsdichte:
Die drei Schraublöcher links und rechts vorne habe ich noch drinnen, da kommen je zwei raus, stimmt.
Und ja, es hat immer noch das ein oder andere Platz, also immer her mit den Ideen :D

Was aber noch fehlt:
Anschluss von einem 10poligen IO-Stecker M32/128/256 sowie eines 10poligen ADC-Steckers M32/128/256 mit Leitungen zu Beeper, Taster, Snakevision, ...

zur Bumperplatine: soll ich dafür ein Anschlusspad auf der Erweiterungsplatine vorsehen? Bei mir hängen die beiden Bumper an zwei LEDs der Base und die Sharps an den zwei ADCs der Base. Will das jemand anders haben? Wird langsam schwierig mit freien ADCs...
Außerdem werde ich die Möglichkeit einbauen, dass man statt der zwei sharps auch zwei SRF02 nutzen kann. Die Signalleitungen der Sharps werden dann quasi ein I2C.

Dann fehlt noch das Pad für SnakeVision, für das CNY-Board und für zwei beliebige Spannungsteiler.

Also SO VIEL geht da nicht mehr... aber bissl was geht immer ;)

PICture
19.11.2012, 11:19
zur Bumperplatine: soll ich dafür ein Anschlusspad auf der Erweiterungsplatine vorsehen? Bei mir hängen die beiden Bumper an zwei LEDs der Base und die Sharps an den zwei ADCs der Base. Will das jemand anders haben?

Ich möchte nur eventuelle Anwendung von virtuellen Bumper vorschlagen ( http://www.rn-wissen.de/index.php/Sensoren#Direkte_Sensoren ), kenne ich den RP6 aber nicht, ob es möglich wäre. ;)

fabqu
19.11.2012, 12:06
Ja, wurde hier schon einmal diskutiert... würde bestimmt auch beim RP6 gehen (Stromsensoren sind ja vorhanden), aber ich weiß nicht, wie träge das ist und vor allem, wie sich da andere Lasten (Aufbauten, Steigungen, ...) auswirken.

PICture
19.11.2012, 13:00
In meiner Selbstsau, die nur auf flachem Boden fährt, ist es sehr träge und angeblich für RP6 dieses einnfaches Prinzip unbrauchbar. Mann kann zwar ales unendlich komplizieren, aber wofür ... :lol:

fabqu
19.11.2012, 14:12
Hi,
das drei-Achsen-Gyro HIER (http://www.watterott.com/de/Gyro-ITG-3200-Breakout) nehmen wir doch nicht, oder?
Dann kann ich den 3,3V-I2C nämlich umordnen, sodass DIESES (http://www.pollin.de/shop/dt/MDg4OTgxOTk-/Bausaetze_Module/Module/Luftdruck_Modul_HP03S.html)Luftdruckmodul oder DIESES (http://www.pollin.de/shop/dt/OTc4OTgxOTk-/Bausaetze_Module/Module/Luftfeuchtigkeits_Modul_HH10D.html) Luftfeuchtigkeitsmodul drauf passen.

Grüße

EDIT: Brauche ich beim ULN2803 eigentlich ne Versorgungsspannung V+ (Pin 10) ??? Wozu? Das sind doch nur Transistoren???

Dirk
19.11.2012, 19:40
@Fabian,

gibt es die Möglichkeit, einen Schaltplan auszudrucken, der etwas besser die Verbindungen der Teile untereinander zeigt?
So kann man die Platine als Gesamtschaltung nicht zuverlässig debuggen ...!?

Was mir auffällt:

1. CNY70:
- R56 und R57 sind 68 Ohm und 15 Ohm (nicht KiloOhm)

2. NE555:
- Schaltung ist mir nicht ganz klar. Das müßte doch auch ohne Q6/Q7 gehen?
- GND/VCC vertauscht?

3. Servoverteiler:
- Gibts auch den PWM-LED-Treiber PCA9685?
- Was macht der Jumper (J7? In der Nähe von Q1)? Wenn eine Umschaltung von SERVOS_GND auf Masse ODER auf Q1 erfolgen soll, müßte SERVOS_GND in die Mitte des Jumpers (Pin 2)!? Dr Jumper müßte auch hochstrom-fähig sein ...

Super, wie weit wir schon sind! Danke auch für die viele Arbeit, die du da reinsteckst!

fabqu
19.11.2012, 21:16
Hi Dirk,

1. hab ich berichtigt. Habe gar nicht groß nachgesehen sondern einfach kOhm angenommen :D Brauchts die (für meine Begriffe recht winzigen) Widerstände denn dann überhaupt?

2. Q6/Q7 könnte man vielleicht auch weglassen, aber sicher weiß ichs nicht. Sie sollten das Signal verstärken. Da sie hier aber nicht groß Platz fressen, würde ichs lassen. Ich habe die Schaltung einmal getestet, mit den beiden Transistoren.
Ohne weiß ichs nicht und leider kann ichs grade auch nicht so testen.
Zur GND-VCC-Frage: Ich hatte keine Lib für den NE555 in dieser Bauform, habe mich daher einer anderen bedient. Aber stimmt, soll man nicht machen, wird geändert. Die Pins stimmen aber, nur im Schematic sind sie falsch.

3. Das ist doch der PCA9685, oder?
Oder habe ich da das Schema nicht mitgeschickt?
Die Jumper für GND: Stimmt, das ist mein Fehler. Das ist natürlich absolut falsch :D
Werde ich morgen ändern!!!!!!!
Die Jumper sind halt normale Stiftleisten mit Brücke!?!? Ich weiß ehrlich gesagt nicht, ob die das aushalten. Auch weiß ich nicht, ob der BUZ11 geeignet ist, die Servos zu versorgen.

Ich muss unbedingt an meiner Darstellung was ändern, sorry. Das kann man sicherlich alles sauberer darstellen, werde ich auf jeden fall machen. Schließlich sollt ja ihr den Schaltplan lesen können, und nicht nur ich ;)

Außerdem habe ich heute auf der Platine ordentlich Platz geschaffen.
Also her mit mehr Ideen :D

Noch ne Frage an dich, Dirk:
Ich habe die Pins für den 3,3V-I2C so angeordnet, wie du es gemacht hast, um das Gyro anschließbar zu machen. Da das nun wegfällt, könnte ichs so anordnen, dass deine anderen beiden 3,3V-Sensoren (Feuchtigkeit und Luftdruck) angeschlossen werden könnten.
Soll ich das so machen????

Danken dürft ihr mir erst, wenn die Platinen fertig sind und FUNKTIONIEREN :D Und dann muss da ja noch jemand die Libs für den ganzen Hardwarezirkus machen!!!
Das ist dann schon ne ganze Menge Arbeit :D
Grüße

Dirk
19.11.2012, 21:53
Noch mehr Ideen? Klingt gut: Lass uns sammeln!

... könnte ichs so anordnen, dass deine anderen beiden 3,3V-Sensoren (http://www.rn-wissen.de/index.php/Sensorarten) (Feuchtigkeit und Luftdruck) angeschlossen werden könnten. Soll ich das so machen????
Also, ich wäre auch dafür, weil wir ja den ITG-3200 definitiv nicht mehr brauchen. Dann könnten wir auch die anderen Sensoren anschliessen. Ich glaube, der Feuchtigkeitssensor braucht außer I2C auch noch einen I/O-Portpin, mit dem man Frequenzen messen kann (z.B. ICPx) und der Luftdrucksensor einen mit einer Festfrequenz (32768Hz) und noch einen weiteren. Ist also etwas aufwändiger, geht aber ...

Noch zu den "Zusatzplatinen" (Bumper, Linienfolger):
Ich fände es schon gut, wenn es vorn auf der Haupt-Platine zwei passende Stecker gibt, an die man die anschließen kann. Klar: Es gibt nicht unendlich viele ADCs/I/Os, aber man könnte ja evtl. doppelt belegen (mit Jumpern zur Umschaltung) oder wirklich noch den ADC_IO1-Stecker der M256 belegen (wenn schon noch Platz ist?).

fabqu
20.11.2012, 07:51
Dann haue ich (so als Schmankerl für die M256-ler) den dicken ADC-Stecker der M256 drauf. Sind nochmal 8 ADCs.

Mir fällt leider auch gerade keine neue Idee ein... Ich könnte noch die 8 Servos der M32 reinpacken, die brauchen nicht wirklich Platz. nur wer braucht 16 Servos zum Ansteuern???

Grüße

- - - Aktualisiert - - -

Was haltet ihr von einem CAN-Bus? Für alle Automitiv-Freunde...
Ist halt soweit ich weiß alles andere als Trivial.
Der MCP2515 würde das machen, aber es bräuchte - wenn ich das richtig gesehen habe - noch einiges dazu.

Dirk
20.11.2012, 09:51
@Fabian:

Linienfolger:
Die Widerstände 68 und 15 Ohm sind die Vorwiderstände der LEDs in den CNY70 und sind unbedingt erforderlich.

CAN-Bus wäre schon ne feine Sache ...
So ganz viel braucht man hardwaremäßig nicht: Den MCP2515, evtl. den MCP2551-Treiber, Quarz, den SPI-Anschluß (MOSI, MISO, SCK), einen I/O für INT, einen für CS und Reset, Vogelfutter und evtl. ne CAN-Buchse, die natürlich auch Platz wegnimmt. Softwaremäßig weiss ich nicht, ob und wie einfach das ist ...

Bei der Gelegenheit fällt mir ein:
GPS braucht ja einen UART (RX/TX). Einen freien Hardware-UART gibt es nur noch auf der M128 (PD2/3 an Stecker I/O,- leider passt nur RXD zu der Pinbelegung auf der M256, TXD sitzt woanders) und auf der M256 (PD2/3 an Stecker UART_SPI1/T5 und PH0/1 an Stecker UART_SPI2/T4). Damit kann man bei diesen beiden Platinen die entsprechenden Pins mit RX/TX auf der neuen Platine verbinden. Für die M32 (da scheint es ja auch User zu geben, die interessiert sind!) müßte man RX/TX des GPS-Moduls auf einen 2-poligen Stecker am li. Platinenrand legen, von dem aus die M32-Besitzer eine Verbindung zu ihrem PROG_UART-Stecker herstellen können.

fabqu
20.11.2012, 14:15
Die Widerstände sind drin und richtig beschriftet.

Zum CAN: Müsste man sich überlegen. Ist schon nicht wenig Hardware... Ich würde es wirklich nur reinsetzen, wenn es jemand wirklich möchte und vor allem WEIß, wie man dafür ne Software bastelt!!! Und das dann natürlich auch macht :D Ansonsten ist das nur Platzverschwendung.

Zum GPS: Ich hätte momentan der Einfachheit halber einen 3poligen Stecker (Rx, Tx, GND) an die linke Platinenseite gemacht. Dann kann das jeder selbst entscheiden, wie er das ding anschließt. Einen 10poligen, wie ich ihn jetzt habe, werde ich weider raus nehmen. Das nimmt mir zu viel platz weg.
Wenn man das GPS (einmalig) einstellen will, dann kann man dafür vielleicht einfach diese drei Pins nehmen.

Grüße

- - - Aktualisiert - - -

Was ist denn mit den 220 Ohm-Widerständen zwischen dem Servo/LED-Treiber und den Servo-Eingängen???
Brauchen wir die denn???
Zwischen uC und Servo hatte ich auch nie Widerstände.

Dirk
20.11.2012, 14:42
@Fabian:
Ja, das mit dem 3-poligen Stecker ist eine sehr gute Lösung (und die einzige für RP6 Base und M32).

Zusätzlich wäre es für die M256 und M128 User eine optimale Lösung, wenn man TX des GPS-Moduls (Pin 4) über einen Jumper mit Pin 8 (RXD) des I/O-Steckers auf der neuen Platine (verbunden dann über Flachkabel mit M128: PD2, mit M256 an einem der UART_SPI-Stecker: PD2 oder PH0) verbinden würde. Dann braucht es keine externe Kabelverbindung bei diesen beiden Plattformen. Dann können DIESE User das GPS ohne loses Kabel (möchte ich immer möglichst vermeiden... ) nutzen.

Für die Konfiguration des GPS-Moduls KANN man RX des GPS-Moduls (Pin 5) über den Mittelabgriff des Spannungsteilers R39/40 genauso auch über einen Jumper mit Pin 6 (TXD) des I/O-Steckers auf deiner Platine (liegt dann an M256: PD3 oder PH1 je nach UART_SPI-Stecker) verbinden. Für die M128 müßte man RX des GPS mit Pin 7 des I/O-Steckers verbinden, das müßte man also über einen Jumper anpassen (wenn man will).

Letztlich braucht man aber nur TX des GPS-Moduls für die volle GPS-Funktion, also die Verbindung zu Pin 8 (RXD) des I/O-Steckers.

Das mit den 220 Ohm-Widerständen in der Servoleitung ist ganz sinnvoll: Einerseits als Schutzfunktion vor Kurzschluss, andererseits lassen sich direkt normale 20mA-LEDs anschließen. Vielleicht nutzt das ja jemand sogar eher als Servos.

RolfD
20.11.2012, 15:04
CAN wird auf der alten C-Control II von Conrad wie auch auf der C-Control PRO Unit Mega 128 CAN unterstützt - allerdings sind immer noch externe Beschaltungen nötig. Vor allem eine Übertragerdrossel, so ähnlich wie sie auch lange bei Ethernet verwendet wurde.
http://www.conrad.de/ce/de/product/197989/C-Control-C-Control-PRO-Unit-Mega-128-CAN-45-55-VDC-Eingaenge-Ausgaenge-8-Analogeingaenge-6-mit-je-8-Pins-1-mit-5
http://www.cc2net.de/
Aber ich glaube ehrlich gesagt nicht, das jemand pysisch den RP6 mit CAN in Verbindung bringt, da CAN quasi nur in der (Automobil)industrie als Steuerbus Standard gilt. So viel mehr an Software ist das auch nicht, was man da bräuchte. Immerhin sind auch die Mega-Prozessoren auch für Automotive Anwendungen entwickelt worden. Slyd hat da doch etwas übertrieben was den Aufwand für CAN und USB mit den angeblichen 5 Softwarelayern angeht aber Sinnvoll ... ist CAN auf dem RP6 trotzdem nicht. Es gibt kaum CAN-Taugliche Endgeräte.. im Gegensatzt zu USB... Also CAN weg lassen.
LG Rolf

Dirk
20.11.2012, 15:18
Sehe ich auch so!

Außerdem gibt es ja, wie Rolf schon geschrieben hat, die C-Control Pro Unit Mega 128 CAN (CONRAD 197989) inzwischen mit CAN. Wer das unbedingt braucht, könnte auf dem RP6 also die M128 Platine als Basis dafür benutzen.

Dirk
20.11.2012, 19:13
@Fabian:

Auch wenn ich nerve ...:

Wieviel Platz ist denn noch auf der Platine?

Mir kam gerade der Gedanke, ob wohl noch eine Schrittmotor-Steuerung mit L297/L298 a la http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=208 draufpassen würde? ;)

Hätte jemand Interesse daran?

inka
20.11.2012, 19:13
Ich könnte noch die 8 Servos der M32 reinpacken, die brauchen nicht wirklich Platz. nur wer braucht 16 Servos zum Ansteuern???


wo sind die denn auf der M32?

fabqu
20.11.2012, 19:19
Hi Inka,
da gabs mal ne nette Servo-Lib für bis zu acht Servos, hat Dirk für uns gemacht:
Liegt HIER (https://www.roboternetz.de/community/threads/40090-RP6Control-M32-Library-f%C3%BCr-8-Servos?highlight=Servo+Lib+M32)
Da wird einfach ein 10poliger IO-Stecker mit 8 IOs genutzt (die anderen beiden Pins sind VDD und GND).
Grüße

RolfD
20.11.2012, 21:33
Stepper finde ich gut, Motörchen zum basteln dafür finden sich in jedem FloppyLW, Festplatte oder Drucker. Eine richtige Stepperplatine wird das aber nicht ersetzen aber zum ausprobieren und erste Schritte sicher ne Idee.
Problematisch wirds warscheinlich bei den vielen verschiedenen Arten von Ansteuerungen für Stepper.

Die "8 Servos der M32" sind rein Softwarepwm getrieben und belegen die normalen IO Leitungen der M32.

Man kann die sicherlich auch auf das IO Board führen, Servostecker muss man ja nicht zwangsläufig nur für Servos nutzen.... Ich sehe die Dinger vor allem als Single IO port mit GND und +, und man kann sie einfach mit einer Steckerleiste abgreifen wenn man mehrere Ports braucht. Man verschwendet halt nur etwas Platz im Vergleich zu einem (10-pol)Wannenstecker wenn man so viele freie + und GND Pins hat. 8 io Leitungen mit Versorgung belegen 10 Lötaugen, als Servo-Stecker ausgeführt dann gleich 24. Elektrisch tut sich das mal garnix...
Allerdings denke ich, das die M32 Ports besser so angeschlossen würden, so das sie die anderen Funktionen des Boards auch steuern können. Also IRQ Eingänge usw.

Eigentlich brauchen wir mal eine Map, die auflistet welcher Port von welcher M auf welche Funktion des Boards geht.
Also sowas:
| m32 | m128 | m256 | board
|Porta1|Porta1|Portb1| LED1
usw..
Dann erkennt man - entgegen den Schaltplänen - auch einfach, welche Dinge von wo aus nutzbar sind...
Ich hab da schon längst den Durchblick verloren.

LG Rolf

fabqu
21.11.2012, 10:19
Hi! Dirk hat das mal alles für uns gemacht :D

Ich habe momentan einen ADC-Stecker (10polig) drauf, einen IO-Stecker (10polig) und den dicken ADC-Stecker der M256.
Momentan sind davon belegt:

ADC_M256_14polig:
- SankeVision L und R
- Zwei beliebige Spannungsteiler

ADC 10polig:
- ADC_batterie
- Taster oder wahlweise NE555

IO 10polig:
Hier kann man stets wählen, ob man feste IOs nimmt, ob man den ULN2803 benutzt, oder ob man selbst etwas an dem IO anstöpselt
- Beeper (Pin 5, da hier von M256 PG5 oder PB4 liegen)
- Snake-Vision wird durch ULN2803 an Pin 4 Schaltbar

Natürlich fehlt hier noch das ein oder andere (Bumper, Sharps, CNY70) aber hier bin ich noch am probieren, wie man das sinnvoll machen kann, da alleine für die drei genannten 7 ADCs (2 sharps, 5 CNYs) und 3-4 IOs (CNY an/aus, 2 Bumper, Sharps an/aus) benötigt werden. Das ist ne ganze Menge... vor allem, wenn man alles noch wählbar halten möchte.

fabqu
21.11.2012, 12:53
@Dirk:
Stimmt mein GPS so???
Irgendwas passt da doch am Rx nicht, oder???23813

SlyD
21.11.2012, 14:53
Hallo,


CAN ... externe Beschaltungen nötig ... Vor allem eine Übertragerdrossel,


Nein das ist kein Übertrager.
Ausser Transceiver und der Terminierung ist (für Hobby Anwender) nichts notwendig.




Aber ich glaube ehrlich gesagt nicht, das jemand pysisch den RP6 mit CAN in Verbindung bringt,


Ist für kostengünstige Sachen auch nicht sinnvoll da halt zusätzlicher Hardwareaufwand / Platz pro Knoten und benötigt
auch deutlich mehr Energie als z.B. I2C.
Für den I2C Bus gibts viel viel mehr schöne einfach zu verwendende standard Chips.
Gilt ähnlich für SPI und UART.




Slyd hat da doch etwas übertrieben was den Aufwand für CAN und USB mit den angeblichen 5 Softwarelayern angeht aber Sinnvoll ...
LG Rolf

Halt stopp ich habe da von USB geredet und nicht von CAN. CAN nutzen ist deutlich einfacher - in den CAN Controllern wird das meiste in Hardware erledigt!
Und bitte nicht jedes Wort (5 Layer) das ich hier schreibe gleich auf die Goldwaage legen.
5 Layer ist halt die standard Aufteilung, das war nur Beispielhaft - wieviele es genau sind ändert nix an der Kernaussage das es unnützer Overhead ist ;)

MfG,
SlyD

RolfD
21.11.2012, 16:16
@Slyd

...gleich auf die Goldwaage legen...
Dito.
Aber bitte auch folgendes.. man kann ein i2c oder uart Treiber als 3-Zeiler schreiben. Geb ich dir recht.
Der RP6 ic2 Treiber sieht entsprechend übel aus und die UART Routinen sind auch nur halbherzig IRQ gesteuert.
Man kann aber sowas z.B. auch als Interrupt driven und mit FIFOs machen... deshalb hat man noch lange keinen unnützen Overhead ala 5 Layer.
Wir diskutieren hier aneinander vorbei, wenn es Dir immer nur um Minimalismus und 3-Zeiler geht, und du alles kritisierst was ich darüber hinaus anrege.
Ich kann auch 3-Zeiler schreiben aber darum gehts hier nicht!

Es ist weder software mäßig kompliziert, noch hardwaren mässig schwer, USB zu nutzen.
http://www.obdev.at/products/vusb/projects-de.html
Es ist dafür auch kein Linux oder wahnsins Overhead nötig - man kann ihn betreiben wenn man möchte aber das gilt auch für jedes andere Protokoll.
Lass uns das hier abschließen, es bringt nix wenn wir in einem Projekt Grundsatzdiskussionen führen, die bestenfalls in den FreeRTOS Thread gehören.
i2c als in-system-kommunikation und usb als Anbindung nach aussen /zum spielen wie ein steppertreiber widerspricht sich nicht.
LG Rolf

SlyD
21.11.2012, 17:10
Es ist weder software mäßig kompliziert, noch hardwaren mässig schwer, USB zu nutzen.
http://www.obdev.at/products/vusb/projects-de.html


Eine Library ähnlicher Bauart habe ich doch oben selbst gepostet.
Das ist aber wie dort schon gesagt auch nur für HID (und ähnlich einfache Sachen) nutzbar.
Mit "man braucht Linux" meinte ich die Ansteuerung von den wirklich interessanten Geräte die es für USB gibt.



wenn es Dir immer nur um Minimalismus und 3-Zeiler geht, und du alles kritisierst was ich darüber hinaus anrege.

Ich stelle doch nur in Frage ob es den Aufwand rechtfertigt wenn es die gewünschten Funktionen auch für normale Schnittstellen wie UART/SPI gibt wo man sich den USB Overhead komplett erspart.



Lass uns das hier abschließen

Jup. Schluss für heute, jetzt erstmal Abendessen ;-)


Bis dann,
SlyD

fabqu
21.11.2012, 18:18
@SlyD und Rolf:
1. der USB-Host ist schon auf einem eigenen Board mit dabei, hat sich also erledigt, solange wir es dabei belassen
2. ein CAN passt momentan eher nicht drauf. Vielleicht versuche ichs am Wochenende noch mal, den irgendwo hinzuquetschen
3. damit wäre es mir sehr recht, wenn Diskussionen zum Bereich "Overhead", USB, Bus und dem ganzen PiPaPo aus diesem Thread draußen bleiben würden. Das füllt hier lauter Seiten, hilft aber nicht beim eigentlichen Thema. Ich denke mal, es gibt viele hier im Forum, die euer Thema genauso spannend finden wie ihr, daher könnten ihr doch nen Thread dazu eröffnen: "USB, CAN, I2C, UART - was kann was?" oder wie ihrs eben möchtet.
;)
Danke euch.

@Dirk: Bitte obere Frage zum GPS beachten!

Dirk
21.11.2012, 18:45
@Fabian:
Ich gehe mal davon aus, dass der 5-polige GPS-Modul-Stecker auf den Pins 1,3,5,7,9 von SV11 sitzt!? (Warum ist der doppelreihig?)

Wenn ja, dann wäre RX des GPS-Moduls an Pin 9, richtig?

Wenn ich das so richtig sehe, dann ist der Spannungsteiler richtig.
RX_OUT müßte dann auf der Platine mit TX des UART verbunden werden und TX deines Schaltplans mit RX des UART.

fabqu
21.11.2012, 20:04
Super, dann passts! Werde ihn noch einreihig machen. Und einen UART habe ich nicht, ich führe Rx, Tx und gnd einfach auf drei Pins raus. Ist doch auch ok, oder? Das würde nur wieder so viel Platz brauchen...

Der CNY- Stecker ist nun auch drauf. Mit dem Stecker für die Bumper bin ich noch am machen, das klappt noch nicht. Problem ist momentan, dass die dafür notwendigen IOs und ADCs am einen Eck der latine sitzen, der I2C-Bus aber an der anderen... Mal sehen.

Dirk
21.11.2012, 20:27
Und einen UART habe ich nicht, ich führe Rx, Tx und gnd einfach auf drei Pins raus. Ist doch auch ok, oder?
Nein, bitte schließ TX/RX auch an den I/O-Stecker an, damit GPS direkt mit der M256 und M128 ohne loses Kabel genutzt werden kann!

Also:
TX (des GPS) an I/O-Stecker Pin 8 (M256: RXD1 oder RXD2 je nach UART_SPI-Stecker und M128: RXD1)
RX (des GPS) an I/O-Stecker Pin 6 (M256: TXD1 oder TXD2 je nach UART_SPI-Stecker) oder Pin 7 (M128: TXD1)

fabqu
22.11.2012, 07:04
Gut, mache ich.
Ists OK, wenn wir DIESEN (http://www.conrad.biz/ce/de/product/505671/Digitaler-Feuchte-Temperatur-Sensor-HYT-IST-AG-HYT-221-18-0-100-rF-03-C-40-125-C/0231310&ref=list)Feuchtesensor nehmen, statt den 3,3V-10Euro, den du vorgeschlagen hast, Dirk?
Ist zwar 5 Euro teurer, hat dafür aber bei gleicher Genauigkeit einfach nur I2C, nix sonst. Würde uns auf der Platine und im Code einiges ersparen, da wir keine Frequenzen messen müssen etc.
Und dann könnte man sich sogar den TCN75 aus der M128 sparen, oder?

Dirk
22.11.2012, 17:34
Der Feuchtesensor klingt sehr gut! Ein Temperatursensor ist ja auch schon drin, so dass wir sicher auch auf den TCN75 verzichten können.

Willst du den Luftdrucksensor HP03S denn auch verbauen?
Der braucht zusätzlich zu 3,3V auch den I2C-Bus (SCL, SDA) und 2 I/O-Portpins (einer davon am besten ein PWM, also auch recht aufwändig, denn man braucht ja auch Pegelwandler für I2C und die beiden Portpins ...). Von mir aus können wir gern darauf verzichten oder kennst du noch ein einfacheres Modul,- nur mit I2C und am besten mit 5V?

radbruch
22.11.2012, 18:45
Hallo

Jetzt wäre es wohl langsam Zeit für die Umfrage.

Neben den unterschiedlichen Aufbauvarianten würde ich dabei auch die verwendeten Erweiterungplatinen und die Bereitschaft zur finanziellen Beteiligung bei den Mitlesern abfragen.

Ich find's ja spannend, aber wer soll den Schnickschnack eigentlich programmieren? Vielleicht solltet ihr erstmal die mitgelieferten Funktionen des m256-WIFI nutzen und dann entscheiden, was noch fehlt. Aber ich will euch nicht bremsen, macht was euch interessiert.

Es gibt noch viel zu erforschen!

Gruß

mic

fabqu
22.11.2012, 18:56
Als Drucksensor habe ich höchstens noch DEN HIER (http://www.watterott.com/de/Breakout-Board-mit-dem-BMP085-absoluten-Drucksensor) gefunden.
18 Euro, 3,3V, 3,3V-I2C... Ob der sonst noch was braucht, weiß ich nicht. Dafür gibts dort schon richtig gute Doku, vermutlich auch ein paar Programmschnipsel...

@Mic:
Jaja, die Programmierung :D
Da wäre schon mal Dirk, ich falle denke ich mal wegen fehlender Begabung aus.
Wie schauts denn da so bei DIR aus ???? :)
Rolf???
SlyD???

Ich denke, die Umfrage machen wir, wenn die Platine mehr oder weniger fertig ist.
Dann ist ja nur noch wichtig, wer das Geld für das Herstellen und die Teile tragen will.
Die ganzen I2C-Module (Servo-PWM mit Stromversorgung, Luftfeuchtigkeit, Luftdruck, Temperatur, 4x SRF02, usw) kann man sich ja danach nach belieben dazukaufen, sofern die Libs existieren.
Was denke ich für jeden sinnvoll ist, ist die Versorgungsspannung, Beeper, Pins, IOs auch mit ULN2803 und ADCs. Alles weitere kann sich ja jeder nach belieben dazuholen.

radbruch
22.11.2012, 19:29
{/offtopic]

Wie schauts denn da so bei DIR aus????Ganz schlecht. Da ich nach über 25 Jahren im Außendienst vor ca. einem Jahr aus gesundheitlichen Gründen in die Hotline meiner Firma gewechselt bin, versuche immer noch mein Leben neu zu ordnen. Und nach zehn Stunden an zwei 24-Zöllern stehen leider sehr viele wichtigere Dinge auf meiner Todo-Liste.
[/offtopic]

Dirk
22.11.2012, 19:39
@radbruch:

... stehen leider sehr viele wichtigere Dinge auf meiner Todo-Liste.
Sehr verständlich!

Ich hoffe trotzdem, dass wir noch viele deiner tollen Projekte hier zu sehen bekommen!!!

fabqu
22.11.2012, 19:44
Ich hoffe trotzdem, dass wir noch viele deiner tollen Projekte hier zu sehen bekommen!!!

Jup!!! Aber hallo ;)

RolfD
22.11.2012, 21:33
Ich sehe da nicht die großen Probleme bezüglich programmieren.
Die I2C Werte stellen Messgrößen dar, die jeder selbst verwenden kann/soll/darf... i2c auszulesen is kein Kunststück, da reicht ein Blick in die PDFs der jeweiligen Chips.
Bei den anderen Dingen... was will man da groß programmieren. Der USB Treiber ... da würd ich was machen.. aber auch da gibts schon fertiges...
Also ich seh das Problem Software bisher nicht. Da ich die M256 nicht habe, kann ich nur Code für die M128 und M32 schreiben.
Zudem, Funktionen wie "fahren nach Kompass" will sicher jeder selbst entwickeln... Ich denke da kann man eine kleine Codesammlung im Wiki anbieten aber das wars dann auch.
Sonst werden hier Softwareprojekte ja auch nicht ausgetauscht.
Ich bin ansonsten bis Weihnachten recht ausgebucht und werd mich erst anfang neues Jahr intensiver damit beschäftigen können.
LG Rolf

fabqu
23.11.2012, 10:11
Ich denke auch, dass wir das mit der Software hinbekommen.
Am schönsten wäre es natürlich, wenn man so etwas wie eine Gesamt-Lib für diese Platine hätte, in der dann alles enthalten ist...
Vielleicht bekommt man ja sowas geregelt?

Mal ein Bild der aktuellen Platine:
23830
Es ist also noch Platz da...
Was haltet ihr von nem DS1307 (real time clock via I2C) ?
Oder einen DCF77-Empfänger?
Auch interessant fand ich die Kameraprojekte, z.B. das HIER (https://www.roboternetz.de/community/threads/29906-Minimall%C3%B6sung-Kamera-f%C3%BCr-den-RP6) von Radbruch. Da wird ja nur +5V, GND und ein ADC benötigt. Kameras dieser Art bekommt man für unter 10 Euro.

Soll ich das RFM12 eigentlich richtig anschließen? Wenn ja, dann wo??? Bisher habe ich nur +5V und GND verbunden... Denn dieses Modul braucht man ja wirklich nur, wenn man mehrere Bots kommunizieren lassen will.

Grüße

EDIT:
DIESE (http://www.microcrystal.com/Products/Real-Time-Clock-Modules.aspx)RTC hier hat sogar schon den Quarz drinnen!

Dirk
23.11.2012, 16:42
Fabian:
Am schönsten wäre es natürlich, wenn man so etwas wie eine Gesamt-Lib für diese Platine hätte, in der dann alles enthalten ist...
Oh je ... ich ahne Böses! :mad:


Eine I2C-RTC fände ich gut, wenn noch Platz ist. Inzwischen haben wir ja eine funkende Multi-Sensor-/Aktor-/RTC-Platine.

Auch DCF läßt sich machen, wobei das ja eigentlich fertige Platinchen sind, die man einfach an einen 3er Stecker mit 5V/GND/I/O-Port anschließen kann. Platz braucht man dafür nicht.
Das gilt auch für eine Kamera-Minimallösung, die ja auch nur 5V/GND/ADC-Port braucht. Leider gibt es die kleine 5V-Kamera nicht mehr, die radbruch verwendet hatte. Aber da gibt's bestimmt Ersatz.

RFM12:
Da das auch eine kleine Platine ist, müßte man den Platz dafür vorsehen. Eine perfekte Anschlusslösung an M32, M128, M256 gibt es nicht, weil auf allen Plattformen SCK, MOSI, MISO an den ISP-Steckern zu finden sind. Die Verbindung müßte jeder selbst herstellen,- man könnte sie also auf einen 3-poligen Stecker führen.
Zusätzlich braucht man eine Select-Leitung (nSEL) und eine INT-Leitung (nIRQ), also noch 2 I/O-Portpins. Die könnte man ja auf der Platine (über Jumper) verdrahten mit dem I/O-Stecker, wobei nIRQ eigentlich an einen INTx-Eingang eines µC gehen sollte: Den haben wir da aber nicht, sondern am XBUS Pins 8, 9, 11.
Mein Vorschlag: RFM12 weglassen, weil man eine Funkplatine sehr leicht und für die eigene Anwendung passend auf ein Exp und auf eine kleine eigene Platine setzen und individuell anschließen kann.

fabqu
23.11.2012, 17:11
Uhr macht aber nur sinn, wenn de Batterie (3V) dran hängt, sonst muss man sie ja immer neu initialisieren, oder?
Was natürlich der DCF wiederum erledigen könnte :D

RFM und Kamera werde ich evtl einfach mit den Pins vorbereiten. Kamera kommt an den M256-14pol-Stecker, wenns recht ist (der 10pol ist voll).

Dirk
23.11.2012, 17:26
Uhr macht aber nur sinn, wenn de Batterie (3V) dran hängt, sonst muss man sie ja immer neu initialisieren, oder? Was natürlich der DCF wiederum erledigen könnte
Ja, klar. Man bräuchte eine komplette kleine Schaltung so wie hier: http://www.elv.de/i-c-realtime-clock-i2c-rtc-komplettbausatz.html
DCF kann man ja dranbauen: Einfach nur 1 3-poliger Stecker. Die DCF-Platine selbst muss sowieso etwas höher montiert werden, weil sie sonst z.B. direkt auf deiner Platine keinen Empfang hätte.

fabqu
25.11.2012, 17:14
So, DCF77 und DS1307 sind eingebaut.
Ebenso ein Alkoholtester:
http://mikrocontroller-praxis.de/de/Bauelemente-aktiv/Sensoren/Gas/Alcohol-Gas-Sensor-MQ-3-.html
:D
Und hier das aktuelle schematic:

Dirk
25.11.2012, 20:57
@Fabian:
Tolle Arbeit, danke!

Ich versuche mal, deine Schaltung nachzuverfolgen:

3V3-I2C:
--------
* Q12 -> D und S vertauschen!
* JP16 -> GND und 3V3 wäre noch schön
Servoverteiler:
---------------
* JP86 -> Was macht er?
* Stromversorgung -> LED-Anode an GND? Da stimmt was nicht mit LED2/JP86/JP56!
GPS:
----
* Nummerierung des Steckers umdrehen (1->5, 5->1).
* Der jetzige Pin 1 gehört an den Punkt zwischen R39/R40, nicht an JP108.
(<RX_GPS> entfällt, d.h. dort wird nichts angeschlossen!)
RFM12:
------
* Reicht es, nur diese Pins herauszuführen? Was ist z.B. mit SDO? Pullup an FSK? ...?
RTC:
----
* Besser Goldcap als Lithium-Zelle (Siehe: http://www.avr-praxis.de/forum/attachment.php?attachmentid=1509&d=1257487842)?
(Muss man nicht wechseln...)
Kompass:
--------
* Welches Modul hast du genommen? Ich habe insg. 9 Pins und da, wo bei dir Pins 1,2 sind noch 3 Pins DRDY, INT1, INT2...?
ADCs:
-----
* Ist ADC Mxxx der ADC-Stecker zur Verbindung mit M32,M128,M256?
Wenn ja: Es gibt ja nicht auf allen 10 Pins ADC-Kanäle! Siehe meine Tabelle.
IOs:
----
* Ist IO Mxxx der IO-Stecker zur Verbindung mit M32,M128,M256?
Wenn ja: Es gibt ja nicht auf allen 10 Pins IO-Portpins! Siehe meine Tabelle.
USB-Host:
---------
* MISO, MOSI, SCLK (und weitere Pins: Z.B. SS, INT...) brauchen Pegelwandler auf 5V
* Möglicherweise weitere Probleme, die ich nicht überblicke...
I/O-Port- und ADC-Leitungen:
----------------------------
* Ziemlich komplex: Ich kann nicht alles nachverfolgen (zu zeitaufwändig)!

Soviel beim ersten Drüberschauen. Ich bleibe am Ball.

fabqu
25.11.2012, 22:23
Hi Dirk,
danke für die vielen Fehler... besser vorher finden, als hinterher.

3V3-I2C:
Q12 geändert, GND und 3V3 zum Jumper hinzugefügt.
------------
Servoverteiler:
JP86 überbrückt quasi den BUZ11: Hier kann man wählen, ob der Servobereich abgeschaltet ist (kein Jumper drauf), er dauerhaft an ist (GND verbunden) oder fernsteuerbar ist (BUZ11 ist mit Servobereich verbunden) . Hab ich das so richtig??
LED2 pusht die GND-Seite des 5V-Reglers um etwa 1,6V hoch, so hat man auf statt 5V 6,6V auf den Servos, was ihnen deutlich mehr Kraft gibt. Und das halten auch die 5-Euro-Servos vom großen C aus (zusätzlich werden sie über den Transistor noch mit zusätzlich Strom versorgt im Bedarfsfall, falls der 5V-Regler nicht mehr nachkommt) . Sollte das jemand dennoch nicht wollen, kann er die LED durch JP56 überbrücken. Sie leuchtet dann nicht mehr, aber die Servos haben ein 5,0V-Level.
------------
Stromversorgung:
Meinst du LED1? Das sollte doch so passen, oder???
--------------
GPS:
Hab das so gemacht. Dachte mir, dass das so irgendwie falsch war. Was meinst du mit "RX_GPS entfällt" ? Man braucht es nicht, stimmt, aber es geht über den JP108 an RX_OUT und dadurch an den passenden IO-Pin zum Konfigurieren des Moduls.
--------------
RFM12:
KANN MIR BITTE JEMAND SAGEN, WAS MAN BRAUCHT? Ich kenne mich mit dem RFM12 nicht aus...
danke.
----------------
RTC:
GoldCaps kannte ich noch nicht, werde ich einbauen :D muss mich aber erst einlesen, ob man die wirklich einfach so reinhängen darf auf die 5V.
---------------
Kompass:
Habe DIESEN (http://www.pololu.com/catalog/product/1268) hier genommen (Kompass, Accelerometer, Gyro) . Der hat 5 Pins: SCL, SDA, GND, Vin, VDD. VDD brauchen wir nicht. Jedoch kann man mit dieser Pinkonfig auch den "einfacheren" Kompass mit Accelerometer (den aus deinem Mitmach-Projekt) nehmen, wenn ich alles richtig gemacht habe. Daher sind an dem Jumper auch 2x GND und 2x 5V vorhanden.
--------------
ADC Mxxx und IO Mxxx:
Ja, ich weiß, nicht alle Pins sind überall.
Ich sehe mir das morgen noch mal genau an. Ich habe es so geplant, dass "wichtige" Dinge (wie 3 der 5 CNY70) auf Pins liegen, die alle besitzen und "unwichtige" wie die anderen beiden CNY70 auf den übrigen.
Natürlich kann man so viele Analoge Werte (5x CNY, ADC_Batterie, ADC-Taster, 2x Sharp GP2Dxx, 2x Snake Vision, ...) nicht auf die vier von allen nutzbaren ADCs verschalten, das macht keinen Sinn. Daher habe ichs so gemacht.
Werde aber wie gesagt nochmal genauer abklären, ob es so geht!!!
-----------------
USB-Host:
Misst, das hatte ich nicht bedacht. Der läuft ja nur mit 3,3V... Das wird ekelig. Wird wohl nicht mehr auf die kleine Platine drauf passen!?!?!?!?
@Rolf: Kannst du da mal drüber schauen? Geht das evtl auch ohne Pegelwandler?? Wenn nicht, werd ichs natürlich versuchen. Aber garantieren kann ich nix.
--------------
IOs und ADCs:
Ja, wurde alles ziemlich komplex.
Aber so hat man dafür die Wahl, den Pin selbst zu nutzen oder wie von der Platine vorgegeben.
IOs kann man sogar dreifach nutzen: Selbst, wie von der Platine vorgegeben, ODER mit dem ULN2803 als Transistor für andere Verbraucher.


So, das wars! Danke für den Input, schönen Abend!
Fabian

RolfD
26.11.2012, 11:20
Hallo Fabian,
die Verschaltung eines RMF12 geht eigentlich aus dem DatenblattPDF hervor bzw. läst sich im Web und selbst hier im Forum zuhauf finden. Siehe
http://www.hoperf.com/rf/fsk/20.htm
http://www.mikrocontroller.net/articles/AVR_RFM12
http://www.mikrocontroller.net/articles/RFM12
usw...
Eine vollständige Verschaltung (mit IRQ) sieht in etwa so aus:
http://benny.es/nanodeRMF12B/schematic.png
Als Simpel-Lösung wäre aber auch das schon möglich.
http://blog.strobotics.com.au/wp-content/uploads/2008/06/rfm12circuit1.png
Hab ich aber alles schon mal hier gepostet.

Da es verschiedene Ausführungen vom Modul gibt, wo teilweise 3,3 oder 5V verwendet werden, und dementsprechend auch verschiedene Anpassungen für die Leitungen (nicht) nötig sind, müsste man sich erst mal auf ein Modultyp festlegen.

Dirk hat vielleicht recht.. lass das RMF12 weg. Die Leute, die sowas brauchen kriegen das vermutlich selbst auf nem EX-Board nach ihren Vorstellungen unter gebracht.
Lass auch den USB Host weg... da gilt ähnliches wie bei dem RMF12.

Zu Goldcaps... die sind zwar schön aber auch nicht billig, man braucht weitere externe Bauteile zum laden und die Ladeströme sind nicht gerade gering bzw. müssen begrenzt werden. Einfache Lithiumzellen halten üblicher Weise schon mehrere Jahre.
LG Rolf

Dirk
26.11.2012, 20:05
Fabian:
ADC Mxxx und IO Mxxx: Ja, ich weiß, nicht alle Pins sind überall. Ich sehe mir das morgen noch mal genau an.

Ich habe das auch noch mal durchdacht und einen kleinen "Anschlußschaltplan" gemacht.
Der zeigt alle Verbindungen, wie man sie optimal von der M32, M128, M256 auf die neue Platine führen kann.
Dazu braucht es die 3 Wannenstecker, die du ja schon vorgesehen hast (ADC, I/O, ADC_IO1).

Der Plan zeigt, dass man bei guter Ausnutzung insgesamt 8 I/O-Portpins (IO_1..IO_ 8 und 5 ADC-Kanäle (ADC_1..ADC_5) IMMER, d.h. von allen Plattformen (M32, M128, M256) auf deine Platine führen kann. Mit der M256 kann man über den ADC_IO1-Stecker noch 8 weitere ADC-Kanäle (ADC_6..ADC_13) nutzen.

Vom ADC-Stecker lassen sich noch 2 Portpins gewinnen, die ich ADIO_1, ADIO_2 genannt habe. Sie lassen sich NUR mit der M128 (2 ADCs) und der M256 (2 IOs) nutzen, NICHT mit der M32.

Wenn du also die 3 Wannenstecker grundsätzlich so verschalten würdest, wie ich hier gepostet habe, wäre das schon eine gute Anbindung für alle User (also auch für die nur mit M32 oder M128 ).

Man müßte jetzt noch hingehen und eine Zuordnung der (Nicht-I2C-)Funktionen zu den Portpins (IO_1..IO_8, ADC_1..ADC13, ADIO_1, ADIO_2) vornehmen. Da ist man im Prinzip ganz frei, muss aber bedenken, dass AD_6..AD_13 nur mit der M256 verfügbar sind und ADIO_1, ADIO_2 nicht mit der M32.

Zum Thema UART (RXD, TXD):
Das braucht ja das GPS-Modul. An RXD dieses Schaltplan käme TX des GPS-Moduls, an TXD käme RX des GPS-Moduls.
Da man RX des GPS-Moduls kaum braucht, habe ich da den 5-poligen Jumper an TXD vorgesehen, damit man IO_2 und IO_5 auch für andere Zwecke auf der Platine nutzen kann.

Vielleicht hilft dir das Ganze ja ein wenig...

fabqu
26.11.2012, 21:00
Hi Rolf und Dirk!
Hoffentlich auch noch der ein oder andere...

Das RFM12 lasse ich (vorläufig??) weg. Wenn später noch platz ist, kann mans ja wieder drauf machen mit einer Minimallösung.
Den USB-Host sehe ich mir nochmal an. Wenn ich den komplett in die kleine Lücke bekomme (mit Levelshifter...) würde ich ihn drauf lassen, solange wir nichts besseres mit dem Platz anzufangen wissen. Man muss ihn dann ja nicht zwangsläufig bestücken!

@Dirk:
Hey, danke! Das ist klasse. Heute schaffe ichs zwar nicht mehr, aber ich setze mich morgen ran.
Aber danke fürs ransetzen!!!

So, das wars leider für heute!
Grüße,
Fabian


EDIT:
Brauchen wir denn eigentlich den USRBUS??? Belegt ist nix, aber vielleicht will den ja jemand haben!?!?

Dirk
26.11.2012, 21:40
Ja, USRBUS:
Eigentlich braucht man den nicht und kann ihn weglassen, wenn ...
a) man ihn auf der Platine nicht nutzen will,
b) diese Platine immer die OBERSTE im Spapel ist
c) oder man den Platz auf der Platine unbedingt braucht.

RolfD
26.11.2012, 21:58
Mal ein Wort nebenbei.. ich finds klasse was hier so an Infos zusammen kommt.

Zum USRBUS... wenn du alle verfügbaren Ports aller Mxxxer über Wannenstecker zugänglich machst, braucht man den Usrbus - wenn überhaupt - nur für eigene Ex-Boards. Dafür isser gedacht.
Wenn du Ports und Leitungen verschusselst, ist der USRBUS jedoch die einzige Möglichkeit, später fehlende Signale busähnlich auf die Platine zu kriegen.
Ich sehe also keinen Grund, warum man den dringend auf fertigen Boards bräuchte, aber auch keinen, warum man ihn weg lassen sollte. Vielleicht reicht aber ein einzelner USRBUS Stecker schon.
Das mit dem Stecker durchschleifen find ich ja klasse für industriell gefertigte Karten aber ob das auf privaten Projekten so wichtig is...
LG Rolf

Nachtrag.. ah Dirk hatte die gleiche Idee auch schon (b)

fabqu
27.11.2012, 09:11
Hi!
Also den USRBUS so zu gestalten, wie es die von Arexx gemacht haben (zwei Wannenstecker UND Pinherausführung) wird bei uns einfach zu viel Platz wegnehmen. Das macht keinen Sinn.
Wer das Board in früherer Ausführung schon gesehen hat, dem ist bestimmt aufgefallen, dass ich nur zwei Buchsen für jeden Bus (X und USR) vorgesehen habe. Man kommt ja immer noch von Platte zu platte, wenn man das Kabel einfach weiterführt.
Man kanns ja so regeln:
Wenn der USRBUS mit nur zwei Buchsen bestehen bleibt, lege ich jedem noch ein solches 14poliges Kabel mit drei solchen Steckern bei. Das ist dann eben etwas länger als die RP6-üblichen und hat in der Mitte noch nen Stecker. So könnte man es auch mit dem XBUS machen.
Wenn wir den USRBUS weglassen, lege ich ein etwas längeres bei mit zwei Steckern.

Natürlich nur, wer will.

Grüße

- - - Aktualisiert - - -

Nochmal zu den ADCs:
Wir haben ja 5 für alle nutzbare ADCs. dafür können wir nehmen:
Batterie (1x)
Taster (1x)
CNY70 (3x)

Was außerdem noch auf der Platine an ADCs wäre:
CNY70 (2x)
Snake Vision (2x)
NE555 (1x)
Alkoholgassensor (1x)
Spannungsteiler (2x)
Sharp GP2Dxx (2x)

Wäre es für alle OK, wenn ich folgendes mache:
3x CNY70, Batterie und Taster auf den ADC-Stecker (bietet 5 freie ADCs)
die zwei optionalen CNY70 schmeißen wir raus
der rest kommt auf den m256-Stecker
Die Sharps sowie die Bumper kommen auf die Base!?!?!?!? Dadurch würde man sich ersparen, dass mane rst auf die oberste Platine muss und von dort das ADC-Signal weiterleiten muss.

Die CNYs auf zwei Stecker zu verteilen ist wirklich nicht schön.

Grüße

Dirk
27.11.2012, 09:30
Fabian:
Man kanns ja so regeln: Wenn der USRBUS mit nur zwei Buchsen bestehen bleibt, lege ich jedem noch ein solches 14poliges Kabel mit drei solchen Steckern bei. Das ist dann eben etwas länger als die RP6 (http://www.rn-wissen.de/index.php/RP6)-üblichen und hat in der Mitte noch nen Stecker. So könnte man es auch mit dem XBUS machen.Wenn wir den USRBUS weglassen, lege ich ein etwas längeres bei mit zwei Steckern.
Eigentlich würde ja für den XBUS dasselbe gelten wie für den USRBUS:
Man braucht keinen 2. Wannenstecker für den XBUS, wenn diese Platine die OBERSTE des Stapels bleibt. Das ist ja naheliegend, weil wir Sensoren auf die Platine bringen, die sich unter einer anderen Platine gar nicht gut machen. Daher brauchen wir eigentlich nur 1 XBUS-Wannenstecker und keinen oder einen USRBUS-Wannenstecker mit rausgeführten Kontakten.

Noch eine Anmerkung zu RFM12 und USB-Host:
Beide sind ja eher "Fremdkörper" auf DIESER Platine,- da sind wir (?) uns ja fast einig. Wenn du die Lücke vorn in der Platine für eine selbstständige "Breakout-Platine" nutzen willst, dann macht das m.E. eher für den RFM12 einen Sinn, als für den USB-Host.
Begründung: USB-Host scheint mir so, wie er jetzt steht, hardwaremäßig nicht sicher funktionsfähig und für mich softwaremäßig gar nicht überschaubar. RFM12 können wir hardwaremäßig als "Basislösung" hinkriegen, Software gibt's eh.

Und noch zu den anderen "Breakout-Boards":
Ich weiss nicht, vielleicht hab ichs übersehen? Gibt es auf der Platine vorn Anschlußstecker für die Bumper- und die Linienfolger-Platine? Gut wäre ja, wenn das auch Wannenstecker (z.B. 2x4 oder 2x5 Pins) sind, weil man die einfach verarbeiten kann und einfach mit den Einzeladern des Flachkabels an die kleinen Platinen z.B. direkt anlöten kann. Jeder kann dann selbst die Befestigung für sich machen.

Dirk
27.11.2012, 11:37
@Fabian:
Vorschlag (ADC-Portpin-Reihenfolge egal):
AD_1 -> Batteriespannung
AD_2 -> Taster
AD_3 -> NE555 ODER 1x CNY70
AD_4 -> Gassensor ODER 1x CNY70
AD_5 -> Freier ADC ODER 1x CNY70

AD_6, AD_7 -> Freie ADCs ODER noch 2x CNY70 (außen)
AD_8 -> Freier ADC ODER NE555
AD_9 -> Freier ADC ODER Gassensor
AD_10, AD_11 -> 2x LDR/Lichtsensoren o.ä.
AD_12, AD_13 -> 2x analoge Sensoren (z.B. IR o.ä.)

Warum gerade so? Es gibt ja einerseits fest auf der Platine aufgebaute Sensoren und andererseits an Stecker anschliessbare Sensoren. Die auf der Platine sitzenden Sensoren sollten doch mit allen Plattformen funktionieren, damit die GANZE Platine mit allen Plattformen nutzbar ist? Oder?
Warum sollte man sie so wie wir es jetzt geplant haben bestücken, wenn man sie z.B. nur mit der M256 voll nutzen kann. Die Sensoren, die man anstecken muss (Bumper, Sharps, CNY70), KÖNNEN auch NUR mit der M256 funktionsfähig sein, aber die 3 CNY70 will man ja vielleicht auch mit den anderen uCs nutzen.
Das habe ich oben mal versucht. Natürlich gibts auch andere Möglichkeiten...
Was meinen die anderen "Mitlesenden" dazu?
Fabian:
Die Sharps sowie die Bumper kommen auf die Base!?!?!?!? Dadurch würde man sich ersparen, dass mane rst auf die oberste Platine muss und von dort das ADC-Signal weiterleiten muss.
Vorschlag: Naürlich kann jeder selbst entscheiden, wo er die Sharps und Bumper anschliessen möchte. Auf der Base und M32 gibt es ja schon fast perfekte Stecker dafür. Das ist doch aber kein Entweder-Oder! Wir haben doch zumindest mit der M256 genügend ADC-Kanäle und mit allen Plattformen genügend I/Os für die Bumper (die M256 hat ja NICHT die 3-poligen ADC-Stecker wie die Base und M32...). Letztlich sind das ja nur je ein oder zwei Stecker auf der Platine, den man nutzen kann, aber nicht muss.

Zu den I/Os: Hast du da auch schon eine gute Idee, wie du die nutzen/aufteilen willst?

RolfD
27.11.2012, 12:08
Ich persönlich finde die Wannensteckerlösung eh nicht gut. Besser wäre gewesen wenn man einen Blindstift im Stecker hätte so wie es auch bei anderen Flachbandkabeln z.B. am Pc Mainboard üblich ist. Leider ist das aber die Vorgabe Seitens AREXX. Allein die Wanne rundrum belegt je eine ganze Pinbreite. Das Ganze dann 2 bis 4 mal... plus Anschlußpads ... ne muss nicht sein. Ein einzelner ordentlich durchgeschleifter 40-Pol Stecker mit Blindpin wie die PATA-Plattenkabel oder ein Stiftsystem wie bei Arduinos hätte es auch getan, es würde nur halb so viel Platz belegen und doppelt so viele Anschlüss anbieten. Aber jut.. is nich...Wäre vielleicht was für den RP7 :)

Ich finde Dirks Belegung schon recht gut.
LG Rolf

fabqu
27.11.2012, 13:58
Naja, kann man ja ändern :D
man kann ja eine Wannenbuchse (pro Bus) lassen und ein kabel mit drei Steckern (vorn, hinten, in der Mitte) beilegen. Dann benötigt man schon mal nur zwei Buchsen/Stiftleisten.
Wäre es denn dann OK, wenn wir die Sharps und die Bumper auf der Base verdrahten? Und nicht auf dieser Platine???

@Dirk: Versteh ich dich richtig, dass wir quasi für jeden IO und jeden ADC einen dreier-jumper vorsehen sollen, damit man jeweils zwischen zwei Optionen wählen kann?
Wird halt ordentlich Platz fressen... Ist aber natürlich machbar.

Grüße

Dirk
27.11.2012, 15:10
Rolf:
... oder ein Stiftsystem wie bei Arduinos ...
Klar, das ist am Platz-sparendsten. Aber hier geht es ja um eine mehrpolige KABELverbindung und nicht um eine starre Platinenverbindung. Leider gibt es ja in SIL-Form nur wenige vorkonfektionierte mehrpolige Kabel bei den üblichen Versendern. Daher finde ich Wannenstecker (oder bei Platzmangel einfach eine doppelreihige Stiftleiste!) am besten, weil man dafür in Schneid-Klemm-Technik überall die Stecker und Flachkabel bekommen kann.

Fabian:
Wäre es denn dann OK, wenn wir die Sharps und die Bumper auf der Base verdrahten? Und nicht auf dieser Platine???
Ich weiss nicht, warum wir uns (Entweder-Oder) entscheiden müssen. Für die Sharps kann man zwei 3-polige Stiftleisten vorsehen wie ADC0, ADC1 auf der Base oder M32, ADC-Kanäle haben wir ja dafür. Mehr ist das doch nicht!? Dann kann jeder die Sharps an der Base, an der M32 oder auf dieser Platine (für M128 und M256) anstecken.
Für die Bumper & LDR Breakout-Platine eine 7-polige Stiftleiste (oder besser eine 2x4-polige Stiftleiste, um Flachkabel anstecken zu können).
Vielleicht verstehe ich aber das Problem nicht ...?

Fabian:
Versteh ich dich richtig, dass wir quasi für jeden IO und jeden ADC einen dreier-jumper vorsehen sollen, damit man jeweils zwischen zwei Optionen wählen kann? Wird halt ordentlich Platz fressen... Ist aber natürlich machbar.
Nein, nicht für alle. Wenn das so viel Platz wegnimmt, reichen 3 für AD_3..AD_5, damit man die Linienfolger auch mit allen Plattformen einsetzen kann.
An AD_6 bis AD_9 dienen die Jumper dazu, um mit der M256 alle Funktionen zu erreichen, muss aber nicht sein.

SlyD
27.11.2012, 15:54
@Rolf:
Die Lösung mit Wannensteckern beim RP6 wurde natürlich aus guten Gründen so gewählt.
Will jetzt aber nicht schon wieder so eine lange Diskussion vom Zaun brechen also nimm das bitte einfach als gegeben an ;-)



Nur ein paar Punkte dazu die ich mir da nicht verkneifen kann:
- Wannenstecker sind seit Jahrzehnten eine gut bewährte Lösung, robust, verpolsicher, überall sehr gut verfügbar, Kabel können
sehr leicht selbst hergestellt werden...
-

Allein die Wanne rundrum belegt je eine ganze Pinbreite.
ca. 1mm Umlaufend breiter als der Stecker... na komm, das macht ja nun wirklich nicht viel aus, so winzig klein sind die RP6 Platinen ja nun auch nicht als das da kein Platz wäre, da bekommt man schon sehr sehr viel unter ;-)
- Auf den Mainboards die ich hier habe werden ebenfalls Wannenstecker für USB / Serielle Schnittstellen verwendet - zusätzlich
mit Blindstift. Ja natürlich auch bei PATA da war das schon immer so. Mit Wannenstecker braucht man den Blindstift aber nicht weil eh schon Verpolschutz...
- Arduino erlaubt nur das Übereinanderstapeln von Platinen exakt übereinander und der Abstand ist nicht beliebig variabel.
Bei der RP6 Lösung kann man die Platinen so anbringen wie es einem passt - egal welche Stapelhöhe, egal
ob überhaupt übereinander gestapelt (hochkant und dann nebeneinander geht auch ;-) ), einzelne Boards können ausgelassen/übersprungen werden, mehrere Stapel können mit Flachbandkabel
miteinander verbunden werden - man muss nicht alle Boards in einem Stapel unterbringen sondern kann die vorne und hinten auf dem Roboter anbringen und untereinander verbinden wie man es braucht.
- Nicht alle Signale werden durch alle benutzten Boards durchgeschleift - nur die die man auch benötigt (XBUS, USRBUS). Der Rest ist variabel anpassbar. So kann man beliebige Boards miteinander kombinieren und muss auch nicht darauf achten wo nun schon welches Signal evtl. blockiert ist.
- Zwischen den Boards kann beliebig viel Platz für größere Sensorikkomponenten, Servos, Akkupacks usw. vorgesehen werden, die Platinen können somit auch als Montageebenen verwendet werden.
Auf den Platinen selbst können ohne weiteres praktisch beliebig hohe Bauteile verwendet werden (z.B. C-Control M128 Modul draufstecken...) und auch recht schwere Komponenten wie große Akkupacks verbaut werden.
- die zahlreichen Stecker der M256 sind nicht dazu gedacht auf nur eine einzige Platine herausgeführt zu werden.
Möglich ist das natürlich, aber prinzipiell könnte man AN JEDEN der Wannenstecker eine eigene kleine Platine anschließen (die nicht das volle Platinenformat des RP6 benutzen muss - kann auch nur 2x2cm klein sein.). Auf jeder Wannenbuchse ist MASSE und VERSORGUNG verfügbar.
- Das ist bei Arduino auch eher ungünstig gelöst, da gibt es nur einen oder zwei Massekontakte für ALLE Signale zusammen...
Jedes Signal braucht einen Rückleiter, Signale die sich denselben Rückleiter teilen stören sich gegenseitig - alle Analogsignale mit allen Digitalsignalen auf einem einzigen sehr breiten länglichen Stecker mit nur einer Masseleitung am Rand (=großer Abstand zum Masseleiter) und die Versorgung aller Platinen im Stapel läuft ja auch noch darüber... also das ist eigentlich ein gutes Beispiel dafür wie man es gerade eben nicht machen sollte!



Ein einzelner ordentlich durchgeschleifter 40-Pol Stecker

Selbst der würde für die M256 nicht ausreichen und das Kabel wäre extremst breit und sehr sehr unhandlich ;-)
Die kleinen 10 - 14 poligen bekommt man fast überall durchgefädelt und gefaltet und die Kabel mit Stecker sind auch einfacher selbst herzustellen.


MfG,
SlyD

fabqu
27.11.2012, 18:18
Hmm, also ich glaube, das stellt ihr euch etwas zu einfach vor.
Ich soll:
- Den IO-Stecker
- Den ADC-Stecker
- Den ADC-Stecker der M256
- Einen Stecker für 3-5 CNY70 mit Transistor zum an/abschalten
- Den Stecker für die Bumper und die Sharps bzw die zwei SRF02 (2 IOs, 2 ADCs, I2C)
- den NE555
- die Leitung für die 4 Taster
- den Alc-Tester
- den DCF77
- das GPS mit allen zugehörigen Jumpern und Widerständen
- den Buzzer
- das SnakeVision (2x ADC, 2x IO)
- den Widerstandsteiler (2x ADC)
- den Batteriesensor
(...) ???
ALLES in eine Ecke quetschen und mit Jumpern versehen, damit man alles auf bis zu zwei verschiedenen Steckern parat hat???
Dazu das rießen Servo-Geflecht?

Ich werds versuchen. Aber momentan sehe ich da gewisse Probleme auf uns zukommen. Ihr wollt ja dann auch, denke ich, dass wenigstens die fünf Schraublöcher (zwei vorn, zwei hinten, und das eine in der Mitte hinten) vorhanden sind sowie der USRBUS und eine Stromversorgung...

Eieiei!
Das wird... schwierig. Sagen wir mal schwierig.

Dirk
27.11.2012, 18:45
Ah, ok, es wird eng.
Ich war noch davon ausgegangen, dass genug Platz ist (daher kam ja m.E. z.B. auch der Alc-Tester noch dazu ...).
Dann sollten wir eher das noch rausschmeissen, was vielleicht entbehrlich ist.
Fabian:
...damit man alles auf bis zu zwei verschiedenen Steckern parat hat
Ich denke:
a) Eigentlich sollten ja alle Sensoren je EINEN Anschluss an die 3 Plattformen (M32, M128, M256) über die 3 Stecker I/O, ADC und ADC_IO1 finden. Einen ZWEITEN Anschluss wüßte ich nur für RX/TX des GPS-Moduls (3-polig), damit das Modul auch frei verdrahtet an die M32 oder Base anzuschliessen ist.
b) Die Sensoren, die nicht direkt auf der Platine sitzen, brauchen natürlich einen eigenen Anschlussstecker (LDR, Bumper, Snake Vision ...). Diesen Stecker kann man ja nicht als ZWEITEN Stecker pro Sensor zählen.
Bei welchen Sensoren/Funktionen haben wir denn einen 2. Anschlussstecker vorgesehen bzw. soll der Ausgang des Sensors an 2 Stellen verfügbar sein?

Aber egal: Wenn nicht alles draufpasst, müssen wir halt streichen!

fabqu
27.11.2012, 19:04
Mal noch abwarten :D
vielleicht hab ich grad zuviel gemeckert. Habe gerade die gesamte Platine zerstückelt, versuche da was anderes.
Sieht grade bissl chaotisch aus, aber es könnte doch noch was werden ;)
23862

Xenergy
27.11.2012, 19:51
Hallo,
was habt ihr denn mit der Löcher?? Es reichen vollkommen die äusseren zwei oben und eins in der Mitte. Mehr wie genug Stabilität und spart viel Platz für das Zeug, was draufkommen soll.
Statt den Jumpern kann man ja auch einfach in einer reihe IOs und ADCs, in der anderen die Sensorik und dann kann man ein Stückchen Draht "quer" über die platine (von IO-Reihe Lötpunkt3 auf die Sensorikreihe Lötpunkt7 zum Bleistift) spannen.
Vllt keine übliche Lösung, spart aber Platz und das ist grad das was euch fehlt.

Dirk
27.11.2012, 20:44
Xenery:
Statt den Jumpern kann man ja auch einfach in einer reihe IOs und ADCs, in der anderen die Sensorik und dann kann man ein Stückchen Draht "quer" über die platine (von IO-Reihe Lötpunkt3 auf die Sensorikreihe Lötpunkt7 zum Bleistift) spannen.
Dirk: :feuer:gift:gift :mad:

fabqu
27.11.2012, 21:12
Zu den Löchern: theoretisch hast du, Xenergy, recht, ABER:
Die beiden hinteren kann man nicht weglassen, da z.B. die M128 kein hinteres mittleres besitzt. Dort könnte man dann diese Platine nicht mehr anbringen.

Und ich habs grad recht gut zusammen, es könnte tatsächlich klappen...
Werde zwar heute nicht mehr fertig, aber es sieht gut aus.
Wie genau ich das mit den mehrfach-Jumppern mache, muss ich mir noch überlegen. Grüße

RolfD
28.11.2012, 13:51
@Fabian
Kennst Du das EDV Grundprinzip "Teile und herrsche"?
Aber es hat auch keiner behauptet, das es einfach wäre.
Ich finds nur interessant das du zum einen aufrufst, "da wär noch Platz" , auf der anderen Seite scheint kein Platz mehr zu sein sonst würdes du hier nicht rumfluchen und das obwohl manche Bauteile schon wieder von der Projektliste verschwunden sind... alles nur wegen ein paar mehr Jumper?
Ich vermute, da fehlen aber auch einfach Denkanstöße.
Üblicher Weise legt man z.B. um die Ränder der Platine auf Ober- und Unterseite jeweils erst mal + und - damit man die einzelenen Baugruppen einfach mit Strom versorgen kann. Dann muss man sich nur noch mit den Datenleitungen rumschlagen.
GPS hätte ich eher rausgeworfen als andere Bauteile wie den RMF12 denn GPS ist für ein indoor Bot nicht nutzbar wie wirklich jeder mit seinem Android Handy oder Navi prüfen kann.
Die Stecker kannst du weitestgehend zusammen legen da man nicht 2 oder 3 M-Boards gleichzeitig anklemmen wird. Dahinter ein Jumperfeld um die Signale verteilen zu können. Folglich legt man das Jumperfeld und die Stecker mittig oder führt sie vom Rand in die Mitte um sie dort in alle Richtungen zu verteilen. Es sagt niemand, das du alles in eine Ecke quetschen musst!
Dann hast du 2 Seiten und nichts hält dich ab SMD bestückungen auf der Unterseite vorzunehmen. Sowas wie den Servocontroller könnte man komplett auf der Unterseite verdrahten, inzwischen habe ich jedoch den Eindruck das es besser wäre, den auch weg zu lassen und tatsächlich nur die PWMs der M256 und ggf. SoftwarePWMs von den anderen Boards zu nutzen.
Dinge wie DFC77 oder Buzzer belegen je nur ein Port, die würde ich als letztes verdrahten und irgendwo dazwischen quetschen. Wertet man DCF77 Signale aus, braucht man aber auch kein RTC mehr denn da reicht auch sowas wie eine SoftwareRTC die per DFC77 Syncron gehalten wird.
Dann kannst du Signale auch mehrfach durch Dukos führen. Üblicher Weise verlegt man Leitungen auf 2-Lagen Layer getrennt in längs und quer Richtung. Auf die Art hast du eine gewisse Systematik, die sich bei voller werdenden Platinen als einfacher zu erweitern zeigt. Da du aber "Funktionscluster" hast und du nicht mal große Busse verdrahten musst... das schwierigste sind so Dinge wie I2C mit Zusatzleitungen wie INT oder SEL ... also macht man die auch zu erst - und gleich so das die i2c Baugruppen nach 5V und 3,3V geordnet nebeneinander liegen. Und auch hier.. die Pegelwandler können auf die Unterseite.
Das sind nur ein paar Tips und Hinweise..
LG Rolf

Nachtrag: Oh da kamen schon wieder Posts nach... Den Spruch.. rahm ich mir aber ein..
"theoretisch hast du recht, ABER"
:D
(Der Hinweis ansich ist aber korrekt und sollte Beachtung finden. Allerdings spricht nichts dagegen, das weiterhin als 3-Punkt auszulegen, man hat ja nu mal 2 Stapel und man kann einen als 3 und einen als 4 Punkt Befestigung auf dem RP6 auslegen.)

Nachtrag 2:
Wir hatten auch schon drüber gesprochen, das man XBUS und USERBUS nicht durchführen muss wenn die Platine als oberstes montiert ist.
Der USERBUS könnte sogar komplett entfallen wenn alles andere zugänglich verdrahtet ist.

inka
28.11.2012, 14:30
hallo Fabian,

ich finde Du machst es schon richtig, freue mich schon auf die platine...

btw: zum "teilen und herrschen":
Bereits Sunzi (http://de.wikipedia.org/wiki/Sunzi) (um 500 v. Chr.) beschreibt sinngemäß teile und herrsche als eine Strategie der chinesischen Kriegskunst. Die lateinische Formulierung geht zurück auf Niccolò Machiavelli (http://de.wikipedia.org/wiki/Niccol%C3%B2_Machiavelli) (1469–1527), der in seinem 1532 erschienenen Buch Der Fürst (http://de.wikipedia.org/wiki/Der_F%C3%BCrst) den Fürsten Medici (http://de.wikipedia.org/wiki/Medici) erklärt, wie sie ihre Herrschaft ausüben sollten.
-------------------------------
kannten die damals schon EDV? :-)

fabqu
28.11.2012, 17:31
YEAH :D
Es sieht gut aus!!!
@Rolf: Dass da noch platz ist, hab ich ja gesagt, BEVOR RTC, DCF77 und der Alc-Sensor drauf kamen. Ich würde gerne beide Uhren drauf setzen, so wie ich auch den TCN75-Tempsensor der M128 drauf gelassen habe, obwohl der Feuchtigkeitssensor einen Tempsensor eingebaut hat.
Nur sehe ich die Platine einerseits als komplette Bastel- und Experimentierplattform, andererseits hat vielleicht jemand das eine, aber das andere nicht...

So ist jetzt aber alles droben.
Ich werde heute oder morgen mal Bilder hochladen. Grüße

RolfD
28.11.2012, 18:28
Hallo Fabian..
also ich versteh nicht, das du den extra TCN75 Sensor drauf lässt obwohl der Feuchtesensor auch ein Temp-geber hat. Nicht das 2 Sensoren schon einer zu viel ist.. Leute mit M128 haben dann drei?
Und alles nur weil es Leute geben könnte die, vielleicht kein Feuchte/Tempsensor bestücken wollen aber unbedingt ein Tempsensor brauchen? hm...
Gleiches gilt auch für die verschiedenen Kompass Boards... ich denke eins (das 9 Achsen Teil) reicht vollkommen.

LG Rolf

Nachtrag:
http://www.magnevation.com/pdfs/speakjetusermanual.pdf
Was haltet ihr denn von sowas?
Als Ersatz für den "Buzzer" z.B.?

Nachtrag 2:
Also wie eich jetzt gelernt habe, braucht man dafür noch eine kleine NF Stufe und ein Text to Speech Prozessor
Ein LM358 wars wohl .. und ein TTS256. Fertige Arduino Boards gibts auch.
https://www.sparkfun.com/products/10661
Dort müsste man den TTS256 wohl nachrüsten, ich hab aber auch schon welche mit dem TTS256 gesehen.
http://www.droidbuilder.com/home/SpeakJetShield

Und noch nen Bauvorschlag wo ich grade bei Arduino Boards gucke...
Könnte man evt. auf dem Board ein Steckplatz für Ardunio Shilds aufbauen?
Es würde sich für den RP6 eine komplett neue Welt an Peripherie öffnen.
https://www.sparkfun.com/search/results?term=arduino+shield&what=products
... Sparkfun ist nicht der einzige Hersteller für Arduino ...

fabqu
29.11.2012, 07:48
Hier mal die pdf's des / der Boards und der Schemata.
Ich habe eigentlich alles unterbekommen, GND ist gelegt (das sogenannte Ratsnest fehlt noch, es füllt alle übrigen Flächen mit GND aus, um Säure bzw Fräsköpfe zu schonen) .
Bitte seht euch alles an, ich hoffe ich habe alles richtig gemacht... aber Fehler schleichen sich einfach schnell ein. Zur Fehlersuche braucht man eigentlich nur die Schematics, aber zum Verständnis manchmal auch das Board... vor allem bei den vielen IO- und ADC-Verteilern. Hier muss ich aber auch nochmal nacharbeiten. Auch die zwei dreipohligen Pinreihen für die zwei Sharps fehlen noch.

@Rolf:
Die Idee mit dem Speakjet finde ich klasse, aber ich denke, ein Käfer dieser Größe geht nicht mehr so einfach unter. Müssten was dafür rausschmeißen (Alcgas z.B. könnte weg, ist ja nur zur Gaudi).
Was den TCN betrifft: Der braucht ÜBERHAUPT keinen Platz in SMD, der wurde unter der XBUS-Buchse angebracht. Also bitte ned meckern, dass der drin geblieben ist. Nun kann jeder, der z.B. Base, M32 ODER / UND M256 hat, auch die Temperatur messen, selbst wenn er den Feuchtesensor nicht besitzt. Ist doch nett!
Und dass man Boards beidseitig bestückt, ist mir übrigens klar :) Jedoch legt man meist zwei GND-Flächen über die gesamte Platine, da man sich diese durch die ganzen übrigen Leitungen ohnehin wieder zerschneidet. Zuindest ahbe ich das so gelernt.
Wie das mit den Shields ist, hab ich keinen Peil und gerade nicht die Zeit, mir das genauer anzusehen, vielleicht heute Nachmittag. Oder kannst du uns was dazu sagen? Was braucht man? Was macht man damit?
Danke.

Viele Grüße!

RolfD
29.11.2012, 14:04
Hallo Fabian,
Arduino Shilds sind kleine stapelbare, Steckboards die es mit 1000 verschiedenen Funktionen gibt. Sie passen auf eine Reihe von unterschiedlichen "Motherboards" der Arduino Serie.
Hier mal eine Liste mit Boards die es so gibt. http://shieldlist.org/
Das hier: http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3
ist z.B. ein Arduino Diecimila mit einem ATMega328 als singleside Platine ohne SMDs drauf, mit dabei ist ein Schaltplan und ein Eagle File aus dem alles hervor geht was du brauchst.
Das hier ist z.B. ein Prototyp Bord ebenfalls mit den besagten Daten. http://arduino.cc/en/Main/ArduinoProtoShield

Mir ist klar das nicht alle PR6 Boards alle Leitungen bereit stellen die da benötigt würden... bis auf vielleicht die M256. Vielleicht kann man sich da aber mit einem Portexpander vom Typ PCFxxxx behelfen?
Was aber mit Sicherheit ginge, wäre ein ATMega328 ... oder mir noch deutlich lieber ein ATMega32/664/1284 in 40er DIP Fassung zum wechseln als i2C Slave oder per SPI, evtl. mit Ponyprog Hardware fürs bootstrappen, der seinerseits die Shilds steuert.

Mir ist klar das dies dein bisheriges IO Konzept komplett umwerfen kann, da dies keine einfache "Erweiterungsplatine für den M256" mehr wäre.
Es würde aber mehr Leute erreichen als bisher, mehr Hardware zur verfügung stellen als alles was du versuchst da jetzt auf die Platine zu bekommen und vermutlich einfacher sein als eine eierlegende Wollmilchsau zu bauen. Es wäre zumindest ein zweites Projekt wert, selbst wenn du es mit diesem nicht umsetzt.

LG Rolf

fabqu
29.11.2012, 15:16
Hi Rolf,
Prinzipiell finde ich die Idee für so einen Shield-Aufnehmer mit dickem Prozessor super, aber vielleicht machen wir das in einem eigenen Projekt?
außerdem wäre ich nach wie vor an deinem M128-Ersatz interessiert!!!

Grüße

RolfD
29.11.2012, 15:52
*nickt
LG Rolf

Dirk
29.11.2012, 19:14
@Fabian:
Danke für die aktuelle Version! Es wird immer perfekter...!!

Hier noch mal Dinge, die mir auffallen. Beim Drübergucken bin ich nicht sicher, ob ich bei der Form des Schaltplans alles richtig erkennen kann,- also bleibt ein großes Stück Unsicherheit beim Debuggen.

USB-Host:
So weder im RP6-System noch auf der Platine stand-alone funktionsfähig. Empfehlung: Weglassen!

Anschluss GP2Dxx:
An Pin 2 der Stecker (JP60/61) liegt ja normalerweise GND. Ich würde da keinen Low-Side-Schalter (Q4) einbauen,
weil GND dann auf einem nicht genau definierten GND-Pegel liegt, den z.B. SCL/SDA brauchen.
Auch so ist Q4 nicht funktionsfähig: Es fehlt GND an JP65 Pin 2, R32 ist nicht nötig.
Empfehlung: VCC_BUMP schalten!

Anschluss SRF02:
Die ziehen auch gut was weg. Evtl. auch VCC schalten?

Alkoholgas:
Besser ist (wie im letzten Schaltplan) immer die Abschaltung der Versorgungsspannung über VCC und nicht an GND.

RTC:
Ich wiederhole meinen Vorschlag eines Goldcap! Braucht zusätzlich z.B. nur 3x 1N4148 und 1x R.

Servoverteiler:
Ich sage nochmal: Schaltung für die Servo-VCC dürfte so nicht funktionieren.
Bitte evtl. noch auf einem Breadboard testen!!
Mein Änderungsvorschlag: Pin 2 von JP56 müßte m.E. an Pin 2 von JP86!
Frage: Wieviel Leistung setzt der längsgeregelte Q5 um? Kühlung?
Empfehlung: Die komplette Schaltung auch mit Q8 einmal aufbauen und testen!

ADCs:
Blicke ich nicht durch. ADC-Kanäle sind ja nur an Pins 1,3,5,7 und per 3-pol-JP an 2/9.
(Siehe meinen Plan ADCIO-Stecker.jpg!)
ADC_VDD nicht verbinden!

IOs:
Blicke ich auch nicht durch. IOs sind ja an Pins 1, 3..8 und per 3-pol-JP an 2/9.
(Siehe meinen Plan ADCIO-Stecker.jpg!)
IO_VDD nicht verbinden!

ADC_IO1:
GND nicht verbinden!

JP15, JP10, JP122, JP69:
Was machen die alle? Man braucht doch nicht z.B. bei ADC_IO1 alle Pins von der Platine mit JP69 abzutrennen:
Man kann doch einfach den Stecker von ADC_IO1 abziehen, wenn man keine Verbindung will, oder?
Ähnlich ist das mit den anderen Jumpern, die viel Platz brauchen.
Es sind letztlich nur an wenigen Pins wirklich Jumper nötig.

Stromversorgung:
Es muss ganz sicher sein, dass +UB des RP6-XBUS NIE an die Stromversorgungs-Buchse kommen kann.
Hier ist nur JP6 dazwischen: Das könnte Probleme machen.
Wenn du eine Buchse mit Schalter (S2) einbaust, könnte man evtl. GND vom RP6 abtrennen, wenn ein Stecker eingesteckt wird.
D2: Was soll die Z-Diode bewirken?

"Hühnerfutter":
Da wir ne Menge Dinge auf der Platine zusammen packen, die sich gern gegenseitig stören, brauchen wir noch 100nF keram. Blockkondensatoren
(an VCC/GND) an Stecker: Feuchte, Kompass, Luftdruck, DCF77, GP2Dxx, SRF02; an ICs: RTC, U6, Temp.
Ein kleiner Elko 10..47µF sollte in die Nähe von GP2Dxx und Servos M32.

So viel auf den ersten Blick.

P.S.: Fabian, bitte nicht über meine vielen Punkte ärgern! Ich will nur erreichen, dass wir das hinkriegen!

fabqu
29.11.2012, 21:26
Hey Dirk,
würde mich nie über Kritik ärgern!!!! Aus Fehlern kann man lernen, und ich habe ja darum gebeten!!!!

Leider bin ich ziemlich platt, aber ich werde euch morgen die Liste abarbeiten. Erst mal soviel: Alles nicht so schlimm :D


Grüße und gutes Nächtle

fabqu
30.11.2012, 08:04
mal die Berichtigungen:

USB-Host:
Ist vorläufig raus, nur das Schematic ist noch drin (falls wir es doch noch wollen).
---------------
GP2Dxx:
Low-Side-Switch ist raus, high-side-switch kommt evtl auf Hauptplatine. Der Low-Side war ja "nur" ein BC847, der meiner Meinung nach gar nicht die Ströme der Sharps hergebracht hätte. GND-Level ist jetzt dasselbe wie auf der Hauptplatine.
---------------
SRF02:
Brauchen die echt so viel?
Abschaltbarkeit ist aber nicht so einfach, da man sie ja (immer?? ) neu softwareseitig initialisieren muss!?!?
ODER??
-----------
Alcgas:
Das Alcgas wird nun vom Taster #4 ausgelöst. Das hat den Vorteil, dass man eben keinen eigenen Taster für das Ding braucht, sondern den ohnehin vorhandenen hernehmen kann. Hier sollte es aber nicht weiter wichtig sein, welche Seite ich schalte. Bei dem Sensor geht es nur um die Heizwendel, die würde sonst ununterbrochen Strom ziehen.
------------
RTC:
Goldcab... habe ich mir angesehen. Kostet halt leider etwa 7 Euro und braucht nochmals Hardware. Vielleicht kann ich beides unterbringen, dann kann jeder selbst entscheiden, was er davon einlötet.
-----------
Servos:
Diese Schaltung existiert bereits bei dem Vorgänger dieses Boards sowie bei dessen Vorgänger, jedoch OHNE den BUZ11 (Q8). Der Buz11 macht einiges an Leistung, aber ich weiß nicht, ob es ausreicht!!!!!!!!!
Ich werde leider auch momentan nicht dazu kommen, es zu testen. Mein Vorschlag: Entweder wir schmeißen den BUZ ganz raus (dann wären die Servos nur hardwareseitig abschaltbar) oder wir nehmen gleich eine Verstärkerstufe mehr (Darlington davor und einen dicken MOSFET oder so) .
Zu Sache mit der LED und JP56 und Q5: das funzt wie gesagt alles so! Die LED pusht uns den GND auf 6,6V, was die Servos deutlich besser anziehen lässt, aber ansonsten (bisher) keinerlei Nebenwirkungen hatte. Durch den JP56 kann man die LED einfach überbrücken, mehr macht der nicht! Warum sollte Pin 2 von JP56 an Pin 2 vom JP86??
---------------
ADCs:
Wird noch verschönert / vereinfacht.
Dein .jpg hänge ich unten dran, dann weiß jeder, wie ichs belegt habe.
23889
--------------
IOs:
siehe ADCs
------------
ADC_IO1:
Wieso denn GND nicht verbinden????
Rest siehe ADCs
------------
Die ganzen Jumper:
Wird alles noch vereinfacht. Habe mir bisher alles mit Jumpern offen gehalten, aber da wird noch aussortiert und vereinfacht.
------------
Stromversorgung:
Wie kann man denn besser verhindern, dass sich die beinen UBat nie verbinden? ein Schalter benötigt wieder einiges an Platz...
Wie meinst du das mit GND abkoppeln durch die Buchse mit Schalter (S2) ???
D2: Hier geht eigentlich jede leistungsstärkere Diode in SMD-Format. Hatte diese Zener grade da und daher diese. Es muss nur sichergestellt werden, dass sie die Leistung durchjagt, die zum Schmelzen der Sicherung nötig ist, da sie den Verpolungsschutz darstellt. Ist so am einfachsten... Man könnte auch einfach ne Diode in die Versorgungsspannung setzen, aber das würde uns von der Batteriespannung bis zu 2 Volt kosten (je nach eingebauter Diode). Um das zu verhindern habe ich D2 so eingebaut, dass sie nur im verpolten Zustand leitet und dann auch gleich nen Kurzschluss erzeugt -> Sicherung fliegt.
--------------
Hühnerfutter:
Wird gleich mal eingebaut.
Nen dicken Elko an den Servos ist schon vorhanden (ich habe nen 470uF oder nen 1000uF dran hängen, die puffern genug! )

Bitte vor allem auf das Dickgedruckte eingehen!!!!!
Grüße!


EDIT: Muss denn an den ULN2803 noch Hühnerfutter? Ich glaube nicht, da der ja auch keine VCC braucht (ODER?? ) und eigentlich nur GND durchschaltet.

EDIT2:
Ich habe mir die Goldcap-Lösung nochmal genauer angesehen. Persönlich würde ich davon abraten. Grund:
- Goldcap kostet minimum 4 Euro, das ist fast viermal soviel wie ne Batterie mit Clip.
- Man braucht man noch zusätzlich Dioden und R's (braucht wieder Platz, preislich aber vernachlässigbar).
- mit der RTC hält der Goldcap "nur" 20 Tage. Finde ich zu wenig, denn mein Bot steht auch mal länger ohne Strom rum. Ne Batterie hält... ja, ich hab keine Ahnung wie lange. 3 Jahre??? Das ist mehr, als ein Goldcap Lebensdauer hat! Ja, ich weiß, man kann ja mit diesem Board die RTC stets neu initialisieren, dank DCF77. Aber nicht jeder will den DCF77-Anschluss dann auch verwenden. Ich z.B. werde die DCF wegen der dicken Antenne nicht anschließen, höchstens mal zum testen.
OK???

Dirk
30.11.2012, 16:14
@Fabian:

SRF02:
Ok, sehe ich ein. Auf einen Power-Switch sollten wir verzichten.

Alcgas:
Ich denke, dass GND hier auch nicht geschaltet werden sollte, weil ja eine analoge Auswertung (mit ADC) erfolgt und der misst auf Basis von GND.
Was bedeutet "wird nun vom Taster #4 ausgelöst"? Wie hast du das gemacht?

RTC & EDIT:
Ich kann auch mit der Lithium-Batterie leben, wenn wir sie nicht fest auflöten, sondern in einen Knopfzellen-Sockel setzen.

Servos:

Warum sollte Pin 2 von JP56 an Pin 2 vom JP86??
Weil sonst der komplette Servostrom durch die LED2 fliessen würde,- das überlebt die nur 0,0000... Sekunden!
Schau dir noch mal deinen Schaltplan vom 18.11. an: Da ist DER Teil mit der LED richtig verschaltet.
Der BUZ11 dürfte mit 30A keine Probleme machen.

Stecker I/O, ADC, ADC_IO1:
Ich würde GND und VDD an allen Steckern UNBELEGT lassen. Ist sicherer und verhindert Brummschleifen.

Stromversorgung:
Mit dem Schalter meinte ich, ob man nicht eine Buchse mit Schalter (http://www.conrad.de/ce/de/product/737863/Netzgeraete-Einbaukupplung-Printmontage-10-mm-40-mm-BKL-Electronic/0223020&ref=list) nehmen könnte. Dann hat man einen eingebauten Schließer, der z.B. +UB oder GND vom RP6 abtrennt, wenn jemand den Stecker in die Buchse steckt. Dann gibt es keine Probleme mehr. Alternativ könnte man die Diodenschaltung nehmen, die -glaube ich- Picture angegeben hatte.

Hühnerfutter:
Reicht aus. An den ULN würde ich auch nen Kerko setzen, weil dort u.U. ne Menge Schaltimpulse durchgeleitet werden.

EDIT2:
OK!!!

fabqu
30.11.2012, 17:34
Alcgas:
Schau mal aufs Board, da ist oben eine Leitung vom GND-Anschluss des Sensors zu den Tastern hoch, daneben steht "T4 Alc-Gas" .
Drückt man den Taster 4 und hält ihn gedrückt, hat man eben die GND-Verbindung... Soll ich vielleicht den ganzen Alc-Gas-Blödsinn wieder rausschmeißen???

RTC ist mit Knopfzelle bestückt, Halterung zum Einlöten war ja von Anfang an eingeplant.

Die Buchse ist schon die richtige, sie trennt GND vom Rest der Platine ab, wenn man sie reinsteckt. Dafür kann man GND wieder mit einem Schalter daneben (oder einem Jumper, je nachdem, was man einlötet) zuschalten.

Hühnerfutter fürn ULN wird nachgelegt.

Das wichtigste:
Logisch überlegt, hast du recht. Der ganze Servostrom sollte gerade über die LED laufen... das sollte die nicht aushalten können. Tut sie aber in meinem momentanen Board und in dem davor. Hatte bisher ständig 6 Servos dran - ohne Probleme!?!?
Dann bliebe ja nur, LED ganz raus zu nehmen und auf die höhere Spannung zu verzichten!?
Oder es riskieren, und wenn die LED es nicht aushält, dann nimmt man eben den Jumper JP56?

Nochmal zu den Bumpern / Sharps: Die ganze Bumperplatine ist ja momentan nicht auf diesem Board verdrahtet, da uns ja auch die ADCs und IOs ausgehen. Wir haben nur noch die zwei ADIOs frei, die könnte man immerhin für die Bumper hernehmen, aber nicht für die sharps.
Lösung 1: Sharps ganz weglassen, Bumperplatine nur mit zwei Bumpern und zwei SRF02 ausstatten (5V, GND, I2C)
Lösung 2: Anschlüsse weglassen und stattdessen auf M32 oder Base verkabeln

Grüße

Dirk
30.11.2012, 19:10
Alcgas:
Diese Gassensoren haben ja eine Heizwendel, die erst auf Temperatur kommen muss, bevor man messen kann. Da macht es keinen Sinn, das ganze per Tastendruck zu schalten, weil man schon 30-60 Sekunden halten müßte, um konstante Werte zu erreichen. Woher soll dann der µC wissen, dass er jetzt messen kann ...
Also: Ich finde, der Sensor stört nicht, man sollte aber einen Jumper an VCC vorsehen oder eben einen Highside-Switch per MOSFet.

RTC:
Ok, das mit dem Sockel hatte ich noch nicht hier im Thread gelesen.

Servoverteiler-Stromversorgung:
Du hast auf deinen vorherigen Schaltungen sicher nicht so verschaltet, wie in deinem letzten Plan. Wie gesagt, sieh dir deinen eigenen Plan vom 18.11. aus diesem Thread an: Da ist die LED RICHTIG verschaltet. Du must also nur DIESEN Plan entsprechend ändern.
Nochmal konkret: Zwischen der Anode von LED2 und R36 darf NUR GND von IC7 (mit C8, C18 ) hängen, aber NICHT JP56 (damit also SERVO_GND). SERVO_GND muss an die KATHODE von LED2 angeschlossen werden. Das war auch in deinem Plan vom 18.11. RICHTIG so!!! :pray::pray:

Bumper/Sharps:
Ich weiss nicht ... Die Bumperplatine macht ja für die User eigentlich den Haupt-Sinn, dass man sie HINTEN am RP6 anbringt, denn vorn gibts ja schon Bumper. Ob man hinten auch SRF02 braucht? Ich fände das übertrieben, also käme Lösung 1 für mich nicht infrage.

SlyD
30.11.2012, 20:34
Hallo,


Dann hat man einen eingebauten Schließer, der z.B. +UB oder GND vom RP6 abtrennt, wenn jemand den Stecker in die Buchse steckt.

Die sind nicht unbedingt zuverlässig im Einsteckmoment wenn man dran rum wackelt.
Ich würde da nicht die GND Verbindung schalten, sondern ganz normal einen externen Schalter in die VCC Leitung packen.
Da ist doch sowieso schon ein UMschalter... und man kann dann auch Umschalten ohne den Stecker zu ziehen ;-)


Soweit ich das sehe (hab nur ganz schnell mal drübergeschaut) hast Du das schon in etwa so gemacht aber nochmal sicherheitshalber dazu gesagt: Die Servo Versorgung soweit möglich vom Rest trennen. Die können ordentlich Störungen verursachen und ziehen richtig viel Strom.
Auf jeden Fall eine Möglichkeit vorsehen die Versorgungsleitungen (GND + VCC) separat über ein Kabel zu der Platine zu verlegen (z.B. direkt zum Akku oder zu einem zweiten Akkupack - beim RP6v2 gibts da extra Anschlüsse in der Nähe des 5V Reglers für - beim RP6 sind die teilweise auch vorhanden nur nicht bestückt) um die Störungen vom XBUS fern zu halten - 8 Servos wären da ein "bisschen" viel... überleg Dir mal was die ziehen könnten wenn die alle unter Last laufen!
Und da gibts ja nochmal 8 Servosteckverbinder da weiter unten... uh :rolleyes:


MfG,
SlyD


PS:


Soll ich vielleicht den ganzen Alc-Gas-Blödsinn wieder rausschmeißen???

Was sollte damit denn überhaupt gemacht werden?
Ist der Operator betrunken, fährt der RP6 autonom, ansonsten darf er selbst fernsteuern?!
;)

Dirk
01.12.2012, 10:45
SlyD:
... einen externen Schalter in die VCC Leitung packen. Da ist doch sowieso schon ein UMschalter... und man kann dann auch Umschalten ohne den Stecker zu ziehen
Das ist eine gute Idee... und sicherer als die Buchsen-Schalter-Variante.

SlyD:
Die Servo Versorgung soweit möglich vom Rest trennen.
Das ist auch unbedingt wichtig! Man könnte ja auch die M32-Servostecker von dieser externen Spannung mit versorgen oder diese Stecker ganz weglassen.
Fabian: Hast du einen eigenen Wannenstecker für die M32-Servoanschlüsse vorgesehen? Wenn nicht genug Platz ist, wäre das ja im Prinzip derselbe Stecker wie der I/O. Damit könnte man die Servosignale auch von dort nehmen. Man bräuchte nicht einmal Jumper, weil man ja Servos, die man nicht braucht, auch nicht anstecken muss.

Alc-Gas:
SlyD:
Was sollte damit denn überhaupt gemacht werden? Ist der Operator betrunken, fährt der RP6 autonom, ansonsten darf er selbst fernsteuern?!
Jaja,- die französische RP6-Variante ... :p Der RP6v3 oder RP7 sollte in Frankreich serienmäßig damit ausgestattet sein! :lol:
Nein, im Ernst: Der RP6 soll autonom den Weg zur Kneipe "erschnüffeln".

fabqu
02.12.2012, 18:56
So,
zum Bumper-Zeugs:
Ich versuche, das noch besser irgendwie zu integrieren. Wird schon klappen!

Zum Alc-Gas:
Ich würde es eigentlich gern wieder rausschmeißen. Die Heizwendel frisst doch nur Strom, und es dauert einige (20?) Sekunden, bis man irgendwas messen kann. Dann lieber nochmal über das Speak-Jet vom Rolf nachdenken.

Zum Servoverteiler:
Habe es überprüft, und ich sage: Es stimmt so, wie es ist!!! Schau mal, wo "Servo_GND" geführt wird, das läuft nicht durch die LED. Sie liegt nur vor dem 5V-Regler. Dieser treibt den Transistor Q5 und damit sind Regler und LED quasi abgekoppelt von "Servo_GND" und von "Servo_VCC" .
Und der JP56 kann die LED überbrücken. Dann geht der 5V-Regler direkt auf GND und regelt demnach auf die (richtigen) 5V. Ist der JP56 nicht bestückt, regelt der 5V-Regler auf 5V+V[LED] = 5V+1,6V = 6,6V.
Sollte wirklich so passen... Habe daran auch nie etwas verändert, außer dem Jumper.
Leider habe ich auch keine alten Versionen gespeichert, aber schick mir doch mal das Schematic, das du (Dirk) hast, auf dem es anders sein soll. Dann schau ich mal.

Grüße

Dirk
02.12.2012, 20:25
Hallo Fabian,

Alc-Gas:
Von mir aus völlig OK.

Servoverteiler:
Ich glaube, ich habe es jetzt so langsam kapiert.
Weil in deinem Plan nicht überall dickere Verbindungs-Punkte sind, wo sich kreuzende Leitungen Verbindung miteinander haben (wie z.B. an der Anode von LED2, die mit Pin 2 von JP56 und mit R36 und mit C8, C18 verbunden ist), habe ich angenommen, dass die Leitung vom Minuspol von C11 zu JP56 Pin 1 KEINE Verbindung zur Kathode von LED2 hat, sondern hier nur ohne Kontakt drüber kreuzt.
Wenn es da eine Verbindung gibt, ist alles ok und JP56 schließt tatsächlich nur LED2 kurz.
Weniger fehlerträchtig wäre vielleicht, wenn es überall im Plan die dickeren Verbindungs-Punkte gäbe, wo kreuzende Leitungen Kontakt haben, aber egal ...
Also: Sorry für diese Bombardierung mit einer letztlich überflüssigen Fehlermeldung. Da sieht man, wie wichtig klare Informationen und Vereinbarungen (gesprochen, geschrieben, als Plan o.ä.) sind, wenn man sich nicht unnütz herumquälen will.

fabqu
02.12.2012, 20:46
Hi Dirk,

Mann, kein Stress ;)
werde die Punkte nachrüsten. Keine Ahnung, warum eagle das nicht automatisch an Kreuzungen setzt. Aber bei mir ist's eigentlich immer so, dass ich keine Leitungen Kreuze, ohne dass sie zusammengehören.
aber konnte ja außer mir keiner wissen...

Noch zu den servos für die M32: die haben nen eigenen 10poligen IO-Wannenstecker am unteren linken Eck der Platine und werden auch von "Servo_GNG" und "Servo_VCC" gespeist. Also auch wahlweise 6,6V oder 5V.

Dann Schau ich mal, wie ich's mit dem Alcgas und den Bumpern mache. Hoffentlich komme ich morgen dazu.

Was haltet ihr eigentlich mal von einer deadline für die Hardware? Wir sind ja schon echt weit, vielleicht noch ein oder zwei Sensoren oder Aktoren, wenn wir was finden, noch nach Fehlern suchen, aber ansonsten sieht's doch langsam nach was produzierbarem aus, oder?

Grüße

Dirk
02.12.2012, 20:54
Fabian:
... aber ansonsten sieht's doch langsam nach was produzierbarem aus, oder?
Volle Zustimmung von meiner Seite.

fabqu
03.12.2012, 08:22
Ist es OK, wenn ich die beiden Bumper der Bumperplatine (zwei Taster) auf die ADIOs lege? dann kann man sie von der M128 aus als ADCs einlesen, von der M256 aus als IOs.
Die Sharps kann man dann:
- entweder mit normalen dreipoligen Steckern an Base oder m32 anschließen
oder
- sie gehen an den großen ADC-Stecker der M256 (Port PF3 und PF4) wo man mit Jumpern zwischen Alc und NE555 oder Sharp 1 und zwei wählen kann.
- ODER man schließt statt der zwei Sharps zwei SRF02 an die Bumperplatine und legt diese dann auf den I2C.

Ist das so OK?
Dann hat man echt die absolut freie Auswahl.
Und wir haben auf der Platine noch genau einen IO frei (Pin 3 des IO-Steckers) und den ADC2 der M128 (Pin 6 des ADC-Steckers).

Soll ich da noch was anschließen, oder lassen wirs?

Alc-Sensor besteht auch weiterhin, nur das mit dem an-/ausschalten muss ich mir noch genauer überlegen.

Schön langsam muss man glaube ich ne richtige, gute Anleitung für diese Platine schreiben, so viele Jumper!!!

Grüße

inka
03.12.2012, 15:58
also wenn ich dir da helfen kann - ich habe früher technische handbücher für alles mögliche geschrieben...

fabqu
03.12.2012, 17:20
Danke dir, das wäre keine schlechte Idee.
mal drüber nachdenken, wie man das machen könnte.

fabqu
03.12.2012, 21:07
Mich würde ein stromsensor sehr interessieren... Für den strombedarf der gesamten erweiterungsplatine. Kennt da jemand was kleines, feines? Für I2C oder von mir aus auch für'n ADC?

Dirk
04.12.2012, 11:16
Fabian: ... zur Anleitung für die neue Platine:
...mal drüber nachdenken, wie man das machen könnte.
Z.B. mit einem RN-Wissen-Artikel ... :wink:

... zum Stromsensor:
Kennt da jemand was kleines, feines? Für I2C oder von mir aus auch für'n ADC?
Meinst du so etwas: http://www.linear.com/product/LTC2990 (http://www.linear.com/product/LTC2990)?
Alternativ wie auf dem RP6 mit kleinem Shuntwiderstand, OP-Verstärker und einem ADC.

Bumper: Gut möglich.

Sharps, SRF02: Auch vorstellbar.

fabqu
04.12.2012, 11:40
Den hatte ich auch schon im Auge... nettes Ding, würde uns sogar einen ADC (für Spannung) ersparen.
Wir bräuchten dann ja den "Battery Monitoring" auf Seite 20 vom Datenblatt, oder? Dann braucht man nur noch nen 100nF und nen 470pF-Kondensator sowie einen Transistor (MMBT3904) und einen 15mOhm-Widerstand.

RolfD
04.12.2012, 12:53
Hallo Fabian,
also generell lassen sich ADCs auch nachrüsten. Siehe Chip PCF8591.
Auch andere Funktion ... ( IO PCF8574, RT Clock PCF85(6/7)3, Rams PCF8570, EEPROMS PCF859(4/8) ) lassen sich am I2C einfach nachbilden.
Slyd hat auf dem Baseboard bereits eine Strommessung implementiert - die kann man sich abgucken. Die Geschichte mit dem LTC2990 gefällt mir aber besser.

Es wäre vielleicht auch schön wenn man am Board irgendwo wo Platz ist, noch 1 oder 2 I2C Anschlüsse wie auf dem Baseboard vorsieht. Also + und -, die 2 I2C Leitungen und ein INT(0,1,2).
Ich hab statt einem SRF02 z.B. ein SRF10 (i2c statt UART) und würde den dann auch da irgendwo anschließen wollen wenn möglich.
LG Rolf

fabqu
04.12.2012, 13:25
Hi Rolf,

ich bin gerade dabei, den LTC2990 noch irgendwie reinzuquetschen.
zu den I2C-Leitungen:

ich habe zum einen vier SRF02-Anschlüsse (SDA, SCL, 5V, GND) angebracht (kann man ja auch für anderes nutzen, nur die Reihenfolge der vier Pins ist halt wie beim SRF02) und darüberhinaus zwei 10polige Pinherausführungen mit I2C und Int sowie VCC und GND je einmal für den 5V- wie auch für den 3,3V-Betrieb!!!

Reicht das?

- - - Aktualisiert - - -

Mit welchem SMD-Transistor könnte ich denn die Sharps abschaltbar machen? Die hauen ja unter umständen schon ganz schön rein. Müsste ein Transistor für High-Side-Switch sein und die Leistung der Sharps abkönnen.
Habt ihr da ne Idee? oder kann ich da grundsätzlich alles nehmen?

Dirk
04.12.2012, 14:35
@Fabian:
Die Schaltung mit dem LTC2990 müßte ich mir nochmal angucken. Mache ich heute abend. Wir müßten aber vorher entscheiden, wie hoch der max. zu messende Strom sein soll. Danach richten sich die Werte der ext. Bauteile.
Die Sharp-IR-Sensoren (z.B. mein Lieblings-Sensor GP2Y0A02YK) brauchen mit max. 50mA im Mittel gar nicht so viel Strom. Sie haben aber Stromspitzen bis zum 3-fachen Nennstrom. Wichtig sind also Elkos/Kerkos direkt am Sensor. Da man ja einen PNP-Transistor als High-Side-Switch brauchen würde, käme z.B. der 2SA1362 infrage,- ich habe aber gerade nicht nachgeschaut, ob man den bei den üblichen Versendern kriegen kann. Es gibt auch noch viele andere Typen ...

fabqu
04.12.2012, 15:24
Ok, werde ich mal nachsehen.
ich stelle später mal das Schema des ltc hier rein, wie ich es nun eingebaut habe, ob das so stimmt.

Und nun mal Futter bei die Fische:
Ich hätte noch einmal die Möglichkeit, diese Platine als einzelstück in meiner Arbeit Fräsen zu lassen!!!
also wenn wir bis sagen wir Donnerstag das Ding hinbekommen, dann würde ich ein testobjekt anfertigen lassen!! Was haltet ihr davon?
Natürlich bräuchte man dann auch langsam mal Software. Und wir müssen uns sicher sein, dass die momentane Anordnung der teile so passt oder ob sich da vielleicht noch Sensoren gegenseitig beeinflussen...

Grüße

RolfD
04.12.2012, 16:10
Joar das langt.
http://www.robot-electronics.co.uk/htm/srf02techSer.htm
http://www.robot-electronics.co.uk/htm/srf02techI2C.htm
http://www.robot-electronics.co.uk/htm/srf10tech.htm
Beim SRF10 wird der "Mode Pin" nicht angeschlossen und er kann "nur" i2c.
LG Rolf

Nachtrag:
Ich würde in jedem Fall vorher ein Muster fräsen lassen wenn die Möglichkeit besteht.. und ich bin sicher das da noch Dinge auftreten, die man für ne Kleinserie ändern kann/muss/soll.
Die "Software" .. zumindest um zu prüfen ob die Baugruppen es tuen kannst du mehr oder weniger ALLE irgendwo aus dem Netz ziehen oder stehen in den Datenblättern der Teile.
Um die Teile sinnvoll zu nutzen müsste man sicherlich mehr Software schreiben aber das mache ich erst wenn ich eines der Boards hier liegen habe und das praktisch ausprobieren kann.

Also Doku würde ich ... wie Dirk sagt.. ein Wiki Artikel bevorzugen in dem z.B. alle Datenblätter als PDF verlinkt sind... um mal son Anfang zu haben.. Dann Aufbau... Jumperbestückung ... Quellen für die Bauteile.. der Rest kommt dann nach und nach... Du kannst ja von dem gefrästen Board dann auch schon Fotos ins wiki setzen damit man sieht wies wird. usw.

Wenn das soweit steht mach mal ne Umfrage mit neuem Thread und verweis auf den Artikel und dann anfragen wer bzw. wieviel Leute interesse haben.

Dirk
04.12.2012, 16:28
Fabian:
Und wir müssen uns sicher sein, dass die momentane Anordnung der teile so passt oder ob sich da vielleicht noch Sensoren gegenseitig beeinflussen...

Wow, das geht aber jetzt schnell.

"momentane Anordnung der Teile" -> das geht ja in Richtung Platinenlayout. Könntest du dann noch den quasi endgültigen Schaltplan und das Platinenlayout einstellen.
Wenn wir mit mehreren Augen drübergucken wollen/sollen, wäre auch ein Layout-Ausdruck schön, der hervorgehoben die GND-Leitungen/-Flächen und die wesentlichen VCC-Leitungen zeigt. Da entscheidet sich nämlich Wohl und Wehe der Platine am meisten.

Software: Da muss bei mir die Platine aufgebaut und hardwaremäßig ok sein, dann kann man da dran gehen.

fabqu
04.12.2012, 17:26
Ich muss noch (kurz? ) den Schalter für die Sharps einbauen.
Und: Was soll denn nun in den Ausschnitt vorne? Soll ich das USB-Host-Platinchen nun wirklich wegschmeißen? Sonst irgendwas rein???
Oder lassen wir das jetzt erst mal ganz weg und kümmern uns bei Bedarf später nochmal drum?

Grüße

EDIT:
Schon mal das Schema des LTC, bitte mal drübergucken :D

- - - Aktualisiert - - -

So, hier schon der gesamte Plan. Das Schematic ist zweiseitig, wobei ich das USB-Modul, den Anschluss für das RFM12 und für einen 2D-IR-Sensor noch drinnen habe, kommt aber raus (liegt auch noch im Board oben, kommt weg) .

Das Board einmal mit beiden Layern und ohne GND-Füllung, einmal nur Top (mit GND-Füllung) und einmal Bottom (mit GND-Füllung).

Vielleicht sollten wir auch drüber nachdenken, mein heiß-geliebtes ULN2803 wieder rauszuschmeißen. Momentan treibt der große Baustein nur das SnakeVision, aber dafür kann man auch nen SMD-Trans (BC807, hab ich auch für die Sharps genommen) nehmen.

Und den Spannungsteiler zur Spannungsmessung kann man doch dann auch wieder rausschmeißen, oder?

Grüße

Dirk
04.12.2012, 17:41
Ich denke, dass es so noch nicht geht:

a) Die Spannung an V1 muss <= VCC sein.
b) Von V2 geht's dann weiter zu den Verbrauchern auf der Platine

Wegen a) bräuchte man wohl eher eine Schaltung wie S. 19 oben (Large Motor Protection).
Nachmal die Frage: Welche Ströme wollen denn messen?

fabqu
04.12.2012, 18:06
Ich wollte einfach messen, was auf der Platine an Strömen fließt, also insgesamt...

Bist du dir mit a) und b) sicher? Und warum die Motor Protection?

Dirk
04.12.2012, 18:57
Ja, a) ganz sicher: Deshalb auch das Schaltungsbeispiel mit der Large Motor Protection. Da wird das Limit, dass V1 <= VCC sein muss, durch Spannungsteiler aufgehoben.
Ja, b) auch ganz sicher: Der komplette Strom, den wir messen wollen, muss durch den mOhm-Widerstand fließen, und zwar von V1 (+) nach V2 (-).

Danke noch für deine neuen Pläne/Layouts. Das sieht ja sehr gut aus!

Deshalb auch nur noch Kleinigkeiten:

Stecker/Jumper/Verbindungen allgemein:
Läßt sich kaum vollständig überprüfen. Du hast das aber im Griff!

Bumper-Anschluss:
Q1 braucht noch einen Basisvorwiderstand 1k..4,7k, oder ist der woanders?

NE555:
Es kann sein, dass die Antenne auf der fertigen Platine so empfindlich ist, dassEinflüsse auf der Platine schon durchschalten. Man wird sehen. Auf jeden Fall den Antennenanschluss gut isoliert zwischen GND-Flächen und nur kurz führen.

Alkohol-Gas:
Möglichst an VCC schalten.

Temp:
Mir fällt nur auf, dass der Jumperblock für die Adressen irgendwie merkwürdig ist:
Einen Jumper (für Power) muss man auf Pins 1/2 aufstecken, den zweiten Jumper auf 4/6 oder 6/8und den dritten auf 3/5 oder 7/8. Funktioniert alles,- erfordert aber eine sehr gute Doku, wenn auf denselbenJumperblock Jumper in verschiedene Richtungen aufgesteckt werden sollen. Evtl. den Power-Jumper etwas absetzen.

Snake:
Nur zur Erinnerung: Der Pin SNAKE_SWITCH sollte zu einem PWM-Ausgang führen.
Alternative: Anschluß von 9V an VCC! Das geht dann sogar OHNE SNAKE_SWITCH.

Stromversorgung:
Für S1 ggf. (Vorschlag SlyD) einen UMschalter vorsehen. Damit gibt's keine Konflikte mehr:
Man kann nur die eine ODER die andere Stromquelle wählen.

Layout:
Soweit erkennbar, sieht das doch gut aus.
SV13: Ich würde GND-Pins nicht verbinden (oder nur über JP).

fabqu
04.12.2012, 19:47
Q1:
Ist ja klar ;) sorry.

NE555:
Wird gemacht. Irgendwie... Jedoch schaltet der soweit ich weiß erst bei einer Frequenzabweichung von 2/3 durch... das sollte so einfach nicht erreicht werden.

Alc:
Ach ja, das VCC-Problem... Hmmmmm. Ist denn ein einfacher Jumper an VCC OK?

Temp:
Werde ich versuchen. Wollte damit erreichen, dass diejenigen, die eine andere Temp-Messung verwenden (über Feuchtesensor oder den neuen Stromsensor) , den TCN75 auch nachträglich noch deaktivieren können.
Erledigt.

Snake: ????
habe bei meinem Snake den Spannungsregler überbrückt, da der RP6 ja die 5V konstant liefert. Der SnakeSwitch geht auf den ULN2803 und dadurch wird das Snake-Board abschaltbar. Soll ichs vielleicht einfach mit nem pnp machen? wäre wohl leichter.

Stromversorgung:
S1 ist doch ein Umschalter, oder? Auf der einen Seite kann man die XBUS-Ubat wählen, auf der anderen die eigene. Vielleicht sollte ich noch einen zusätzlichen Jumper vorsehen, mit dem man dennoch beide kurzschließen kann? Dann kann man einen externen Akku, der an dieser Platine sitzt, auch für den Rest des RP6 nehmen.
Oder ist dann die Gefahr zu groß, dass jemand zwei Akkupacks zusammenschaltet???

Und wo ist denn SV13???

Grüße

Dirk
04.12.2012, 20:09
Alc:
Ich denke schon: Wer ihn nicht nutzen will, zieht den Jumper ab.

Temp:
Das Deaktivieren ist auch ganz ok. Ich würde den JP für die Deaktivierung nur etwas vom Rest des Adressjumperblocks absetzen.

Snake:
Habe ich bei meinem Snake auch gemacht. Wer da nicht dran basteln möchte, könnte einfach 9V an VCC legen (alternativ 5V, dann aber mit SNAKE_SWITCH).

Stromversorgung:
Ok, dann ist ja alles ok. Einen zusätzlichen Jumper braucht man dann nicht.

LTC2990:
Ich überlege mir noch was ...

Dirk
05.12.2012, 19:30
Ich:
... überlege mir noch was ...

Vorschlag zur Beschaltung:

1. Strommessung an V1/V2:
Beschaltung so wie S. 19 (Large Motor Protection). Die beiden Spannungsteiler (im Datasheet 71,5/10,2 kOhm) werden durch 10,0/10,0 kOhm (1%) ersetzt,- wir brauchen also vier Widerstande a 10 kOhm (1% Metallfilm).
Der Shuntwiderstand (im Datasheet 0,01 Ohm) wird ersetzt durch den Shunt, den WIR brauchen. Das hängt davon ab, wie hoch der max. Strom (Imax) ist, den wir messen wollen. Zwischen V1 und V2 kann der LTC2990 300 mV (0,3V) max. messen. Deshalb ist unser Shunt: R = 0,3 / Imax. Bei einem Imax von 5A wäre der Shunt also 0,06 Ohm.
Die Leistung (P) ist auch noch relevant: P = 0,3 * Imax. Bei Imax = 5A wären das max. 1,5 Watt. Das ist mit SMD nicht machbar, wir brauchen also einen bedrahteten Widerstand,- am besten auch 1% Toleranz.
Wollen wir einen anderen max. Strom messen, errechnet sich natürlich ein anderer Shunt Widerstand.

2. Spannungsmessung 9V und 6,7V Servospannung:
Der LTC2990 misst ja sowieso seine eigene VCC (also 5V). Zusätzlich könnte man noch auf die externe Temperaturmessung mit MMBT3904 an V3/V4 verzichten (wir haben ja immer noch die INTERNE Temperatur und unsere anderen Temp-Sensoren!!) und dafür 2 Einzelspannungen messen.
Beschaltung von V1/V2 so wie S. 18 (Computer Voltage and Temperature Monitoring), aber die Beschaltung von V1/V2 an V3/V4 realisieren. An V3 kann man dann (über Spannungsteiler 10,0/10,0 kOhm (1%) die 9V Eingangsspannung anschließen, an V4 über einen Spannungsteiler 10,0/19,6 kOhm (1%) die 6,7V Servospannung.

Damit würden wir den LTC2990 gut ausnutzen. Meinst du, er geht noch drauf?

fabqu
05.12.2012, 20:47
Das wird schon klappen. Ich mach das morgen mal, Schick dir das Schema. Wenn es passt, quetsch ich den noch irgendwie rein ;)
danke dir für die Recherche.
Grüße

fabqu
06.12.2012, 08:31
So, hier mal das Schema.
Was ich noch nicht sicher weiß: Was muss an den Shunt ran? Also was muss statt "N$11" und "N$18" ???
Und die Shunt-Größe müssen wir uns noch definieren bzw müssen wir finden.

Grüße

fabqu
06.12.2012, 15:25
Also wenn ich die Platine heute noch wegschicke, dann wird sie morgen gefräst...
Und dann habe ich sie spätestens am Montag, bestücke sie und dann kannst softwareseitig los gehen!!!!

Grüße

Dirk
06.12.2012, 17:45
Fabian:
Also was muss statt "N$11" und "N$18" ???
Wenn ich deinen letzten Schaltplan nehme, dann ist ja rechts oben die Stromversorgung. Da geht die Hauptleitung vom Schalter S1 zum Eingang (Pin 1) des 5V-Spannungsreglers. Da muss der Shunt rein, und zwar N$11 an S1 und N$18 an den Eingang (Pin 1) des 5V-Spannungsreglers. Durch den Shunt kann also der volle Strom fliessen. Vom Layout her müßte der Shunt so ein Widerstand wie einer der weißen eckigen auf der RP6 Hauptplatine neben der Sicherung sein.
Wenn du den LTC2990 nicht direkt in der Nähe des Shunts unterbringen kannst, kannst du auch ruhig etwas längere Verbindungen (normal dünne Leiterbahnen) vom Shunt zu R2 und zu R9 vorsehen: Da fließt ja nur ein sehr kleiner Strom.
Willst du nicht V3/V4 für Einzelspannungsmessung auf der Platine nutzen? Temperaturwerte haben wir doch genug, oder? Schön wäre ja die Überwachung von 9V, 6,7V und/oder 3,3V. Das wäre ja mit dem LTC2990 locker drin!?

P.S.: Kriegen wir heute noch hin!

fabqu
06.12.2012, 21:37
Hi Dirk, ich hoffe ich erreiche dich noch, denn ich muss das ja heute wegschicken.
Ich habe es jetzt wie hier gemacht, jedoch aus Platzgründen nur mit der Hauptspannung (9V), nicht mit der Servospannung. Vielleicht bekomme ich das nachträglich noch hin.

Passt das so?
Und frage:
Ich habe ja jetzt an V2 und V3 quasi dasselbe (10kOhm Spannungsteiler zwischen +9V und GND).
Kann ich dann nicht nur einen Spannungsteiler nehmen und die Pins V3 und V2 zusammenschalten?

Grüße

fabqu
07.12.2012, 16:13
Die Platine wurde vermutlich heute gefräst, wenn nicht dann wohl Montag.
Ich bestelle jetzt alles, was ich dafür brauche.
Dann löte ich die Platine komplett, dann haben wir mal ein Test-Objekt für Hard- und vor allem SOFTware!!!

Noch ein paar Fragen:
- Geht ein BSN20 statt des BSN10 ? (3,3V-I2C)
- Statt des Buz172 (CNY-Schalter) sollte ich ja quasi jeden PNP nehmen können, der den nötigen Strom abkann, oder?

Die externen Sensoren bestelle ich vermutlich auch gleich, leider ist da ja jeder bei einem anderen Versand... aber egal ;)

Dirk
07.12.2012, 19:33
@Fabian:

Die Platine wurde vermutlich heute gefräst, wenn nicht dann wohl Montag.
Glückwunsch! Du hast es geschafft! Reife Leistung! =D>


Ich habe ja jetzt an V2 und V3 quasi dasselbe (10kOhm Spannungsteiler zwischen +9V und GND). Kann ich dann nicht nur einen Spannungsteiler nehmen und die Pins V3 und V2 zusammenschalten?
Ich bin nicht sicher. Daher würde ich einen 2. Spannungsteiler nehmen.


Geht ein BSN20 statt des BSN10 ? (3,3V-I2C)
Ja.


Statt des Buz172 (CNY-Schalter) sollte ich ja quasi jeden PNP nehmen können, der den nötigen Strom abkann, oder?
Der BUZ172 ist ein MOSFet, kein Transistor. Man müßte ggf. dann einen anderen MOSFet Typen (P-Kanal, Anreicherung) nehmen.

fabqu
08.12.2012, 11:40
Ok, habe gerade alles bestellt.
Es fehlt noch das GPS-Modul, welches ich momentan noch nicht kaufen möchte.
Und das Feuchte-Modul, aber das gibts hier nebenan beim großen C :D

Ich gebe bescheid, wenn die Platine da ist!

fabqu
08.12.2012, 18:10
Hier mal eine Auflistung, was die Platine alles kann!!!
Haben einiges drauf bekommen :D

fabqu
10.12.2012, 20:54
So, Platine ist heute Fertig geworden. Lötlack muss noch trocknen, morgen kann ich sie abholen :D
Den ersten dicken Fehler habe ich schon entdeckt und behoben: Unter dem Alc-Sensor wird ein Loch gebohrt (warum auch immer) und genau dort ging ne Leiterbahn entlang.
Gut, dass jemand so nett war und uns nen Prototypen angefertigt hat ;)

Grüße

Dirk
11.12.2012, 08:20
Na, toll! Wie sieht sie denn aus?

Danke an den "Jemand" für den Prototypen!

Dann können wir ja in Ruhe alles testen, bevor es in die "Serienreife" geht ...O:)

Hast du gesehen: Deine Eckdaten wurden bis jetzt 15x heruntergeladen. Wenn davon jeder eine/zwei Platine/n nimmt, müßte es eine Kleinserie doch geben können, oder?

fabqu
11.12.2012, 19:44
So, Platine ist nun hier und ich habe schon die Durchkontaktierungen verlötet und die ersten Teile eingelötet.
Hoffentlich kommt die erste Lieferung morgen, denn hier habe ich nur 0603er SMD-Teilchen und bei der Platine habe ich 1206er eingeplant, da sie leichter zu verlöten sind...

Hier mal die ersten Fotos ;)

24001
24002
24003

Dirk
11.12.2012, 20:09
Sieht ja gut aus.
Kann es sein, dass Eagle für den Alc-Sensor einen Röhrensockel benutzt hat? Das würde das Loch in der Mitte erklären ...

fabqu
11.12.2012, 20:16
Die EAGLE-Lib für den Alc-Sensor habe ich mir irgendwo her gegooglet. Aber irgend sowas wirds gewesen sein...
Ich stelle wieder Fotos rein, wenn ich die neuen Teile habe!

Grüße

RolfD
14.12.2012, 22:12
Ich denke schon, das das Loch vom ALK Sensor so richtig ist... und kein "Röhrensockel" ... so weit ich weis, arbeiten Alk Sensoren mit einer Heizwendel die durchströmende Luft erwärmt. Daher auch das Loch im Board. Ich vermute jedoch, das dort trotz Loch zu wenig Luftzirkulation vorhanden ist um Alkoholkonzentrationen der Luft sinnvoll zu messen. Aber da dies eh nur als "Spielerei" zu sehen ist und nicht zwangsläufig bestückt werden muss... Vielleicht versuchst es mal mit ner Flasche Bier intus und nem Strohhalm wo du Atemluft da durch pustest... :D Ansonsten wird der Sensor nicht mal den "Luftalkohol in einer Kneipe" messen können... *grins

Eines der größten Probleme bei Alk Sensoren ist die Heizdraht Temperatur bei unterschiedlicher Anströmung gleich zu halten damit die Messergebnisse nicht verfälscht werden... wie von vielen Pusteröhrchen z.B. bei Alkoholkontrollen bekannt. Vielleicht erreicht man was wenn man eine Schwingankerluftpumpe wie es sie im Aqauriumbedarf gibt, in den Luftkanal klemmt. So... wird der Sensor jedenfalls nix sinnvolles messen. Da könntest du auch mit einem Pusteröhrchen in einer Kneipe wedeln... und hättest größere Chancen so Alkoholteilchen in der Luft aufzuschnappen. :cool:

Da Du bei Nennung des Sensors direkt dazu gesagt hast, das es ne "Spielerei" für dich ist, habe ich mich mit dem Kommentar bisher zurück gehalten. Es ist zwar schade um den Platz der da verloren geht aber ich denke, da ist noch genug auf dem Board drauf was andere auch interssiert...
Das "elektronische Nasen" (ebenso wie natürliche) eine gewisse Luftzirkulation brauchen ist übrigends immer so... müsste aber auch aus den Datenblättern hervorgehen und entspricht eigentlich auch einer gewissen Logik. Man riecht ja auch nur was wenn man einatmet. Also selbst die Richtung der Luftströmung scheint wichtig... wird bei dem Sensor auch nicht anders sein.

Und noch was zu Sensoren allgemein: Sensoren die etwas messen sind kontaminiert!
Jetzt eine lange Pause... zum Nachdenken... und ein Beispiel.
Ein Temperatursensor der eine Temperatur misst, muss folglich auch die Temperatur haben die dem Messergebnis entspricht. Logisch! Ist das Gehäuse des Fühlers jedoch groß, muss man mit einer gewissen Trägheit rechen was die Änderung von Werten angeht, oder? Der Sensor ist also termisch kontaminiert! Das kann so weit gehen das der Sensor sogar zu falschen Messwerten kommt oder das Messgut "beheizt/kühlt". Oft kann das vernachlässigt werden - aber eben nicht immer.

Bei Luft/Gas Sensoren ist das etwas anders. Dort liegt auch eine Kontamination vor - allerdings ist da der Luftstrom die entscheidende Größe. Betrachtet man Luft als Flüssigkeit fällt einem das Gedankenexperimet leichter.
Stellt ein Sensor eine Verunreinigungsdichte fest, ist die Menge der Verunreinigung eigentlich nur messbar wenn man weis wie viel Masse an Luft/Flüssigkeit an dem Sensor vorbei strömt - und dabei die erfühlten Verunreinigungen auch wieder weg trägt (Kontamination). Die korrekte Angabe ist dann z.B. 100 Teilchen Pro Kubikcentimeter Luft pro Sec.... also die 100 Teilchen wird so ein Sensor schon feststellen.. aber welche Aussagen haben wir über den Luftstrom? Keine...
Damit ist eigentlich nur feststellbar ob die Messchwelle des Sensos irgendwie überschritten wird - ohne jeden Rückschluß auf irgend welche Werte oder tatsächliche Mengen. Alk Sensoren sind meines Wissens zudem auch nicht so empfindlich wie andere Gas Typen.
Im Prinzip gilt das für die meisten Sensoren, die wenigsten messen direkt absolute Größen, sondern sind auf Funktionen aus einer Messgröße und deren Varibilität angewiesen welche von weiteren Faktoren abhängt. Daher misst man z.B. auch Tagestemperaturen im Schatten - weil man den störenden Anteil an IR-Strahlung (Wärme) und deren Reflektionseffekte - durch die Sonne verursacht - verhindern will. Das sind aber nun Störgrößen.. die haben mit der Sensor Kontamination nur in zweiter Linie zu tun. Usw. usw. usw.
LG Rolf

Dirk
15.12.2012, 10:35
RolfD:
Ich denke schon, das das Loch vom ALK Sensor so richtig ist... und kein "Röhrensockel" ... so weit ich weis, arbeiten Alk Sensoren (http://www.rn-wissen.de/index.php/Sensorarten) mit einer Heizwendel die durchströmende Luft erwärmt. Daher auch das Loch im Board.
Der MQ-3 wie auch alle anderen Gassensoren, die ich kenne, sind unten geschlossen. Die Luft zirkuliert dann durch einen Drahtkäfig auf der Oberseite des Sensors.

fabqu
15.12.2012, 16:33
Hi!
Statt dem Alcgassensor kann man ja jeden Gassensor drauflöten, der diesen Sockel hat. Und das haben die meisten, die ich bisher gesehen habe.
Und den Platz wussten wir ja gerade nicht anders zu nutzten (ist ja auch nur etwa 1cm^2 )
Leider fehlen immer noch etliche Teile. Ich hoffe, sie kommen Montag!

Grüße

fabqu
18.12.2012, 19:39
Juhuu!
Die ersten Teile sind da. Leider fehlen noch der PWM, TCN75 und der Stromsensor. Auch die ganzen Aufbausensoren (Luftdruck, Kompass...) fehlen noch. Aber alle anderen SMD-Teile sind schon aufgelötet.
Werde mir wohl ne neue Lötspitze holen müssen, die jetzige (0,8mm) wird für die SMD-Käfer wohl zu grob sein.

Grüße

fabqu
19.12.2012, 19:51
So, die meistenteils sind da. Morgen gehts ans löten!!!
dann bin ich leider drei Wochen weg, bin auf einer Rallye in Afrika.
wer will, hier unser Blog:
www.dadrallye.tumblr.com (http://www.dadrallye.tumblr.com)

Danach gehts dann in die vollen was die Software angeht ;)

Viele grüße, schönes fest und guten Rutsch an alle!
bis Mitte Januar.

@dirk: dein Posteingang ist voll ;)

Dirk
19.12.2012, 20:00
Schon geleert!
Viel Spaß in Afrika!

fabqu
22.01.2013, 11:04
So, ein Update meinerseits:
Bin wieder zurück. Ein Großes Danke an Dirk, der während meiner Abwesenheit die Hardware hatte und die ersten Programmteile geschrieben hat!!!!!
Leider ist die Test-Hardware mit seinem USB-Stick gerade noch auf dem Postweg und hoffentlich noch nicht ganz verschollen. Sobald es ankommt, gebe ich aber bescheid und lade alle News hoch!!!

Grüße

Dirk
22.01.2013, 17:29
Leider kam das Päckchen wieder zu mir zurück (konnte sich wohl nicht trennen...),- geht aber morgen wieder auf die Reise zu seinem Erbauer!

Leute, so viel kann schon mal gesagt werden: Es sieht sehr gut aus. :p

fabqu
23.01.2013, 18:37
So, Paket ist wieder auf dem Weg...
Ich hoffe, es hat alles Hardwareseitig gefunzt?
Das Verlöten war echt schwierig, da beim Prototyp nicht die Pins von Ober- und Unterseite durchkontaktiert waren, das heißt ich musste JEDE Lötstelle von oben und von unten verlöten. Und ich hatte nur 2 Tage Zeit...
Das war echt unschön.

Bei professionell hergestellten ist das anders, da wird die fertig gebohrte und gesägte Platine nochmals beschichtet und diese Beschichtung hat man dann auch in jedem Loch.
Daher reicht die Verlötung auf einer Seite.

Aber scheinbar kam nicht nur murks dabei raus!
Bin schon gespannt, was auf dem USB-Stick vom Dirk so liegt :D

Dirk
23.01.2013, 20:25
Ja, ich weiß, dass es bei dir knapp war. Dafür gab es nur 2 winzige Lötprobleme auf dem Prototyp:
1. SDA hatte Masseschluß. Der lag perfiderweise noch unter dem XBUS-Wannenstecker. Suche: 1h Beseitigung: 30 Sek.
2. SCL-Pin vom Servotreiber hatte keine Verbindung mit seiner Leiterbahn. Für mich mit meinem riesigen 1mm Lötkolben eine schreckliche Aktion. Dauer: 1/2h

Sonst: Keine Lötprobleme! Großes Komplement an dich! Wie hast du diese MSOP-Dinger so gut verlötet? Ich weiß noch nicht, wie ich das mal machen soll, wenn die Serie fertig ist ... Ein Albtraum ist der PCA9685 ...

USB-Stick-Inhalt:
1. ToDo-Liste, um vom Prototyp zur Kleinserie zu kommen (Ergebnis: Gut machbar!).
2. Configuration-Header für die zukünftige Lib zur Platine (beta, ist noch nicht fertig,- nur zur Ansicht).
3. M256 Demo 1: Test von Buzzer, Status-LEDs, Servos, Buttons, Touch-Sensor, Temperatur, RTC, Spannungs- & Stromsensor, Alkoholsensor
4. M256 Demo 2: Test der Linienfolger-Platine (3x CNY70)

Hoffentlich kommt der Prototyp jetzt bei dir an ... ;)

fabqu
23.01.2013, 20:48
Oh Shit, das tut mir leid.
hatte keine zeit, alles durch zu testen und nicht mal ein anständiges Multimeter hier.

Zum löten der kleinen Käfer mein tip: richtig dicke über alle Beinchen drüberlöten, ohne Rücksicht auf Verluste.
dann mit entlötlitze drüber, das saugt alles unnötige wieder weg :D leider ist die Litze nicht gerade billig... Geht vielleicht auch mit nem alten, dicken, abisolierten Kabel oder so.

Juhuuuuu! Dann hast du ja schon quasi alles abgearbeitet! Danke, echt klasse.
auf meiner Todo steht auch noch einiges, z.b. nen anderen batterieclip für die rtc, da der von mir genommene nicht leicht zu bekommen ist (daher war auch keiner auf dem Prototyp)

Grüße

fabqu
24.01.2013, 11:10
Oha!
:D
Paket gerade angekommen, das ging ja mal flott!
Mache mich gerade an die ToDo-Liste! Um deine (Dirk) Frage zu beantworten: jetzt, nachdem die Software gut vorangekommen ist (Danke!!! ) habe ich keinerlei Zweifel mehr :D

Zur Planung des weiteren Vorangehens:
- Ich mache mich jetzt an die Hardware und dann an die Tests mit deiner Software, dann sollten wir das ganze mal zur Diskussion hochladen.
- Wir könnten noch zwei Dinge überlegen: erstens, hauen wir vielleicht den ALc-Sensor wieder weg? Zweitens: Das obere Trapez der Platine ist ja noch immer frei, dort könnten wir eine unabhängige Platine hineinbauen. Ideen? Wir hatten dort mal den USB-Host. Sonst ne Idee?
- ein ordentlicher Wissen-Beitrag sollte entstehen mit allen Hardware-Fragen, Erklärungen und Software-Teilen
- Umfrage, wer sich beteiligen möchte an der Platine
- ich hole definierte Kostenvorschläge von ein paar Firmen ein und erfrage alle Hardware-Details (z.B. brauchen wir, wie ich schon erwähnt habe, unbedingt eine Durchkontaktierung aller Pins, ansonsten wird das Löten schwierig bis nicht machbar).
- wir produzieren.

:D
Grüße

Dirk
25.01.2013, 21:41
Das obere Trapez der Platine ist ja noch immer frei, dort könnten wir eine unabhängige Platine hineinbauen. Ideen? Wir hatten dort mal den USB-Host. Sonst ne Idee?
Interessiert hat mich schon lange der Chip Si4735.

Das ist ein hochintegrierter AM/FM Analog-Empfänger (LW/MW/KW/UKW) in einem Chip.
Von sparkfun gibt es da z.B. ein Breakout-Board für Arduino: https://www.sparkfun.com/products/10342? (https://www.sparkfun.com/products/10342?)

Vielleicht ginge das ja auf eine kleinere Platine, die in das Trapez passt.

Der Chip wird u.a. auch über I2C angesteuert und stellt zusammen mit einem µC einen Weltempfänger dar.

Hätte wer von euch auch daran Interesse?

fabqu
26.01.2013, 23:24
Ich immer :D
Was kann man damit denn so alles anstellen?

Dirk
27.01.2013, 10:32
Das ist keine Anwendung, die zu einem mobilen Roboter passt, sondern die man zum Experimentieren und Programmieren mit Microcontrollern nehmen könnte.

Mit dem Si4735 (http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/Si4730-31-34-35-D60.pdf) kann man ein analoges/n Radio/Weltempfänger aufbauen. Das Radio kann dann Langwelle/Mittelwelle/Kurzwelle und Ultrakurzwelle (FM) empfangen.

Das Radio ist vollständig z.B. über I2C steuerbar, so dass man viele Parameter auf einem LCD (z.B. auch die RDS-Infos) darstellen kann und mit einem Drehgeber oder Auf-Ab-Tasten die Frequenz einstellen und einen Senderspeicher einrichten kann. Den Luxus in der Bedienung bestimmt man damit selbst und kann sich einen recht leistungsfähigen Weltempfänger aufbauen.
Eine Software-Lib gibt es schon auf der Arduino-Seite.

Man braucht noch evtl. einen NF-/Kopfhörer-Verstärker, um Radio hören zu können, und eine Antenne, sonst aber keine Hardware auf der analogen Seite.

fabqu
28.01.2013, 15:25
Habe DEN HIER (http://www.reichelt.de/?ACTION=3;ARTICLE=20967;GROUPID=5477;&gta=3910676910_12865367910&gkw=Phrase_3910676910_TDA7050&PROVID=2257&ref=adwords_generic&&gclid=CPPznaati7UCFUdZ3godCg8ALg) mal als NF-Verstärker gefunden.
Anschlüssen:
Pins 1, 4 und 5 auf GND
Pin 8 auf 5V
Pins 6 und 7 Output/Kopfhörer
Und Pins 2 und 3 inputs.
Aber wie schließe ich die Inputs an? Muss man da wirklich ein Poti (22kOhm) nehmen? Oder kann ich die einfach direkt auf die Ausgänge vom Si4735 legen???

EDIT: Braucht man den Hex-Converter (siehe Arduino-Shield) ???

Dirk
28.01.2013, 19:31
Hi,

der Verstärkerchip sieht ja gut aus. Das/die Potis würde ich schon nehmen, weil das die einzige Möglichkeit zur Lautstärkeeinstellung ist. Man könnte aber auf der Mini-Platine z.B. nur 2x drei Anschlußpins RM2,54 am Rand vorsehen, so dass auch ein/zwei externe Potis angeschlossen werden können.

Den Hex-Converter braucht man nicht. Wir würden ja den Si4735 mit 5V betreiben und können alle IOs direkt an einen Microcontroller anschliessen.

Hier noch ein schönes Projekt: http://www.b-kainka.de/SI4735Srds1.html

fabqu
28.01.2013, 21:26
Ok, Radio ist aufgebaut.
Habe dieselben Teile genommen, wie im Arduino-Shield.
Dazu noch den NF-Verstärker TDA7050 und zwei Potis zur Lautstärkeregulierung.
Ich hoffe, das passt so! Bekommen wir die Teile eigentlich alle beim großen C oder anderen (Farnell, Pollin,... ) ?

Grüße

fabqu
06.02.2013, 16:18
Hallo!
Wir haben nun denke ich alles beisammen.
Das Board besteht nun quasi aus 5 Einzelboards:
- Tasterboard für 4 Taster
- Bumperboard mit 2 Bumpern und zwei abschaltbaren Sharp-Sensoren oder zwei SRF02-Sensoren
- CNY70-Linienfolger-Board mit 3 oder wahlweise 5 abschaltbaren CNY70-Reflexoptokopplern
- ein Radio-Board mit einem I2C-Radioempfänger, Verstärker und Kopfhörerbuchse
- ein Hauptboard mit allem anderen.

Ich habe eine kleine Auflistung der Features angefügt.
Außerdem werde ich das Projekt auch in anderen Foren (Arexx-Forum, Mikrocontroller.net) vorstellen, da wir die Platine nur dann zu einem akzeptablen Preis herstellen lassen können, wenn genug Leute eine haben wollen.

Ich werde eine exakte Auflistung aller Bauteile anfertigen, inklusive Bestellnummern etc sowie eine (hoffentlich) ausführliche Anleitung als .pdf und als RN-Wissen-Artikel. Auch über einen „Lötservice“ für die kleinen Käfer im MSOP-Gehäuse können wir nachdenken, da es bestimmt nicht jedem leicht fällt, so etwas zu löten bzw. nicht jeder hat das dafür nötige Werkzeug rumliegen.

Außerdem werde ich versuchen, einen Beschriftungsdruck zu bekommen, dann erklären sich viele Dinge von selbst.

Sobald das Board startklar ist, werde ich es in einem neuen Thread noch einmal genau erklären und einen Kostenvoranschlag präsentieren. Für Fragen stehe ich euch natürlich gern weiter in diesem Thread zur Verfügung.

Viele Grüße,
Fabian

fabqu
22.02.2013, 15:52
Weiß jemand, wo man die Bumper des RP6 herbekommt?
Ich habe welche von Robotikhardware.de, aber dort gibts kein Datenblatt und schöner für diese Platine wären welche, wie der RP6 sie hat: Mit Pins zum Einlöten.

Grüße