Portierung eines vorhandenen Spiels, .... nur "wohin"?

Inxession

Lt. Commander
Dabei seit
Sep. 2008
Beiträge
1.912
Servus Community,

ich arbeite beruflich mit Industrie Robotern verschiedener Hersteller.
Als einer der wenigen, kann Kawasaki Robotics, einen RANDOM Befehl in der hauseigenen Programmiersprache "AS" verarbeiten.

Dies brachte mich damals auf die Idee, ein Spiel zu programmieren, ähnlich dem von Stefan Raab aus der Sendung "Schlag den Raab", mit dem Namen " ... (fällt mir grad nicht ein)"
Auf jeden Fall eine Art Torwandschießen, bei welchem über den Zufallsgenerator eine Ganzzahl errechnet wird, diese wird dann über SWITCH CASE abgefragt und schaltet ein LED Panel ein.
Dieses LED Panel muss dann mit dem Ball "ausgeschossen" werden, und es wird ein anderes LED Panel aktiviert, usw ..

Das Gute am Kawasaki System ist, das es eine sehr strukturierte GUI gibt, jedoch eben nur auf dem Display des Roboters.
Als ein weiterer Vorteil, kann das Robotersystem bis zu 6 Tasks parallel verarbeiten.
Das Spiel selbst läuft im Hintergrund, der Roboter kann somit auch noch arbeiten.

Ich hab mir Anfang 2018 einen Industrie Roboter für Zuhause gekauft um das Spiel dann letztlich auch zu verwirklichen.

Mit OSB Platten, LED Stripes, Plexiglas usw habe ich eine 4x4m Bande zusammen gezimmert, welche die LED Panels in den Ecken hat.

Diese sind dann mit den 24V Aus-/Eingängen des Roboters verbunden und werden dementsprechend übers I/O geschaltet.

Also faktisch, es funktioniert alles ...
Es ist aber nicht transportfähig, da der Robotercontroller gut und gerne seine 40kg wiegt.

Nun bin ich auf der Suche, nach einer Programmiersprache die es mir erlaubt das ganze entweder als eigene App zu steuern/auszugeben, oder Browserbasierend.

Auf nem Raspi oder auch als Windows Programm.
Es muss eben nur externe Signale schalten und verwalten können, und dies optisch ausgeben, ergo zählen.

Bei der Masse an Programmiersprachen bin ich gerade etwas überfordert.
Im Anhang ein kleiner Ausschnitt des Programmcodes, ... perfekt wäre es, wenn die "neue" Programmiersprache ähnlich "einfach" aufgebaut ist, damit ich schnell die ersten Erfolge erzielen kann.
Schlussendlich soll es transportfähig werden. D.h. das Programm muss auf einem Laptop, oder Raspi mit GUI laufen und dort dem Spieler über einen externen Bildschirm, die aktuellen Werte (Erreichte Punktzahl, Restzeit, usw) anzeigen.
Idealerweise wird bei einem Treffer eine Sounddatei abgespielt. Aktuell wird hier eine 24v Hupe angesteuert, die einem schon mal nerven kann. :D

Hier noch ein Bild des sog. "Interface Panels"
810663


und hier noch ein paar Zeilen Quelltext ...

DO
led_sw = VAL($encode(/F1.0,RANDOM*3))
twait 0e+00
until led_sw<>akt
;
CASE led_sw OF
VALUE 0: ; LED 1
akt = 0
signal led1,int_led1
wait sig(ls1) or timer(1)>180 or sig(int_cancel)
ifpwprint 1,1,1,5,10="TREFFER !!!","Aktuelle Punktzahl: "+$encode(cnt)
wait sig(-ls1)
signal -led1,-int_led1,counter
cnt = cnt+1
pulse horn,1
VALUE 1: ; LED 2
akt = 1
signal led2,int_led2
wait sig(ls2) or timer(1)>180 or sig(int_cancel)
ifpwprint 1,1,1,5,10="TREFFER !!!","Aktuelle Punktzahl: "+$encode(cnt)
wait sig(-ls2)
signal -led2,-int_led2,counter
cnt = cnt+1
pulse horn,1
VALUE 2: ; LED 3
akt = 2
signal led3,int_led3
wait sig(ls3) or timer(1)>180 or sig(int_cancel)
ifpwprint 1,1,1,5,10="TREFFER !!!","Aktuelle Punktzahl: "+$encode(cnt)
wait sig(-ls3)
signal -led3,-int_led3,counter
cnt = cnt+1
pulse horn,1
VALUE 3: ; LED 4
akt = 3
signal led4,int_led4
wait sig(ls4) or timer(1)>180 or sig(int_cancel)
ifpwprint 1,1,1,5,10="TREFFER !!!","Aktuelle Punktzahl: "+$encode(cnt)
wait sig(-ls4)
signal -led4,-int_led4,counter
cnt = cnt+1
pulse horn,1
ANY :
END
;
vorbei:
;
UNTIL timer(1)>180 or sig(int_cancel)
;
Bin über jeden Tipp dankbar.
Habe neben Industrierobotern generell keine Programmiererfahrung.
Aber die stabile Basis ist vorhanden.
RANDOM ist für das Spiel elementar.

