void setup in wiringPi einbringen // Coin Acceptor CH-926 mit Retropie verbinden

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Abend liebes Forum :)

    Ich benötige etwas Schützenhilfe bei der realisierung eines Münzzählers in ein Emulatorprojekt.
    Der Münzzähler gibt Pulse aus für die erkannte Münze die eingeworfen worden ist. Am einfachsten wäre natürlich einfach aus jedem Puls ein Signal für einen coineinwurf zu machen.

    Bei einem 2 Euro Stück wären das 20 Pulse, bei einer Pulsdauer von 20ms wären das ohne Pause schon 400 ms. Es wäre unwahrscheinlich das jemand in einer halben Sekunde noch mehr Geld einwirft, aber es ist möglich denke ich. (Oder ich irre mich hier?)

    Also habe ich folgenden Code aus einem Beispiel zusammengebastelt.

    Fragen die sich mir bei dem Code noch stellen:

    Wie bekomme ich die Setup funktion für den Pi implementiert?

    Wie kann ich die Variable money speichern, damit ich auch bei einem Neustart weiß wie viel Geld im Automat steckt?

    Ist int wiringPiISR korrekt eingesetzt?

    Vielleicht kann mir ja auch jemand dabei weiterhelfen wie ich die Taste oder das Signal zum Emulator in dem Retropie setup bekomme.

    Meine Ansätze wären:

    https://github.com/petrockblog/Re…ki/Db9_gpio_rpi

    Hierrüber einen eigenen GPIO Pin zu finden den ich als Coin-taste einbinden könnte

    oder eine Taste mit send.key zu senden falls das funktionieren sollte.

    Die letzte Frage gehört eigentlich eher in die Elektronikecke aber vielleicht kann mir ja trotzdem jemand helfen :)

    Der Münzsensor zählt automatisch alle Münzen solange er eingeschaltet ist, das ist aber hinderlich wenn man zB grade nicht in einem Emulator steckt. Gut wäre es den Münzzähler vom Strom zu trennen, wäre da ein Relais oder ein Transistor die bessere Idee?

    Mit Hilfe, Kritik oder Denkanstößen würdet ihr eine Studentin sehr glücklich machen :)

    Liebe Grüße

    Einmal editiert, zuletzt von Moira (11. August 2014 um 15:52)

  • void setup in wiringPi einbringen // Coin Acceptor CH-926 mit Retropie verbinden? Schau mal ob du hier fündig wirst!

  • ganz ehrlich?
    Ich hab den Eindruck dass du mit C/C++ und mit Programmierung im Allgemeinen nicht viel Erfahrung hast.
    Was du da vorhast mit Interrupts und Multithreading ist fortgeschrittene Programmiertechnik.

    Ich wuerde dir raten die wiringPi Beispiele erst einmal durchzuarbeiten, evtl etwas modifizieren, nochmal kompilieren, etc. Auf diese Weise lernst du mit dem Compiler umzugehen.
    Danach wuerde ich ein C und/oder C++ Tutorial durcharbeiten um mit den prizipiellen Konzepten von C und C++ vertraut zu werden. Das hat in meinem Fall etwa 2 Tage gedauert, aber es ist gut investierte Zeit!

    Dein Code wuerde, so glaube ich, so nicht kompilieren.

    Zitat

    Wie bekomme ich die Setup funktion für den Pi implementiert?


    Indem du die Funktion Setup von main aus aufrufst.

    Zitat

    Ist int wiringPiISR korrekt eingesetzt?


    nein. Ich bin mir sicher dass der Compiler hier meckert.
    Wenn du ein C Tutorial durcharbeitest, lernst du wie man Funktionen deklariert, definiert, und schliesslich aufruft. Definition und Deklaration hat wiringPi schon fuer dich erledigt. Der Aufruf erfolgt ohne das "int". Allerdings bin ich mir nicht so sicher ob 'coinpin' 0 sein darf.

    Zitat

    Wie kann ich die Variable money speichern


    Indem du sie in einer Datei speicherst.

    Zitat

    Gut wäre es den Münzzähler vom Strom zu trennen, wäre da ein Relais oder ein Transistor die bessere Idee?


    Beides! die GPIO's des Raspberry erlauben es nicht ein Reais direkt zu steuern (RPi lauft mit 3.3V, Relais mit 5V, RPi kann 2-5 mA liefern, Relais benoetigt so um die 100mA), daher brauchst du einen Treiber-Transistor dazwischen. Es gibt auch fertige Relaiskarten zu kaufen, aber bevor du das tust, recherchiere genau ob man die Karte direkt and den Raspberry anschliessen kann.

  • Ich habe noch einige Fehler gefunden in meinem Programm, werde nachher den restlichen Code hochladen.

    Danke erstmal für die Antwort :)

    Ich werde in den kommenden Tagen die restlichen WiringPi beispiele durcharbeiten. Bisher habe ich nur ein paar durchgearbeitet.
    Den Code habe ich nicht versucht zu kompilieren, ich wollte zuerst wissen wie man die gewünschten Anwendungen einbringen kann.

    coinpin wird natürlich am Ende nicht 0 sein, ich habe es nur als 0 deklariert weil ich noch nicht genau weiß an welchem Pin ich den Münzzähler anschließen werde.

    Was spricht denn gegen einen Transistor? Ich habe einen Versuch mit der WiringPi und PWM an einer 12V LED gestartet und das hat gut funktioniert :)
    Ist die Verlustleistung dann zu hoch?

    Danke für die Antworten bis hier hin :) melde mich zurück wenn ich weiter bin.

    :heart:

  • Zitat

    Was spricht denn gegen einen Transistor?


    Nichts! Ich hab mal schnell nachgeschaut, der Coin Acceptor braucht etwa 65mA bei 12V, das schafft ein ganz normaler NPN Transistor ohne Probleme. Ich schalte derzeit einen Luefter ein und aus mit etwa der gleichen Last mit einem 1.2kOhm Widerstand zwischen der Basis des Transistors und dem GPIO.
    Um eine (sehr) lange Story kurz zu machen: Ein einzelner GPIO des Raspberry Pi sollte nie mehr als 2mA treiben wenn der Ausgang auf High geschaltet ist, und nie mehr als 16mA "schlucken" wenn der GPIO auf Low geschaltet ist, wobei man unter allen Umstaenden vermeiden muss, dass jemals mehr als 3.3V am GPIO anstehen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!