ID.nl logo
Huis

Arduino programmeren met Arduino IDE: De basis

Een Arduino-bordje doet niets als er geen software op draait. In deze workshop zetten we de Arduino IDE-ontwikkelomgeving op, schrijven we wat code en uploaden we die naar het bordje zodat het een led doet knipperen. Dit zijn de basics van het Arduino programmeren.

De makers van Arduino produceren niet alleen de microcontrollerbordjes, maar ook de ontwikkelsoftware om er je eigen code op te draaien: de Arduino IDE. Die bestaat zowel voor Windows, Linux als macOS. Download de nieuwste versie (op het moment van schrijven was dat versie 1.8.8).

Voor Windows heb je de keuze tussen een exe- en een zip-bestand. De eerste is gemakkelijker, omdat dit een installatieprogramma is dat onmiddellijk ook de juiste driver voor de usb-verbinding met je Arduino installeert. De standaardinstellingen van het installatieprogramma zijn oké.

Arduino-schetsen

Een schets of ‘sketch’ is de naam die Arduino geeft aan een programma. Elke Arduino-schets bestaat uit twee functies: setup en loop. In die eerste zet je de code die je Arduino-bordje één keer dient uit te voeren, vlak nadat de microcontroller opgestart of gereset is. Daarna wordt de functie loop continu herhaald. De code die je in deze functie zet, draait dus zolang je Arduino ingeschakeld is, telkens opnieuw.

De Arduino IDE komt standaard al met talloze voorbeeldschetsen. Klik in het menu Bestand op Voorbeelden en kies dan in de categorie 01.Basics voor Blink. De code begint met een groot blok tekst tussen regels die beginnen met /* respectievelijk */. Daarmee geef je aan dat de tekst hiertussen commentaar is: de Arduino IDE negeert dit, zodat je hier zelf uitleg voor anderen kunt typen. De makers van de voorbeeldschets leggen hier uit wat de schets doet en verwijzen naar een webpagina met meer informatie. Het is aan te raden om je eigen Arduino-schetsen ook te beginnen met zo’n blok commentaar.

Daarna komen de twee verplichte Arduino-functies, setup en loop. We zien hier ook regels die beginnen met // en we zien ook in het midden van regels // met een tekst erachter. Dit is een tweede manier om commentaar in een Arduino-schets op te nemen: de Arduino IDE negeert alles vanaf // tot het einde van de regel.

Het is niet de bedoeling dat je in je eigen schetsen bij élke regel code commentaar zet zoals in dit voorbeeld, maar maak er wel een gewoonte van om wat complexere regels code van commentaar en uitleg te voorzien, zodat je ze nog begrijpt als je de code over enkele maanden opnieuw bekijkt.

©PXimport

Setup en loop

Laten we even naar de code van het voorbeeld Blink kijken. In de functie setup is er maar één regel code nodig:

pinMode(LED_BUILTIN, OUTPUT);

Hiermee stellen we de digitale pin met de naam LED_BUILTIN in als uitvoerpin, zodat we er later in de code een 0 of 1 naar kunnen schrijven. De naam LED_BUILTIN verwijst op alle Arduino-bordjes naar de ingebouwde led op het printplaatje, meestal pin 13. Door de voorgedefinieerde naam LED_BUILTIN te gebruiken, hoef je je code niet aan te passen als je ze op een ander bordje wilt draaien waar de ingebouwde led een ander pinnummer heeft.

In de functie loop willen we de ingebouwde led doen knipperen. Eerst schrijven we HIGH naar de juiste digitale pin:

digitalWrite(LED_BUILTIN, HIGH);

Omdat het om een digitale pin gaat, kunnen we twee mogelijke waardes naar de pin schrijven: HIGH (overeenkomend met 1) of LOW (overeenkomend met 0). Waarom heet de waarde hier HIGH en niet 1? Omdat dit de spanning is die op de pin gezet wordt: hoog. Je vindt de spanning van jouw Arduino-bordje in deze tabel met de specificaties in het begin van de kolom Operating/Input Voltage. Als jouw Arduino-bordje op 5 V werkt, komt HIGH hier overeen met een spanning van 5 V. Het gevolg? Er vloeit stroom door de ingebouwde led, die begint te branden.

