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
Waar voor je geld: vijf 27-inch monitoren met 240Hz verversingssnelheid
© ID.nl
Huis

Waar voor je geld: vijf 27-inch monitoren met 240Hz verversingssnelheid

Ben je op zoek naar een grote computermonitor met een hoge beeldverversingsfrequentie? Wij vonden vijf betaalbare modellen voor je op Kieskeurig.nl. Zulke monitoren zijn bij uitstek geschikt voor foto- en videobewerking maar komen goed van pas bij fanatiek gamen, want hoe lager de responstijd, des te soepeler het beeld is.

AOC C27G2ZE/BK

Als je op zoek bent naar een nieuwe - en gebogen - 27‑inch-monitor met 240 Hz verversingssnelheid, valt de AOC C27G2ZE/BK op door zijn combinatie van snelheid en schermgrootte. Dit gebogen scherm gebruikt een VA‑paneel, wat zorgt voor een hoog statisch contrast van 3000:1. De Full‑HD‑resolutie (1920 × 1080) maakt het mogelijk om met een gemiddeld computersysteem te spelen zonder dat de grafische belasting extreem wordt.

Dankzij een responstijd van 0,5 ms kun je snelle games spelen zonder merkbare vertraging. Het scherm heeft een 1500R‑kromming voor een natuurlijke kijkhoek. Voor synchronisatie met de grafische kaart is AMD FreeSync aanwezig, en de monitor beschikt over meerdere HDMI‑ en DisplayPort‑aansluitingen, zodat je eenvoudig verschillende apparaten kunt aansluiten.

Verder zijn er ingebouwde instellingen voor een kruisvormige richtlijn, verschillende beeldmodi en flikkervrije achtergrondverlichting. Je kunt het scherm kantelen voor een fijne kijkhoek, maar hoogte‑ of draaibaarheid is bij dit model niet mogelijk. Voor audio‑doorgave is er een 3,5 mm‑uitgang zodat je je hoofdtelefoon direct kunt aansluiten.

HP OMEN 27s

De HP OMEN 27s is een 27‑inch Full‑HD‑ gamingmonitor die zich richt op gamers die een hoge verversingssnelheid zoeken met een toegankelijk formaat. Het IPS‑paneel biedt een brede kijkhoek en geeft kleuren gelijkmatig weer. Met een resolutie van 1920 × 1080 pixels en een verversingssnelheid van 240 Hz kunnen beelden vloeiend worden weergegeven. Volgens de specificaties bedraagt de responstijd 1 ms, waardoor je snelle actie kunt volgen met minimale vertraging. Het scherm is compatibel met NVIDIA G‑SYNC om tearing te voorkomen. Je kunt de monitor kantelen en in hoogte verstellen, wat bijdraagt aan een ergonomische opstelling. Aan aansluitingen ontbreekt het niet: er zijn twee HDMI 2.0‑poorten, een DisplayPort 1.4 en een usb‑hub.

De ingebouwde RGB‑verlichting aan de achterkant kun je via software aanpassen om het uiterlijk van je werkplek aan te passen. Er zijn geen ingebouwde luidsprekers, maar er is wel een 3,5 mm‑aansluiting voor een hoofdtelefoon. Deze monitor is bedoeld voor gebruik vanaf 2023; het ontwerp gebruikt dunne randen zodat je hem eventueel naast een tweede scherm kunt zetten. Met zijn matte afwerking is reflectie beperkt, en de monitor is voorzien van flikkervrije techniek om vermoeide ogen te voorkomen.

Responstijden

Wanneer je een (gaming)monitor koopt, wordt er vaak gebruik gemaakt van afkortingen voor het weergeven van de responstijd van de pixels op het scherm. MPRT staat voor Motion Picture Response Time en geeft aan hoe lang een pixel zichtbaar blijft tijdens bewegend beeld. Deze waarde zegt vooral iets over de hoeveelheid bewegingsonscherpte die je ziet bij snelle bewegingen op het scherm. Hoe lager de MPRT, hoe scherper bewegende beelden ogen.

Fabrikanten verlagen de MPRT vaak met technieken zoals het kort uitschakelen van de achtergrondverlichting tussen beelden. MPRT is niet hetzelfde als de bekende GtG-responstijd: GtG meet hoe snel pixels van kleur veranderen, terwijl MPRT puur draait om zichtbare scherpte bij beweging.

Lenovo Y27f‑30

