Er zijn momenteel al aardig wat apparaten die op Linux draaien. Meestal gaat het hier om appliances waarvan je niet direct door hebt dat deze op Linux draait, het is immers vaak maar een dom apparaat met een aan/uit-knop, waarbij de rest van de functionaliteit goed verborgen is.

Een heel andere categorie apparaten is open source hardware. Dit is hardware waarvan de specificaties volledig beschikbaar zijn zodat iedereen oplossingen kan bouwen op basis van die hardware. Een bekend voorbeeld hiervan is de Arduino microcontroller. Wat je daar zoal mee kunt? Leren programmeren bijvoorbeeld, of zelf leren hoe je specifieke hardware in elkaar zet.

 Arduino kan beschouwd worden als de ruwe basis van iets dat uitgebouwd kan worden tot een uitvoerig apparaat. De Arduino microcontroller is de basis, een klein programmeerkaartje dat bestaat uit een 8-bits microcontroller met een USB-poort erop. Deze basisvariant is al verkrijgbaar voor rond de 30 Euro, maar als je verdergaande plannen hebt zijn er ook andere apparaten. Een voorbeeld hiervan is de Arduino BT, een arduinoboard dat uitgevoerd is met een Bluetooth-chip, of de Arduino Mega, een controller die maar liefst 25 KiB programmeerbaar geheugen bevat en 70 programmeerbare aansluitingen.

 

Een Arduino is niet echt een alternatief voor een computer. Zoals de makers zelf het noemen, “Arduino is een open source elektronisch platform dat gebaseerd is op flexibele hardware en software die eenvoudig te gebruiken is.  Arduino is bedoeld voor artiesten, ontwikkelaars en hobbyisten en ieder ander die geïnteresseerd is in het maken van interactieve objecten of omgevingen.” Als dusdanig kun je het in allerlei toepassingen tegenkomen, bijvoorbeeld in een interactief systeem waar een gebruiker op een knopje drukt om een bepaald lampje aan te zetten. Dergelijke toepassingen worden in maquettes regelmatig ingezet om iets duidelijk te maken.

 

Wat vooral ook interessant is aan Arduino, is dat het een leerplatform is. Enerzijds een leerplatform op het gebied van elektronica, en anderzijds een leerplatform op het gebied van programmeren. Op het gebied van elektronica om het eenvoudig uitbreidbaar is. Dat betekent dat een beginnend elektronicus leert hoe met de soldeerbout om te gaan om extensies aan te brengen die voor aanvullende functionaliteit zorgen. Dat blijkt al als je de Arduino Starterkit openmaakt. Je vindt hierin een printplaatje, een LCD schermpje en daarnaast een tweetal dozen met elektronische componenten zoals jumpers, dipswitches, weerstanden en wat al niet meer. Voordat je een werkende oplossing hebt moet je dan ook echt met de soldeerbout aan de slag.

 

Als het apparaat zelf op de juiste wijze in elkaar gezet is, komt de volgende fase en moet je er voor zorgen dat het ook iets nuttigs doet. In het geval van de Arduino betekent dit dat je zelf een programma moet schrijven in de vrij toegankelijke Arduino programmeertaal. Deze taal is ontwikkeld in C en dat betekent dat je Arduino ook in kunt zetten als eenvoudig toegankelijk platform om C te leren programmeren. In dit geval is dat dan niet abstract C programmeren, maar heel concreet, je hebt immers een apparaatje dat direct reageert op alles waarvoor je het geprogrammeerd hebt.

 

Zoals in de introductie van dit artikel al werd gezegd, Arduino is open source. Dat betekent dat de kennis over de specificaties van Arduino vrij is en er een goede open source infrastructuur rondom Arduino is opgezet. Er is een forum, een wiki en een blog en ruimschoots informatie voorhanden. Daarnaast is Arduino een regelmatig terugkerend onderwerp op open source conferenties. Op linux.conf.au was er bijvoorbeeld een speciale miniconference aan gewijd.

 

Sander van Vugt