Daarna wachten we een seconde met:

delay(1000);

De 1000 staat voor 1000 milliseconden. In de volgende regel schrijven we LOW naar de digitale pin. Dat komt overeen met een spanning van 0 V. Daardoor vloeit er geen stroom door de ingebouwde led, die daarop uitdooft. Daarna wachten we weer een seconde. We komen nu aan het einde van de functie loop, die daarna weer herhaald wordt: het knipperen begint weer van voren af aan. En op deze manier blijft de ingebouwde led continu knipperen tot de Arduino geen stroom meer krijgt.

Code uploaden

We hebben nu uitgelegd hoe de code werkt uit het voorbeeld Blink, maar je hebt de led nog niet zien knipperen. De code moet eerst geüpload worden naar de Arduino om hem te laten werken. De instructies om met een Arduino-bordje aan de slag te gaan hangen af van het type bordje. Ga via deze link naar de pagina Getting Started with Arduino and Genuino products en klik met rechts op de link die bij je bordje hoort. We tonen in deze workshop hoe dit verloopt met de Arduino Nano, omdat we dit door zijn kleine afmetingen een handig bordje vinden voor heel wat toepassingen.

©PXimport

Steek de ene kant van de mini-usb-naar-usb-kabel in de mini-usb-connector op je Arduino Nano. Sluit de andere kant aan op een usb-poort van je pc. Klik in het menu Hulpmiddelen van Arduino IDE op Board en selecteer in het lange submenu dat verschijnt Arduino Nano. Controleer of er bij Poort een seriële poort vermeld staat, zoals COM1 op Windows of /dev/ttyUSB0 op Linux. Als alles correct lijkt, klik dan linksboven op het knopje met het pijltje naar rechts.

Arduino IDE compileert nu je schets naar machinecode voor de microcontroller en uploadt je code naar het bordje. De voortgang krijg je in het zwarte tekstveld onderaan te zien. Als alles goed gaat (en je dus geen foutmeldingen in rode letters te zien krijgt in het tekstveld onderaan), begint de ingebouwde led van je Arduino te knipperen. Dat werkt ook als je naderhand je Arduino rechtstreeks van een voedingsadapter van stroom voorziet: de code blijft opgeslagen tot je die met een nieuwe schets overschrijft.

▼ Volgende artikel
Sony Bravia Theatre U: nekbandspeaker die samen tv-kijken prettiger maakt
© Sony
Huis

Sony Bravia Theatre U: nekbandspeaker die samen tv-kijken prettiger maakt

Samen tv-kijken terwijl één van de twee wat slechter hoort? Dat leidt vaak tot gedoe over het volume. Wat voor de één te zacht is, is voor de ander te hard. Moet een van de twee dan maar een koptelefoon op? Da's ook weer zo ongezellig. Met de Bravia Theatre U wil Sony dat probleem verhelpen. Deze draadloze nekbandspeaker stuurt het tv-geluid direct naar de oren, terwijl omgevingsgeluiden hoorbaar blijven.

De Bravia Theatre U (adviesprijs 284 euro) rust losjes op de schouders en richt het geluid direct op de oren. Zo klinken stemmen en muziek helder, terwijl de drager gewoon hoort wat er om hem heen gebeurt. Tijdens het tv-kijken blijven dialogen goed verstaanbaar, ook als het volume voor de rest van het gezin op normaal niveau staat – geen discussie meer over standje 'burenruzie'. Tv-kijken, bellen of luisteren naar een podcast kan zo comfortabel, zonder dat anderen daar last van hebben.

©Sony

De speaker is voorzien van Voice Clarity-technologie, die stemmen extra duidelijk weergeeft. Dankzij de lage vertraging tussen beeld en geluid blijft alles synchroon, wat prettig is bij films en games. De Bravia Theatre U is licht, spatwaterbestendig (IPX4) en geschikt voor gebruik met hoortoestellen. De accu is via USB-C snel op te laden en schakelt automatisch uit wanneer de speaker niet wordt gebruikt.

