21-Dec

Hobby

Laser PONG!

Fra barndommens dager har jeg alltid vært drevet av nysgjerrighet og gleden ved å fikle og bygge ting. I denne bloggposten deler jeg min nostalgiske reise med å skape et laserprojektor-drevet Pong-spill. Og når du har en makerspace på Bekk som lekeplass, blir ingenting umulig. Bli med på en reise fra idé til ferdig produkt.

6 min read

·

By Simon Nistad

·

December 21, 2023

Jeg har alltid vært interessert i lyd og lys. Da jeg var 12 år brukte jeg sparepengene mine på å kjøpe røykmaskin, diskokule, strobelys og en laser spirograf. Jeg fikk miksebord til jul og rigget om kjellerstua hjemme til et diskotek. Jeg var et sånt barn som skrudde opp alt mulig for å undersøke hvordan det egentlig fungerte. Det gjør jeg fortsatt, også bygger jeg ting...

En ting som fasinerte meg spesielt, var laser spirografen. Den besto av en enkel mekanisme med en laser diode og to motorer med hvert sitt vinklede speil på enden. Laserstrålen var pekt slik at den gikk via de to snurrende speilene. Snurret et speil tegnet den en sirkel, og når begge speilene snurret ble resultatet mønstre likt det man får med en spirograf på papir.

Bilde av en spirograf for tegning
"En spirograf er et geometrisk tegneverktøy bestående av en indre ring og tannhjul. Den brukes til å lage intrikate mønstre ved å føre en penn gjennom sporene mens man roterer tannhjulene."

Laserprosjektor sier du?

20 år senere snubler jeg over en bloggpost om hvordan man kan bygge sin egen laserprojektor. Jeg tenker tilbake på diskoteket jeg bygde i kjelleren, og synes dette virker utrolig kult. Jeg bestemmer meg for at dette er noe jeg må prøve å lage selv.

Men hvordan fungerer det egentlig?

En laserprojektor kan tegne opp bilder og animasjoner ved hjelp av laserlys. Dette er mulig ved hjelp av to galvo-motorer som styrer hvert sitt lille speil. En Galvo-motor er en type motor som kan rotere svært raskt og nøyaktig til gitte posisjoner innenfor en begrenset vinkel. Motorene med speil står vinkelrett over hverandre, slik at det ene speilet vil flytte laserstrålen horisontalt langs x-aksen og det andre flytter strålen vertikalt langs y-aksen. 

Viser bilde av et speilhode med laser
Testing av speilhode med galvomotorer og laser

Ved å bevege laserstrålen i x og y aksen i kombinasjon med å skru av og på laseren, er det mulig å tegne rette linjer mellom to punkter. En rimelig Galvo-motor er rangert i området rundt 20 Kilopulser per sekund. Det betyr at den i teorien skal kunne flytte laserstrålen til 20 000 forskjellige punkter i sekundet. Ved å tegne linjer mellom flere punkter, kan man lage strektegninger og animere disse.

// Eksempel for å tegne bokstaven “V”

while(true) {	
  goto(0, 20); // Gå til x=0 og y=20	
  laserOn(); // skru på laseren	
  goto(10, 0); // Gå til x=10 og y=0	
  goto(20, 20); // Gå til x=20 og y=20	
  laserOff(); // skru av laseren	
  // Kjør i uendelig loop
}

Det trengs en del verktøy

I Bekk er vi så heldige at vi har vårt eget makerspace. På "Verkstedet" som det blir kalt, har vi flere forskjellige maskiner og verktøy. Det er 3D printer, laserkutter, CNC fres, utstyr for å lage elektronikk og mer. Dette passet perfekt nå som jeg skulle bygge min egen laserprojektor.

Hvordan bygger man egentlig en laserprosjektor?

Deler ble bestilt inn fra Aliexpress og satt sammen etter guiden jeg hadde funnet tidligere. Jeg brukte Fusion 360 til å teste og designe delene som trengtes til montering. Fusion 360 er et kraftig 3D CAD verktøy som gjør det mulig å modellere og analysere deler i 3D før produksjon. Når alt var ferdig designet produserte jeg de forskjellige komponentene ved hjelp av laserkutter og 3D-printer.

Bygging av laserprosjektor og kasse
Bygging av laserprosjektor og kasse

Noe for fagdagen?

Nå var laserprojektoren ferdig, men jeg følte at jeg måtte gjøre noe mer. Jeg bestemte meg for å melde inn en stand på den neste fagdagen i Bekk. Fagdagene arrangeres et par ganger i året, og er litt som en mini konferanse med talks, stands og sosialisering. Etter litt brainstorming landet jeg på at det hadde vært kult å lage dette som et laserspill som kunne stå fremme hele dagen.

