- Jeg husker at da jeg var liten, var det en litt eldre gutt som hadde en bil hans pappa hadde laget. Den var riktignok ikke elektrisk, men basert på en gressklippermotor, forteller Arne-Morten Danielsen til kode24.
Danielsen leder Cloud Architecture-avdelingen hos DNV GL, og jobbet lenge som utvikler før lederjobben.
- Jeg hadde veldig lyst på en sånn bil, og derfra kom ideen til å lage en for mine barn. Siden våre to vanlige biler er elektriske, så måtte jo også bilen til barna være elektrisk, fortsetter han.
Og slik gikk det til at Danielsen lagde en elektrisk olabil, på fritida og gjennom jobbens "IoT/Maker Group"-velferdsgruppe.
Noe som involverer mye mer programmering enn du kanskje tror.
Drives av elscooter-motor
Danielsen starta fra bunnen av, uten oppskrifter eller guider å følge. Dermed var den første utfordringen hva slags motor han skulle bruke.
Valget falt på å bruke motoren, ramma og hjulene fra en elektrisk scooter med fire hjul - en "pensjonist-scooter", som Danielsen kaller det.
- Det første jeg måtte finne ut av, var hvordan jeg kunne styre den eksisterende motorkontrolleren, forteller Danielsen til kode24.
Han tok kontakt med produsenten, men de ville ikke hjelpe han. Etter litt googling fant han heldigvis et koblingsskjema som viste han hva han trengte: Et potensiometer.
Og ved å bruke et digitalt potensiometer, kunne han styre motoren med kode.
Styres med garasjeport-åpner
- Neste kruks var hvordan jeg kunne styre bilen, forteller Danielsen, og sikter til selve styringen av bilen, med forhjulene.
Etter mye prøving og feiling fant han ut at den beste løsningen var en sykkelkrank, enkelt forklart der du tråkker på en sykkel, sammen med en motor fra en garasjeåpner.
- Det er mye kraft i disse motorene. Hvis du gjør som meg, og hopper bukk over sikringer, så knekker man "girkassa". Jada - jeg måtte finne ny motor på Finn.no når mekanisk maks utslag på styringen var nådd, men mottorkontrolleren fortsatt matet 24 volt og nok ampere til motoren, humrer han.
Motoren til selve drivverket og motoren til styringen kan kontrolleres med ratt og pedaler fra Logitech, beregna til dataspill. I tillegg kan Danielsen fjernstyre bilen med en vanlig radiostyrt bil-kontroller - som også fungerer som en slags bilnøkkel.
- Barna kan ikke starte bilen og kjøre avgårde uten at jeg er med, forsikrer bilskaperen, som har tenkt sikkerhet hele veien.
Arduino og Raspberry Pi
Å styre el-olabilen betyr å styre de to motorene, for gass og svinging. Dermed trenger man logikk mellom styreenhetene og motorene, og her kommer programmeringen inn i bildet.
Slik styrer han akvariet sitt med XC
Signaler fra enten fjernstyringen eller rattet og pedalene må leses av og sendes til en sentral enhet som kan styre de faktiske motorene - det fungerer sånn her:
- Arduino Mega: - Dette er «kjøre-computeren» og kontrollerer start/stop av bil, hastighet forover/bakover og posisjon av styret. Det mottar meldinger fra Arduino Nano og Raspberry Pi over seriell, forteller Danielsen.
- Arduino Nano: - Denne leser egentlig bare radiomottager og sender konverterte verdier til Arduino Mega.
- Raspberry Pi: - Denne kjører Raspbian og et Python-skript. Hvodfunksjonen til denne er å lese input fra ratt, pedaler og knapper. Den sender konverterte verdier til Arduino Mega, samt kontrollerer releer for lys og blinkelys. Etter hvert skal også denne spille musikk.
- Hva slags språk og biblioteker er involvert?
- Begge microcontrollerne er programmert i C. Det er til sammen rundt 480 kodelinjer her, og det eneste biblioteket som er brukt er SPI.h. Når det kommer til Raspberry Pi, så er koden hovedsakelig skrevet i rundt 350 kodelinjer med Python, med relativt standard moduler som PyGame, threding, serial og så videre, svarer Danielsen.
"Hopp i det"
Det er mye mer å si om el-olabilen til Danielsen - som at den har blinklys, fjernstyrt nødstopp, egenlodda kretskort, at den etter planen skal få seg en vannkanon på panseret som passasjer kan styre med en joystick, og at den har ulike tilstander for fjernstyring, lokalstyring eller full stopp.
DNV GL-sjefen har tross alt jobba med bilen i rykk og napp over tre år allerede.
- Har du noen tips og råd til lesere som har lyst til å prøve noe liknende?
- Har du lyst, så er det bare å hoppe i det. For min del var det smart å starte med noe som hadde basisfunksjonalitet; motor, differensial, fire hjul og ramme. Men en annen ide kan jo være to hoverboards? Da vil man jo ha firehjulsdrift, funderer Danielsen.
- Et annet tips er å ikke være redd for ting man ikke kan. Man lærer underveis. Og private furterom-prosjekter trenger man jo ikke å forholde seg til leveransetid. Jeg fikk mange kommentarer om at jeg kom til å bli ferdig med bilen når barna var gamle nok til å kjøre vanlig bil. Men så lenge man ikke mister motet helt, og så lenge man fortsatt synes det er gøy, så er det bare å jobbe på, fortsetter bilskaperen, som også påpeker at du må være forsiktig når du jobber med motorer, kjeder og høy spenning.
Lett joggetur
- Hva med barna, hva synes de om bilen? Er det mest stas for deg eller dem?
- Barna er selvfølgelig strålende fornøyd. Det er nesten slik at vi må ut å kjøre én gang om dagen, svarer Danielsen.
- For min del, så er det nok prosessen med å få ting til å virke som er mest givende. Bilen sanker jo også kommentarer i nærmiljøet og det er jo selvfølgelig morsomt å fortelle litt om hva og hvordan til dem som måtte være interessert, smiler han, og avslutter:
- Det er jo også en annen bonus her: At jeg får meg en lett joggetur nesten daglig!
Slik viser han Teams-statusen i trappa
Styrer Hue-lys med Microsoft Graph og IFTTT. - Har ikke skrevet én linje kode.