PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rubik Solver



mrg
11.08.2007, 17:28
Hallo,

ich bin über einen beitrag hier auf den geschmack eines rubik solvers gekommen.
Und hab mir mal grundlegenede gedanken gemacht.
Weit mehr kopfzerbrechen als die mechanik macht mir momentan die erkennung der einzelnen farben.
Der Solver sollte ohne PC arbeiten können,also fällt aufgrund der komplexität ein scan mittles kamera aus.
Die methode mit dem LDR und den drei farbleds könnte funktionieren,nur hab ich damit auch ein problem.
Und zwar die geschwindigkeit:

Aus anderen beiträgen hab ich erfahren,daß man damit pro farbläche mehr als eine sekunde braucht.
Aus platzmangel könnte ich bloß einen solchen sensor bauen und müßte diesen dann mittels linearführungen über jede fläche positionieren.
Wielang eine positionierung dauert kann ich noch nicht so wirklich sagen.

Aber so daumen mal pi ohne bewegung gerechnet,bei 1 sekunde scanzeit pro farbe, würde ich 9 sekunden für eine seite des würfels benötigen.
Das ganze mal 6 gibt 54 sekunden für den ganzen würfel.
optimieren kann ich das höchstens durch die tatsache,daß sich aus einer farbe aus der mitte immer die gegenüberliegende farbe ergibt.
Das bedeutet ich kann ganze 3 sekunden sparen.
Damit bin ich auf 51 sec. ohne positionierung des farbscanners und ohne drehung des würfels.

Das is mir zu lahm.

Alternativ käme noch der TCS 230 in frage.

Ich hab mich in die richtung noch nicht beschäftigt,also würd mich interessieren,obs da auch noch andere,billigere varianten gibt.
dann würd ich damit ein array aus eben 3 x 3 dieser sensoren bauen.
dann brauch ich den würfel nur noch ein paar mal zu drehen,und schon kann ich meinen AVR rechnen lassen.

Andere Beiträge dazu hab ich wie gesagt ein paar gefunden,aber daraus geht nix sinnvolles hervor.
Und google liefert mir auch nicht das was ich mir vorstelle.

Wär nett wenn jemand dazu was weiß.

MfG,
--> Mr.G.

darwin.nuernberg
11.08.2007, 18:12
Ich denke mal du meinst den Rubik's Cube oder auch Zauberwürfel?
Hast du denn schon einen Algorhytmus dafür?



Video Zauberwürfel studiert und dann blind gelöst:
http://youtube.com/watch?v=dQlggWRaxNw&mode=related&search=

Ein Solver mit Lego NXT:
http://daniele.benedettelli.com/LRU.htm

Manf
11.08.2007, 18:17
Es geht also darum, mehrfach nacheinander eine Fläche mit einer LED zu beleuchten und mit einem Fotosensor die Intensität des reflektierten Lichtes zu messen.
Das wird im allgemeinen nicht Sekunden dauern müssen.
Du wirst eben einen Fotosensor brauchen der in Millisekunden auf das Licht im benötigten Wellenlängenbereich anspricht.
Eine Silizium-Photodiode wird das schaffen.
http://en.wikipedia.org/wiki/Photodiode
Manfred

mrg
11.08.2007, 18:27
@darwin
Ja genau den würfel mit den farben.
Dachte jedem is das gleich klar. sorry.
Einen algorhytmus dafür zu finden wird weniger problem.
eher eben die farberkennung und die mechanik.
Ich möchte aber draufhinweisen daß ich nicht so einen roboter mit armen bauen möchte wie in dem link im beitrag "einen traum wahrmachen" in der rubrik allgemeines zum roboter.
Ich dachte da eine einfachere version.


@ Manf:

Meinst du ein stinknormale Photodiode könnte das problem lösen?
Ich hab keine links dazu,aber ich hab halt mal so drauflosgegoogelt und da waren manche bastler der meinung ne fotodiode wär nicht zur farberkennung geeignet.
Ich werd mal sehen ob ich das wieder finde damit ich argumentieren kann warum das so sein soll.
Wenns funktioniert werd ich das auf jedenfall so machen.

Danke erstmal, und mit freuden erwarte ich natürlich noch weitere ideen und vorschläge.
Auch zur mechanik und anderen bereichen wenn jemand nen spontanen einfall hat.
Vielleicht werd ich morgen mal ne erste grafik zaubern um erste gedanken aufzuzeichnen.

MfG,
--> Mr.G.

darwin.nuernberg
11.08.2007, 18:32
Es wäre möglich die Farben ohne teueren und langsamen Farbsensor zu erkennen:

Anstelle eines Farbsensors verwende man eine, wie Manf vorschlug, Fotodiode.
Mit Hilfe von Farbigen LED's werden die Flächen dann nacheinander bestrahlt und jeweils analysiert (optimal für jede Würfelfarbe eine eigene Licht/LED Farbe).

(Es gab eine Zeit lang Flachbett-Scanner die auch auf diese Weise (allerdings Zeilenweise) Farben abtasteten.=

LED's strahlen monochomatisches Licht aus, und wenn die Wellenlänge des Lichtes mit der Farbe auf dem Würfel übereinstimmt erhält man maximale Reflektion (Helligkeit).

Vorsicht bei den Plastikfolien, diese können spiegeln und das Ergebnis verfälschen, wenn der Lichteinfallswinkel nicht stimmt.

Du könntest also ein entweder jede Fläche einzeln abtasten (das dauert wieder) oder Du erstellst eine Scanner-Matrix mit 3x3 oder 4x4 oder oder oder (je nach Würfel), dann kannst Du eine Seite komplett in einem Durchgang auswertren. Das kann durchaus schnell gehen.

Ein reines Abtasten und auswerten der Helligkeitinformation mit nur einer Lichtfarbe könnte wohl nicht funktionieren.

Franzibua
16.06.2008, 21:16
Hi,

also weil du nach alternativen gesucht hast.

Du hast natürlich die Möglichkeit mit einem LDR zu arbeiten. Oder du verwendest einen fertigen Farbsensor (SMD Bauform). Hier würde sich -wie du gesagt hast- der TCS 230 anbieten, ansonsten noch der MCS3AS.

Bei den oben genannten Varianten musst(solltest) du aber eine exteren Beleuchtung einplanen. Diese kann entweder aus einer unltrahellen Roten, Blauen und Grünen LED bestehen, oder einer RGB Led oder einer Glühlampe (ausgeglichenes RGB Spektrum). Für deine Anwendung würde sich vielleicht eine Glühbirnen (birnchen) besser eignen, weil du nicht 3 Werte auslesen musst, sondern bei einem bleiben kannst. Darüber hinaus ist es eventuell möglich das Licht für mehrere auszuwertende Felder zu nutzen.

Wenn dir die externe Belcuhtung nicht zusagt (aus Platzgründen oder was auch immer), dann schau dir den Sensor an: AXE045.

Vielleicht solltest du dir überlegen auf eine Webcam zur Farberkennung umzusteigen.

mmg Franz

alter Mann
17.06.2008, 00:04
Hallo,

mein Vorschlag wäre, für jedes Feld einen Farbsensor aufzubauen, bestehend aus einer (Weissen) Leuchtdiode und drei Phototransistoren mit jeweils unterschiedlicher spektraler empfindlichkeit.
Dann die 3x3x3 = 81 Analogwerte am besten über nen Multiplexer auf ein oder drei Analogeingänge geben und so die Farben mit Hilfe einer Lookup Table auswerten.
Das dürfte der schnellste weg seinum die Farben zu erkennen.

Florian