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: 5 gamingmuizen voor minder dan 120 euro
© ID.nl
Huis

Waar voor je geld: 5 gamingmuizen voor minder dan 120 euro

Ben je fanatiek gamer en doe je dat op een desktopcomputer of laptop? Dan mag een goede gamingmuis natuurlijk niet ontbreken. Wij vonden op Kieskeurig.nl goede gamingmuizen voor minder dan 100 euro.

Logitech G Pro X

Logitech G Pro X Superlight is een draadloze muis die communiceert via een meegeleverde 2.4 GHz USB-ontvanger met je Windows-computer. Binnenin bevindt zich een Hero 25K-sensor, waarmee je de gevoeligheid kunt instellen tot een maximum van 25.600 dpi. Je laadt de ingebouwde accu op via de meegeleverde micro-USB-kabel. Wanneer de batterij volledig is opgeladen, gebruik je het apparaat tot 70 uur onafgebroken voordat je deze weer op de stroom moet aansluiten. Het ontwerp weegt 63 gram en heeft een symmetrische vorm, al bevinden de twee duimknoppen zich uitsluitend aan de linkerkant.

In totaal heb je de beschikking over vijf programmeerbare knoppen: de linker- en rechtermuisknop, een klikbaar scrollwiel en de twee genoemde zijknoppen. Aan de onderkant van de behuizing zitten teflon-voetjes (PTFE) die contact maken met de ondergrond. Via de Logitech G Hub software op je pc pas je de instellingen van de DPI en de knoppen aan. De muis heeft een polling rate van 1000 Hz, wat betekent dat de positie duizend keer per seconde aan het systeem wordt doorgegeven.

Gewicht: 63 gram
Programmeerbare knoppen: 5
Sensor: 25.600 dpi

Razer DeathAdder V3

Razer DeathAdder V3 verbind je met je computer door middel van een vaste, gevlochten kabel met een USB-A-aansluiting. Deze muis heeft een asymmetrisch ontwerp dat specifiek is gevormd voor rechtshandig gebruik. Onder de linker- en rechtermuisknop zijn optische schakelaars geïnstalleerd die door middel van een lichtsignaal registreren wanneer je klikt. De interne Focus Pro 30K optische sensor ondersteunt resoluties tot maximaal 30.000 dpi.

Je bedient in totaal zes knoppen, waaronder een speciale knop aan de onderkant waarmee je schakelt tussen verschillende, vooraf ingestelde DPI-profielen zonder dat je de software hoeft te openen. Verder ondersteunt het model een maximale polling rate van 8000 Hz. Dit houdt in dat de muis vaker per seconde gegevens naar je Windows-pc stuurt dan standaardmodellen. Het gewicht van de behuizing bedraagt 59 gram. Om de functies van de knoppen toe te wijzen of macro's in te stellen, gebruik je de Razer Synapse 3-software. Je slaat deze instellingen vervolgens direct op in het ingebouwde geheugen van het invoerapparaat, zodat ze behouden blijven als je hem op een ander systeem aansluit.

Gewicht: 59 gram
Programmeerbare knoppen: 6
Sensor: 30.000 dpi

SteelSeries Rival 5

SteelSeries Rival 5 beschikt over negen afzonderlijk programmeerbare knoppen. Aan de linkerzijde van de behuizing vind je naast de reguliere knoppen ook een tuimelschakelaar die je zowel omhoog als omlaag kunt bewegen, plus een extra knop aan de voorkant van het duimgedeelte. Het apparaat is ontworpen voor rechtshandigen en weegt 85 gram. De registratie van je bewegingen gebeurt via een TrueMove Air optische sensor.

Deze sensor heeft een maximaal bereik van 18.000 dpi en een registratiesnelheid van 400 IPS. Je sluit het apparaat aan op een vrije USB-poort van je Windows-systeem via de vaste, met microvezel beklede kabel. De behuizing bevat tien verlichtingszones die onafhankelijk van elkaar in te stellen zijn via de SteelSeries GG-software. In deze applicatie pas je ook de CPI-waarden en de toewijzing van de negen knoppen aan. De hoofdschakelaars onder de muisknoppen zijn ontworpen met een IP54-certificering, wat inhoudt dat ze afgeschermd zijn tegen de invoer van stof en opspattend water. Er zijn grote glijders van PTFE op de onderkant gemonteerd voor de verplaatsing over een muismat.

Gewicht: 85 gram
Programmeerbare knoppen: 9
Sensor: 18.000 dpi

Corsair M65 RGB Ultra

