Styra lampor/solenoider från en PC ?
Styra lampor/solenoider från en PC ?
Hej.
Jag skall bygga ett flipperspel med en vanlig PC som hårdvara.
Jag tänker programmera det hela i Visual Basic.
Och nu har jag några frågor som kanske någon här kan hjälpa mig med.
Finns det någon bra hårdvara som ger många outputs för att styra lampor och magnetspolar ? Och hur styr man denna hårdvara ifrån Visual Basic ?
Vad jag har är spolar som är 50V och lampor som är 5V.
Dessa vill jag kunna slå på och av ifrån datorn.
Skulle tippa på att ungefär 50st styrbara portar räcker.
(De måste aktiveras via transistorer, ej reläer)
Vad jag hittat är detta kort:
http://www.elfa.se/elfa-bin/dyndok.pl?dok=3719.htm
Kom gärna med tips om hårdvara.
Och hjälp med hur man programmerar i VB för att styra det hela !
Jag skall bygga ett flipperspel med en vanlig PC som hårdvara.
Jag tänker programmera det hela i Visual Basic.
Och nu har jag några frågor som kanske någon här kan hjälpa mig med.
Finns det någon bra hårdvara som ger många outputs för att styra lampor och magnetspolar ? Och hur styr man denna hårdvara ifrån Visual Basic ?
Vad jag har är spolar som är 50V och lampor som är 5V.
Dessa vill jag kunna slå på och av ifrån datorn.
Skulle tippa på att ungefär 50st styrbara portar räcker.
(De måste aktiveras via transistorer, ej reläer)
Vad jag hittat är detta kort:
http://www.elfa.se/elfa-bin/dyndok.pl?dok=3719.htm
Kom gärna med tips om hårdvara.
Och hjälp med hur man programmerar i VB för att styra det hela !
Största anledningen till att jag valt VB är att det är det jag har lite koll på. C kan jag nästan inget om.
Visual Basic är dessutom eventbaserat, vilket passar väldigt bra...
Ett flipperspel är ju oxå eventbaserat kan man säga, man träffar en target och man får 10 poäng osv...
Men som sagt... jag är öppen för idéer.
Jag behöver hjälp, det är ju därför jag skriver här !
Visual Basic är dessutom eventbaserat, vilket passar väldigt bra...
Ett flipperspel är ju oxå eventbaserat kan man säga, man träffar en target och man får 10 poäng osv...
Men som sagt... jag är öppen för idéer.
Jag behöver hjälp, det är ju därför jag skriver här !

- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
> Största anledningen till att jag valt VB är att det är det jag har lite koll på.
Jag var rädd för det.
Antagligen en av de sämsta anledningarna, rent generellt...

Du har alltså ingen koll alls på om VB är lämpligt eller inte ?
Är inte det viktigare (eller lika viktigt) ?
Windows är inte "eventbaserat", det är huvudproblemet.
I alla fall inte *tillräckligt* eventbaserat...
Sen är antagligen inte VB tillräckligt snabbt, men Windows är nog ett större problem.
Det lär också vara svårt att hitta ett gränsnitt mellan PCn och flipperhårdvaran
som är tillräckligt snabbt.
Jag menar, ska VB styra att en bumper "drar" när dess sensor triggar ?
Eller sker det helt och hållet i flipper-hårdvaran ?
Kanske VB bara ska styra poängräknarna ?
Ett flipperspel innehåller en realtidsmiljö som ligger en bit från vad en
(Windowsbaserad) PC kan erbjuda, skulle jag gissa.
Men räkna lite på det !
Vilka svarstider kräver flipperspelat som minst/snabbast ?
Jag var rädd för det.

Antagligen en av de sämsta anledningarna, rent generellt...


