PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Frage zu Sensoren



Roboter n00b
05.04.2005, 12:46
Hi
Für mein nächstes Projekt möchte ich meinem Roboter um einige Fähigkeiten erweitern. Nun habe ich ein paar fragen zu meinen erweiterungsplänen

-Linienverfolgung:
Diese soll mit dem Liniensensor CNY70 erfolgen. Nun meine Frage: Ich habe in meinem Zimmer grauen Teppich, und sonst hellbraunen Parkett. Wäre es sinnvoller, den Sensor auf schwarze Linien zu programmieren, oder geht das auch mit weissen? (Weiss wäre natürlich angenehmer) Wieviel Bräuchte ich etwa davon, und sind diese Sensoren Analog?
Noch eine Frage dazu: Wie einfach ist es, den roboter so zu Programmieren, dass er, mit system durch das Linienlabyrinth fährt? Also dass er nicht in die gleiche richtung zurückfährt, von wo er gekommen ist? Ansätze?

-Kompassmodul
Ich möchte, dass mein roboter von Punkt a zu b fahren kann. Also, dass wenn ein objekt im weg steh, er dieses umfährt und auf die alte route zurückkehrt. Wäre das mit einem Kompassmodul zu machen? Schwierigkeit?

Das ganze sollte mit RNC realisiert werden

für antworten wäre ich dankbar^^

gruss Serge

cauboy
05.04.2005, 13:00
Ich gebe mal mein Brei dazu, so weit ich kann.
Zum Thema Linienverfolgung:
Der CNY-70 gibt immer nur die Reflexionseigenschaft des Untergrundes aus. Schwarz reflektiert schlecht, weiß gut. Wenn du programmierst dass er eine Linie folgen soll, ist es am besten du machst es einfach mit einer Variablen Grenzwert, die kannst du dann immer ändern, ob er jetzt eine schwarze oder eine weiße linie folgen soll und den grenzwert kannst du auch immer passend einstellen.
Wenn es im Linienlabyrinth keine "inseln gibt" dann kann man es mit der rechten-Hand Methode machen, sprich du fährst bei jedem abzweig immer rechts entlang.

Zum Kompassmodul:
Nur mit dem Kompassmodul wird das schwer sein, du musst ja wissen, wie weit er ausweichen musste um nachher wieder genau auf die direkte Linie von den beiden punkten zu kommen.

RCO
05.04.2005, 14:15
Also wenn du für die Linie immer das gleiche Material (Klebeband) verwendest musst du den Grenzwert nur so einstelle, dass er den helleren Parkett noch als dunkler als das Klebeband erkennt, dass spielt es auf dunkleren untergründen keinen Unterschied, vorausgesetzt, du verwendest helles klebeband, ansonsten halt umgekehrt. Eine der simpelsten Methoden für einen Linienverfolger ist, 2 Fotodioden oder CNY70er zu nehmen und nur zu schauen, welcher gerade heller/dunkler ist und dann in die entsprechende Richtung zu fahren, damit sind die Möglichkeiten abzweigungen etc. zu erkennen natürlich ausgeschlossen.

Beim Kompass muss ich meinem Vorredner recht geben, der Kopmass liefert dir ja keine Position, sondern nur eine Richtung. Sinnvoll wäre eine Kombination aus GPS und Kompass, aber GPS ist erstens zu ungenau und 2. funktioniert es oft indoor nicht. Du natürlich jede Bewegung des Roboter "aufzeichenen" und so zurück verfolgen wie weit er in welche Richtung gefahren ist, dann bräuchtest du theoreitsch nciht mal nen KOmpass. IN echt funktioniert das natürlich nicht so einfach, deshalb wäre ein Kompass schon wichtig.

MFG moritz

Roboter n00b
05.04.2005, 16:03
Hi
Es wäre also möglich ein Weisses klebeband zu nehmen. Nun, also abzweigungen sollte er schon erkennen, er soll ja durch ein linienlabyrinth durchfinden (mit 90° Winkeln) Dann bräuchte ich 4 dieser Sensoren, richtig?
Diese dann wie ein "T" anordnen, wobei das "T" - Ende nach vorne schaut. Wenn der vorderste sensor kein signal mehr liefert, heisst das, dass eine abzweigung kommt. Die zwei sensoren an den "T" enden könnten dann entscheiden, ob nach rechts, links, oder beides. Stimmt das so?