Danke Euch schonmal.
 

scooter010

Lt. Commander
Dabei seit
Sep. 2014
Beiträge
1.231
Jede "normale" Programmiersprache ist geeignet. Ein kleine Raspberry Pi würde schon reichen und dann mit Python oder c programmieren. Müsstest dann via Relais die 24v von einem zusätzlichen Netzteil zu den LED Panel schalten.
Ich denke, da ist mehr Arbeit in HW erforderlich als in Software. Du könntest die Panels auch noch mit einem Beschleunigungssensor austatten, um Treffer zu ermitteln.
 

Raijin

Admiral
Dabei seit
Nov. 2007
Beiträge
9.274
Prinzipiell kommt es darauf an wie du die IOs ansteuerst. Wenn das direkt über die Pins an einem PI gemacht wird, ist python sicherlich ganz vorne mit dabei. Geht's jedoch über eine SPS oder einen USB Optokoppler oder etwas in der Art, wird das in der Regel eh über eine DLL bzw. eine separate Funktionsbibliothek gehandhabt, die man effektiv mit so ziemlich jeder unterstützen Sprache nutzen kann, was dann in den Infos der Bibliothek in der Regel auch angegeben wird.

Was ich mich gerade frage: Werden die Roboter über eine GUI programmiert, also graphisch, oder über textuelle Skripte?
 

Inxession

Lt. Commander
Ersteller dieses Themas
Dabei seit
Sep. 2008
Beiträge
1.912
@Raijin ... Kawasaki, ABB, Kuka und viele andere werden textbasiert programmiert.
Gibt einige neuere Hersteller die Browserbasiert arbeiten ....

Python ist für mich aktuell noch "unlogisch" vom Aufbau her.
Javascript kommt mir aktuell am einfachsten vor.
Mit "abspielen" im Browser hätte ich kein Problem.

Danke für Eure Antworten.

Die Aus und Eingänge wollte ich eigentlich direkt schalten können.
Also entweder Raspi, oder über eine Schnittstellenkarte die per Treiber ansprechbar ist (ADQ -10 Alldaq)
 

Raijin

Admiral
Dabei seit
Nov. 2007
Beiträge
9.274
Ich fragte nur, weil ich beruflich zB mit Labview von National Instruments, einer grafischen Programmiersprache zu tun habe. Da kommt man sehr schnell rein.

Inwiefern ist python für dich unlogisch? Prinzipiell unterscheidet es sich ja vorwiegend nur durch die Syntax von vergleichbaren Sprachen - zumindest aus Sicht des Anwenders.

Python ist insbesondere bei einem PI das Mittel der Wahl. Es gibt gefühlt 17 Quadrilliarden an Tutorials wie man mit nem PI und python IOs steuert.

Ansonsten werfe ich noch Node.red in den Ring. Auch grafisch basiert, kann man damit mit wenigen Handgriffen IOs steuern und direkt eine GUI bauen. Große Vorkenntnisse braucht man dazu nicht und kann direkt einsteigen.
 

Inxession

Lt. Commander
Ersteller dieses Themas
Dabei seit
Sep. 2008
Beiträge
1.912
Oh yeah ... Node-Red sieht sehr vielversprechend aus.

Das muss ich mir mal genauer anschauen.

Danke
 
Top