MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
ich bin mit IR nicht unbedingt auf dem laufenden aber meine idee dazu wäre, das du das "komunikationssignal" gleichzeitig auch für die Entfernungsmessung nehmen könntest und die
korrektheit der Signale mit einer Checksum oder ähnlichem prüftst. So umgehst du das "Problem" gleichzeitig senden und auf empfang sein zu müssen.
- Rob A oder B sendet (ID+Message)
- wird die eigene ID empfangen dann als Entfernungsmessung nehmen
- wird fremde ID empfangen, dann Message auswerten
- wird mischmasch empfangen, kurze Zeitspanne warten, ob nochmal eine Message von einem anderen Rob empfangen werden kann.
- die kurze Wartezeit dabei in ungleichen intervallen rotieren, damit nicht beide zufällig gleichzeitig warten.
Nachtrag:
Hab mir darüber nochmal gedanken gemacht und mir ist da einiges an Problemem aufgefallen...
Die Methode per IR entfernung zu messen und gleichzeitig zu komunizieren wird sicher nur für anwendungen möglich sein, wo sehr wenige Robots im selben Raum sind.
Ausserdem müsste mach schon nen ganzen ring aus IR-LED´s montieren, da sich die robots nicht nur in Zeitlupe bewegen sollen vermute ich mal.
Mussen die sich ein wenig rasch fortbewegen und dabei noch komunizieren, dann würde bei 2 oder 3 Robotern der ganze Raum vor IR-Signalen nur so wimmeln....
und man könnte sie mit ner 0815-Fernbedienung komplett zum stillstand bringen *gg
Deshalb wär mein vorschlag... entfernungsmessung und komunikation durch komplett unterschiedliche Systeme zu handeln. Macht es bestimmt deutlich einfacher und schneller im Prozessablauf.
Geändert von JoeM1978 (29.11.2012 um 19:20 Uhr)
Danke für deine Antwort JoeM1978.
Die Idee mit der ID+Message finde ich gut.
Ich hatte mal mit IR Dioden rumprobiert. Da war es möglich das so einzurichtten, dass Hindernisse erst wenige cm vorher erkannt werden (2-3 cm),
und ein direktes Licht (anderer Roboter in unserem Beispiel) über fast 10cm. Bei vielen Robotern würde es halt an manchen Stellen im Raum mehr Licht geben.
Die Komunikation könnte ja dann per Funk geschehen. Trotzdem müsste vorher klargestellt werden von wem das LIcht kommt was man empfängt. Das ginge ja nur über eine ID.
Um das ganze erst mal simpel zu halten habe ich noch eine Frage. Gehen wir mal davon aus, dass wir nur einen Roboter haben de entweder reflektiertes Licht empfängt (Hindernis vorhanden) oder nicht (weg frei). Wie kann er gleichzeitig senden und empfangen?
Angenommen er versendet die ID 1011
Dann würde er ja einen Pin auf high setzen (für das erste bit). Bevor er nun den Pin auf low setzt (für den 2. bit), würde ein Eingang (IR Empfänger) registrieren, dass da IR Licht "ankommt". Erst wenn das registriert ist (und die Zeile im Code "abgearbeitet" ist) könnte der 2. bit am Ausgang gesetzt werden oder sehe ich das falsch?
Mein Gedanke ist, dass wenn das nicht gleichzeitig passiert, könnte eine Verzögerung beim Senden dann beim Empfangen als null (0) interpretiert werden.
Wie kann man das verhindern?
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Ja da hat PICture wohl recht... Alleine wenn man für das enden von Daten per IR nur us annimmt muss der
Empfang dieser daten (falls es dann nach 1 cm auf ein hinderniss trifft) nahezu zeitgleich passieren.
eine verzögerung wie beim Ultraschallsignal gibt es bei Licht eben nicht.
Die Auswertung der Signale könnte dann erst danach für einige ms Zeit verbrauchen ohne das es Probleme gibt.
Ich vermute auch, das das die Fähigkeit eines einzelnen Controller übersteigt.
Wobei sich mir gerade die Frage stellt... gibt es bei IR Sendern udn empfängern unterschiedliche Wellenlängen ?
...sodass man Entfernungsmessung und komunikation auf "sich nicht gegenseitig störenden" wellenlängen betreiben könnte ?
Am einfachsten wäre Entfernungsmessung mit IR und Komunikation im sichtbaren Bereich (LED) zu realisieren.
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
@PICture Das mit den zwei uC war auch meine Idee aber die wollte ich umgehen. Du hast aber Recht. Das wird wohl die einzigste Lösung sein. Deine Idee mit dem sichtbaren Bereich für die Komunikation ist sehr gut und preisgÜnstig. Da ich mehrere gleiche Roboter machen wollte, wollte ich den Preis so gering wie möglich halten. IR und LEDs kosten ja fast nichts. Das mit den "doppelten" uC ist halt der einzige Nachteil bei der Sache. Aber es sollte wohl auch ein günstiger uC zu finden sein.
Lesezeichen