Chapters
Kan du helle betong i en pappform?
Hvis ikke, kanskje det er på høy tid. Men hvis du gjorde det, så velkommen til klubben! Vi hadde nylig en intern hackathon hos EL Passion, og jeg kom opp med en utfordrende idé. Å lage en lampe!
En smart lampe. En smart lampe laget av betong! En smart lampe i tre/betong med en RGB LED-stripe… Og BLUETOOTH!
I løpet av to korte dager med hackathon (med litt overhead) fikk vi til alt dette!
For omtrent to måneder siden begynte jeg å leke med elektronikk. Jeg ønsket å utvide horisonten min, lære hvilke kabler jeg skulle kutte i tilfelle intelligente maskiner gjør opprør, og utvide kunnskapen min utenfor Frontend Engineering. Jeg antar de fleste av dere kan relatere.
Jeg begynte med det grunnleggende, skaffet noen komponenter, så på opplæringsvideoer og klarte deretter ikke å bestemme meg for hva jeg skulle gjøre videre.
Etter omtrent to måneder husket jeg at det skulle være en hackathon!
Jeg så også nylig Stephanie Nemeths foredrag på en front-end konferanse, hvor hun viste de fantastiske tingene du kan gjøre med Arduino og RGB-lamper. Så jeg bestemte meg for at jeg ville lage noe så fint som det.
Men jeg ønsket å lage noe som ville være brukbart, funksjonelt og som ville kreve DIY, koding og elektronikkferdigheter.
Jeg bestemte meg for det mest åpenbare man kan lage med lys — en lampe. Og jeg fant et perfekt DIY-prosjekt jeg ønsket å imitere.
DIY lampe fra en DIY Creators youtube-opplæring
Jeg hadde allerede en idé. Nå trengte jeg et team.
Pitching — Samle teamet
Tre dager før hackathonen har vi vanligvis pitching, hvor vi presenterer ideene våre for resten av selskapet og samler folk som vil jobbe med prosjektet vårt. Jeg er ikke en stor selger, så min hørtes litt ut som:
Ehm, så ja, jeg vil lage en betong smartlampe. Takk skal du ha.
Til tross for mangelen på informasjon, var det fem personer som var interessert i å bli med i teamet mitt! Vi hadde et imponerende sett med ferdigheter:
La oss ta en titt på handlelisten. Jeg har bare listet opp tingene vi brukte og som er permanent integrert i lampen. Alt ekstra utstyr, Arduino (prototyping, laste kode til AVR), og komponenter vi ødela er ikke medregnet.
Totale kostnader: 159 PLN (ca. $43)
Det er mulig å få alle elementene til en lavere pris, men i vårt tilfelle var det ganske hastverk.
Planker, betong, sandpapir og andre nyttige ting.
Konstruksjonsfasen av prosjektet var en spennende utfordring. Vi brukte de første 2 timene på å diskutere hvordan vi skulle lage en form for betong som ville oppfylle følgende krav:
Vi kom opp med noe som dette:Det ser enkelt ut, men å lage det var ikke så lett. For å lage formen brukte vi en pappeske, mye grå tape, en “magic mouse 2” eske, to plaststrå og litt varmt lim.
Senere blandet vi og tilsatte betong.
Vi ønsket ikke at formen skulle deformeres, så vi brukte mer tape og fire liter melk. Vi satte også den trebasen inn i betongen slik at vi ville ha plass til den senere (vi glemte nesten om den). Alt dette er ekvivalent med en “rask løsning” på produksjonssystemer, men som de sier:
Hvis det ser dumt ut, men fungerer, er det ikke dumt.
Smarte mennesker
Dette sitatet ble vårt motto for resten av byggingen.
Jeg har ikke et bilde av basen rett etter at jeg tok den ut av formen, men her er den etter litt sliping og allerede med den trearmede installert. Vi la også til noen silikonben, slik at betongen ikke skulle ripe opp bordplaten.
Hållaren är gjord av två separata delar: toppen av lampan och basen med en kabel inuti. Vi kopplade ihop dem med en stor skruv, för vilken vi borrade hål i både topp- och bottenpartierna.
Mirakulöst nog brann vi inte ner kontoret.
Det visar sig att det är svårt att mäta saker korrekt.
Den øverste delen var ganske utfordrende, da det krevde litt delikat arbeid med loddebolt, men la oss starte med det grunnleggende. Vi laget den av tre stykker treverk, to tynne (sider) og et kvadratisk. Først limte vi alt sammen, boret et hull for den store skruen som holder den øverste og nederste delen sammen. Etter å ha gjort litt sliping for å kompensere for at plankene var litt skjeve, malte Ula armen, og når den tørket, begynte jeg å montere LED-striper på den.
Det første jeg gjorde var å måle hvordan jeg skulle kutte opp LED-stripene. Vi ønsket ikke å sette inn én lang del, da det ikke ville gi så mye lys, så etter å ha målt hvor mye vi kunne passe, kuttet jeg opp tre striper, hver på 35 cm. Deretter loddet jeg hovedkabelen til den første delen av LED-tapen og brukte et varmestrømpe for å sikre forbindelsen.
En varmestrømpe og loddeforbindelser som kobler to LED-striper.
Etter å ha festet den første stripen på treverket, innså jeg at jeg hadde glemt hvilke kabler jeg hadde koblet til Rød, Grønn, Blå og 12V+ utganger. Det var et lite tilbakeslag, men vi hadde heldigvis et multimeter som gjorde at vi kunne sjekke forbindelsene.
Neste ting jeg måtte gjøre var å lodde de to LED-stripene i serie med den første delen. Det tok meg litt tid, men jeg klarte det, til tross for at jeg hadde en loddebolt til 8 dollar, med en spiss som krympet med hver bruk. Vi testet det ved å koble kabelen til brødbrettet og bruke en av rotasjonsenkodene for å endre farge.
Den nedre delen av armen var komplisert fordi vi måtte legge kabelen inni den. Vi vurderte å kutte den i to, lage plass og deretter sette den sammen igjen, men det ville vært feilutsatt og tidkrevende. Til slutt bestemte vi oss for å lime på tre ekstra biter av tre for å lage plass til kabelen, som vist på grafen. Det er også grunnen til at delen inne i basen er litt smalere.
Vi manglet noen deler, noen trebiter, og skruen som skulle holde armen sammen. Vi tok en kort pause fra alt arbeidet og dro til butikken for å kjøpe alt dette.
Den naturlige farge på furu var ikke så fin, så Ula malte både topp- og bunnpartiene av lampen for å gjøre dem litt mørkere. Vi lot det tørke over natten, og neste dag koblet vi det sammen, og det så flott ut!
Malerprosessen.
Kabelarrangement inne i lampen.
Jeg var ikke så involvert i prosessen med å lage iOS-appen, så jeg kan ikke gi en mer detaljert innsikt i koden. Jakub tok ledelsen og leverte en fungerende app før slutten av den første dagen. På den andre dagen utvidet han den med flere fantastiske funksjoner, som "Ambilight"-lignende støtte, hvor lampen synkroniserer farger med videoen som spilles (demo på slutten av artikkelen).
Det var noen problemer med Bluetooth-tilkoblingen, mer presist, en Bluetooth-modul som koblet til iOS, men ikke til Android, og en annen som gjorde det motsatte. Akkurat nå fungerer lampen bare med iOS, men for en MVP er det nok. Og Bluetooth-modulen kan enkelt byttes ut om nødvendig, siden den ikke er loddet på plass.
Ut fra min ekspertise kan jeg si at appen ser imponerende ut, og hastigheten som Jakub leverte den på er også utrolig!
Hele koden er åpen kildekode på GitHub. Du kan gå gjennom den. Jeg skal ikke dykke ned i de dype teknikalitetene om hvordan det fungerer. Wojtek, som skrev mesteparten av koden, ville vært bedre egnet til å gjøre det, så jeg har laget en overordnet oversikt over hvordan alt fungerer. Den forenklede algoritmen går som følger:
Wojtek skrev den første versjonen av koden for Arduino, og senere oppdaterte jeg den for å fungere på vanlig ATmega-brikke. Forskjellene er minimale, da jeg kun introduserte to hovedendringer:
Du kan se pull requesten som inneholder en diff av alle endringene hvis du er nysgjerrig.
Vår plan var ganske ambisiøs, for så kort tid, men heldigvis er Wojtek ganske smart og har lekt med elektronikk før, så han var "leder" for denne delen.
Vi startet med små skritt, testet forskjellige løsninger gjennom prøving og feiling. Wojtek jobbet med både koden og kretsen samtidig og testet hvordan alt fungerte. Den elektroniske delen av lampen bestod av:
I begynnelsen brukte vi Arduino i stedet for en frittstående mikrocontroller, og vi la alt på et breadboard for å forenkle utviklingsprosessen. På slutten av den andre dagen hadde vi alt koblet sammen på prototypebrettet. Bluetooth, roterende kodere og Arduino. Slik så det ut på demovisjonen:
Etter hackathonet ønsket jeg å bruke litt tid på å krympe elektronikken slik at den passer inn i lampen, slik at byggingen er komplett. For å krympe elektronikken måtte jeg:
Jeg begynte med å erstatte Arduino. For å gjøre det måtte jeg installere bootloaderen på ATmega AVR (det er den samme som Arduino bruker). Jeg så på noen opplæringsvideoer (lenket under blogginnlegget) om hvordan man installerer bootloaderen og hvordan man bruker Arduino som en ISP-programmerer (det lar oss laste opp programvare til mikrokontrolleren uten ekstra maskinvare). Etter å ha gjort det, oppdaterte jeg koden for å bruke litt forskjellige pinner, og Voila!
Neste måtte jeg lodde alt på et lite stripboard.
Det var første gang jeg jobbet med stripboards, og jeg kunne ikke finne noe enkelt programvare for å hjelpe med den fysiske kretsdesignen, så jeg gikk gammeldags til verks og planla det for hånd. Jeg skrev ut et ark med prikket rutepapir der prikkene representerte hullene på stripboardet. Deretter tegnet jeg alle tilkoblingene og hvordan de skulle passe basert på den nåværende breadboard-kretsen.
For å gjøre det mer forståelig og synlig, laget jeg en grafikk som representerer kretsen på stripboardet.
Representasjon av den opprettede kretsen. I den virkelige byggingen måtte jeg justere den litt for å få plass til alle komponentene, men den ser 90 % ut som den over.
Etter omtrent ti timer med lodding (jeg er fortsatt en nybegynner), og to brente fingre (ikke ta på komponentene hvis noe lukter rart) klarte jeg å få det til å fungere! Det gikk bedre enn forventet.
Underveis bilde, for å bygge opp til den store avsløringen!
Alle delene satt sammen. Hvite kabler er knotter, små ledninger med svart isolasjon er LED-tilkoblingene
Utsikt fra bunnen. Jeg brukte en tynn kobbertråd for å koble leddene.
Hvis du ser nøye nok kan du se all limen vi brukte.
Sjekk ut en full demo hvor jeg går gjennom alle funksjonene denne lampen har. Til tross for et par problemer, f.eks. skjeve rotary-knapper, og farger som ikke alltid blir representert korrekt, fungerer den!
For meg, og forhåpentligvis resten av teamet, har dette vært et av de mest tilfredsstillende hackathon-prosjektene så langt. Både prosessen og resultatet var utrolig, vi hadde mye moro, og vi lærte mye om å jobbe med tre, betong og elektronikk.
Hvis noen ønsker å bygge en lignende lampe eller trenger mer informasjon, ikke nøl med å kommentere og spørre meg om hva som helst!
11 mars 2025 • Maria Pradiuszyk