Met de Lenovo Y27f‑30 krijg je een 27‑inch monitor gericht op gamers en multimedia. Het IPS‑paneel combineert Full‑HD‑resolutie (1920 × 1080) met een verversingssnelheid van 240 Hz voor soepel beeld. De responstijd 0,5 is ms, zodat snelle acties zonder motion blur worden weergegeven. Het scherm ondersteunt HDR‑content en heeft een helderheid tot 400 nits, waardoor beelden dynamischer worden ervaren. Met een kleurdekking van 99 % sRGB en 1,07 miljard kleurtinten is het paneel geschikt voor gaming en lichte fotobewerking.

De monitor beschikt over twee HDMI 2.0‑poorten, een DisplayPort 1.4 en een usb‑hub. Er zijn geïntegreerde luidsprekers en een hoofdtelefoonaansluiting, zodat je zonder extra accessoires geluid kunt beluisteren. De hoogte‑ en kantelinstelling maken een ergonomische opstelling mogelijk, en via VESA‑montage kun je hem ook aan een arm bevestigen.

FreeSync‑Premium‑Pro‑ondersteuning helpt synchronisatieproblemen met AMD‑grafische kaarten te voorkomen. Een opvallende extra is dat het scherm volgens de specificaties overklokt kan worden tot 280 Hz, mocht je grafische kaart dat ondersteunen. Omdat de rand dun is, kun je meerdere schermen naast elkaar plaatsen voor een groter werkoppervlak.

Samsung 27 Odyssey OLED G8 G81SF

Voor wie een 240Hz‑verversingssnelheid combineert met hoge resolutie, heeft Samsung de Odyssey OLED G8 G81SF. Deze 27‑inch monitor gebruikt een QD‑OLED‑paneel en biedt een 4K‑resolutie van 3840 × 2160 pixels. Door de verversingssnelheid van 240 Hz en het OLED‑paneel krijg je een combinatie van scherpe pixels en vloeiend beeld.

De monitor is gecertificeerd voor DisplayHDR TrueBlack 400, wat inhoudt dat donkere tinten diep zwart zijn terwijl lichte delen helderder ogen. Het scherm heeft een antireflectiecoating, en Samsung gebruikt een “Dynamic Cooling System” om het OLED‑paneel op een constante temperatuur te houden. FreeSync Premium Pro is ingebouwd om haperingen te voorkomen. Qua aansluitingen is er één DisplayPort 1.4‑poort, een HDMI 2.1‑poort en een usb-c-aansluiting met 65 W‑voeding, zodat je een laptop kunt opladen terwijl je beeldscherm gebruikt.

De monitor ondersteunt CoreLighting+ aan de achterkant: door middel van een lichtstrip kun je de verlichting aanpassen aan de inhoud op je scherm. Je kunt het scherm in hoogte verstellen en kantelen; daarnaast is er een geïntegreerde standaard met kabelbeheer. Het OLED‑paneel heeft een dichtheid van 166 PPI voor scherpe tekst. Samsung levert ook een afstandsbediening zodat je toegang krijgt tot ingebouwde apps en streamingdiensten via Smart Hub.

ASUS ROG Swift PG27AQDM

De ASUS ROG Swift PG27AQDM is een 27‑inch gaming‑monitor met QHD‑resolutie (2560 × 1440 pixels) en een OLED‑paneel. Ondanks dat ASUS het scherm als 27 inch aanduidt, heeft het feitelijk een diagonaal van 26,5 inch, maar door de dunne rand valt dit nauwelijks op. Met een verversingssnelheid van 240Hz en een responstijd van 0,03 ms biedt dit model een van de snelste paneelreacties in zijn klasse.

Het OLED‑paneel kan diepe zwartwaarden produceren en volgens de specificaties geeft het 1,073 miljard kleuren weer. De monitor ondersteunt zowel NVIDIA G‑SYNC als AMD FreeSync, zodat je de weergave kunt synchroniseren met bijna elke moderne grafische kaart. Voor verbinding zijn er DisplayPort 1.4, twee HDMI‑poorten en een usb‑hub. Het scherm kan in hoogte worden versteld, gedraaid en gekanteld, en het is geschikt voor VESA‑montage.

Om inbranden te voorkomen gebruikt ASUS een speciale warmteafvoer en automatische helderheidsaanpassingen. De behuizing is voorzien van een rondom lopende RGB‑strip die je naar wens kunt instellen. Met een standaard die een handvat heeft, is het scherm gemakkelijk te verplaatsen. Het relatief hoge energiegebruik van een OLED‑gamingmonitor is aanwezig; er is echter een ECO‑modus. Deze monitor is vooral bedoeld voor veeleisende gamers of professionals die vloeiende bewegingen en hoge contrastwaarden zoeken.

▼ Volgende artikel
Wanneer komt Euro Truck Simulator 2 naar PlayStation 5?
© SCS Software
Huis

