Udvikling til arduino og Raspberry Pi - prototyper og lignende

I de sidste år er nogle små og billige mikrocomputere blevet meget populære, da de udmærker sig til 'indlejrede' elektronikprojekter og prototypeudvikling.

Raspberry Pi er et eksempel på dette. Det er faktisk en ret slagkraftig mikrocomputer med 1 Gbytes RAM, en 4-kernet processor, ethernet, WiFi, Bluetooth, SD-kort, 4 usb-porte og hdmi. Denne computer kan anvendes som lille server (webserver, database-server, ...) og som traditionel computer til email og internet-surfing. Den er ret hurtig. Operativsystemet på Raspberry Pi er typisk linux, og operativsystemet er som regel på et SD-kort, men man kan også boote fra en harddisk via usb. Raspberry Pi har også en række GPIO (General-purpose input/output), som man kan koble til eletronikkomponenter. Her taler vi om modstande, lysdioder, transistorer, integrerede kredse og moduler. Et modul kunne for eksempel være en gps eller et accelerometer på et lille stykke printplade. Raspberry Pi eksisterer også i en lidt mindre og billigere model, samt en model til embeddede produkter, som har samme form som et hukommelses-modul.

Et andet eksempel er arduino. Arduino har en række modeller, og modellerne indeholder typisk en simpel processor (microcontroller), men kan være suppleret med en klassisk processor (operativsystemet er linux), som ligner den fra Raspberry Pi. Det er kun de store dyre modeller som indeholder en klassisk processor, og de har også en del RAM og et SD-kort, og de har måske også ethernet eller WiFi. Eksempelvis indeholder arduino Yún en simpel processor (microcontroller) og en arm-processor (samt SD-kort og WiFi), mens arduino UNO kun har en simpel processor. Arduino mikrocomputerne har alle en række GPIO som hos Raspberry Pi, hvor der kan kobles elektronik på. Raspberry Pi har dog kun digitale inputs og outputs, mens arduino er supplerede med analoge inputs - det er en stor fordel, da mange sensorer er analoge. Man bliver nødt til at anvende en ADC (analog-til-digital-konverter) i forbindelse med Raspberry Pi (for eksempel kredsen PCF8591).

Modellerne fra arduino og Raspberry Pi er på størrelse med et kreditkort (eller mindre) og de vejer næsten intet. De er tilsyneladende robuste og bruger ikke meget strøm, og de udmærker sig til 'embeddede'/indlejrede systemer.

Her er et billede af Raspberry Pi (den 'store' enhed), samt nogle 'arduino-enheder':

Raspberry pi og arduino

Lad os sætte lidt elektronik sammen: Det digitale termometer DS18B20, som koster 20-30 kroner, en lysdiode, et par modstande, samt et 'breakoutboard' for ESP8266 (se Adafruit HUZZAH ESP8266). ESP8266 kan programmeres på samme måde som en arduino via arduino IDE, og den indeholder en WiFi-enhed. Den koster næsten ingen penge (jeg gav 90 kroner for den). Denne opstilling koster således cirka 150 kr. inklusiv moms, og tingene er købt her i Danmark. Generelt har ESP8266 tidligere været anvendt som en ren WiFi-enhed, som man blot koblede på en arduino.

Vi sætter elektronikken sammen på den rigtige måde på et 'breadboard' med en række ledninger - dette er en forsøgsopstilling, og vi lodder ikke delene sammen. Og vi programmerer nu den arduino-lignende enhed ESP8266 til løbende at aflæse temperaturen fra termometeret DS18B20: Hvis den aflæste temperatur er større end en bestemt tærskeltemperatur, så skal lysdioden være tændt; hvis ikke, så skal lysdioden være slukket. Dvs vores input får vi gennem termometeret via pin #2 på 'breakoutboardet' for ESP8266, og vi sender vores output til (modstanden og) lysdioden via pin #5. Programmeringsproget til arduino ligner programmeringssproget C++.

arduino elektronik

ESP8266 er jo i virkeligheden en WiFi-enhed. Vi ændrer lidt i programmet:

Eksemplet er forholdsvis simpelt, men det demonstrerer styrken i den lille enhed.

Der er mange moduler og kredse, som kan anvendes af arduino, Raspberry Pi og tilsvarende. Jeg vil kort inddele disse produkter i kategorier:

Raspberry Pi og arduino-enheder kan indeholde en del af disse kommunikationsenheder (ethernet, bluetooth, WiFi), men ellers kan udstyr kobles til usb-porte eller til på input/output-portene. Kommunikation over WiFi eller lignende er er forudsætning for 'Internet of things' (IoT), hvor autonome enheder kan kommunikere efter behov.

Vi er således i en situation, hvor det er nemt at koble elektronik til arduino eller Raspberry Pi, og der er et stort udvalg i elektronik.

Jeg vil fremhæve 3 områder, hvor arduino og Raspberry Pi kan gøre en forskel:

Du er meget velkommen til at kontakte mig, hvis du har tanker om at anvende de små mikrocomputere i et projekt.