Geldschein-Pr

Moderator: Moderatoren

Benutzeravatar
Pitillo
Schreibt viel
Schreibt viel
Beiträge: 91
Registriert: 5. Apr 2010 12:04
Wohnort: Warburg
Kontaktdaten:

Geldschein-Prüfer

Beitragvon Pitillo » 6. Aug 2010 09:14

Hallo,
ich möchte gerne nen Geldschein-Prüfer aus lego bauen so wie diesem Geldautomaten verbaut ist -> http://www.youtube.com/watch?v=L0Z-ym0k89Q,
nur ich weiß nicht wie ich ihn programmieren soll (am besten in NXT-G).
Soll 50€ 20€ 10€ und 5€ unterscheiden und auf echtheit überprüfen.
Hoffe könnt mir weiter helfen, schon mal danke für die antworten

MfG Pitillo

Benutzeravatar
Sebi
Administrator
Administrator
Beiträge: 1946
Registriert: 11. Jan 2008 14:28
Wohnort: Aub
Kontaktdaten:

Beitragvon Sebi » 6. Aug 2010 09:16

Guck mal da:
http://nxtvision.de/2008/10/20/geldsche ... chtsensor/
Aber mit NXT-G wirst du das wohl eher nicht schaffen.

Benutzeravatar
Pitillo
Schreibt viel
Schreibt viel
Beiträge: 91
Registriert: 5. Apr 2010 12:04
Wohnort: Warburg
Kontaktdaten:

Beitragvon Pitillo » 6. Aug 2010 09:28

Das heißt ich muss meinet wegen den schein alle 2 milimeter abskannen das in eine variable schreiben, später im betrieb abrufen und mit einer tollerranz von ca. 0.013 überprüfen
sehe ich das richtig?

mfg Pitillo

Benutzeravatar
Pitillo
Schreibt viel
Schreibt viel
Beiträge: 91
Registriert: 5. Apr 2010 12:04
Wohnort: Warburg
Kontaktdaten:

Beitragvon Pitillo » 6. Aug 2010 10:42

Am besten ist es wenn ich bauanleitung und ein programm kriegen könnte

kloklo
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 54
Registriert: 22. Feb 2010 15:29

Beitragvon kloklo » 6. Aug 2010 11:11

Das wäre ja langweilig ;). Selber tüfteln und probieren.

Du könntest z.B. den Motoren sagen das sie sich so lange drehen sollen, bis kein Schein mehr da ist, und während sie sich drehen kontinuierlich den Motorstand mit der Helligkeit verknüpfen und so am Ende mit den gespeicherten Werten vergleichen.

Benutzeravatar
Pitillo
Schreibt viel
Schreibt viel
Beiträge: 91
Registriert: 5. Apr 2010 12:04
Wohnort: Warburg
Kontaktdaten:

Beitragvon Pitillo » 6. Aug 2010 13:35

soll ich etwa für jede ms eine variable machen?
ich glaube dann bin ich in 4 Jahren nicht fertig desswegen möchte ich ja ein prog haben

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 6. Aug 2010 14:37

Du kannst die ganzen variablen ja machen lassen. Nur weden das für NXT-G ein bisschen viele. sonst könntest du einfach eine Array machen und jede ms reinschreiben und die Array dann auf dem NXT speichern und mit dem PC auslesen(wenn man die auslesen kann, das weiß gar nicht).

Benutzeravatar
Pitillo
Schreibt viel
Schreibt viel
Beiträge: 91
Registriert: 5. Apr 2010 12:04
Wohnort: Warburg
Kontaktdaten:

Beitragvon Pitillo » 6. Aug 2010 15:21

weiß zuvällig jemand ob und wenn ja wie das geht, hört sich nähmlich gut an

Benutzeravatar
Dunkle Macht
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 749
Registriert: 6. Jun 2008 15:37
Wohnort: Legau
Kontaktdaten:

Beitragvon Dunkle Macht » 6. Aug 2010 18:04