Via bluetooth kan de nekband aan meerdere apparaten tegelijk worden gekoppeld, bijvoorbeeld aan een tv en smartphone. Met de 360 Spatial Sound Personalizer is het geluid verder aan te passen aan persoonlijke voorkeuren.

©Sony


Wat is een nekbandspeaker?

Een nekbandspeaker is een lichte luidspreker die om de schouders rust. Het geluid wordt richting de oren gestuurd, zodat de drager helder geluid hoort zonder afgesloten te zijn van de omgeving. Dat maakt het een alternatief voor koptelefoons, vooral voor wie moeite heeft met verstaanbaarheid of comfort.


▼ Volgende artikel
Sideloading: shoppen buiten de officiële app-winkels
Huis

Sideloading: shoppen buiten de officiële app-winkels

Wanneer je een app installeert op je Android- of iOS-apparaat, doe je dat meestal via de officiële appwinkels Google Play of App Store. Dat is prima, maar je kunt apps ook op andere plekken downloaden en (handmatig) installeren. Dit wordt ‘sideloading’ genoemd. Waarom zou je dat doen en hoe doe je dat?

In dit artikel lees je:
  • Waarom je apps normaal gesproken via de officiële winkels installeert

  • Wanneer en waarom je toch alternatieve apps kiest

  • Hoe sideloading werkt op Android, inclusief apk’s en bundels

  • Welke alternatieve winkels en bibliotheken er zijn

  • Welke veiligheidsmaatregelen je kunt nemen

  • Hoe sideloading sinds de DMA ook op iOS mogelijk is

  • Welke voorwaarden en stappen daarbij horen

De belangrijkste redenen om apps via de officiële webwinkels van Android (Google Play) of Apple (App Store) te installeren zijn het ruime aanbod, makkelijke installatie, hogere veiligheidsnormen, regelmatige updates, stabiele werking en automatische back-ups en herstel. Toch zijn er ook redenen om elders te kijken, los van eventuele principiële overwegingen.

Zo kan een app niet beschikbaar zijn in je regio, of zoek je een specifieke versie die daar niet meer wordt aangeboden. Het kan ook gaan om een app die door Apple of Google wordt geweigerd, of om een testversie, opensource-app of een app die voorlopig enkel buiten het commerciële aanbod bestaat. Een voorbeeld van deze laatste is de Android-app Fiets of Niets. Deze hebben we zelf gebouwd met AI-tools en kun je als apk-bestand (Android PacKage) downloaden via www.kwikr.nl/fietsofniets (pak het zip-bestand uit). Deze app geeft je een zevendaagse weersvoorspelling op elke locatie, met temperatuur, zonne-uren, windkracht en regenkans. Je kunt zelf instellen welke onderdelen je het belangrijkst vindt.

We vertellen hieronder hoe je alternatieve apps installeert in Android. Daarna leggen we uit hoe je dit op iOS doet. Je doet dit natuurlijk wel op eigen risico.

Fiets of niets: een voorbeeld van een app die alleen als apk-bestand beschikbaar is.

Android:

Alternatieve appwinkels

Bij de app Fiets of Niets bijvoorbeeld moet je dus zelf het appbestand te downloaden en te installeren, maar er zijn ook alternatieve appwinkels waarin dit proces geautomatiseerd verloopt. Populaire voorbeelden zijn F-Droid (beperkt aanbod, enkel opensource-apps), Aurora Store (een spiegel van de Play Store, Google-account niet vereist) en Aptoide (gedecentraliseerde appstore met wisselende betrouwbaarheid per winkel). Aangezien deze winkels niet in de Play Store staan, moet je ze eerst handmatig downloaden en installeren via hun websites.

