Kartoffelautomaten-Steuerung mit Raspberry PI

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

    da ich hier bereits gute Infos gefunden habe, die mein Projekt betreffen, und auch einige Fragen beantwortet wurden (s.a. Automatenbau mit Raspberry möglich?), möchte ich mein Projekt mal etwas detaillierter Vorstellen (auch hoffe ich auf Tipps und Tricks, falls jemand Verbesserungsvorschläge hat ;) )

    Im Moment verkaufe ich auf meinem Bauernhof via Hofladen Kartoffeln. Dies läuft auch soweit ganz gut, jedoch muss immer jemand zuhause sein, und öfters schellen Leute, wenn niemand zuhause ist. Daher habe ich mir gedacht, ein Kartoffelautomat soll her. Kartoffelautomaten gibt es fertig zu kaufen, ich habe ein Angebot für einen Kartoffelautomaten mit 9 Fächern vorliegen, der etwa 4500 € kosten soll. Da ich Spaß am Selbermachen habe und handwerklich nicht ungeschickt bin, sowie starkes Interesse an Computern habe bietet sich an, das ganze selbst zu realisieren.

    Folgendes soll das Gerät können:

    Es sollen mehrere Fächer mit Kartoffelsäcken gefüllt sein, in die der potentielle Kartoffelkäufer hineinsehen kann. Der Käufer soll dann 5 € (als Beispiel) in einen Schlitz werfen, ein Fach auswählen, eine Taste drücken oder eine Nummer eingeben und dann die Kartoffeln entnehmen können.

    Die Münzerkennung werde ich über ein Münzprüfermodul mit Totalisatorfunktion realisieren. D.h. man stellt den Münzprüfer auf einen gewissen Preis ein (z.B. 5 €) und sobald diese 5 Euro eingeworfen wurden gibt der Münzprüfer ein positives Signal über einen Ausgang aus. Dieses Signal ist entweder ein kurzer Impuls oder ein Dauersignal. Das Dauersignal wird dann erst abgeschaltet, wenn über einen Eingang am Münzprüfer (Reset) ein Signal eingespeist wird.

    Soweit so gut.

    Als Gehäuse und als Fachlösung habe ich mir eine Fächerschrank besorgt:

    166_5.jpg

    Die drei Fächer rechts in der Mitte sollen für meine Infrastruktur reserviert sein. Dafür werde ich mir von einem bekannten Metallbauer eine Dekoplatte Lasern lassen (mit Öffnungen und Befestigungsmöglichkeiten für den Münzprüfer, die Münzrückgabeöffnung und das Tastenfeld) und diese dann anschweißen.

    Die Ver- und Entriegelung des Automaten soll über Linearhubmotoren realisiert werden (hier denke ich an die Motoren von Universalzentralverriegelungen für den PKW. Kosten ca. 4€ pro Stück)

    Ein Raspberry PI ist bereits bestellt, sowie einiges an Zubehör. Lötkolben etc. sind auch vorhanden.

    Der Automat soll natürlich, wenn funktionstüchtig, noch in eine anderen Farbe (wahrscheinlich Moosgrün) gestrichen werden, sowie von einem Holzgerüst mit Dach umgeben sein, damit es ländlicher aussieht.

    Meinungen, Tipps, Tricks, Whatever bitte posten :) Vom programmieren habe ich leider recht wenig Ahnung, ich hatte im Studium ein Semester lang VB und C++, aber viel weiß ich davon nicht mehr. Allerdings lässt sich das sicher lernen :)

    Grüße

  • Da fällt mir spontan folgendes ein:
    Variable Mengen (0,5 kg, 1 kg, 1,5 kg, etc) an Kartoffeln (nicht jeder braucht X Kilo)

  • Dachte ich auch schon dran, aber dann brauche ich einen Münzprüfer der mit dem Raspberry "reden" kann. Die einfachste Methode schien mir, einen mit Totalisatorfunktion zu nehmen. Ich wollte den hier bestellen (als Totalisator dann):

    Münzprüfer RM5

    mit dem Programmieren kenne ich mich noch zu wenig aus um zu wissen, ob eine andere Version dieses Münzprüfers für verschiedene Preise geeignet wäre. Ich arbeite daran und werde den Münzprüfer auch erst dann bestellen, wenn der PI soweit fertig ist :)

  • Falls es steuerlich relevant ist ist: Kassenbuch auf dem RPi führen, eine Quittung für den Kunden, etc

  • Super, danke für den Tipp. Bei Adafruit habe ich folgenden gefunden:

    Coin Acceptor

    Sogar deutlich günstiger, als der RM5 aus Österreich. Er kann zwar nur 4 Münzen erkennen, sollte aber reichen (0,2 - 0,5 - 1 - 2 €). Dadurch sollten unterschiedliche Preise je Fach möglich sein, grandios :D

    Eine Matrixtastatur werde ich mir bei der Gelegenheit auch direkt von da aus bestellen. Natürlich muss ich den Münzeinwurf dann via Plexiglaskappe oder Ähnlichem vor Wasser schützen - auch ist mir noch nicht klar was passiert, wenn jemand 2 Münzen einwirft und dann den Resetknopf betätigt. In dem Video fallen die Coins direkt durch. Naja ich werde mal weiterlesen ;)

    Grüße

    Ich korrigiere mich:

    http://www.ebay.de/itm/Munzprufer-Multi-Coin-Acceptor-Selector-Mech-for-Vending-machine-for-Euro-Coins-/270959187892?pt=Automaten&hash=item3f166d17b4

    gibt's auch via Deutschland :)

    Kann ich über den Raspberry denn das Signal, also die "Pulse" des Münzprüfers bei eingeworfener Münze auslesen? Ich hoffe doch :)

    Grüße

    Einmal editiert, zuletzt von Pollendose86 (25. Januar 2014 um 16:54)

  • Mir ist noch eine weitere Frage eingefallen:

    Kann ich, um GPIO's zu sparen, die Tasteneingabe nicht über den USB-Port durchführen? Kann ich die Tasten von beispielsweise einem Nummernblock über den USB-Port verwenden und diese dann Quasi als "Eingaben" in einem Programm verwenden? Dann müsste ich von den GPIOs nur 2 für den Münzprüfer verwenden und die restlichen 15 könnten Fächer steuern.

    Beispiel [Anzeige]

    Frage 2: Kann ich an dem Displayport, der auf dem PI drauf ist, ein Display anschließen, welches dann von mir deklarierte Dinge ausgibt? Dann könnten hier die Zahleneingaben sowie die eingeworfenen Münzwerte angezeigt werden.

    Grüße

  • So ich bins wieder :)

    Ich bin mit dem "Coden" angefangen, und die Bauteile inkl. Münzprüfer sind bereits angekommen. Mein "Problem" besteht im Moment darin, dass ich nicht weiß wie ich das "Zählen" der Münzen im Programm ablaufen lassen kann. Mein Programm sieht folgendermaßen aus:

    #Programm zur Steuerung des Kartoffelautomaten

    #Importieren der Library

    import RPi.GPIO as GPIO #GPIOs importieren
    import time #Zeit in Sekunden importiert

    #GPIOs Konfigurieren

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(2, GPIO.IN) #GPIO 2 ist nun als Eingang geschaltet fuer Muenzpruefersignal
    GPIO.setup(7, GPIO.OUT) #Motor Fach 1
    GPIO.setup(8, GPIO.OUT) #Motor Fach 2
    GPIO.setup(25, GPIO.OUT) #Motor Fach 3
    GPIO.setup(24, GPIO.OUT) #Motor Fach 4
    GPIO.setup(23, GPIO.OUT) #Motor Fach 5
    GPIO.setup(18, GPIO.OUT) #Motor Fach 6
    GPIO.setup(15, GPIO.OUT) #Motor Fach 7
    GPIO.setup(14, GPIO.OUT) #Motor Fach 8
    GPIO.setup(11, GPIO.OUT) #Motor Fach 9
    GPIO.setup(9, GPIO.OUT) #Motor Fach 10
    GPIO.setup(10, GPIO.OUT) #Motor Fach 11
    GPIO.setup(22, GPIO.OUT) #Motor Fach 12

    #Freie GPIOs - 4 Stueck
    #27
    #17
    #4
    #3

    #Endlosschleife des Programms

    while 1==1:
    _x = input("Nummer des gewuenschten Fachs eingeben und mit Enter bestaetigen: ")
    _if x < 1:
    __print("Bitte ein existierendes Fach eingeben")
    _elif x > 12:
    __print("Bitte ein existierendes Fach eingeben")
    _elif x == 1:
    __print("Bitte 5 Euro einwerfen")
    __while y < 5:
    ___print("Bitte 5-y Euro einwerfen")
    _elif x == 2:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 3:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 4:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 5:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 6:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 7:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 8:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 9:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 10:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 11:
    __print("Bitte 5 Euro einwerfen")
    _elif x == 12:
    __print("Bitte 5 Euro einwerfen")
    #--Ende--

    Die Preise pro Fach lassen sich nachher natürlich Variieren.

    Den Münzprüfer habe ich so eingestellt, das bei einem 50 Cent Stück 1 Puls ausgegeben wird, bei einem 1 Euro Stück 2 Pulse und bei einem 2 Euro Stück 4 Pulse ausgegeben werden. Ich habe mir gedacht so kann ich direkt pro Puls 50 Cent rechnen lassen.

    Wie verklicker ich meinem Raspberry nun, dass er pro "True" eingehendem Signal auf GPIO2 der Variable Y einen Wert von 0,5 addieren soll? Die diversen Online-Tutorials helfen mir nicht wirklich weiter.

    Sollte ich diese Frage ggf. auch im Programmier-Bereich stellen? Ich denke, das Interesse an meinem Projekt ist eher gering, sodass die Frage ggf. den potentiellen Löser verfehlen könnte? :))

    Liebe Grüße

    Einmal editiert, zuletzt von Pollendose86 (2. Februar 2014 um 19:04)

  • Ein Schrank mit 12 Fächern und evtl. verschiedenen Preisen...
    Eine Alternative zur CASE-Funktion...


    Schau mal hier wegen der Adressierung: https://github.com/Arachnid/advisor/blob/master/advisor.py

    Auch hier mal in den Kommentaren lesen... http://blog.notdot.net/2012/09/Penny-for-your-thoughts

    Das sieht sehr gut aus :D Ich werde mich mal an dem Code versuchen, ihn zu verstehen. Als Python-Neuling sieht das erstmal wie Japanisch für mich aus :D

    Und ja, es sind 12 Fächer mit unterschiedlichen Preisen angedacht.

    Danke für die Links :)

    Grüße

Jetzt mitmachen!

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