Arduino vs PCDuino vs Raspberry Pi

Arduino vs PCDuino vs Raspberry Pi

Gepubliceerd op: 30-06-2016 20:40 - Read this in English

De elektronica hobbyist kan tegenwoordig uit een ruime sortering ontwikkelplatforms kiezen. Van microcontrollers tot volledige “System-on-a-chip” (SoC) computers. In dit artikel zal ik, naar aanleiding van mijn eigen zoektocht naar een krachtiger systeem, de platforms waar ik ervaring mee heb bespreken en toelichten. Want wanneer kies je voor een Arduino en wanneer voor een Raspberry Pi?

Arduino vs Genuino

Misschien is het je al eens opgevallen bij een bezoek aan de website arduino.cc dat er al geruime tijd twee logo’s staan: Arduino en Genuino. De diverse hardware kun je ook tegenkomen met een Genuino of een Arduino logo. Dit alles is (helaas) het gevolg van een ware soap die zich binnen de Arduino-community afspeelt. Uiteraard is het vrij lastig om ‘de waarheid’ boven water te krijgen dus ik houd het hier bij de feiten.

Het oorspronkelijke Arduino-team onder leiding van Massimo Banzi bezit in Amerika de merknaam Arduino, maar niet in de rest van de wereld. Buiten Amerika worden de ‘originele’ (genuine) Arduino boards nu dus (onder licentie) geproduceerd en verkocht onder de naam Genuino. De website arduino.CC is de officiële en originele website van het Arduino-team.

Het Italiaanse productiebedrijf dat voorheen verantwoordelijk was voor de wereldwijde productie van de ‘originele’ Arduino boards heeft de merknaam Arduino geregistreerd in de hele wereld minus Amerika. De Arduino boards die je tegenwoordig in Europa koopt worden dus wel door de oorspronkelijke fabrikant gemaakt maar niet meer door het oorspronkelijke Arduino-team. Stickers op deze hardware verwijst naar arduino.ORG, de website van deze Italiaanse club.

V.l.n.r. Arduino Nano, Arduino Duemilanove (omgebouwd tot Uno), Arduino Mego 2560, Raspberry Pi 2 model B en PCDuino 1

V.l.n.r. Arduino Nano, Arduino Duemilanove (omgebouwd tot Uno), Funduino Mego 2560, Raspberry Pi 2 model B en PCDuino 1

Arduino Uno

De Arduino Uno is de moeder aller Arduino’s. Voorafgegaan door onder andere de Arduino Diecimila en Duemilanove heeft de Uno voor het echte succes gezorgd. De Uno maakt gebruik van een Atmega328 microcontroller en is bij mijn projecten vrijwel altijd de basis. Met behulp van zijn 14 IO-pinnen, waarvan 6 over hardware PWM beschikken, kun je de meeste projecten wel van (enige) intelligentie voorzien. Verder heb je de beschikking over 32 KB programmageheugen, waarvan 0,5 KB in gebruik is genomen door de boatloader, en 2 KB werkgeheugen.

Arduino Nano

Soms mag het wel wat kleiner zijn. Bijvoorbeeld als je je project wilt inbouwen in een bestaande behuizing of bezig bent met ‘wearables’. De Arduino Nano is een van de kleinste Arduino boards die de volledige spec’s van de Uno biedt. De Nano heeft dezelfde Atmega328 processor en inputs en outputs als de Uno maar dan met een minimale footprint van 18mm bij 45mm en een gewicht van 5 gram.

Arduino Mega 2560

Heeft de Uno niet genoeg inputs en outputs voor je project? Of is je programma groter dan de 32 KB opslag die de Uno te bieden heeft? Gebruik dan een Arduino Mega 2560! Met 54 in- en outputs waarvan 15 hardware PWM ondersteunen en een programma-geheugen van maarliefst 256 KB (8x zoveel als een Uno) kun je je hart ophalen. Bovendien heeft de Mega met 8 KB ook 8 keer zoveel werkgeheugen als de Uno, ideaal als je met veel en grote variabelen werkt. Vooral Strings kunnen nogal wat ruimte innemen, bijvoorbeeld bij een project met een LCD-scherm, maar ook met animaties op een LED-matrix gaat het snel.

Raspberry Pi (2B)

De Raspberry Pi is misschien nog wel bekender dan de Arduino. Bij de lancering van de Raspberry Pi in 2012 gingen de websites van de 2 leveranciers op zwart door de (te) grote belangstelling.

De Raspberry Pi is een stuk krachtiger dan een Arduino, dat komt doordat een Arduino een microcontroller is en de Raspberry Pi een SoC (System-on-a-chip), oftewel een volwaardige computer in één chip. De Raspberry Pi 2B maakt gebruik van een 900 MHz quad-core ARM Cortex A7 processor met 1 GB RAM. Op de Raspberry Pi draait een lichte Linux-distributie (Raspbian o.b.v. Debian) en via de HDMI poort sluit je hem eenvoudig op je TV of monitor aan.

Het fijne van de Raspberry is, net als bij Arduino, dat er enorme actieve (online) community is waar je terecht kunt met al je vragen. Waarschijnlijk zijn alle ‘uitdagingen’ die je tegen gaat komen al honderd keer opgelost en heeft iemand er wel een scriptje voor geschreven.

De Raspberry Pi beschikt over 40 IO-pinnen waar je sensoren en actuatoren op kunt aansluiten. Let wel op: de pinnen leveren/accepteren 3,3 Volt, bij Arduino is dit 5V. Het aansturen van deze zogenaamde GPIO pinnen gebeurt meestal in C++ of Python. Python is een makkelijk te leren geïnterpreteerde programmeertaal. Dit houdt in dat de code niet gecompileerd hoeft te worden zoals bij C++ (en dus Arduino) wel het geval is, dat scheelt handelingen en tijd.