Daarnaast bestaan er ook appstores die veel weg hebben van appbibliotheken, zoals APKMirror, APKPure en Uptodown. Hieruit kun je apps selecteren en afzonderlijk downloaden. Elk van deze aanbieders biedt trouwens ook een eigen app aan, respectievelijk APKMirror Installer, APKPure App en APK Installer by Uptodown, die het installatieproces, en vaak ook het updateproces, van apps vereenvoudigen. Zulke installer-apps zijn trouwens noodzakelijk voor het installeren van zogeheten Android-app Bundels, zoals apkm (van APKMirror), xapk (apk met eXtra bestanden en data; vaak bij APKPure) en apks (het officiële Bundle-formaat met alle nodige 'Splits'). Deze installer-apps zijn (ook) beschikbaar in de officiële Google Play Store.


Apkpure: ergens tussen app-bibliotheek en -store.

Handmatige installatie

We tonen eerst hoe je handmatig een apk-bestand downloadt en installeert. We doen dit met de app Uptodown App Store, al had dit bijvoorbeeld net zo goed het apk-bestand van Fiets of Niets kunnen zijn.

Surf op je smartphone naar https://en.uptodown.com en zoek de gewenste app op. Tik op de groene downloadknop. Je krijgt waarschijnlijk een standaardmelding dat het bestand mogelijk schadelijk is. Als je zeker bent dat het om bonafide software gaat (zie ook verder), tik je op Toch downloaden.

Het apk-bestand staat nu in de map Downloads. Deze kun je ook benaderen vanuit je browser door op de drie puntjes te tikken en Downloads te kiezen. Tik vervolgens op het gedownloade bestand. Vraagt Android met welke app je dit wilt openen, kies dan Pakket-installatie.

De kans is groot dat er een melding verschijnt dat je toestel geen toestemming geeft om apps van deze bron (je browser) te installeren. Tik hier dan op Instellingen en zet de schuifknop bij Machtiging toestaan op Aan. Bevestig vervolgens met Installeren. Even later is de installatie klaar en kun je de app openen.

Bij het downloaden van een uitvoerbaar bestand moet je altijd alert zijn.

Android-app Bundle

Apk-bestanden kun je dus vrij eenvoudig handmatig installeren via het ingebouwde pakketbeheer. Voor gebundelde apps heb je meestal een gespecialiseerdere installer nodig. We nemen de game Worms Zone (Hungry Snake) op de site van APKMirror als voorbeeld. Tik op de app, kies Scroll to available downloads, selecteer een download en tik op Download APK Bundle. Open daarna de downloadsectie van je browser om te controleren of het APKM-bestand gedownload is.

Om dit te installeren, kies je een van de eerder genoemde installers. We nemen hier APK Installer by Uptodown als voorbeeld. Na installatie geef je de gevraagde machtigingen, open je de app en tik je op Install Apps. De installer doorzoekt nu je Downloads-map en vindt alle apk-gerelateerde bestanden, waaronder het gedownloade apkm-bestand van Worms Zone. Tik op Install bij dit bestand en bevestig met Installeren. Even later kun je de app openen.

Uptodowns APK Installer kan ook met apkm-bestanden overweg.

Veiligheidsmaatregelen

Aan sideloading hangt altijd een zeker risico, maar dat kun je sterk beperken door enkele zaken goed op te volgen. Controleer eerst hoe betrouwbaar de ontwikkelaar en de alternatieve bron zijn. Ga na of de bron bekend is en positief besproken wordt op Android-fora en of ze transparant is over updates en changelogs. Laat het apk-bestand, indien mogelijk, eerst scannen door een gratis online virusscanner als VirusTotal (www.virustotal.com) of gebruik de app VirusTotal Mobile (beschikbaar in de Play Store). Vergelijk ook online app-screenshots, neem een aantal recensies en gebruikerservaringen door, en ga het aantal downloads van de app na.

Zorg dat geïnstalleerde apps up-to-date blijven en controleer of updates extra machtigingen vragen. Dit kun je ook na installatie nagaan via Instellingen / Apps. Tik op Alle [n] apps zien, scrol naar de app, tik erop en kies Rechten. Hier kun je machtigingen eventueel ook intrekken of opnieuw toestaan.

