Utvikling

Sånn lagde de tappetårn med sensorteknologi - for å drikke øl på kontoret

Tappekran på kontoret begynner å bli hverdagskost i mange av landets teknologibedrifter. Derfor måtte noe gjøres. Hva er vel ikke da bedre enn å innovere litt?
Tappekran på kontoret begynner å bli hverdagskost i mange av landets teknologibedrifter. Derfor måtte noe gjøres. Hva er vel ikke da bedre enn å innovere litt? Foto: Appex
2. feb. 2018 - 18:00

Ingen ting er bedre enn et kreativt prosjekt på jobb. Det er med på å bygge samhold og gode relasjoner mellom kolleger. 

Det vet det kreative teknoligiselskapet Appex å sette pris på. Derfor arrangerte de et hackathon der formålet med dagen var å lage en «progress bar» som viste når det var aktivitet på tappekranen.

Hackathon

Seansen involverer både utviklere, designere, produkteiere og drift.

– I denne hackathonen lærte vi utrolig mye, både rundt styring av enheter og ansiktsgjenkjenning, som vi helt sikkert får bruk for i kundeprosjekter senere, skriver selskapet om prosjektet på egne hjemmesider.

– Med primus motor Kjetil og våre elektronikkeksperter Hein André og Andreas i spissen, var vi en god gjeng som gikk noenlunde systematisk til verks med lodding, kabling, programmering, liming, saging og boring – og som seg hør og bør også litt fussball, pizza, snacks og drikke.

Gjengen på Appex Hackathon - og et halvspist pizzastykke. Foto:  Appex
Gjengen på Appex Hackathon - og et halvspist pizzastykke. Foto:  Appex

Partner Kjetil Ek i Apex har tatt seg tiden til å skrive et lite sammendrag av prosjektet for digi.nos lesere.

IT-bransjen er full av kreative sjeler, og svært mange har sine små hobbyprosjekter – enten hjemme eller på kontoret. 

Jobber du med et spennede hobbyprosjekt? Vi viser det gjerne frem. Send oss en epost på erlend@digi.no - gjerne med bilder eller skjermdumper.

Kjetil skriver:

The Progress Bar

Vi er så heldige å ha vår egen bar på kontoret, den har vi kalt The Appex Progress Bar, og enhver bar med respekt for seg selv har sin egen logo. Vi tenkte derfor det hadde vært kult om vi kunne få en logo til å «spinne» – som en ekte progress-bar! Siden Appex-logoen er formet som en stjerne burde det være mulig, bare vi fikk montert nok LED-lys inn i noe som var formet som en Appex-stjerne!

Planen vår var å bruke en proximitysensor til å oppdage når noen tappet en øl i baren. Sensoren skulle vi da montere på/i tappetårnet, og en Raspberry Pi koblet til sensoren skulle finne ut om noe er i nærheten. Et annet program skulle skru av og på led-lysene, slik at effekten så ut som en spinner/progress bar. Hvis noen fant seg en øl i baren tenkte vi det var gøy om navn og bilde ble postet på Slack samtidig. Og når vi først var i gang; hvorfor ikke kjøre på med en discokule som kommer ned fra taket med full musikk på anlegget?

 Handleliste

Steg 1 var å få handlet inn nødvendig utstyr, og dette ble bestilt fra forskjellige nettbutikker og lokale butikker. Pakkene kom jevnlig inn dørene de neste ukene, både fra Kina, USA og ikke minst Bulgaria. Etter noen uker var vi klare til å sette i gang utviklingen, og fant en dato for å kjøre en hackathon på kontoret! 

Montering av utstyret

Med alt utstyret på plass var vi klare for å starte montering og utvikling – pizza, drikke og snacks ble kjøpt inn; vi var klare for en hackathon! En god gjeng satte i gang med friskt mot rett etter jobb!

Appex-stjernen som LED-lysene skulle monteres i var ganske romslig, og for at lysene skulle lyse opp i riktig posisjon laget vi en gipsplate med hull til lysene. 12 LED-lys ble deretter møysommelig loddet fast til en LED-driver, før de ble limt fast i gipsplaten og koblet til den ene Raspberry Pi’en.

Kjøleskap og tappetårn måtte også demonteres og lages hull i for å få skjult kabler og sensoren, og på grunn av avstanden fra proximity-sensoren til kassen som LED-lysene ble montert i måtte vi bruke en egen Raspberry Pi for å kontrollere sensoren.

Utvikling av styringsprogrammene Foto: Appex

Valget falt på Python når vi skulle utvikle programmene som kontrollerte Pi’ene; et lite program for å polle verdier fra proximity-sensoren, og et annet program for å styre lysene. Proximity-sensoren gir ut verdier som indikerer hvor langt det er til nærmeste gjenstand – og med litt tuning fant vi en passelig verdi å sjekke på.

Programmet som sjekker sensoren starter deretter et HTTP-kall mot den andre Pi’en som starter en funksjon som slår av/på LED-lysene vekselsvis, slik at det ser ut som en fin-fin progressbar. I tillegg startes et HTTP-kall mot ansiktsgjenkjenningstjenesten vi utviklet (mer om det under), som igjen starter et HTTP-kall til webkameraet i baren. Til slutt startes et HTTP-kall mot en tredje service som styrer musikken, discokula og discolyset.. Phew!

Vi hadde brukt Microsoft Azure Cognitive Services i andre prosjekter, og visste at de hadde et eget API for å gjenkjenne ansikter. Oppsettet i Azure tok bare noen minutter (kan testes ut gratis). I tillegg er det laget et eget SDK (nugetpakke), som gjorde utvikling av en .Net applikasjon for gjenkjenning av ansikter enkelt. En ASP.Net MVC applikasjon ble satt opp, webkameraet i baren tar et bilde av personen, og Azure brukes til å gjenkjenne personen. Totalt knapt 10 linjer med kode!

For å lære opp Face API brukte vi Slack for å få hjelp – hvis personen ikke gjenkjennes legges bildet på Slack i en egen #progressbar kanal, med link til MVC-applikasjonen. Der kan man velge hvilken person det er, og på den måten trene opp ansiktsgjenkjenningen. Etter 2-3 bilder av en person klarte API’et med rimelig stor sikkerhet å finne ut hvem en person var! Noen mer eller mindre morsomme meldinger postes deretter på Slack hver gang vedkommende tar seg en øl. Bot’en kontrollerer vi enkelt via Slack sitt .Net SDK, en nugetpakke det også.

For å toppe kransekaka ville vi også få litt musikk og lys i baren – og hva passer vel bedre enn en discokule? Det sto allerede noen kraftige høyttalere montert rett i nærheten, så vi koblet en PC til de og laget et lite C#-program, som ved hjelp av Topshelf og Owin WebApp kan kjøres som en windows-service med et HTTP-grensesnitt, samtidig som det er enkelt å spille av lyd og kontrollere serielle porter som vi måtte ha tilgang til. TP-Link-smartpluggene var også greie å styre ved hjelp av litt kode fra GitHub.

Idéer/feature requests har strømmet på etter at løsningen kom opp, og det lukter nok en ny hackathon i nærmeste fremtid :-) Foto: Appex

Les gjerne mer om prosjektet på https://appex.no/progress-bar/

Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.