Glücksspielautomat

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Bandit : Glückspielautomat

Herr Hans-Willi Schäfer (h.w.schaefer(bei)ahlencom.biz ) hat einen Glückspielautomaten konstruiert bei dem sich drei Trommeln im Stiele des Einarmigen Banditen drehen und bei gleichen Symbolen Geld auswerfen. Gestartet wird das Gerät durch Münzeinwurf. Der Gewinn wird über Phototransitoren festgestellt (die gelben Dingern mit den Kabeln). Die Trommeln werden dabei durch einen einzigen Motor angetrieben. Beim Stop des Motors rutschen die anderen ein wenig durch, dass zufällige Stellungen entstehen.

Das Betriebsprogramm wurde in RoboPro erstellt. Dabei habe ich ein wenig mitgewirkt.

Das brachte mich dann zu einem eher puristischem Modell + VB2008 Betriebsprogramm.

Einfacher Nachbau :

Hier werden die Scheiben einzeln durch Motoren angetrieben. Deren Laufzeit wird durch Zufallszahlen gesteuert. Deren Stellung (der Schlitze) wird durch Lichtschranken ermittelt. Bei geschlossenen Lichtschranken wird gezahlt :

- 0 : nichts
- 1 : eine Münze 
- 2 : zwei Münzen
- 3 : fünf Münzen

Ausgezahlt wird aus dem sichtbaren Magazin über einen Mini-Motor mit Schieber an einer Zahnstange. Der Start erfolgt über Druck auf den Taster oben (im Original durch Münzeinwurf).

Option Explicit On
Option
Strict Off
Imports
FishFace40

Module Bandit3
  Dim ft As New FishFace()
  Const mScheibe1 As Out = Out.M1
  Const iLichtS1 As Inp = Inp.I1
  Const mScheibe2 As Out = Out.M2
  Const iLichtS2 As Inp = Inp.I2
  Const mScheibe3 As Out = Out.M3
  Const iLichtS3 As Inp = Inp.I3
  Const mAuswurf As Out = Out.M4
  Const iEndeaus As Inp = Inp.I4
  Const iMuenze As Inp = Inp.I5

 Sub Action()
   Dim anzMuenzen As Integer
     Dim statLicht As Integer
     Dim status As String
     Dim zuf As New Random()

   Console.WriteLine("Mnze einwerfen")

   Do
        ' --- Scheiben drehen ---
        ft.WaitForInput(iMuenze)
        ft.SetMotor(mScheibe1, Dir.Left, Speed.Half)
        ft.SetMotor(mScheibe2, Dir.Left, Speed.Half)
        ft.SetMotor(mScheibe3, Dir.Left, Speed.Half)
        ft.Pause(4567)
        ft.SetMotor(mScheibe1, Dir.Off)
        ft.Pause(zuf.Next(122, 533))
        ft.SetMotor(mScheibe2, Dir.Off)
        ft.Pause(zuf.Next(111, 422))
        ft.SetMotor(mScheibe3, Dir.Off)
        ft.Pause(22)
       ' --- Status bestimmen ----
        anzMuenzen = 0
        statLicht = 0
        status = "Licht : "
        If ft.GetInput(iLichtS1) Then statLicht += 1
        If ft.GetInput(iLichtS2) Then statLicht += 1
        If ft.GetInput(iLichtS3) Then statLicht += 1
        Select Case statLicht
           Case 3
              anzMuenzen = 5
           Case 2
               anzMuenzen = 2
           Case 1
               anzMuenzen = 1
         End Select
         ' --- Ausgabe der Mnzen ----
         Console.Write(anzMuenzen & " - ")
         If anzMuenzen > 0 Then Ausgabe(anzMuenzen)
       Loop Until ft.Finish()
       Console.WriteLine()
    End Sub

 Sub Ausgabe(ByVal anz As Integer)
     For i As Integer = 1 To anz
        ft.SetMotor(mAuswurf, Dir.Left)
        ft.WaitForInput(iEndeaus)
        ft.SetMotor(mAuswurf, Dir.Right)
        ft.Pause(1850)
        ft.SetMotor(mAuswurf, Dir.Off)
     Next
   End Sub

  Sub Main()
      Try
         ft.OpenInterface(IFTypen.ftROBO_first_USB, 0)
         Console.WriteLine("--- Bei der Arbeit, Abbruch ESC-Taste ---")
         Action()
      Catch ex As FishFaceException
         Console.WriteLine(ex.Message)
      Finally
         ft.CloseInterface()
         Console.WriteLine("--- FINITO : RETURN drcken ---")
         Console.Read()
      End Try
  End Sub
End
Module

Das Programm ist ein Console-Programm und wurde mit VB 2008 für das Robo Interface erstellt.

Download 

FishFace2005.DLL von www.ftcomputing.de/vb2005.htm Das Programm selber kann hier leicht abgeschrieben werden und dabei den eigenen Gegebenheiten angepaßt werden.

Stand : 26.11.2010