Festivalen Oslo Pride foregår denne uka i hovedstaden.
"Oslo Pride er Norges største og viktigste feiring av skeiv kjærlighet og mangfold" skriver festivalen på egne nettsider.
"Hundrevis av frivillige ildsjeler går sammen om å arrangere en ti-dagers festival hvor alle får være akkurat den man er."
Én av disse frivillige er utvikleren Hanne Johnsen i Bouvet. Og da hun fikk jobben som backstage-ansvarlig, inkludert å ha orden på drikkebongene artister får utdelt, så hun en mulighet til å gjøre det hun kan best: Kode.
Slik digitaliserte hun årets bongsystem på Oslo Pride - med Azure, IoT-teknologi, LED-lamper og laserkuttere.
Hva har du bygd, og hvorfor?
Jeg meldte meg som frivillig for årets Pride for første gang i år, og fikk jobbinstruksen som backstageansvarlig, som inkluderer å holde styr på drikke som gis ut, som en liten bar – og holde oversikt over raidere.
«Jeg er veldig interessert i dingser, ting som blinker og praktiske løsninger som gjør livet enklere.»
Her fikk jeg plutselig ideen om å digitalisere bongsystemet de hadde. Jeg er stor fan av å erstatte papir, og tenke at kanskje det hadde vært «smoothere» å digitalisere det. Det skal sies at jeg også er veldig interessert i dingser, ting som blinker og praktiske løsninger som gjør livet enklere.
Jeg har derfor laget et system for raiderhåndtering backstage til Oslo Pride. Maskinen gir artister som skal delta på Pride et kort med en RFID-brikke, istedenfor å gi ut papirbonger til baren.
Til dette har jeg laget en boks med WEMOS-mikrokontroller, en NeoPixel-ring og en RFID-leser for å lese kortene. Når et kort er lest, vil LED-ringen lyse opp i regnbuefarger, chipen sender en request til en Azure function, som sender et signal til en SignalR-hub. Leser den et kort den ikke kjenner, vil det danse røde lys over boksen.
Hvor lenge har du jobbet med dette hobbyprosjektet?
Ideen om maskinen kom til meg på et internt arrangement med Bouvet. Jeg snakket med mine kollegaer Martin Gravråk og Jesper Andersson om konseptet, og de likte det. De er begge aktive på Bouvet-labben i Oslo, og de foreslo at jeg kunne komme på labben for å teste litt og se hva man kunne få til. Jeg tok dem på ordet.
Benedicte lager egen Gatsby-plugin
- Sinnssykt gøy at folk bidrar fra hele verden, forteller Benedicte Raae bak "gatsby-remark-oembed".
Deretter jobbet jeg videre med ideen og tegnet systemskisser over hvordan jeg ville at systemet skulle fungere. For å administrere systemet med en datamodell lagde jeg en webapp.
For å se om jeg kunne ta ideen et steg videre, «hardwaremessig», dro jeg til labben på jobben. Min kollega Jesper Andersson foreslo at jeg kunne bruke en WEMOS D1 mini-chip, som er veldig liten og har WiFi, i tillegg til en NFC-leser. Vi fant en LED-ring som var litt ødelagt, som jeg prøvde å få til å fungere, men den var grillet. Dro derfor og kjøpte litt forskjellige LED-ringer. Et lite usponset tips: Kjell og Co har alt!
Jeg laget først en prototype for å se om ideen ville fungere. Videre forsøkte jeg meg på litt forskjellige fremgangsmåter, for å se hva som ville fungere best, med tanke på elementer som lys og plassering.
Når maskinen fungerte, og jeg hadde klar en referansemodell, dro jeg på labben hos Bouvet og loddet maskinen sammen. Labben hadde alt av utstyr som jeg trengte, og det fungerte veldig bra å jobbe med systemet der.
Jeg fikk hjelp av min kollega Martin Gravråk, som tok meg med på Bitraf for å lage boksene som systemet skulle være i. Vi lagde to bokser, slik at vi hadde backup, i tilfelle en går i stykker eller ikke fungerer med CNC-maskinen og laserkutteren. Boksen ble utrolig «smooth» i valcromat og pleksiglass.
Den ene boksen er liten, og i den originale gråtonen. Den andre sprakk litt, så jeg måtte sparkle, grunne og male den, dermed økte også størrelsen. Jeg er ikke en god spraymaler, så det ble et par omganger med pussing og maling. Boksen ble tilslutt glossy og svart. Nå har jeg lært hvordan få til det også!
Hvordan henger prosjektet sammen?
C#, Azure og React på webapps og backend, C++ på boksen. FastLed for å animere lys. En blanding av Azure IoT Hub og Serverless Azure Functions for kommunikasjon fra boksen til backend, og SignalR fra Azure Functions til webapps.
For at koden skal «deployes» hver gang jeg sjekker inn, satt jeg opp hele systemet i Azure DevOps, på den måten har jeg har oversikt over all kode, til enhver tid.
Hva har vært den største utfordringen hittil?
Jeg hadde ikke gjort mye med lys og LED før. Det tok en del testing samt forskjellige biblioteker og teknikker til før jeg fikk til å lage en fin regnbue og de andre lysanimasjonene jeg har laget til systemet.
Et par ganger holdt jeg på å gi opp fordi systemet krasjet hver gang jeg slo på lys og leste kort samtidig, og den sluttet å fungere helt når jeg skulle implementere Azure IoT-hub. I en periode mistet jeg også all kontakt med nett, og etter det datt en ledning ut.
Men jeg ga ikke opp og nå fungerer alt ypperlig. Når ting er «crap», ingen ting fungerer og man holder på å kaste hele prosjektet ut av vinduet ... Ta deg en pause, gå en tur, og så ordner alt seg til slutt! 😊
Hva er du mest stolt av i forbindelse med prosjektet?
Det ble innmari kult, om jeg får lov til å si det selv – særlig med tanke på regnbuefargene som blinker på boksen når man registrerer chipen. Jeg har vist den frem, og fått gode tilbakemeldinger så langt.
Oslo Pride syntes dette var et spennende initiativ, med tanke på miljøperspektivet og effektiviseringen av festivalen. Jeg har tro på at det skal gjøre det veldig mye enklere for Pride å holde oversikt, samt at det vil redusere papirbruk.
Christer logger pistolskudd på fritida
- Jeg lærer best om jeg har noe som driver meg, forteller Nordbø. Slik bygger han Shotlog-appen i React Native.
Det har vært en god del jobb, men det har absolutt vært verdt det. Det har vært utrolig kult å faktisk realisere en ide man har sittet på lenge. Også litt gøy å bli møtt med reaksjon «ooooh, aaaah, regnbue!» når jeg viser den frem. 🌈
Hva er fordelene med å ha et hobbyprosjekt?
Det har vært en kjempespennende prosess! Tror heller ikke jeg har hatt det så gøy på mange år! Jeg fikk leke med masse maskiner, lodde, programmere, og gjøre en haug av ting jeg aldri hadde gjort før. Ved å lage et digitalt bongsystem har jeg også lært kjempemasse!
La nysgjerrigheten styre deg! Lys er gøy for eksempel, men det er sensorer også. Tenk at det finnes motorer, og tenk på mulighetene som dukker opp om man kunne få på et kamera og kjøre bildegjenkjenning?
Du trenger bare ideen. Dra på labb (om du har det tilgjengelig), snakk med folk; kanskje de også kan hjelpe med å ta prosjektet videre. Bare start å lek med ideen, lag en prototype og viktigst av alt: Ha det gøy med det.
Husk at ingen ide er dum, og alt er mulig. Dra og se hva som skjer rundt om, kanskje det kommer en god ide når du er der! Begynn å tegne litt og drodle, og se hva du kommer frem til. Det hjelper også å ha en utfordring du ønsker å løse.
Programmering er moderne magi, og alt er mulig hvis man har nok tid og ressurser.
Slik bygde de Mokkameister 9000
Hobbyprosjektet har varslet om snart 2.200 kanner nytraktet kaffe.