Wanneer komt Euro Truck Simulator 2 naar PlayStation 5?

Euro Truck Simulator 2 bestaat al sinds 2012, maar veertien jaar na dato lijkt het vrijwel zeker dat de game - net als nevengame American Truck Simulator - binnenkort ook op moderne consoles als de PlayStation 5 en Xbox Series X en S speelbaar wordt. Wat de releasedatum van beide games op PS5 en Xbox is, dat is de vraag.

De eerste indicatie dat Euro Truck Simulator 2 en American Truck Simulator naar de PlayStation 5 en moderne Xbox-consoles komt, verscheen vorig jaar, toen winkelpagina’s voor het spel op de respectievelijke platformen werden gevonden. Vlak daarna werd tijdens de Future Games Show tijdens Gamescom bevestigd dat het spel inderdaad onderweg is naar de platformen. 

Navigatieproblemen

Een half jaar later hebben we nog steeds geen indicatie van wanneer Euro Truck Simulator 2 op de consoles staat te verschijnen. Wel is direct aangekondigd dat ook American Truck Simulator naar de PS5 en Xbox Series-consoles komt. Daarbij biedt de Road To Consoles Dev Talk-video die ontwikkelaar SCS Software een paar maanden terug uitbracht ook inzicht in de productietijdlijn van de ports. Zo is onthuld dat er al vijf jaar wordt gewerkt aan de technologie die nodig is om de games draaiende te krijgen.

Watch on YouTube

Waarom duurt dat zo lang?

Zoals eerder al werd benoemd is Euro Truck Simulator 2 uitgebracht in 2012. De game werd niet met consoles in het achterhoofd ontwikkeld, en zeker niet voor apparaten die pas veertien jaar in de toekomst verschenen. Het herschrijven van de code, zodat die ook nog eens precies hetzelfde werkt op consoles en met nieuwe besturing, vergt dan ook veel tijd. 

Daarmee komen we ook bij de hamvraag: waarom port de ontwikkelaar een game uit 2012 überhaupt? Vooral omdat de game sindsdien nog altijd voorzien wordt van nieuwe content en updates. SCS Software onderhoudt en verbetert Euro Truck al jaren en brengt ook nog altijd dlc met nieuwe voertuigen, gebieden en customization-opties uit. Euro Truck Simulator 2 is dus wel de definitieve truck-simulatiegame te noemen, ondanks dat deze 14 jaar oud is. 

©SCS Software

Maar de manier waarop dlc in de game verwerkt is zorgt volgens Jakub Mráz - Console Producer bij SCS - voor complicaties tijdens het porten. Neem bijvoorbeeld de Scandinavië-dlc, die Denemarken, Noorwegen en Zweden aan het spel toevoegt. Dat toevoegen aan een game op consoles is een logistieke uitdaging waar de ontwikkelaar over na moet denken.

Ook de kwaliteitscontrole die de platformen vereisen, het uitdenken van een nieuwe marketingcampagne: alles heeft invloed op de release van het spel op de PlayStation 5 en Xbox Series-consoles.

Over Euro Truck Simulator 2

Het spreekt redelijk voor zich, maar Euro Truck Simulator 2 is dus een game die het rondkarren in een truck van duizenden kilo’s simuleert. Klinkt simpel, maar gaat dieper dan verwacht. Je rijdt rond door een wat kleinere versie van Europa - op een schaal van 19:1 - waar je met je truck goederen vervoert, om zo te sparen voor nieuwe trucks, upgrades, en customization-opties. Op het bezorgen van spullen zit ook een timer, en het is vanzelfsprekend dat de goederen in goede staat moeten verkeren bij aankomst. 

©SCS Software

Met genoeg vermogen wordt het uiteindelijk ook mogelijk om een netwerk aan bezorgers op te zetten en aan te sturen, en hoe meer opdrachten je voltooit, hoe meer delen van Europa open voor je gaan. In de afgelopen jaren heeft SCS Software veel landen, steden en dergelijke gebieden toegevoegd aan Euro Truck Simulator 2 middels betaalde dlc, en oude omgevingen gratis opgekrikt naar moderne kwaliteitsmaatstaven. 

Nederland in Euro Truck Simulator 2

Ook Nederland is inmiddels van een upgrade voorzien in de pc-versie van Euro Truck Simulator 2. Zo kunnen spelers Rotterdam, Amsterdam, de Europort, Groningen en Eindhoven bezoeken via verschillende wegen. Naast bijbehorende snelwegen is ook de Afsluitdijk en omgeving in beeld gebracht middels de update.