Corsair M65 RGB Ultra is opgebouwd rondom een frame van geanodiseerd aluminium. Aan de onderkant van dit frame bevinden zich drie uitsparingen waar je meegeleverde gewichtjes in kunt plaatsen. Hiermee verander je het standaardgewicht van 97 gram naar maximaal 115 gram en pas je het zwaartepunt van het apparaat aan. Een opvallend kenmerk aan de linkerzijkant is de zogeheten 'sniper-knop'. Wanneer je deze ingedrukt houdt, verlaagt de muis tijdelijk de DPI-waarde, wat de cursorbeweging in Windows vertraagt.

In totaal zijn er acht programmeerbare knoppen aanwezig. De optische Marksman-sensor registreert bewegingen tot een instelbaar maximum van 26.000 dpi. De verbinding verloopt via een vaste USB-kabel en het apparaat maakt gebruik van AXON-technologie. Deze technologie maakt een polling rate tot 8000 Hz mogelijk. Binnenin is een zes-assige gyroscoop en versnellingsmeter ingebouwd. Met deze sensoren meet het apparaat de fysieke kanteling, waardoor je via de iCUE-software acties kunt koppelen aan het optillen of scheefhouden van de muis.

Gewicht: 97 gram / aanpasbaar tot 115 gram
Programmeerbare knoppen: 8
Sensor: 26.000 dpi

Glorious Model O 2 Wired

Glorious Model O 2 Wired heeft een gesloten voorkant, maar is op de handpalmsteun en de onderzijde voorzien van uitsparingen in een honingraatpatroon. Door deze fysieke structuur te gebruiken, is het totale gewicht van de behuizing op 59 gram gehouden. Aan de voorzijde bevindt zich een vaste, flexibele kabel met een standaard USB-A-stekker voor in je pc. Het apparaat maakt gebruik van een BAMF 2.0 optische sensor. Je past de resolutie van deze sensor handmatig aan tot een bovengrens van 26.000 dpi, waarbij snelheden tot 650 IPS worden geregistreerd.

De linker- en rechtermuisknop zijn voorzien van mechanische schakelaars. Bovenop de muis, direct achter het scrollwiel, bevindt zich een knop waarmee je stapsgewijs de DPI-waarde wijzigt. De actuele stand lees je af aan een indicator aan de onderkant. Via de Glorious Core-software pas je in Windows zaken aan zoals de 'lift-off distance', de polling rate (tot 1000 Hz) en de reactietijd van de knoppen. Er zijn in totaal zes knoppen in de behuizing verwerkt.

Gewicht: 59 gram
Programmeerbare knoppen: 6
Sensor: 26.000 dpi

▼ Volgende artikel
Microsoft Gaming-baas Phil Spencer en Xbox-president Sarah Bond vertrekken
Huis

Microsoft Gaming-baas Phil Spencer en Xbox-president Sarah Bond vertrekken

Microsoft Gaming-ceo Phil Spencer en Xbox-directeur Sarah Bond vertrekken bij het Amerikaanse bedrijf.

Dat hebben verschillende media vernomen, en Spencer zelf heeft het inmiddels ook bevestigd via social media. Daarbij publiceerde IGN ook interne e-mails van Microsoft's ceo Satya Nadella, de te vertrekken Spencer en de nieuwe Microsoft Gaming-ceo Asha Sharma en Matt Booty.

Naar verwachting vertrekt Spencer, die bijna veertig jaar bij Microsoft werkzaam was, aanstaande maandag. Xbox-president Sarah Bond - waarvan voorheen werd gedacht dat ze Spencer uiteindelijk zou vervangen - gaat ook weg. Asha Sharma is op dit moment nog de president van Microsofts CoreAI en gaat dus Microsoft Gaming bestieren. Matt Booty, het hoofd van Xbox Game Studios, wordt gepromoot naar chief content officer en zal nauw samenwerken met Sharma.

"Afgelopen najaar deelde ik met Satya dat ik nadacht over mijn vertrek en het beginnen aan het volgende hoofdstuk van mijn leven", zo stelt Spencer in zijn e-mail. "Vanaf dat moment gingen we aan de slag met onze aanpak, met het oog op het behoud van stabiliteit en het versterken van de fundering die we hebben gebouwd. Xbox is altijd meer dan een bedrijf geweest. Het is een levendige gemeenschap bestaande uit spelers, makers en teams die erg veel geven om wat we bouwen en hoe we dat doen. Het verdient een goed doordacht plan voor de toekomst."

