Een Tesla-stoel achter je bureau
Sinds begin 2018 lees je al .build-artikelen op Tweakers, waarin we iets bouwen. Bij een dergelijke .build wordt vaak een singleboardcomputer ingezet om de boel aan te sturen. Er zijn natuurlijk verschillende van dit soort kleine computers, zoals de Odroid, de Banana Pi en het Tinker Board van Asus. De Raspberry Pi is bij jullie echter het populairst. Hij staat altijd hoog in de lijst met veelbekeken producten in de Pricewatch en jullie beloonden hem twee jaar op rij met een Tweakers Award. Vanuit de redactie hebben we hem onlangs nog ingezet voor onze zelfbouwspeakers en het Android Auto-navigatiescherm, en onlangs kondigde de stichting achter het kleine bordje een nieuwe versie aan.
Even geleden hebben we via de site een oproep gedaan voor de tofste projecten op basis van een Raspberry Pi of een andere singleboardcomputer. Daarop hebben jullie massaal gereageerd, met voorbeelden van mooie bouwsels, maar ook met reacties op elkaars werk. Uit alle inzendingen hebben we een selectie gemaakt en uitgewerkt in dit artikel. We hebben daarbij vooral gekeken naar originele usecases, die meer omvatten dan enkel het computertje. Zo is een PiHole een populaire toepassing voor een Pi, maar die vind je hier niet terug. In dit artikel lichten we een aantal bijzondere projecten uit.
Een Tesla-stoel achter je bureau
Door: Torac
Op basis van: BeagleBone
Wie een beetje lekker achter zijn bureau wil zitten, kan tegenwoordig naast een traditionele bureaustoel ook kiezen uit een grote hoeveelheid gamestoelen. Maar wat als geen van die modellen lekker zit? Dan kies je een stoel die is gemaakt is voor ultiem comfort voor langere tijd, zoals een stoel uit een luxe auto.
/i/2003062780.jpeg?f=imagemedium)
Kun je een korte omschrijving van je project geven?
Ik heb een bureaustoel gemaakt van een autostoel uit een Tesla. Deze is elektrisch verstelbaar met knoppen aan de zijkant die Tesla er al heeft ingezet. De stoel wordt aangestuurd door een BeagleBone Black-singleboardcomputer, die door een servervoeding wordt gevoed.
Hoe kwam je op het idee om dit te bouwen?
Ik zoek steeds naar nieuwe uitdagingen waarvan ik kan leren en waarin ik mijn creativiteit kwijt kan. In dit geval wilde ik meer leren over het gebruik van microcontrollers. Dit was dan ook een van de redenen waarom ik voor de BeagleBone heb gekozen. Zelf vind ik het design van de stoel op zich al erg mooi, en dan is deze ook nog elektrisch verstelbaar en zeer comfortabel: precies zoals ik het graag wil.
Waar liep je tegenaan? Wat vond je lastig?
Het was niet gemakkelijk om alles goed werkend te krijgen. Zo was het een uitdaging om een degelijke 12V-voeding te vinden die niet te kolossaal is. De keuze is uiteindelijk gevallen op een servervoeding, omdat die vaak smal zijn en genoeg vermogen leveren om de stoel en alle printplaten van stroom te voorzien.
Oorspronkelijk wilde ik de voeding tussen de onderkant van de stoel en het montageblad plaatsen. Later heb ik daar toch van afgezien, omdat de voeding als de stoel omlaaggaat, misschien in de weg zou zitten.
Hoe heb je de keuze gemaakt voor deze singleboardcomputer?
De reden waarom ik geen populairdere Arduino of Raspberry Pi heb gebruikt, is eigenlijk heel simpel; het moest een bord zijn met genoeg gpio-pinnen om alle motoren aan te sturen en de buttons te ontvangen. Ook moest er een internetmogelijkheid op, zodat er een simpele Python-server op kon. Zo kan ik de stoel ook op afstand bedienen en blijft de stoelverwarming brandveilig. Natuurlijk zijn hier allemaal work-arounds voor, maar ik had de BeagleBone over en nog nooit gebruikt, dus leek het mij een leuke uitdaging.
Waar ben je het meest trots op?
Ik krijg een enorm goed gevoel van alle reacties van familie en vrienden die de stoel zien staan in mijn kamer, gaan zitten en er bijna niet meer vanaf willen komen. “En dat terwijl je pas vijftien bent. Jij gaat er wel komen.”
Doe je vaker dit soort projecten?
Jazeker, zo doe ik veel met homeautomation, maar ook andere projecten, die niet altijd printplaten bevatten. Dat zijn echter vaak kleine dingen, zoals infraroodbediening om apparaten te besturen, maar ook 433MHz ontvangen en versturen. Ook doe ik veel aan reverse engineering. Zo heb ik alweer een tijd geleden drie goedkope bluetoothkleurenlampen gekocht. Nadat ik erachter kwam dat de app verouderd was en nog maar half werkte, besloot ik om ze te reverse engineeren en met de Raspberry Pi te besturen.
Vaak zijn voorbeelden van dit soort projecten te vinden op Google, maar nog nooit had iemand een bureaustoel van een Tesla-autostoel gemaakt. Dit was voor mijzelf ook een sprong in het diepe, waar ik uiteindelijk enorm van geleerd heb en waar ik dan ook trots op ben.
Wat voor tips zou je willen geven aan beginnende elektronicahobbyisten?
Heel simpel: begin gewoon. Koop een microcontroller, begin met kleine projecten en werk van daaruit steeds verder. Leer van het vallen en opstaan, en geef vooral niet te snel op.
Robin de Robot uit Bassie en Adriaan
Door: wouterduijts
Op basis van: Raspberry Pi
Wie is de beroemdste robot van de jaren tachtig? Veel mensen zullen misschien Arnold Schwarzeneggers T-800 Model 101 noemen of RoboCop uit de gelijknamige film. Maar voor Nederlanders die in de jaren tachtig en negentig opgroeiden, was er ook die andere beroemde robot: Robin, de sidekick van Bassie en Adriaan. Tweaker wouterduijts besloot dit jeugdicoon na te bouwen op basis van een Raspberry Pi.
/i/2003062790.jpeg?f=imagemedium)
Kun je een korte omschrijving van je project geven?
Ik heb Robin de Robot van Bassie en Adriaan nagemaakt. De robot is gemaakt met de Raspberry Pi 3B+, gecombineerd met servo plus Servo HAT en ledlampjes om de mond- en oogbewegingen te realiseren. Op de Pi draait ook nog een programma om Robin als een speaker te gebruiken. Op een simpel usb-speakertje heb ik een potentiometer gesoldeerd om het volume te kunnen regelen via een knop op de buik. De romp is van aluminium, de armen zijn gemaakt van stofzuigerslangen, en de handen en voeten zijn met een laser gesneden perspexplaatjes.
Hoe kwam je op het idee om dit te bouwen?
Vorig jaar heb ik met vaderdag een Raspberry Pi 3B+ gekregen. Ik had al een tijd verhalen gelezen over de minicomputer en de vele mogelijke projecten waarin hij kan worden verwerkt. In het begin ging ik aan de slag met de Sense HAT die ik er zelf nog bij had gekocht en heb ik de Pi Camera gebruikt, die opnam zodra er beweging in beeld was. Dit waren kleine projecten om kennis te maken met de Raspberry Pi. Daarnaast heb ik nog nooit in Python geschreven. Ik heb eerder wel hier en daar wat tutorials gevolgd over Objective-C en JavaScript, omdat ik zelf werkzaam ben als UX-designer voor native mobiele applicaties en websites.
Het ontbrak voornamelijk nog aan een goed idee waarvoor ik de Raspberry Pi kon gebruiken. Al een aantal jaar vroeg mijn vrouw, voor de grap, om Robin van Bassie en Adriaan als ik en familie vroegen wat ze voor haar verjaardag of kerst wilde hebben. Rond mijn eigen verjaardag, in augustus, herinnerde ik me dat en nam ik het plan op om Robin te gaan maken met de Raspberry Pi erin. Het verzinnen van ideeën was makkelijk. Hij moest kunnen praten, de ogen moesten oplichten, hij moest de uitspraken doen waarom hij bekendstaat en ik dacht dat het wel leuk zou zijn om hem te gebruiken als een Google Assistent. Zoals ik al zei, was ik totaal onbekend met Python en de Raspberry Pi, maar ik had ook nog nooit gewerkt met breadboards, leds, drukknoppen, potentiometers enzovoort. Voorheen heb ik wel een ventilator en harde schijf vervangen in mijn MacBook Pro, een hdd door een ssd vervangen in mijn iMac en mijn iPhone uit elkaar gehaald, dus ik wist dat het allemaal mogelijk was. Het zou alleen even duren. Ik heb er dan ook enorm veel plezier aan beleefd en veel geleerd.
Waar liep je tegenaan? Wat vond je lastig?
Het bouwen van het 'lichaam' was een uitdaging. Het is gemaakt van een 3mm dikke aluminium buis waarin een aantal gaten zijn geboord, wat héél lang duurt met een handboor. De armen zijn van een stofzuigerslang, de haren van elektradraad, de ogen van deurstoppers, de antennes van… antennes. Het hoofd is een oude klok die ik kon overnemen van iemand die zelf voorheen ook een Robin had gebouwd. De handjes en voetjes, het radioframe en de lippen zijn van perspexplaten die met een laser zijn gesneden. Dit en de bodem, het gezicht en de nek zijn, naar mijn ontwerpen, geprint door mijn zwager, die zelf twee jaar geleden met de Nuna 9 de World Solar Challenge heeft gewonnen in Australië. De 3d-geprinte onderdelen zijn gegrond en met verf gespoten.
Het geluid wilde ik via simpele usb-computerspeakers laten afspelen, maar dan wilde ik wel dat ik een potentiometer in de buik kon zetten waarmee je het harder en zachter kunt zetten. Ik had dus usb-speakers met een bestaande, platte schijfpotentiometer gekocht, die ik wilde vervangen. Dit bleek een stuk moeilijker dan ik dacht. Ten eerste kwam ik er later achter dat er lineaire en logaritmische potentiometers zijn. Ik had dus eerst de verkeerde, maar dat was snel opgelost. Het wegslijpen van de bestaande schijfpotmeter van usb-speakers met een multitool en het solderen van een nieuwe was echt een klus. Bij het solderen waren de connectiepunten op het printplaatje van de usb-speakers meer dan eens losgekomen en was dat min of meer onbruikbaar geworden.
Aangezien de speakers zo goedkoop waren - geluidskwaliteit was natuurlijk geen argument met de stem van Robin - heb ik ze nog een keer gekocht en voorzichtig aangepast. Nu ze het deden, dacht ik dat het ook wel leuk zou zijn als ik Robin zou kunnen gebruiken als een Sonos. Op de bovenverdieping en het dakterras hebben wij geen speaker en Robin leent zich er perfect voor. Dit bleek met een bestaande library een makkie te zijn. Het nadeel op dit moment is dat ik wel het Python-script moet stopzetten om muziek te kunnen streamen, maar via mijn telefoon op de Pi inloggen is zo gedaan, dus is het niet erg.
Waar ben je het meest trots op?
Een van de leuke details van het project is dat de lippen door een kleine servomotor worden aangedreven. Daarop heb ik een legotandwiel gezet dat een tandstang aandrijft die aan de lip vastzit. De lego-onderdelen zijn zelfs nog uit mijn eigen kindertijd. Dus zoals je merkt, kan ik niet wachten tot mijn zoon oud genoeg is om er samen mee te spelen.
Het opzetten en installeren van de Google Assistent viel mee. Het in aparte kleine programma's laten flikkeren van een led was ook goed te doen met behulp van veel YouTube-video's en al gestelde vragen op het Raspberry Pi-forum. Het draaien van een direct op de Raspberry Pi aangesloten servomotor gaf wel wat problemen. Ik wist intussen wel dat de Raspberry Pi niet perfect is om de servo van stroom te voorzien en precieze omwentelingen te laten doen. De servo kan wel op de 5V-pin van de Pi draaien, maar hij schudde enorm bij een omwenteling.
Na een hoop informatie bij het Raspberry Pi-forum te hebben opgevraagd en veel te hebben gegoogeld, kwam ik erachter dat het toch handig zou zijn om een PWM Hat te kopen. Ik heb een Adafruit-versie hiervan gekocht, die zestien servo's of leds kan aansturen. Beetje overkill, maar in combinatie met een aparte batterijdoos werkte dit perfect en kon ik de lippen op de millimeter nauwkeurig op en neer laten gaan. De support van Adafruit op hun fora was echt super. Ondanks het tijdsverschil met New York kreeg ik elke dag feedback en stappen hoe ik verder moest.
Wat voor tips zou je willen geven aan beginnende elektronicahobbyisten?
Dit was mijn eerste project met een singleboardcomputer, maar een tip voor iedereen is dat je gewoon een idee moet hebben over wat je uiteindelijk wilt realiseren. Net zoals ik probeer je in het begin wat kleine projectjes die anderen ook hebben gedaan om bekend te raken met de Raspberry Pi. Dan is het zaak om jouw eigen project in kleine stukken te breken, zodat je iedere keer een kleine overwinning hebt als je wat hebt afgemaakt. Daardoor blijf je gemotiveerd om door te gaan. Dit brengt je ook uiteindelijk bij je einddoel.
Een minidatacenter
Door: MAXed_out
Op basis van: NanoPi Neo2
Datacenters over de hele wereld zitten vol met krachtige multicore-cpu’s, enorme hoeveelheden werkgeheugen en bakken vaste opslag. ‘Datacenter’ is praktisch synoniem voor groot en veel, maar dat hoeft natuurlijk niet. Ook op basis van minder krachtige hardware kun je een groep systemen clusteren en aansturen zoals dat op grote schaal gebeurt. En dat is precies wat tweaker MAXed_out heeft gedaan.
/i/2003062812.jpeg?f=imagemedium)
Kun je een korte omschrijving van je project geven?
Ik heb een minidatacenter gemaakt om ervaring op te doen met onder andere computerclusters, Docker Swarm, Kubernetes en GlusterFS. Vooral om dus zelf te leren over de genoemde toepassingen. Ook heb ik het gebruikt om een korte presentatie te geven over bepaalde toepassingen. Het is toch leuker om te laten zien dat iets op je eigen hardware draait dan om te laten zien dat het in de 'cloud' draait, of om een heel serverrack mee te nemen.
Hoe is het cluster geconfigureerd? Welke distro, software enzovoort?
Ik gebruik Armbian Bionic vooral omdat deze distro ondersteuning biedt voor een groot aantal singleboardcomputers. Ik heb op dit moment Portainer (Docker Swarm UI), de Influx TICK-stack voor metrics en Drone CI/CD, en ik wil hier nog Domoticz of OpenHAB op draaien.
Hoe kwam je op het idee om dit te bouwen?
Op verschillende conferenties had ik al gezien dat dit veel werd gedaan, maar vaak werd er weinig aandacht besteed aan de behuizing. Toen kwam ik op de site van Alex Ellis, tevens oprichter van OpenFaaS, climbers.net/sbc/. Hier staan uitgebreide instructies over hoe hij zijn Pi-Clusters heeft gebouwd. Zelf heb ik mijn sources staan op Gitlab.
Hoe heb je de keuze gemaakt voor deze singleboardcomputer?
De NanoPi Neo2 heeft alles wat ik nodig had voor een redelijke prijs. Een
64bit-ARM-cpu, die vergelijkbaar is met een Raspberry Pi3, 1GB RAM en 1Gbit-ethernet. Door het weglaten van video-output, bluetooth en wifi kan hij relatief goedkoop blijven en is de Neo2 een van de kleinste sbc’s op de markt.
Waar liep je tegenaan? Wat vond je lastig?
Dit was de eerste keer dat ik iets met lasercutting had gedaan. De eerste iteratie had ik met triplex gedaan om kosten te besparen en omdat hout makkelijker te bewerken is dan plexiglas. Toen ik eenmaal het doorzichtige plexiglas had gebruikt, zag ik dat de schroefgaten net een halve millimeter te ver naar buiten stonden ten opzichte van het deel waarmee het was verbonden. Visueel geen ramp, maar plexiglas is ook minder flexibel dan hout en er zijn dus barsten ontstaan door de ongelijke druk op de verbinding. In de laatste iteratie heb ik de afbeeldingen voor de lasercutter extra goed bekeken.
Waar ben je het meest trots op?
Ik ben erg tevreden over de functionaliteit, maar ook vooral over het uiterlijk van dit project.
De meeste kits of zelfbouwprojecten die ik heb gezien, hebben een externe switch en/of voeding en vaak een hoop uitstekende kabels, en ik vind het zelf heel fijn dat ik alles in een simpele case heb weten te krijgen.
Doe je vaker dit soort projecten?
Niet zo vaak als ik zou willen. Persoonlijk vind ik het fijn om minstens vier tot zes uur onafgebroken aan een project te werken en dat is soms nogal lastig naast een fulltime baan en een sociaal leven.
Wat voor tips zou je willen geven aan beginnende elektronicahobbyisten?
Probeer het niet de eerste keer perfect te doen. Begin met goedkope onderdelen om een proof of concept te maken. Dan loop je vanzelf tegen problemen aan die je tijd en geld gaan besparen in de volgende fase van je project. Deze manier van werken helpt mij ook de motivatie hoog te houden.
Een MagicMirror
Door: kmf
Op basis van: Raspberry Pi
Als je huis van allerlei slimme apparatuur is voorzien, is het natuurlijk helemaal niet gek om informatie daarover te verzamelen in een dashboard. Krijg echter je huisgenote(n) maar eens zover dat je een groot scherm in de hal mag ophangen. Dat kun je dan beter camoufleren als spiegel, en dat is precies wat tweaker kmf heeft gedaan.
/i/2003062824.jpeg?f=imagemedium)
Kun je een korte omschrijving van je project geven?
Het project is een MagicMirror, een spiegel met spionglas waarachter een monitor of tv zit om dynamische beelden te tonen. Het idee is niet nieuw en er zijn tal van zelfbouwprojecten online te vinden. Toevallig is de uitvinder van de MagicMirror ook een Nederlander. Ik heb echter zelf ook een aantal softwaremodules (her)schreven om hem aan mijn eisen te laten voldoen.
Hoe kwam je op het idee om dit te bouwen?
Een nieuwe woning is een mooie reden om veel data te verzamelen om de leefbaarheid efficiënt te regelen. De temperatuur per vertrek, de leidingtemperaturen van vloerverwarmingsgroepen, het energiegebruik én de energieopwekking door apparatuur.
De data is niet alleen voor mij interessant, maar ook voor huisgenoten en bezoekers. Ik had dus een dashboard nodig om die te tonen. Een simpele monitor heeft niet genoeg waf om zomaar te worden uitgevoerd, vandaar de keuze om een MagicMirror te maken: een grote spiegel waarop data getoond kan worden. De spiegel moet op zichzelf al een pronkstuk worden. Het dashboard moet hem bijzonder maken.
Hoe heb je de keuze gemaakt voor deze singleboardcomputer?
Het is moeilijk uit te leggen dat de dashboard om energiestatistieken weer te geven zelf onnodig veel energie gebruikt. Een vereiste is dus dat hij energiezuinig is, maar toch krachtig genoeg om de benodigde taken uit te voeren. Het weergeven van webcamstreams kost best wel wat kracht. Een Raspberry Pi is dan een van de betere keuzes. Ik heb hem ook gekozen omdat hij goed tweakbaar is. Er zijn bijvoorbeeld onzichtbare aanwezigheidssensoren die enkel de monitor aanzetten en de softwaremodules laat pollen als er mensen aanwezig zijn.
Voor de nerds: ik heb gebruikgemaakt van RCWL-0516-sensoren, die met behulp van microgolfradar en het welbekende dopplereffect aanwezigheid kunnen detecteren. In tegenstelling tot PIR-sensoren hebben ze geen direct zicht nodig en kunnen ze dus achter de spiegel worden verborgen.
Waar liep je tegenaan? Wat vond je lastig?
Initieel had ik voor een spionspiegel van acrylglas gekozen vanwege de kosten. Helaas vervormt het dunne acrylglas heel erg aan de randen en was er een mate van lachspiegeleffect. Ook vind ik acryl te kwetsbaar om het makkelijk schoon te poetsen, en vaak schoonmaken is nodig, omdat acryl nogal statisch kan worden.
Ik heb uiteindelijk voor echt spiegelglas gekozen: Pilkington MirrorView 50/50. Dit geeft wel de luxe uitstraling die een spiegel van 70x100cm moet hebben. Helaas heeft het ook een royale prijs.
Softwarematig kon ik gebruikmaken van de MaggicMirror-software. Die voldeed echter niet helemaal aan mijn wensen, dus heb ik zelf een paar modules (her)schreven voor het tonen van de data en het weergeven van beveiligingscamerabeelden. En ik heb zelf een module geschreven om de locaties van familieleden te tonen.
Waar ben je het meest trots op?
Vreemd genoeg ben ik vooral trots op mijn houtbewerkingsprestaties. Op de millimeter nauwkeurig had ik de sponning gefreesd met een zelfgebouwde tafelfrees, omgebouwd van een bovenfrees. Dat ik de softwaremodules als programmeur zelf naar wens heb kunnen maken, is zo vanzelfsprekend dat ik er niet trots op mag zijn.
Doe je vaker dit soort projecten?
Een project wordt meestal geboren uit een ergernis, doordat ik nooit honderd procent tevreden ben met iets. Wil je iets naar je zin hebben, dan moet je het zelf maken. Daarom verzin ik wel vaak een oplossing, als de ergernis maar voldoende is gegroeid. Dus ja, ik doe wel vaker dit soort projecten. Waarschijnlijk worden het vervangen van de thermostaat en een slimme(re) deurbel de volgende twee tweakerwaardige projecten.
Wat voor tips zou je willen geven aan beginnende elektronicahobbyisten?
Sensoren en kabels zijn heel goedkoop online te bestellen. Bestel dan in één keer een hele stapel. Koop ook verzamelsets, ook al heb je deze nu nog niet nodig. Als je opeens een idee hebt, wil je niet te lang wachten op een sensor om je idee uit te werken. En als je per ongeluk een sensor kapot hebt gesoldeerd, wil je ook gewoon door kunnen gaan.
Luchtverkeersdata loggen
Door: Blasterxp, Derice, larsg, Piet91 en Raven
Op basis van: Raspberry Pi
Een Raspberry Pi als ads-b-ontvanger; deze kwam vele malen terug in de showcasetopic met projecten. Hiermee is het mogelijk om de locatie van nabije vliegtuigen te tracken. Deze informatie kan dan gebruikt worden om vliegtuigen op een kaart te plotten of de informatie kan gedeeld worden met gespecialiseerde diensten. Wij vroegen vijf Tweakers die thuis een dergelijke set-up hebben, waarom ze hiermee aan de slag zijn gegaan en hoe ze te werk gingen.
/i/2003062834.jpeg?f=imagemedium)
Wat heeft je doen besluiten dit te gaan doen?
Raven: Geen specifieke reden, al ken ik iemand die dit doet om onder andere de data door te sturen naar FlightRadar24, waar je dan een gratis 'business subscription' kunt krijgen.
Derice: Ik heb altijd al iets met luchtvaart gehad, van jongs af aan. Ik ben er ook enorm trots op dat ik KLM regelmatig van foto's kan en mag voorzien, die ze met enige regelmaat gebruiken op sociale media, in persberichten en in het inflightmagazine. Daarnaast ben ik denk ik een van de weinigen die het ergens jammer vinden als je na een vlucht geland bent; vliegen is zo tof. Kortom, toen ik erachter kwam dat je je eigen monitoringstation thuis kunt hebben en op die manier ook kunt bijdragen aan de community, was de investering zo gedaan. Het is overigens niet zo dat ik er continu naar zit te staren, maar als er weer eens iets overvliegt dat niet op de FlightRadar24-app te zien is omdat het wordt weggefilterd, is het wel leuk om even snel te kijken wat het dan was.
Larsg: Ik ben een complete aviationgeek. Typisch verhaal van: wilde als kind piloot worden, bouwde met lego altijd vliegtuigen en in ergere vormen elke keer als er een vliegtuig voorbijkwam, naar buiten gaan kijken. Leuk als je bij een vliegveld woont. Zelf zat ik al op sites als FlightRadar24 uit interesse, maar wist niet hoe ze aan data kwamen. Ik kwam een topic op Tweakers tegen waarin het onderwerp adsb-radar voorbijkwam. Toen ik feedde bij FR24, kreeg ik er ook een businessabonnement bij, dat meer mogelijkheden gaf. Dat was mooi meegenomen. Ik had het anders ook gedaan, maar het is wel een van de redenen dat ik het ben blijven doen. Het is ook best wel kicken om je eigen radarscherm te hebben.
Piet91: Ik ben zelf toch wel een aardige av-geek, dus een leuk project dat te maken heeft met luchtvaart, is interessant. Daarnaast had ik al twee oude RPi's liggen en aangezien een usb dvb-t-ontvanger van een paar euro al voldoende is om een werkende ads-b-installatie te krijgen, leek het mij leuk om ermee bezig te gaan. Ik ben geen tweaker in de trant van dat ik kan programmeren en dergelijke, en die kennis heb je hier niet voor nodig. Wat software betreft is het weinig meer dan wat bestandjes op de geheugenkaart zetten en in de RPi drukken. En als je de data die je ontvangt, doorstuurt naar bekende sites als FlightRadar24, FlightAware enzovoort, krijg je van hen in ruil een gratis abonnement op hun websites, wat je veel meer informatie biedt dan zonder dat abonnement. Voor mij als av-geek van (bijna) onschatbare waarde
Op de bekende sites wordt bepaald vliegverkeer niet getoond/weggefilterd, denk aan militair verkeer, maar ook sommige privébusinessjets. Je eigen installatie ontvangt en toont dit verkeer wel.
Waarom via een Pi?
Raven: Stroomverbruik, dat is bij RPi's zo laag dat je er zelfs bij 24/7 redelijk zware belasting nagenoeg niets van op de jaarafrekening merkt
Vergeleken met het totale verbruik van de gemiddelde woning bedoel ik dan.
Derice: Ik had al een Pi om de slimme meter mee uit te lezen en dankzij GoT, en dan met name Piet91, ben ik ook een feeder geworden. Het mooie is dat je dus bij de diverse sites een dik abonnement cadeau krijgt.
Larsg: Dit was het ideale platform, energiezuinig, goedkoop, perfect geschaald. Je hebt (net) genoeg rekenkracht en de kwaliteit is even goed als op een pc. Alles verloopt toch digitaal. De kwaliteit van je ontvangst is dan juist weer afhankelijk van je radiostick en je antenneset-up.
Piet91: Een RPi is klein, zuinig - wel zo fijn bij iets dat 24/7 aanstaat - en goedkoop, en kan prima de taken uitvoeren die gevraagd worden. De software kan ook wel draaien op een nas of pc, maar mijn nas noch mijn pc staat in de buurt van de installatie. En vanwege het energiegebruik laat ik de pc hiervoor liever ook niet 24/7 draaien.
Wat waren de technische uitdagingen/keuzes die je moest maken?
Raven: Het, nog steeds, vinden van een goede plek voor de antenne. Die staat nu op de vensterbank en de RPi Zero W slingert rond op een bureau vlakbij de vensterbank. Ik ben nog aan het overwegen de Pi Zero W naar buiten te verplaatsen, zodat die ook als weerstation dienst kan gaan doen.
Derice: Waar de antenne te plaatsen. Dat is uiteindelijk onder een dakpan geworden, eentje die in de richting van Schiphol ligt. Maar straks komt de antenne gewoon ergens op het dak te staan en dan hoop ik dat ik een heel stuk meer toestellen opvang. Nu zijn dat er ongeveer duizend per dag en, heel eerlijk, dat is echt drie keer niks als je ziet wat er daadwerkelijk allemaal van en naar Schiphol komt en in alle windrichtingen over ons land vliegt. Verder de Pi, die nog door middel van een Pi-Hat POE op de POE-switch gaat, de usb-digitale-antenneontvanger, de antenne en wat kabels waren niet noemenswaardig wat kosten betreft. Ik denk dat het allemaal bij elkaar tweehonderd euro heeft gekost.
Larsg: Als je een beetje degelijke ontvangst wilt, moet je de antenne op je dak zetten. Idealiter heb je een line of sight van je antenne tot het vliegtuig. Binnenshuis zal de afstand waarmee je vliegtuigen kunt bereiken, beperkt zijn. Om het apparaat op het dak te zetten, moet je zorgen voor wat weatherproofing. Ik was er niet happig op een extra gat in mijn dak te boren, maar ik kon een usb-kabeltje meetrekken bij de aanleg van mijn zonneboiler, die toen ook plaatsvond. Mijn set-up is als volgt: de Raspberry Pi ligt bij andere technische apparatuur bij de boiler, mooi weggewerkt, en de rtl-sdr-dongle ligt op het dak in een waterdicht doosje vanwaar een coaxkabel naar de antenne zelf vertrekt. Ik heb ervoor gekozen de coaxkabel zo kort mogelijk te houden, voor minder verlies. Het gaat om een hoge frequentie, dus het verlies door goedkope, dunne coaxkabeltjes is aanzienlijk.
Ik ben van origine begonnen met zo'n goedkope dvb-tv-stick. Ik wou mijn bereik verbeteren met een filter/versterker, maar dat was technisch niet zo simpel doordat het een bijkomende energiebron vereist. FlightAware, ook een trackersite, biedt zijn eigen stick aan met geïntegreerde filter/versterker. Dit gaf toch veertig procent extra bereik!
Software was in het begin ook wat minder evident, aangezien je veel handmatig moest configureren via de cli. Tegenwoordig zijn er heel simpele scripts, zoals die van FR24.
Piet91: Voor de beste ontvangst moet de antenne buitenstaan en vrij zicht op de lucht hebben, dus zo hoog mogelijk zonder bomen en bebouwing die dit zicht ontnemen. Ik heb de antenne uiteindelijk boven op het dak gezet, vlak onder de nok. De antenne is gemonteerd aan een stuk pvc-buis, zodat de antenne zélf in z'n geheel boven de nok uitsteekt, en die pvc-buis is weer met bouten gemonteerd aan een wat bijgebogen houder voor zonnepanelen.
Omdat je de antenne buiten wilt hebben staan, moet je ergens een stroom-, ethernet- of antennekabel van buiten naar binnen voeren. Ik had destijds geen zin om gaten in het dak of de gevel te maken, dus vanaf de antenne ligt er een aantal meter Hirschmann Koka 9 TS-kabel van de antenne onder de dakpannen door naar een raam. Hier gaat het over op een kort stukje platte coaxkabel van eBay, die tussen raam en kozijn doorgaat, zodat het raam dus dicht kan, en die gaat dan via een FlightAware-filter en FlightAware-usb-adapter in de RPi.
Uiteindelijk heb ik best aardige resultaten, zo goed, dat ik de oude RPi moest vervangen door een nieuw model Raspberry Pi 3 Model B, omdat de oude RPi 1 Model B de goede ontvangst van de installatie niet meer aankon. Deze goede ontvangst komt ook doordat ik na wat geëxperimenteer met zelfgemaakte antennes en dergelijke uiteindelijk voor gemak en kwaliteit heb gekozen, en de FlightAware Pro Stick, FlightAware-filter en FlightAware-antenne heb gekocht en gebruik.
Ik overweeg tegenwoordig wel af en toe om de RPi boven op het dak te plaatsen, direct aan de antenne, uiteraard in een waterdichte behuizing. Dat geeft zeer waarschijnlijk betere resultaten, geen verlies meer door de lange coaxkabel(s) tussen antenne en filter/adapter, en de RPi kan wel van stroom worden voorzien door middel van POE over een platte netwerkkabel. Die past ook wel tussen het raam en het kozijn door. Ik heb dit destijds niet gedaan omdat ik fysiek toegang tot de RPi wilde hebben en zodat ik niet elke keer het dak op moet om bij de RPi te kunnen. In de praktijk hoef ik echter nooit fysiek bij de RPi te zijn.
Op welke manier heb je dit project gepersonaliseerd of aangepast ten opzichte van andere implementaties?
Raven: Wat software betreft niet, wat hardware betreft wel iets. De RPi's heb ik hier voorzien van vierpoorts-usb-hubs voor de Pi Zero W, en eentje met 7 poorten voor de andere, niet-Zero-modellen.
Derice: Niet echt, lekker default, lekker makkelijk
Heb me ook niet echt verder verdiept in de mogelijkheden daarin eerlijk gezegd. Vond het al tof genoeg dat het spul draait en werkt.
Larsg: Niet echt gepersonaliseerd; ik heb geen unieke set-up. De bouw van de antenne is nog wel een uitdaging. Ik heb twee set-ups overwogen: een colineaire antenne en een cantenna: half ijstheeblik. Aangezien je heel precies moet bouwen om het bereik te optimaliseren, was een cantenna veel simpeler.
Een escapekist
Door: MisterData
Op basis van: Raspberry Pi
Escaperooms zijn in de laatste paar jaar enorm in populariteit toegenomen en de bedenkers ervan komen met steeds slimmere, ingewikkeldere en verrassendere kamers om mensen scherp te houden. Het idee om met een groep mensen puzzels op te lossen, vereist natuurlijk niet dat je fysiek met elkaar naar dezelfde locatie gaat. Tweaker MisterData besloot de puzzels in een enkele doos te stoppen en gebruikte daarvoor een Pi.
/i/2003062854.jpeg?f=imagemedium)
Kun je een korte omschrijving van je project geven?
Een escapekist brengt de puzzels die escaperooms zo leuk maken, naar de huiskamer. Onze kist is, zo vertelt het verhaal, door een geheime dienst ontdekt en vermoedelijk afkomstig van een dubieus Duits experiment tijdens de Tweede Wereldoorlog. Op basis van het verhaal en een dossier proberen de spelers, als 'onderzoekers', de diverse beveiligingen van de kist, ofwel puzzels, op te lossen en de geheime inhoud van de kist veilig te stellen.
Hoe kwam je op het idee om dit te bouwen?
Met een aantal vrienden van de TU/e brainstormen we regelmatig over coole hobbyprojecten. Na een vakantie in Hongarije, toch de bakermat van escaperooms, kwamen we op het idee er zelf een te bouwen, maar dan in a box. Er zijn immers al veel escaperooms, en een kist kun je schalen en neerzetten in wachtkamers, ziekenhuizen en huiskamers.
Hoe heb je de keuze gemaakt voor deze singleboardcomputer?
We wilden knoppen, lampjes, rgb-ledstrips en servo's kunnen aansturen, en audio kunnen afspelen. Vooral dat laatste maakt dat je al snel uitkomt bij een Linux-based sbc, tegenover bijvoorbeeld een ESP8266, want daarvoor heb je weer losse audiohardware nodig. Daarnaast hadden we al veel ervaring met RPi en NodeJS, ook voor de aansturing van spi-ledstrips onder andere. Logging en remote debugging, via wifi, vormen een fijne extra.
We gebruiken een RPi 3B+ vanwege de prestaties. Hoe sneller de reacties van de loop die alle inputs checkt, hoe fijner de puzzel aanvoelt.
Waar liep je tegenaan? Wat vond je lastig?
We hadden geen van drieën ervaring met, noch een achtergrond in elektronica. Vooral elektrische problemen speelden op, onder andere het 'aanzetten' van de powerbank, het mitigeren van inschakelpieken van de servo's, het versterken van i2c-signalen over langere bussen enzovoort. Daarnaast is analoge elektronica erg 'messy' en moet je bijvoorbeeld alle inputs debouncen.
Waar ben je het meest trots op?
Vanwege het grote aantal i/o-lijnen dat we nodig hadden, kwamen we al snel uit op een oplossing waarbij we verschillende i/o-controllers (MCP23017) via een i2c-bus aanstuurden. Omdat we ook veel andere pinnen van de Pi gebruikten, zoals 2x spi, 3x pwm, nog een aantal 3,3V-pinnen en audio, hebben we voor beide zelf pcb's ontworpen en laten maken. Dat bleek met opensourcesoftware, namelijk KiCad, en online guides makkelijker dan verwacht.
Aan de softwarekant hebben we zelf 'drivers' moeten schrijven voor de verschillende I2C-chips: MCP23017, maar ook een I2C 8-segmentdisplay, en zaken als het uitlezen van een keypad via een matrix.
Daarnaast hebben we een eigen 'reactive' framework bedacht, waarmee je eenvoudig oorzaak-gevolgrelaties kunt definiëren in de puzzellogica, bijvoorbeeld:
// Startsituatie
box = {
puzzel1: { solved: false },
puzzel2: { enabled: false },
progressBar: { led1: false, led2: false }
};
// Wanneer puzzel 1 wordt opgelost moet een lampje oplichten en moet puzzel 2 ingeschakeld worden
R.watch(() => box.puzzel1.solved, (value) => {
box.progressBar.led1 = value;
box.puzzel2.enabled = box.puzzel2.enabled || value;
});
// Elders, code om de progress LEDs dadwerkelijk uit te schrijven naar de strip
R.watch(() => box.progressBar, (value) => {
spiLedStrip.send([value.led1, value.led2, ...]);
});
Het hele 'box'-object is daarnaast op afstand te manipuleren via een Vue-applicatie die gebruikmaakt van een WebSocket, waarover JSON-Patch-messages worden gestuurd die de staat beïnvloeden.
Doe je vaker dit soort projecten?
Met dezelfde groep hebben we eerder weleens een 'slimme' wekkerlamp gemaakt. Daarnaast een ledstrip voor onder een kozijn die onder andere buienradar weergeeft. Iedere vijf à zes leds stellen een kwartier in de toekomst voor en worden blauw als er regen wordt verwacht.
Wat voor tips zou je willen geven aan beginnende elektronicahobbyisten?
Veel dingen lijken vooraf erg moeilijk, zoals zelf pcb's ontwerpen, datasheets van chips opzoeken en smd-componenten solderen, maar vallen erg mee. Er is veel te googelen, als je maar weet waar je naar moet zoeken. Verder hebben we ontzettend veel gehad aan de gebruikerstests die we hebben gedaan. Dat waren ook elektriciteit-gerelateerde dingen. Bijvoorbeeld te snel of 'half' indrukken van knoppen leidde tot problemen enzovoort.