De ‘harde schijf’ van de Raspberry Pi wordt gevormd door een micro-SD kaart (eventueel voorgeïnstalleerd met Noobs), zorg dus dat je deze er altijd meteen bij koopt (minimaal 8 GB) anders kun je niet aan de slag. Tevens beschikt de Raspberry 2 over een ethernetpoort (100 Mbps) en 4 USB-poorten.

PCDuino (1)

De naam PCDuino zegt het eigenlijk al: het is een combinatie van een PC en een Arduino. De 1 GHz quad-core ARM Cortex A8 processor is ook een SoC, een System on a Chip, wat inhoud dat het een volwaardige computer is waar je een besturingssysteem op kunt draaien. De PCDuino 1 beschikt over 1 GB werkgeheugen en 2 GB onboard flash geheugen als harde schijf. Je hebt dus geen micro-SD kaart nodig om te starten, maar hiermee kun je het geheugen later wel uitbreiden. Met de HDMI uitgang kun je een monitor of tv aansluiten en ook 100 Mbps Ethernet is standaard aan boord. De PCDuino wordt geleverd met Linino, een ultralichte versie van Ubuntu (Linux).

De PCDuino 1 belooft compatibiliteit met de Arduino-wereld maar maakt dat in de praktijk niet waar. Zo zitten de IO-pinnen samen aan dezelfde kant waardoor shields niet gebruikt kunnen worden, maar wordt er bovenal geen gebruik gemaakt van een Atmega microcontroller. In feite worden de Arduino pins dus in de software geëmuleerd met een aantal nare gevolgen.

Misschien dacht je, net als ik, zo even je Arduino code over te zetten naar PCDuino, maar dat werkt dus niet. Standaard Arduino libraries werken niet op de PCDuino, die moeten herschreven worden, en protocollen als I2C, SPI e.d. werken niet of nauwelijks doordat de pinnen niet realtime worden aangestuurd.

Mijn PCDuino leidt overigens een prima leven, eerst als XBMC/Kodi mediacenter, nu als basis van een zelfgemaakt UPNP/DLNA/streaming-speaker, allemaal toepassingen waar geen IO-pinnen voor nodig zijn.

Zoek je een perfecte integratie van Arduino met een Linux-omgeving? Kijk dan eens naar de Arduino Yun. Ik heb hier op het werk een-en-ander mee gedaan en ik moet zeggen dat het allemaal soepel werkt. De Yun heeft ook nog eens ingebouwde Wifi en draait een aangepaste Open-WRT firmware.

Wanneer kies je welk platform?

Om terug te komen op de hoofdvraag van dit artikel: wanneer gebruik je nu welk platform? Mijn voorkeur gaat uit naar het Arduino platform: dat is goedkoop en voor veel toepassingen meer dan genoeg. Een Raspberry Pi kan door zijn kracht bijna alles, maar is voor veel simpele projecten zwaar overkill. In de tabel hieronder mijn persoonlijke aanbevelingen voor een aantal veel voorkomende projecten: ✓ = ja, X = nee, ~ = kan maar is meestal niet praktisch.

Wat wil je doen?ArduinoRaspberry Pi
Analoge sensoren zoals een potmeter, LDR of NTC uitlezenX
Digitale sensoren zoals DHT vocht/temperatuur-sensoren, BMP luchtdruksensoren, of DS18B20 sensoren uitlezen~ (mogelijk timing-issues)
(RGB) LED (strips) aansturen~
Een grafisch- of karakter LCD aansturen~
Een LED-matrix aansturen~ (hoogstwaarschijnlijk timing-issues)
Simpele geluidjes produceren zoals een buzzer of korte low-quality soundfiles~
Muziek afspelen zoals mp3, flac of streaming media en SpotifyX
Een Full-HD (HDMI) monitor aansluitenX
Een mediacenter bouwen met XBMC/KodiX
Een streaming speaker bouwen a la Sonos/HeosX

‘Echte’ Arduino’s vs Arduino-klonen

Tot slot nog even kort over echte Arduino’s en (Chinese) namaak-Arduino’s.

V.l.n.r. originele Arduino Duemilanove (omgebouwd tot Uno), Funduino Uno en XDRDuino Uno

V.l.n.r. originele Arduino Duemilanove (omgebouwd tot Uno), Funduino Uno en XDRDuino Uno

Mijn originele Duemilanove en originele Ethernetshield draaien al jaren probleemloos. Ik heb inmiddels ook vele Arduino klonen in gebruik omdat deze natuurlijk veel goedkoper zijn, zowel Funduino’s als XDRDuino’s van o.a. DX en Aliexpress.

Het klopt dat de kwaliteit van een namaak-Arduino minder is dan die van een originele in de EU of USA geproduceerde Arduino of Genuino. Van de 5 of 6 nep-Arduino’s in mijn bezit is er 1 op onverklaarbare wijze overleden, ook zijn ze vaak schots en scheef in elkaar gesoldeerd, de rest van de Arduino-klonen draait echter probleemloos. Bovendien koop je voor het prijsverschil tussen een origineel en namaak gemakkelijk een nieuwe mocht hij het begeven.

Welk platform heeft jouw voorkeur? En ga jij dan voor echt of namaak? Discussieer mee in de comments!

1 reacties op dit artikel »

Aanbevolen artikelen