Zum Kompassmodul.
Also der Kompass gibt ja einen Wert von 0-360 aus (oder genauer) Ich habe mir gedacht, dass ich mit einer Tastatur den winkel eingeben könnte, und der Bot dann in diese richtung fährt. Wenn nun ein hinternis kommt, fährt er dann links oder rechts. Nun kann könnte ich ja mit einem schrittmotor die schritte zählen und in einer Variable speichern. Sobald er dann abbiegen kann, fährt er die in der Variable gespeicherte schritte zurück. Könnte das so gehen?

gruss Serge

RCO
05.04.2005, 16:21
Könnte das so gehen?

Ja so würde es gehen, du müsstest dann mit Vektoren rechnen. Natürlich wird es dennoch zu Fehlern kommen, aber das ist ohne weitere Sensoren wohl unvermeidbar.
Die Anordnung mit dem T ist interessant, generell kann man denke ich sagen, desto mehr Sensoren, desto mehr inforamtionen, würdest du zum Beispiel 10 x 10 dieser Sensoren unter dem Bot anordnen, würdest du schon fast ein Foto der Kreuzung, abzweigung etc. erhalten. Desto mehr Sesnoren du einsetzt, desto besser kannst du auch die Fahrtrichtung nachregulieren. Ich würde mindestens 4 besser 6 oder 8, je anch Anordnung verwenden.

MFG Moritz

Roboter n00b
05.04.2005, 19:35
Hi Moritz, freut mich dases gehen würde^^ (zumindest theoretisch)
Nun, ich denke das Programmieren der Liniensensoren wäre (mit etwas hilfe) nicht soo schwer zu Programmieren (Bascom).
Nur beim Kompassmodul mit Tastatur hab ich noch etwas hemmungen -.- . Ich denke eben, dass des ziemmlich schwer zu programmieren ist, über so eine Tastatur die richtung für den robby eingeben. Hat da jemand erfahrung mit, und könnte er mir eventuell helfen?

würde mich freuen :)

gruss Serge

Roboter n00b
07.04.2005, 16:26
Hi
Also, ich habe nun 10 von diesen dingern gekauft :) . Nach welchem schaltplan soll ich die nun anschliessen? Ich habe im netzt einige verschiedene gefunden. Und müssen die dinger an einen Analogen Port?

gruss Serge

RCO
07.04.2005, 16:31
Und müssen die dinger an einen Analogen Port?

Das wäre am Sinnvollsten, bei 10 hast du natürlich ein Problem, je anchdem, welchen Controller du hast, hast du evtl nur 8 ADs.
Schaltplan gibts hier: https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=212
Wie soll die Tastatur denna nd en Roboter?

MFG Moritz

Roboter n00b
07.04.2005, 16:58
Hi Moritz
Ok, danke für den Schaltplan. Noch eine kleine elektronische Frage: Muss ich diese Schaltung für alle sensoren bauen, oder ist es irgendwie auch möglich, das ganze zeug mit Widerständen nur einmal zu bauen, und dann einfach 10 Sensoren dahinter zu hängen.
Als Controller hab ich nen Atmel32 (RNControl) , und programmieren will ich in Bascom. Hättest du erfahrung damit? Behersche das eben nicht so gut
Über eine Tastatur hab ich mir noch keine wirklichen gedanken gemacht, war nur sone idee :)

gruss Serge

Roboter n00b
08.04.2005, 20:49
Hi
Versteht ihr meine Frage oben? Also wegen dem Bau der schaltung mein ich^^. Würde eben gern mit bauen beginnen

