Udvikling til arduino og Raspberry Pi

I de sidste år er nogle små og billige mikrocomputere blevet meget populære, da de udmærker sig til 'indlejrede' elektronikprojekter (Jeg anvender typisk ordet 'mikrocomputer' fremfor 'mikrocontroller' i denne fremstilling).

Raspberry Pi er et eksempel på dette. Det er faktisk en ret slagkraftig mikrocomputer med 1 Gbytes RAM, en 4-kernet processor, ethernet, SD-kort, 4 usb-porte og hdmi. Denne mikrocomputer kan anvendes som lille server (webserver, database-server, ...) og som traditionel computer til email og internet-surfing, men det er ikke dette som gør den interessant. Det interessante er, at den har en række GPIO (General-purpose input/output), som man kan koble til eletronikkomponenter. Her taler vi om modstande, lysdioder, transistorer, integrerede kredse,... Raspberry Pi er den mest solgte britiske computer. 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, som dog har eksisteret i en lang årrække efterhånden. Arduino har en række modeller, og modellerne indeholder altid en simpel microcontroller, og kan være suppleret med en klassisk processor, 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 microcontroller og en arm-processor (samt SD-kort og WiFi), mens arduino UNO kun har en simpel microcontroller. 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.

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 lavet mange produkter, som kan anvendes af arduino og kompatible (for eksempel førnævnte ESP8266), 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. Og både arduino, Raspberry Pi og elektronikken er småt og billigt. Der er endda arduino-lignende mikrocomputere til Wearables, som kan sys ind i tøj, tasker og lignende - de er meget små.

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.

Et lille kompendium over almindelige sensorer

En del af disse sensorer er raffinerede elektroniske kredsløb, som kommunikerer digitalt med mikrocomputeren via protokoller (onewire, I2C, SPI). Og andre af sensorerne er simple analoge enheder, som i princippet blot er en variabel modstand. For at kunne anvende sensorerne på mikrocomputeren skal man forbinde mikrocomputeren og sensorerne via ledninger. Ofte skal man danne et lille kredsløb (ofte kun modstande, men måske transistorer, integrerede kredse,...) for at få tingene til at virke.

Her er en liste over nogle klassiske leverandører af elektronik, som typisk anvendes i forbindelse med arduino og Raspberry Pi:

Meterologiske sensorer

Måling af temperatur, fugtighed, atmosfærisk tryk, vindhastighed, vindretning og nedbør.

Disse 'meterologiske' sensorer dækker også andre områder. Det kunne være måling af temperatur i en fryser, måling af retningsbestemt varmestråling, jordfugtighed og vandhøjder.

Afstandsmåling
Via infrarødt lys eller ultralyd kan afstande til objekter beregnes (kan anvendes af en kørende robot, som anvender en ultralyd sonar til at navigere rundt).
Bevægelse-sensorer

Her har vi accelerometere, gyroscoper, kompasser og billige tilt sensorer (simple fysiske kontakter).

Lys-sensorer

Her kan vi have meget simple lysfølere, som reagerer ved lys inden for det synlige område. Der kan også være tale om ultraviolet lys eller nær-infrarøde (infrarød tæt på det synlige område) og infrarød varmestråling (langt fra det synlige område). Det kan være kommunikationslinjer via infrarød lys (fjernbetjening) eller laserlys (bryd strålen og alarmen går), optisk støvsensorer og reflektionssensorer. Og kameraer, hvor vi kan behandle billederne (genkendelse af nummerplader) via en mikrocomputer.

Gas-sensorer

Der eksisterer en række sensorer til specifikke gasser. Det kan være kulmonoxid, alkohol, metan, propan, butan, hydrogen, ozon - se MQ.

Lokation

Primært GPS.

Lyd-sensorer

Mikrofon og vibration.

Væsker
pH-værdimålere og målere af væske-flow.
Skannere
Diverse