Du har alltså ingen koll alls på om VB är lämpligt eller inte ?
Är inte det viktigare (eller lika viktigt) ?
Windows är inte "eventbaserat", det är huvudproblemet.
I alla fall inte *tillräckligt* eventbaserat...
Sen är antagligen inte VB tillräckligt snabbt, men Windows är nog ett större problem.
Det lär också vara svårt att hitta ett gränsnitt mellan PCn och flipperhårdvaran
som är tillräckligt snabbt.
Jag menar, ska VB styra att en bumper "drar" när dess sensor triggar ?
Eller sker det helt och hållet i flipper-hårdvaran ?
Kanske VB bara ska styra poängräknarna ?
Ett flipperspel innehåller en realtidsmiljö som ligger en bit från vad en
(Windowsbaserad) PC kan erbjuda, skulle jag gissa.
Men räkna lite på det !
Vilka svarstider kräver flipperspelat som minst/snabbast ?
"Problemet" är att ett flipper som du kanske vet är _MYCKET_ snabbt och allt ska ju hända helst i realtid och när det inte gör det känns spelet inte alls bra. "Displayuppdateringar" kanske inte är viktiga att de kommer direkt, men om en "bumper" inte slår direkt den får kontakt ja då försvinner hela ideén med att ha en "bumper". Samma gäller flipprarna de är ju spelarens förlängda arm och minsta fel där (oavsett om resten av spelet är BÄST) så är spelet inget att ha.
För att uppnå den snabbhet som krävs måste man nog köra åtminstone vissa anrop väldigt hårdvarunära och då är INTE VB ditt språk.
För att inte förkasta din idé totalt så tycker jag att du kan testa. Att koppla lite med parallellporten några transistorer och relän på ett kopplingsdäck så ser du hur snabbt du vill ha saker och om VB räcker till. Starka solenoider kan man spara till senare, de kräver många volt+stor ström (i riktiga flipper uppåt 80V) för att slå snabbt nog.
Att lära sig koda i c++ och köra under dos är inte alls så svårt som man kan tro får man bara fnurr på det så är det nästan lika enkelt(dock kanske inte lika grafiskt även om ascii har många ljuspunkter)
Men att få flipper ens i närheten av ett riktigt Williams/bally eller ens Stern är MEGAsvårt det ligger en sjuhelsikes massa jobb bakom ett flipper (många tusen timmar/st) och ändå är de inte buggfria.
Edit:Sodjan var på G idag men jag låter upprepningarna stå kvar.
För att uppnå den snabbhet som krävs måste man nog köra åtminstone vissa anrop väldigt hårdvarunära och då är INTE VB ditt språk.
För att inte förkasta din idé totalt så tycker jag att du kan testa. Att koppla lite med parallellporten några transistorer och relän på ett kopplingsdäck så ser du hur snabbt du vill ha saker och om VB räcker till. Starka solenoider kan man spara till senare, de kräver många volt+stor ström (i riktiga flipper uppåt 80V) för att slå snabbt nog.
Att lära sig koda i c++ och köra under dos är inte alls så svårt som man kan tro får man bara fnurr på det så är det nästan lika enkelt(dock kanske inte lika grafiskt även om ascii har många ljuspunkter)
Men att få flipper ens i närheten av ett riktigt Williams/bally eller ens Stern är MEGAsvårt det ligger en sjuhelsikes massa jobb bakom ett flipper (många tusen timmar/st) och ändå är de inte buggfria.
Edit:Sodjan var på G idag men jag låter upprepningarna stå kvar.
> "...helst i realtid..."
Med risk för att glida lite OT, men vad är "realtid" !?
Är det ett allmänt begrepp som alltid betyder samma sak (i sekunder) ?
Att säga att något styrs i "realtid" säger igentligen inte ett smack om
*hur* snabbt det styrs...
Som sagt, lite OT kanske, för övrigt håller jag med till 100% (eftersom
du i princip skrev samma sak som jag...
).
Med risk för att glida lite OT, men vad är "realtid" !?

