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.
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.