uwegw
08.04.2005, 21:36
theoretisch ginge das mit nem analog-multiplexer. ist aber wieder ein zusätzlicher schaltungsaufweand, außerdem ungenauer und die messung ist zeitaufwändiger... normalerweise hängt man jeden sensor an einen eigenen port des avrs...
wenn du die analogeingänge am mega32 für was anderes gebrauchen willst kannst du die sensoren genausogut über je einen OP oder schmitt-trigger an einen digitalport hängen. das hat dann auch den vorteil, dass das auslesen viel weniger softwareaufwand bedeutet und auch schneller läuft bzw den controller weniger belastet... (das ist die standardmethode)
schaltungen dafür:
http://www.robotmaker.de/linie.html
http://www.kreatives-chaos.com/index.php?seite=liniensensor

Roboter n00b
08.04.2005, 22:06
Hi
Danke für deine Antwort. Also am AVR habe ich ja 8 ports, das sollte schon reichen. Meine Frage war eigentlich eher, ob ich für alle 8 sensoren je die Widerstände und GNDs brauche, oder ob ich das reduzieren kann. Also dass ich die grundschaltung so aufbaue,
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=212
und dann alle Sensoren da dran hänge, also das alle über den die gleichen 2 Widerstände, und über den gleichen GND und +5V port laufen. Ich hoffe, meine frage ist nun verständlich ^.^

gruss

uwegw
08.04.2005, 22:11
achso...
die 10k muss jeder einzeln haben, sonst funktionierts nicht...
die 220 OHm sind der vorwiderstand für die sende-ir-led im cny70. man könnte die einzelnen leds auch in reihe oder parallel schalten, um widerstände zu sparen, allerdings müsste der widerstand dann einen anderen wert haben... aber besser wäre es eigentlich einzelwiderstände zu nehmen. reihenschaltung von zwei leds geht auch, aber parallel ist eher schlecht...

Roboter n00b
08.04.2005, 22:15
ok, dann ist erstmal gut^^

thx

Roboter n00b
09.04.2005, 14:42
aber ich kann schon alle sensoren an den gleichen 5v und GND port schliessen, oder?

//Edit: Noch was: Ich brauche vielleicht doch mehr als 8 AD ports. Könntest du mir erklären, wie das mit OP oder schmitt-trigger geht? Ich hör das zum ersten mal^^

gruss

uwegw
09.04.2005, 15:21
also ich hab ja oben schon den link zu zwei schaltungen gepostet. diese schaltungen sitzen dann jeweils zwischen sensor und avr. sie werten das analogsignal vom cny70 aus, und wenn die spannung, also die bodenhelligkeit, einen gewissen wert überschreitet (den man an einem poti einstellen kann), schalten sie ihren digitalausgang ein und ansonsten aus. somit kann das entstehende digitale signal direkt an einen beilibigen digitalport am avr angeschlossen werden, sodass dessen ad-wandelr nicht benötigt wird.
in der praxis ist dieses verfahren, bei dem man halt nur zwischen boden hell und boden dunkel unterscheiden kann, meist vollkommen ausreichend wenn man die schaltung einmal richtig eingestellt hat.



analog digital
cny70 -------> schaltung mit op oder schmit-trigger ------> avr
^
|
referenzwert vom poti

FirstBorg
15.07.2005, 19:24
Hi

Mal ne Frage... was genau ist dieses Kompassmodul?

Ich brauch nämlich auch grad einen Kompass, den ich per PC auslesen kann.
Hat aber nix mit Robotern oder so zu tun... ich will mein teleskop motorisieren und da wären ein paar winkelsensoren gut.

uwegw
15.07.2005, 20:30
kompassmodule gibts zb bei http://www.krause-robotik.de
das CMPS 03 wird über den i2c-bus angeschlossen. das ist ein verbreiteter standard, um verschieden elektronische baugruppen zu verbinden. du bräuchtest dann noch nen konverter, um den i2c-bus mit deinem pc zu verbinden... zb sowas: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=68


das teil besitzt eine magnetfeldsensor, der halt messen kann, aus welcher richtung das magnetfeld kommt. man muss es einmal kalibrieren, damit klar ist, wo norden ist. dann liefert es zahlen von 0 bis 3599, die dann die richtung repräsentieren...