In NXT-G kannst du glaub keine Arrays machen. Für so eine Datenmenge solltest du auf jeden Fall eine andere SPrache nehmen.

kloklo
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 54
Registriert: 22. Feb 2010 15:29

Beitragvon kloklo » 6. Aug 2010 20:04

Also ich würde es folgender Maßen machen, wenn du jeden mm die Helligkeit ausließt (Helligkeit in % 0-100):

Erstelle Dateien für jeden Schein und speichere die Helligkeit darin. Und zwar so das je 3 Ziffern die Helligkeit für einen mm bilden z.B.:

Code: Alles auswählen

023100003068070

Daraus würde sich folgende Helligkeit für die folgenden mm bilden:

Code: Alles auswählen

0. mm : 023%
1. mm : 100%
2. mm : 003%
3. mm : 068%
4. mm : 070%

Das ganze kannst du dann in einen Array schreiben, sodass der Index die mm angibt. Das würde (angenommen aHelligkeitFünf ist die Array-Variable für Fünf Euro) so aussehen:

Code: Alles auswählen

aHelligkeitFünf[0] = 023
aHelligkeitFünf[1] = 100
aHelligkeitFünf[2] = 003
aHelligkeitFünf[3] = 068
aHelligkeitFünf[4] = 070

Das musst du dann für jeden Schein machen, der erkannt werden soll.

Nun wenn du den Schein einführst musst du die Helligkeit nehmen und mit allen Scheine-Arrays vergleichen. Da es keine exakte Übereinstimmung (wegen Umgebungslicht, ec.) geben wird brauchst du eine Toleranz +/- X.
Nun speicherst du für jeden Schein in einem weiteren Array die Übereinstimmungen. Der Array könnte so aussehen:

Code: Alles auswählen

aUebereinstimmungen[0] -> 5 Euro
aUebereinstimmungen[1] -> 10 Euro
aUebereinstimmungen[2] -> 20 Euro
aUebereinstimmungen[3] -> 50 Euro
aUebereinstimmungen[4] -> 100 Euro
aUebereinstimmungen[5] -> 200 Euro
aUebereinstimmungen[6] -> 500 Euro

Danach drehst du den Schein einen mm weiter und addierst auf die mm Variable 1. Die mm Variable brauchst du um zu wissen welchen Wert du vergleichen musst (aktuelle Helligkeit mit den Helligkeiten aus den Scheine-Arrys, da sie den Index der Scheine-Arrays angibt). Danach musst du wieder Vergleichen.

Nachdem der Schein durch gelaufen ist, guckst du welcher Schein die meisten Übereinstimmungen hat. So gleichst du auch Fehlmessungen aus.

Anhang:
Da NXT-G keine Arrays und das Teilen von Strings unterstützt brauchst du noch folgende Blöcke:
Array-Block
Text Teilen

Ich hoffe das kann dir weiter helfen ;)

Benutzeravatar
Pitillo
Schreibt viel
Schreibt viel
Beiträge: 91
Registriert: 5. Apr 2010 12:04
Wohnort: Warburg
Kontaktdaten:

Beitragvon Pitillo » 7. Aug 2010 06:36

eine frage hab ich noch: wie defeniere ich in nxc den farbsensor vom 2.0 als lichtsensor? ,und wie man nur 1 grad dreht

über die erfolge werde ich euch dann berichten
:wink:

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 17. Feb 2011 17:18

Ich weiß, ich weiss, der Thread ist schon ein halbes Jahr alt, aber:
Du kannst in den Farbsensor in NXC als Lichtsensor mit dem Befehl SetSensorColorRed(Port); ausgeben werden lichtwerte zwischen 1 und 1000.
Um einen Grad drehen: RotateMotor(Port,Geschwindigkeit,Winkel).
Real coders don't comment their code - it was hard to write, it should be hard to understand!


Zurück zu „Tetrix, Lego Technik, Wedo ...“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss