Student bouwt eigen auto-dashboard: CoPilot

De Amerikaanse student elektrotechniek Joey Zeller vond het ingebouwde dashboard van zijn Dodge niet erg handig te bedienen, dus hij besloot zijn eigen auto-dashboard bouwen. Het resultaat is een minicomputer waarmee hij via een touchscreen alle hardware van zijn auto kan bedienen: CoPilot.

De inspiratie kwam voort uit frustratie over bestaande systemen. Joel vond ze allemaal te ingewikkeld of te traag. “Zowel OEM-systemen die al ingebouwd zitten in auto’s als systemen die je zelf kunt inbouwen, waren in ieder geval voor mij nooit goed. Ze hadden altijd bugs of het kostte me een eeuwigheid om iets simpels uit te voeren wat eigenlijk heel makkelijk zou moeten gaan.

Het grootste probleem daarbij is dat het ten koste gaat van wat het belangrijkste is in een auto: rijden. Bij veel van die systemen moet je navigeren door ingewikkelde menu’s en dat werkt niet intuïtief, en je kunt dat vaak niet tijdens het rijden doen. Met CoPilot kun je alles met maximaal twee tikken/drukken bedienen.

Zelf dashboard bouwen

Joel wilde een dashboard in zijn auto waar hij met maximaal twee keer drukken alles geregeld kon hebben. Dat gebeurt met een touchscreen waar hij de interface zelf voor bouwde en nog een kastje met twee fysieke knoppen. Met dat kastje (de ‘hotkey-box’) kan hij makkelijk door de interface scrollen of het geluid bedienen. Op het beeld zelf zijn wat simpele dingen te zien, zoals het nummer dat wordt afgespeeld.

Aanvankelijk wilde hij dat CoPilot een paar dingen kon die hij in zijn eigen auto handig vond om te bedienen. “Ik vond het wel handig om een eigen systeem te hebben waarop ik m’n muziek kon regelen en m’n navigatie kon zien, maar ik kwam er al vrij snel achter dat ik er liever ook wat hardware mee wilde bedienen. Dus heb ik het systeem zo gemaakt dat ik er niet alleen mijn radio mee kan bedienen, maar ook de ramen en de garagedeur kan openen en sluiten.”

Deze kleine introductie is typerend voor de rest van de ontwikkeling. Wat begon als een klein plan, werd alsmaar groter en groter.

OBD-II

Het project werd veel groter dan hij oorspronkelijk voorzien had toen hij CoPilot ondersteuning gaf voor OBD-II-ondersteuning. OBD staat voor ‘on-board diagnostics’, een standaard die het mogelijk maakt om telemetrie en andere diagnostische gegevens van een auto af te lezen. Voor Joel was het de OBD-II-implementatie die CoPilot compleet maakte – of juist niet. “Het is nu een project waar ik regelmatig dingen aan blijf toevoegen. Ik weet niet of er ooit een eind aan komt.”

Met OBD-II-data kon Joel de gegevens van zijn auto gebruiken in de interface. Zo kon hij de snelheid van het voertuig op een mooiere manier tonen, net als zijn toerental en de temperatuur van de auto. Maar hij kan die data ook gebruiken om bijvoorbeeld een interface te maken die toeters en bellen laat af gaan wanneer hij over de snelheidslimiet gaat. En hij zien hoe het staat met het onderhoud van de motor.

Likje verf

CoPilot heeft nu een simpele interface die Joel zelf heeft geprogrammeerd. Daarmee is het mogelijk de radio en eventuele aangesloten aux-spelers te bedienen, de garagedeur te openen, de ramen met één klik helemaal te openen en te sluiten, en om radarapparatuur te ontdekken (dat is niet illegaal in Ohio, waar Joel vandaan komt).

Daarnaast heeft Joel verschillende apps geschreven voor de interface. Dat zijn niet louter handige features die met autorijden te maken hebben, maar ook wat minder nuttige doch leuke dingen. Zo zit er een Paint-achtige applicatie in CoPilot, waarmee je tekeningen kunt maken op het display.

dashboard inbouwen

© PXimport

Ook heeft hij een straatrace-app gebouwd waarop hij ‘rondetijden’ kan instellen voor bepaalde routes om te zien of hij die tijd kan verslaan. Die features vindt Joel zelf het leukst. “Het is misschien niet meteen nuttig, maar het is wel wat het project zo mooi maakt. CoPilot is aanvankelijk bedoeld om het voor de chauffeur makkelijk te maken om dingen te bedienen aan boord van de auto, maar deze leuke extra’s zitten daarbij niet in de weg.” Het houdt het project voor Joel ook actueel, omdat hij het dan kan uitbreiden als hij daar zin in heeft.

Joel maakte de interface met Kivy, een kit die op Python is gebaseerd. Op het thuisscherm van de interface staan zeven icoontjes, namelijk: audio, status van de auto, een klok, apps, bediening van ramen en garagedeur, de helderheid instellen en het scherm uitschakelen.

Raspberry Pi-dashboard

Joel koos ervoor een Raspberry Pi te gebruiken voor het project, al vertelt hij aanvankelijk een Android-tablet te hebben overwogen. “Een tablet leek me het makkelijkst qua interface, maar ik stapte al vrij snel van dat idee af. In de ontwerpfase bedacht ik me al dat dat niet goed was. Ik wilde niet alleen het infotainment-systeem van de auto overhoop gooien, maar ook echt de hardware kunnen aansturen. Daarvoor zijn de gpio-connectoren gewoon praktischer, dus heb ik gekozen voor een Pi.”

Daar komt volgens Joel nog bij dat de ondersteuning voor het domotica-computertje veel beter is voor knutselaars, zeker voor het doel dat hij wilde bereiken. “Ik was op zoek naar het juiste platform om te kunnen gebruiken voor CoPilot. Ik zag een keer een Reddit-post voorbijkomen van iemand die een project had gemaakt in Kivy, een grafisch Python-framework, en ik wist meteen dat dát het platform was dat ik ook wilde gebruiken. Ik ben sowieso een groot fan van Python en er bestond ook al een flink aantal Python-libraries die enigszins leken op wat ik nodig had voor CoPilot.”

Het aantal beschikbare Python-libraries was ook reden om niet meer voor Arduino’s te gaan, die Joel al voor eerdere projecten had gebruikt. “Ik prefereer Python boven C++, dan is een Pi veel fijner om mee te werken.”

dashboard inbouwen

© PXimport

Hij gebruikte een Raspberry Pi 2 Model B+, al heeft hij thuis ook de nieuwe Pi 3 liggen die geïntegreerde wifi en bluetooth heeft, én een krachtigere grafische processor. Dat hij niet zomaar wifi kan gebruiken lost Joel op met een dongel, zodat hij via ssh in de Pi kan programmeren. “Dat is wel handig omdat ik dan niet elke keer alles los hoef te schroeven wanneer ik er eens aan wil werken.”

Het is vooral de gpu van de krachtigere Pi 3 die problemen oplevert, waardoor hij die niet in de auto kan gebruiken. “Ik kreeg constant foutmeldingen dat ik last had van ondervolt, dus ik wist dat ik niet de juiste hoeveelheid stroom naar de Pi kreeg.” Raspbian toont het beruchte ‘rainbow square’ in de hoek van het scherm als een Pi niet genoeg stroom krijgt, één van de meer frustrerende foutmeldingen wanneer je veel apparaten tegelijk aan de Pi koppelt als die al veel grafische processen moet uitvoeren.

Joel: “Ik heb nog geen idee hoe ik dat moet oplossen, dus voorlopig gebruik ik nog even een Pi 2. Dat werkt goed genoeg. Bluetooth heb ik niet nodig en wifi gebruik ik via een dongle. De meeste zaken lopen toch via de GPIO-pins, en die werken op de Pi 2 net zo goed als op de Pi 3, dus heb ik de nieuwste versie niet per se nodig.” Om oververhitting van de cpu te voorkomen, heeft de Raspberry Pi ook een mini-ventilator.

Wat ook een probleem is, is dat Joel geen idee heeft hoe hij de Pi automatisch moet afsluiten wanneer hij de motor van de auto uitzet. “Op dit moment gaat de Pi abrupt uit als je de motor uitzet, maar het is niet erg gezond om er elke keer bruut de stroom af te halen. Daarom moet ik de Pi eerst afsluiten met de power-knop in de interface als ik ergens parkeer, en dat duurt irritant lang. Daar wil ik uiteindelijk een betere oplossing voor verzinnen. Idealiter moet dat gekoppeld zijn aan de motor zelf, maar dan wel zodat de Pi automatisch opstart en afsluit en niet abrupt uitschakelt. Maar ik heb op dit moment geen idee hoe dat moet.”

Touchscreen

Het project is ingewikkeld en vereist specifieke hardware. Daarom is het opvallend dat het officiële Raspberry Pi-touchscreen voldoende is voor Joel, in plaats van een tablet. De Raspberry Pi Foundation bracht in 2015 een officieel eigen touchscreen uit, dat via de dsi-poort op de Pi aan te sluiten is. Het scherm heeft een resolutie van slechts 800 × 480 pixels, wat veel minder is dan de full-hd-resolutie die je met een ander scherm kunt krijgen.

Joel erkent dat dat niet zaligmakend is, zeker niet omdat het scherm een ander, groter probleem heeft, namelijk dat het scherm geen vierkante pixels heeft. “Daardoor zien gebogen of ronde graphics er verstoord uit. Ik hoop echt dat de Raspberry Pi Foundation ooit een scherm met vierkante pixels uitbrengt, liefst ook met een betere resolutie, dan zou ik het meteen kopen en inbouwen.”

Dat weegt echter niet op tegen de voordelen van het scherm. “Vooral de dunne bezels zijn daarbij ideaal, zo past hij perfect in het frame.” Dat frame moest Joel wel zelf nog maken. Daarvoor haalde hij een frame uit een auto die bij de sloop stond. Hij schuurde daar een gat in waar het scherm van voor de CoPilot precies in paste. “Op die manier wist ik zeker dat het scherm ook echt vast kon blijven zitten.”

dashboard inbouwen

© PXimport

Het touchscreen is vooral bedoeld om informatie te weergeven en om te wisselen van feature, maar voor de echte bediening heeft Joel een ‘hotkey-box’ gemaakt. Dat is een klein kastje met twee switches en draaiknop. Op het scherm kiest hij wat hij wil bedienen, bijvoorbeeld de muziek, en met de knoppen gaat hij vervolgens naar het vorige of het volgende nummer. Als hij op het touchscreen vervolgens wisselt naar de garagedeuropener, zijn de knoppen juist bedoeld om de deur te openen of te sluiten.

De toekomst

Joel denkt niet dat CoPilot ooit echt af is. “Het systeem doet nu wat ik wil, maar ik ben eigenlijk altijd nog wel bezig om er applicaties voor te schrijven of om het systeem uit te bouwen. Als ik eens een vrije middag heb sleutel ik er nog regelmatig aan. Qua hardware zit het aan de binnenkant goed, daar doe ik niets meer aan. Als er ooit een beter scherm voor de Raspberry Pi komt zet ik dat er nog wel in, maar vrijwel alle aanpassingen draaien nu nog om de software in plaats van de hardware.”

Deel dit artikel
Voeg toe aan favorieten