"Ik wil Phil bedanken voor zijn uitzonderlijke leiderschap en samenwerking", aldus Nadella in zijn e-mail naar werknemers. "In meer dan 38 jaar bij Microsoft, waaronder 12 jaar aan het hoofd van de gamedivisie, heeft Phil geholpen met het transformeren van wat we doen en hoe we dat doen."

View post on X

De nieuwe Microsoft Gaming-ceo aan het woord

Sharma, de nieuwe ceo van Microsoft Gaming, meldt in haar e-mail: "Mijn eerste taak is simpel: begrijpen hoe dit werkt en het vervolgens beschermen. Dat begint bij drie verplichtingen. Ten eerste geweldige games - daar begint alles mee. We moeten geweldige games hebben die door onze spelers geliefd worden." Vervolgens vertelt Sharma over het belang van onvergetelijke personages, de macht geven aan ontwikkelstudio's en iconische franchises.

"Ten tweede: de terugkeer van Xbox. We verbinden ons opnieuw aan onze trouwe Xbox-fans en -spelers, die de afgelopen 25 jaar in ons hebben geïnvesteerd, en de ontwikkelaars waar we de uitgebreide universa en ervaringen die onze spelers wereldwijd omarmen mee hebben gebouwd. We zullen onze afkomst eren met een vernieuwde inzet voor Xbox, te beginnen bij de console, die heeft gevormd wie we zijn." Sharma benadrukt daarbij dat games tegenwoordig op meerdere apparaten te vinden zijn, en spreekt uit dat Microsoft zich niet wil limiteren aan één apparaat. "Terwijl we uitbreiden op pc, mobiel en cloud, moet Xbox naadloos, onmiddellijk en waardig voor de gemeenschappen die we serveren voelen."

Het derde punt van Sharma is "de toekomst van spelen. We nemen de heruitvinding van spelen waar. Daarom zullen we investeren in nieuwe zakenmodellen en nieuwe manieren om te spelen door gebruik te maken van wat we al hebben: iconische teams, personages en werelden waar mensen van houden. Maar we zullen die werelden niet behandelen als statische IP om uit te melken en geld uit te onttrekken. We bouwen een gedeeld platform en gereedschappen die ontwikkelaars en spelers de macht geven om hun eigen verhalen te creëren en delen."

Over Spencer en de staat van Xbox

Phil Spencer werd in 2014 hoofd van Xbox, toen hij de opdracht had Xbox One van een gebrekkige release het jaar ervoor te redden. Tijdens die consolegeneratie werd onder andere het populaire Xbox Game Pass gelanceerd. Dankzij onder andere die service en zijn veelvuldige interviews werd hij al snel populair onder gamers.

Na de Xbox Series X en S-release in 2020 begon de mening over Spencer om te slaan, vooral gevoed door de veranderingen rondom Xbox als merk. Sinds enkele jaren komen de spellen van Xbox-ontwikkelaar zelfs vaak ook op andere platforms uit - bijvoorbeeld op PlayStation 5 en Nintendo Switch. Tegelijkertijd loopt de verkoop van de huidige Xbox Series X en S-consoles flink terug. Spencer zelf verscheen de afgelopen jaren steeds minder vaak in interviews, en ook de vele ontslagrondes en studiosluitingen binnen de Xbox-divisie zorgden voor reputatieschade.

Tegelijkertijd werden onder Spencers leiding grote aankopen als Bethesda en Activision Blizzard gedaan, bekend van gamefranchises als The Elder Scrolls, Fallout en Call of Duty.

Microsoft heeft eerder laten weten aan een nieuwe console te werken, die de grenzen tussen consoles en pc moet vervagen. Voor zover bekend wordt dit een apparaat die in feite pc-games af gaat spelen, alsmede Xbox-games, en waarop verschillende digitale pc-winkels bereikbaar zullen zijn - en dus niet alleen die van Microsoft zelf.

Het vertrek van twee belangrijke kopstukken binnen Microsofts gamedivisie is opvallend, zeker in combinatie met het feit dat de gametak van het bedrijf schijnbaar in een transitieperiode zit. Ook het feit dat de nieuwe ceo van Microsoft Gaming van CoreAI afkomt, houdt de gemoederen onder gamers bezig. Microsoft zet groots in op kunstmatige intelligentie, maar onder gamers heerst vooral onvrede over de invloed die AI tegenwoordig heeft op hun hobby. Sharma benadrukte in haar interne e-mail echter dat Xbox zich niet gaat richten op "zielloze AI-slop".