Je kunt instellen dat Google Play Protect ook gesideloade apps controleert. Open de Play Store, tik rechtsboven op je profielicoon, kies Play Protect en tik op het tandwiel. Schakel Apps scannen met Play Protect in en eventueel ook Detectie van schadelijke apps verbeteren.

Wil je na het downloaden voorkomen dat een bepaalde bron, zoals je browser, nog apk-bestanden mag installeren, ga dan naar Instellingen / Apps / Speciale app-toegang / Onbekende apps installeren, selecteer de bron (bijvoorbeeld Chrome) en schakel Toestaan van deze bron weer uit.

Tot slot, vertrouw je een geïnstalleerde app niet helemaal of heb je deze niet langer nodig, verwijder deze dan van je toestel.

De app Virustotal Mobile haalt geïnstalleerde apps door tientallen virusscanners.

iOS:

DMA

Terwijl sideloading op Android altijd al mogelijk was, heeft Apple zich daar lang tegen verzet. Officieel om veiligheidsredenen, maar ook om de eigen inkomsten via de App Store (30 procent commissie) te beschermen. Sinds maart 2024 staat Apple onder druk van de EU en de Digital Markets Act (DMA) beperkte vormen van sideloading toe. In de EU kun je nu apps installeren via alternatieve appwinkels (vanaf iOS 17.4) of eventueel rechtstreeks vanaf een website (vanaf iOS 17.5), hoewel er via deze laatste methode nauwelijks apps beschikbaar zijn (wegens de strenge voorwaarden van Apple).

Apple eist dat alternatieve apps 'genotariseerd' zijn, wat betekent dat ze vooraf zijn gescreend op veiligheid (zie ook via www.kwikr.nl/macveilig). Als gebruiker moet je ook expliciet toestemming geven voor de ontwikkelaar. We tonen hieronder hoe je dat doet. Let wel: alternatieve apps ondersteunen wellicht geen functies als 'Vraag om te kopen' of 'Delen met gezin'.

Onder druk van de DMA: ook apps buiten de officiële App Store om.

Controle

Om er zeker van te zijn dat je iPhone aan alle voorwaarden voldoet, controleer je eerst het versienummer. Open Instellingen, ga naar Algemeen / Info en kijk of je iOS-versie 17.4.x (voor alternatieve appwinkels) of 17.5.x (voor webdistributie) of hoger gebruikt (afbeelding 7). Voer indien nodig een software-update uit.

Aangezien sideloading alleen binnen de EU mogelijk is, open je ook Privacy en beveiliging / Locatievoorzieningen / Systeemvoorzieningen en schakel je iPhone-analyse en Deel mijn locatie in.

iOS-versie 18.4.1: dat zit goed.

Alternatieve appwinkel

Alles is nu klaar om een alternatieve appwinkel te installeren. Open Safari en surf naar een erkende winkel, zoals AltStore PAL, Setapp Mobile of Epic Games Store.

We nemen AltStore PAL als voorbeeld. Op de site tik je op Get AltStore en daarna twee keer op Download. Er verschijnt waarschijnlijk een melding, tik dan op OK. Ga vervolgens naar Instellingen, tik bovenaan op de melding Sta de apps van AltStore, LLC toe en bevestig met Toestaan. Ga daarna terug naar de webpagina en tik opnieuw op Download, gevolgd door Installeer appmarktplaats en bevestig met je Face ID of Apple-code. Open de nieuwe app AltStore. Tik hier bijvoorbeeld op Browse, kies een gratis app, tik op Free en bevestig met Install <appnaam> en daarna met Installeer app. Je kunt de app nu starten.

Installatie met een link via webdistributie verloopt op vergelijkbare wijze: tik op de downloadlink, keur de ontwikkelaar goed vanuit (het bericht in de) Instellingen en tik nogmaals op de link.


Je moet wel even bevestigen dat je deze alternatieve appstore vertrouwt.