Hva om jeg lagde et retro spill? Laser Pong!!!!

Etter litt frem og tilbake bestemte jeg meg for å lage det ikoniske arkadespillet Pong. Atari som produserte spillet tidlig på 70-tallet laget det som et enkelt bordtennis simulering spill der to spillere styrer hver sin vertikale racket. En ball beveger seg frem og tilbake mellom spillerne, og hver spiller har en kontroll for å styre racketen sin opp og ned. Målet er å treffe ballen slik at den går forbi motstanderens racket og treffer bakveggen, når dette skjer får spilleren et poeng. Den som først når en forhåndsbestemt poengsum vinner spillet.

Bilde av mor og sønn som spiller Pong på en gammel tv.
Atari Pong!

Spillkontroller var en utfordring

For å spille Pong trenger man en spillkontroller. Heldigvis hadde jeg flere deler liggende fra et tidligere havarert hobbyprosjekt. Første steg var å lage en prototype på papir. Det var viktig å finne et bra oppsett for knapper, lys og poengvisning. Jeg brukte et gratis online verktøy Boxes.py til å generere utkastet til kassen. Layouten til kontrolleren ble tegnet inn på lokket, og tilslutt laserkuttet jeg alt i sort mdf og plexiglass og monterte det sammen.

Prototype av kontroller
Prototype av kontroller

Både kontrollen og laserprojektoren er styrt av hver sin Arduino mikrokontroller. Kontrollen og projektoren kommuniserer ved å sende meldinger frem og tilbake via en vanlig hodetelefonkabel. Et problem når man lager elektronikk er at det ofte dukker opp feil, og gjerne i kombinasjon med bugs i koden. Hardwareproblemer har vist seg å være tidkrevende og vanskelig å finne ut av. Det ble mange sene kvelder med koding, feilsøking og hat, men til slutt hadde jeg endelig et fungerende Pong spill.

Frontplate til kontroller

Jeg trenger vel et par spirografer?

Et par år tidligere hadde jeg startet på et prosjekt for å gjenskape laser spirograf fra barndommen. Dette passet veldig bra til Laser Pong spillet, og endelig fikk jeg det lille dyttet jeg trengte for å få denne ferdig.

Laser spirografen bygger på samme prinsipp som spirografen jeg hadde 20 år tidligere. Forskjellen er at min versjon også skulle ha et speilhode som lot den styre mønsteret rundt i rommet. Den er designet med samme fremgangsmåte som laser projektoren, men for å få alt til å fungere måtte jeg også lage et kretskort fra bunnen av. Jeg designet kretskortet i Eagle PCB og produserte det via DirtyPCB.

Kretskort til spirograf
Kretskort til spirograf

Jeg endte opp med å lage to laser spirografer. Spirografene er satt opp til å kommunisere med projektoren, og dette gjør at de kan reagere på hendelser i spillet. F.eks gjøre en spesiell lyseffekt når en spiller bommer.

Viser to laser spirografer


Kommer det til å fungere?

Så var dagen kommet. Den siste ledningen ble loddet på plass kvelden før, og spillelisten med arkademusikk var klar. Jeg hadde fått et eget rom til å kjøre utstillingen, og mot alle odds fungerte alt som det skulle gjennom hele dagen. Det ble en stor suksess og Laser Pong var en realitet.

Bilde av Laserpong under fagdagen

Gif som viser laserpong
Viser en som spiller Laser PONG!

Lær deg noe nytt, bli selvbygger!

Jeg anbefaler alle som har en interesse for å bygge noe på egen hånd, om å bare kaste seg ut i det. Jeg kunne lite om elektronikk før jeg startet, men man lærer så utrolig mye av å bare prøve seg fram og løse problemene underveis. Det finnes enormt med bloggposter og guider på internett, og det er lett og billig å få tak i deler. Det finnes også flere tilgjengelige makerspace og biblioteker i de fletse større byer og her får du tilgang til maskiner som 3D printer og laserkutter. Følelsen av å lage noe fysisk som ender opp med å fungere sånn som man har tenkt. den er helt magisk.

Fra Laser- til mekanisk Pong!

Nå jobber jeg på et nytt hobbyprosjekt. Etter inspirasjon fra denne lager jeg en mekanisk versjon av Pong. Kanskje dukker det opp en artikkel om dette i neste års julekalender?

Ramme til mekansik Pong!
Ramme til mekansik Pong!