Är det ett allmänt begrepp som alltid betyder samma sak (i sekunder) ?
Att säga att något styrs i "realtid" säger igentligen inte ett smack om
*hur* snabbt det styrs...
Som sagt, lite OT kanske, för övrigt håller jag med till 100% (eftersom
du i princip skrev samma sak som jag...

Bumprar, slingshots och flipprar får styras helt via hårdvaran.
Däremot vill man ju att det skall registreras i datorn när slingshots/bumprar träffas. Övriga kickers måste dock kunna styras från datorn, om man tex vill kunna skjuta upp kulan ur ett hål.
Nu är det ju inte tänkt att detta flipper skall matcha ett nytt Stern.
Utan detta kommer bli ett hemmabygge utan dess like
Innan jag ens börjar köpa in prylar, så måste jag kolla att allt funkar i praktiken.
Jag har provat att programmera lite i VB redan.
Tänkte använda en vanlig LCD-skärm till flippret. Lägger på ett svart rutnät, och pixlar som i själva verket är 5x5 pixlar. På så vis ger det lite flipperdisplays-känsla
Men tycker att responstiden=0 än så länge.
Men får man ett interface till LPT-porten osv... så kanske det blir lite delay.
Det vet man ju inte föräns man provat...
Jag måste kolla upp lite vilka spänningar och strömmar lampor och spolar kräver. Jag vet dock att dett rör sig runt 5 och 50V.
Däremot vill man ju att det skall registreras i datorn när slingshots/bumprar träffas. Övriga kickers måste dock kunna styras från datorn, om man tex vill kunna skjuta upp kulan ur ett hål.
Nu är det ju inte tänkt att detta flipper skall matcha ett nytt Stern.
Utan detta kommer bli ett hemmabygge utan dess like

Innan jag ens börjar köpa in prylar, så måste jag kolla att allt funkar i praktiken.
Jag har provat att programmera lite i VB redan.
Tänkte använda en vanlig LCD-skärm till flippret. Lägger på ett svart rutnät, och pixlar som i själva verket är 5x5 pixlar. På så vis ger det lite flipperdisplays-känsla

Men tycker att responstiden=0 än så länge.
Men får man ett interface till LPT-porten osv... så kanske det blir lite delay.
Det vet man ju inte föräns man provat...
Jag måste kolla upp lite vilka spänningar och strömmar lampor och spolar kräver. Jag vet dock att dett rör sig runt 5 och 50V.
Tanken med detta projekt var ju inte att ni skulle såga det och hälla spånet innanför min tröja 
Kollar man på de som utvecklat www.pinmame-hw.com så kör de windows och ett kretskort av något slag på sin LPT-port.
Så nå allt går det
Funkar det inte sen, så får man ju försöka lösa det då...

Kollar man på de som utvecklat www.pinmame-hw.com så kör de windows och ett kretskort av något slag på sin LPT-port.
Så nå allt går det

Funkar det inte sen, så får man ju försöka lösa det då...
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
... och när man tittar på http://www.pinmame-hw.com så ser man att de nu utvecklar ett kort för att låta en ATMEGA128 sköta realtidsfunktionerna...
http://www.pinmame-hw.com/ATMEGA_Main_Routine.jpg

http://www.pinmame-hw.com/ATMEGA_Main_Routine.jpg
sodjan:Ok realtid är kanske inte bästa uttrycket när jag tänker efter. Det jag menar är att programmet måste reagera _DIREKT_ då tex pinne 1 sätts hög inte hålla på med att "uppdatera display" tända lampor e.dyl. Detta måste gälla _HELA_ tiden och sånt är (mig veterligen) inte helt lätt att koda det innefattar bla prioritetshantering, vilket i sig inte är svårt, men inte så lätt i praktiken och då helst inte i VB.
Iofs skulle detta kunna lösas med tex "AND" grindar så att man bara "slår på" bumpern, flippern e.dyl från mjukvaran och sen har feedback från den såklart då skulle den reagera på tidsrymder om max en ms.
Allt detta finns redan löst i flipperspel och man kan tjuvkika på många saker där. Komponentförteckning och allt
De nyare flippren _ÄR_ en dator och i de sista williamsspelen satt det en (nästan) ordinär pc. Dock var inte operativet kodat i VB
Iofs skulle detta kunna lösas med tex "AND" grindar så att man bara "slår på" bumpern, flippern e.dyl från mjukvaran och sen har feedback från den såklart då skulle den reagera på tidsrymder om max en ms.
Allt detta finns redan löst i flipperspel och man kan tjuvkika på många saker där. Komponentförteckning och allt

De nyare flippren _ÄR_ en dator och i de sista williamsspelen satt det en (nästan) ordinär pc. Dock var inte operativet kodat i VB

Ja. P2K är ju mer eller mindre en vanlig pc.
Och den styr hårdvaran via LPT tror jag.
Men så länge saker sker inom tidsrymden <50ms så borde det vara ok.
Som sagt, flipprar, bumprar och slingshots kan ju styras direkt via hårdvaran. Så där blir ju svarstiden = 0.
Att tända och släcka lampor behöver ju inte vara så jätteexakt.
Likaså displayen...
Skall göra ett program som mäter tiden mellan ollika events.
Så kan man få ett hum om hur lång svarstid VB har.
Sen är ju hårdvaran en annan sak...
Vad är det egentligen som hindrar att man gör ett flipper på detta vis ?
Och den styr hårdvaran via LPT tror jag.
Men så länge saker sker inom tidsrymden <50ms så borde det vara ok.
Som sagt, flipprar, bumprar och slingshots kan ju styras direkt via hårdvaran. Så där blir ju svarstiden = 0.
Att tända och släcka lampor behöver ju inte vara så jätteexakt.
Likaså displayen...
Skall göra ett program som mäter tiden mellan ollika events.
Så kan man få ett hum om hur lång svarstid VB har.
Sen är ju hårdvaran en annan sak...
Vad är det egentligen som hindrar att man gör ett flipper på detta vis ?
> Vad är det egentligen som hindrar att man gör ett flipper på detta vis ?
Problemet med att svara på det är att det inte finns en bra specifikation
över vad "detta vis" är.
Ett sätt är ju att succesivt flytta ut funktioner från VB till "hårdvaran"
allt eftersom VB inte "räcker till". På så sätt kan man ju *alltid* få det
att fungera.
Men som sagt, så länge som specen sägar att man "kan" göra si eller så,
så går det naturligtsvis inte att ge något *säkert* svar...
Det enda som kan ge dig säkra svar är experiment och simuleringar
med olika delsystem.
Problemet med att svara på det är att det inte finns en bra specifikation
över vad "detta vis" är.
Ett sätt är ju att succesivt flytta ut funktioner från VB till "hårdvaran"
allt eftersom VB inte "räcker till". På så sätt kan man ju *alltid* få det
att fungera.

Men som sagt, så länge som specen sägar att man "kan" göra si eller så,
så går det naturligtsvis inte att ge något *säkert* svar...
Det enda som kan ge dig säkra svar är experiment och simuleringar
med olika delsystem.
Jag vet inte hur ni hela tiden kan såga windows när det gäller tidskritiska applikationer. Det finns massor av applikationer där man använder sig windows som grund i extremt tidskritiska applikationer.
Det finns datorer med NT som OS i militära ändamål där man stänger ner väldigt mycket och kör ganska extrema saker. Det allra mest kritiska låter man riktigt gamla OS köra.
Jag ser till och från maskiner o testutrustningar är windows är OS och man kör i realtid.
VB som språk skulle jag nog inte köra hur som helst. C är väl det bästa men Delphi är i alla fall snabbare än VB.
Konststycket ligger till största delen i hur mycket man stänger av och hur mycket uppmärksamhet man begär.
Att en bumper ska vara sådär jättetidskritisk så att Windows inte skulle hänga med köper jag inte. Den har en mekanisk tröghet på kanske 0.02sek i rörelsen och minst lika mycket i sensorns mekanik. Så snabb är inte en flipper kula.
Mikael
Det finns datorer med NT som OS i militära ändamål där man stänger ner väldigt mycket och kör ganska extrema saker. Det allra mest kritiska låter man riktigt gamla OS köra.
Jag ser till och från maskiner o testutrustningar är windows är OS och man kör i realtid.
VB som språk skulle jag nog inte köra hur som helst. C är väl det bästa men Delphi är i alla fall snabbare än VB.
Konststycket ligger till största delen i hur mycket man stänger av och hur mycket uppmärksamhet man begär.
Att en bumper ska vara sådär jättetidskritisk så att Windows inte skulle hänga med köper jag inte. Den har en mekanisk tröghet på kanske 0.02sek i rörelsen och minst lika mycket i sensorns mekanik. Så snabb är inte en flipper kula.
Mikael
Sånna är dom här, besserwisserligan
Tanken med detta projekt var ju inte att ni skulle såga det och hälla spånet innanför min tröja
VB duger alldeles br till ditt projekt.Så mycket "bullshit" man får läsa om VB
Dom vet helt enkelt inte vad dom skriver om,dom går på hörsägen.
Vb i kombination med en DLL skriven i tex Delphi är den optimala lösningen.
Problemmet är att du vill ha ~50 Event
Som jag ser det skulle jag använda parallellporten och styra ett kort
som du måste designa själv.Genom att skicka något mellan 0 - 255
till parallellporten så betyder det att lampa och spole 38 skall aktiveras.
Kolla mitt gamla prog.
http://www.pellesoft.se/communicate/use ... spx?tid=53

VB duger alldeles br till ditt projekt.Så mycket "bullshit" man får läsa om VB
Dom vet helt enkelt inte vad dom skriver om,dom går på hörsägen.
Vb i kombination med en DLL skriven i tex Delphi är den optimala lösningen.
Problemmet är att du vill ha ~50 Event
Som jag ser det skulle jag använda parallellporten och styra ett kort
som du måste designa själv.Genom att skicka något mellan 0 - 255
till parallellporten så betyder det att lampa och spole 38 skall aktiveras.
Kolla mitt gamla prog.
http://www.pellesoft.se/communicate/use ... spx?tid=53