Articles

Alles wat je moet weten over Arduino CodeBlog Postcircuito teamMarch 11, 2018

Sinds de lancering van het Arduino open-source platform, heeft het merk zich gevestigd in het centrum van een expansieve open-source gemeenschap. Het Arduino-ecosysteem bestaat uit een diverse combinatie van hardware en software. De veelzijdigheid van Arduino en zijn eenvoudige interface maakt het een toonaangevende keuze voor een breed scala van gebruikers over de hele wereld, van hobbyisten, ontwerpers en kunstenaars tot product prototypes.

Het Arduino-bord wordt via USB op een computer aangesloten, waar het verbinding maakt met de Arduino-ontwikkelomgeving (IDE). De gebruiker schrijft de Arduino code in de IDE, dan uploadt het naar de microcontroller die de code uitvoert, interactie met inputs en outputs zoals sensoren, motoren, en lichten.

Beginners en experts hebben toegang tot een schat aan gratis middelen en materialen om hen te ondersteunen. Gebruikers kunnen informatie opzoeken over hoe ze hun board moeten instellen of zelfs hoe ze moeten coderen op Arduino. De open source achter Arduino heeft het bijzonder vriendelijk gemaakt voor nieuwe en ervaren gebruikers. Er zijn duizenden Arduino-codevoorbeelden online beschikbaar. In deze post nemen we je mee door enkele basisprincipes van coderen voor Arduino.

Plan je volgende Arduino-project >>

Arduino codeeromgeving en basistools

Welke taal is Arduino?

Arduino code is geschreven in C++ met een toevoeging van speciale methoden en functies, die we later zullen noemen. C++ is een door mensen leesbare programmeertaal. Wanneer u een ‘sketch’ maakt (de naam die aan Arduino-codebestanden wordt gegeven), wordt deze verwerkt en gecompileerd naar machinetaal.

Arduino IDE

De Arduino Integrated Development Environment (IDE) is het belangrijkste tekstbewerkingsprogramma dat wordt gebruikt voor Arduino-programmering. Het is waar u uw code zult typen alvorens het te uploaden naar het bord dat u wilt programmeren. Arduino-code wordt aangeduid als sketches.

Note: Het is belangrijk om de nieuwste versie van Arduino IDE te gebruiken. Controleer hier van tijd tot tijd of er updates zijn.

Arduino code voorbeeld

Zoals u kunt zien, heeft de IDE een minimalistisch ontwerp. Er zijn slechts 5 kopjes op de menubalk, evenals een reeks knoppen eronder waarmee u uw schetsen kunt verifiëren en uploaden. In wezen vertaalt en compileert de IDE je schetsen in code die Arduino kan begrijpen. Zodra je Arduino code is gecompileerd wordt het geupload naar het geheugen van het board.

Alles wat de gebruiker hoeft te doen om te beginnen met het compileren van hun sketch is op een knop te drukken (een handleiding hiervoor kan hieronder worden gevonden).

Als er fouten in de Arduino code zitten zal er een waarschuwing verschijnen die de gebruiker vraagt om veranderingen aan te brengen. De meeste nieuwe gebruikers ondervinden vaak moeilijkheden met het compileren vanwege de strenge syntaxis-eisen van Arduino. Als je fouten maakt in je interpunctie bij het gebruik van Arduino, zal de code niet compileren en krijg je een foutmelding.

Seriële Monitor en Seriële Plotter

Arduino seriële monitor kan worden geopend door te klikken op het vergrootglas pictogram aan de rechterbovenkant van de IDE of onder tools. De seriële monitor wordt voornamelijk gebruikt voor interactie met het Arduino-bord met behulp van de computer, en is een geweldig hulpmiddel voor real-time monitoring en debugging. Om de monitor te gebruiken, moet je de Serial class gebruiken.

De code die je downloadt van circuito.io heeft een testsectie die je helpt bij het testen van elke component met behulp van de seriële monitor, zoals je kunt zien in de schermafbeelding hieronder:

Arduino seriële plotter is een ander onderdeel van de Arduino IDE, waarmee je een real-time grafiek van je seriële gegevens kunt genereren. De seriële plotter maakt het veel gemakkelijker voor u om uw gegevens te analyseren door middel van een visuele weergave. U kunt grafieken maken, negatieve waardegrafieken en golfvormanalyses uitvoeren.

Debuggen van Arduino-code en hardware

In tegenstelling tot andere softwareprogrammeerplatforms, heeft Arduino geen debugger aan boord. Gebruikers kunnen ofwel software van derden gebruiken, of ze kunnen de seriële monitor gebruiken om Arduino’s actieve processen af te drukken voor monitoring en debugging.

Door gebruik te maken van de seriële klasse, kunt u afdrukken naar de seriële monitor, debugging opmerkingen en waarden van variabelen. Op de meeste Arduino-modellen, zal dit worden met behulp van seriële pinnen 0 en 1 die zijn aangesloten op de USB-poort.

Code Structure

Bibliotheken

In Arduino, net als andere toonaangevende programmeerplatforms, zijn er ingebouwde bibliotheken die basisfunctionaliteit bieden. Daarnaast is het mogelijk om andere bibliotheken te importeren en de mogelijkheden en functies van het Arduino-bord uit te breiden. Deze bibliotheken zijn grofweg onder te verdelen in bibliotheken die interactie hebben met een specifiek component of bibliotheken die nieuwe functies implementeren.

Om een nieuwe bibliotheek te importeren, moet u naar Sketch > Import Library

Daarnaast moet u bovenaan uw .ino bestand ‘#include’ gebruiken om externe bibliotheken op te nemen. U kunt ook aangepaste bibliotheken maken om in geïsoleerde sketches te gebruiken.

Pin Definitions

Om de Arduino pins te gebruiken, moet u definiëren welke pin wordt gebruikt en wat de functionaliteit ervan is. Een handige manier om de gebruikte pinnen te definiëren is door gebruik te maken van:

‘#define pinName pinNumber’.

De functionaliteit is ofwel input of output en wordt gedefinieerd door gebruik te maken van de pinMode () methode in de setup sectie.

Declaraties

Variabelen

Wanneer je Arduino gebruikt, moet je globale variabelen en instanties declareren om later te kunnen gebruiken. In een notendop, een variabele kunt u een naam en een waarde opslaan om te worden gebruikt in de toekomst. Bijvoorbeeld, u zou gegevens opslaan die van een sensor worden verkregen om het later te gebruiken. Om een variabele te declareren definieer je eenvoudig het type, de naam en de beginwaarde.

Het is de moeite waard om te vermelden dat het declareren van globale variabelen geen absolute noodzaak is. Het is echter wel raadzaam om je variabelen te declareren, zodat je de waarden later gemakkelijk kunt gebruiken.

Instances

In software programmeren is een klasse een verzameling functies en variabelen die op één plaats bij elkaar worden gehouden. Elke klasse heeft een speciale functie, de constructor, waarmee een instantie van de klasse wordt gemaakt. Om de functies van de klasse te kunnen gebruiken, moeten we er een instantie voor declareren.

Setup()

Elke Arduino-schets moet een setup-functie hebben. Deze functie definieert de begintoestand van de Arduino bij het opstarten en loopt slechts eenmaal.

Hier definiëren we het volgende:

  1. Pin-functionaliteit met behulp van de pinMode-functie
  2. Initiële toestand van pinnen
  3. Initialiseren klassen
  4. Initialiseren variabelen
  5. Code logica

Loop()

De loop-functie is ook een must voor elke Arduino-sketch en wordt uitgevoerd zodra setup() is voltooid. Het is de hoofdfunctie en zoals de naam al aangeeft, loopt hij in een lus over en weer. De lus beschrijft de hoofdlogica van je schakeling.

Voorbeeld:

Note: Het gebruik van de term ‘void’ betekent dat de functie geen waarden teruggeeft.

Hoe Arduino programmeren

De basis Arduino code logica is een “als-dan” structuur en kan worden onderverdeeld in 4 blokken:

Setup – zal meestal worden geschreven in de setup sectie van de Arduino code, en voert dingen uit die slechts een keer gedaan hoeven te worden, zoals sensor calibratie.

Input – aan het begin van de lus, lees de inputs. Deze waarden zullen worden gebruikt als voorwaarden (“als”), zoals het omgevingslicht lezing van een LDR met behulp van analogRead().

Manipulate Data – deze sectie wordt gebruikt om de gegevens om te zetten in een meer handige vorm of berekeningen uit te voeren. Bijvoorbeeld, de AnalogRead() geeft een uitlezing van 0-1023 die kan worden omgezet in een bereik van 0-255 om te worden gebruikt voor PWM.(zie analogWrite())

Output – deze sectie definieert het uiteindelijke resultaat van de logica (“dan”) volgens de gegevens die in de vorige stap zijn berekend. Kijkend naar ons voorbeeld van de LDR en PWM, zet een LED alleen aan wanneer het omgevingslicht niveau onder een bepaalde drempel komt.

Arduino Code bibliotheken

Bibliotheek Structuur

Een bibliotheek is een map bestaande uit bestanden met C++ (.cpp) code bestanden en C++ (.h) header bestanden.

Het .h bestand beschrijft de structuur van de bibliotheek en verklaart alle variabelen en functies.

Het .cpp bestand bevat de functie implementatie.

Bibliotheken importeren

Het eerste wat u moet doen is het vinden van de bibliotheek die u wilt gebruiken uit de vele bibliotheken die online beschikbaar zijn. Na het downloaden naar uw computer, hoeft u enkel Arduino IDE te openen en te klikken op Sketch > Include Library > Manage Libraries. U kunt dan de bibliotheek selecteren die u wilt importeren in de IDE. Zodra het proces is voltooid, zal de bibliotheek beschikbaar zijn in het schetsmenu.

In de code die circuito.io levert in plaats van externe bibliotheken toe te voegen zoals eerder vermeld, leveren we ze met de firmware map. In dit geval weet de IDE ze te vinden bij het gebruik van #include.

Van Software naar Hardware

Er is veel te zeggen over Arduino’s software mogelijkheden, maar het is belangrijk om te onthouden dat het platform bestaat uit zowel software als hardware. De twee werken in tandem om een complex besturingssysteem te draaien.

Code → Compile → Upload → Run

De kern van Arduino, is de mogelijkheid om de code te compileren en uit te voeren.

Na het schrijven van de code in de IDE moet je het uploaden naar de Arduino. Klikken op de Upload-knop (de rechts-gerichte pijl pictogram), zal de code compileren en uploaden als het voorbij compilatie. Zodra de upload is voltooid, wordt het programma automatisch uitgevoerd.

U kunt dit ook stap voor stap doen:

  1. Eerst moet de code worden gecompileerd. Klik hiervoor op het controlepictogram (of klik op de schets > Verify / Compile in de menubalk.

Zoals u kunt zien, bevindt het controlepictogram zich linksboven onder de tag “Bestand” in de menusectie.

Als u dit hebt gedaan, zal Arduino beginnen met compileren. Als het klaar is, krijgt u een voltooiingsbericht dat er als volgt uitziet:

Zoals u kunt zien, vertelt de groene lijn onderaan de pagina u dat u “klaar bent met compileren”. Als je code niet werkt, krijg je een melding in dezelfde sectie, en wordt de problematische code gemarkeerd om te bewerken.

Als je je sketch hebt gecompileerd, is het tijd om hem te uploaden.

  1. Kies de seriële poort waarop je Arduino momenteel is aangesloten. Om dit te doen klik je op Tools > Seriële poort in het menu om je gekozen seriële poort aan te wijzen (zoals eerder hierboven getoond). Vervolgens kunt u de gecompileerde sketch uploaden.
  2. Om de sketch te uploaden, klikt u op het upload icoon naast het vinkje. Als alternatief kunt u naar het menu gaan en klikken op Bestand> uploaden. Uw Arduino LEDS zullen flikkeren zodra de data wordt overgedragen.

Eenmaal voltooid, wordt u begroet met een voltooiingsbericht dat u vertelt dat Arduino klaar is met uploaden.

Instellen van uw IDE

Om een Arduino board aan te sluiten op uw computer heeft u een USB-kabel nodig. Bij gebruik van de Arduino UNO, de USB stuurt de gegevens in het programma rechtstreeks naar uw bord. De USB-kabel wordt gebruikt om uw arduino van stroom te voorzien. Je kunt je Arduino ook via een externe voedingsbron laten lopen.

Voordat je de code kunt uploaden, zijn er een aantal instellingen die je moet configureren.

Kies je board – Je moet aangeven welk Arduino board je gaat gebruiken. Doe dit door te klikken op Tools > Board > Your Board.

Kies uw processor- Er zijn bepaalde boards (bijvoorbeeld Arduino pro-mini) waarvoor u moet aangeven welk processormodel u hebt. Onder tools > processor > selecteer je het model dat je hebt.

Kies uw poort – om de poort te selecteren waarop uw board is aangesloten, gaat u naar tools > Poort > COMX Arduino (Dit is de seriële poort van Arduino).

Hoe installeert u niet-Native Boards (bijv. NodeMCU)

Sommige board modellen zijn niet voorgeïnstalleerd in de Arduino IDE, daarom moet je ze installeren voordat je code kunt uploaden.

Om een niet-native board zoals NodeMCU te installeren, moet je:

  1. Klik op tools > Boards > Boards Manager
  2. Zoek naar het board dat je wilt toevoegen in de zoekbalk en klik op “installeren”.

Sommige borden kunnen niet worden gevonden via de Bord Manager. In dat geval moet je ze handmatig toevoegen. Om dit te doen:

  1. Klik op Bestanden > Voorkeuren
  2. In het Extra Borden Manager veld, plak de URL van het installatie pakket van je bord. Bijvoorbeeld, voor nodeMCU, voeg de volgende URL toe: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. Klik op OK
  4. Ga naar tools > Boards > Boards Manager
  5. Zoek naar het board dat je wilt toevoegen in de zoekbalk en klik op “installeren”.

Als u deze stap hebt voltooid, ziet u de geïnstalleerde boards in de boards-lijst onder tools.

Note: het proces kan enigszins verschillen voor verschillende boards.

Arduino: An Extremely Versatile Platform

Arduino is veel meer dan alleen een eenvoudige microcontroller. Met een uitgebreide IDE en een breed scala aan hardware configuraties, is Arduino echt een divers platform. De verscheidenheid van zijn bibliotheken en zijn intuïtief ontwerp maakt het een favoriet voor nieuwe gebruikers en ervaren makers gelijk. Er zijn duizenden gemeenschapsbronnen om u te helpen aan de slag te gaan met zowel hardware als software.

Als u uw vaardigheden verbetert, kunt u problemen tegenkomen die debugging vereisen, wat een zwakke plek is van de Arduino IDE. Gelukkig zijn er verschillende tools en methoden om Arduino hardware en software te debuggen. In het volgende artikel gaan we kijken naar hoe Arduino te debuggen (en hoe Arduino code te testen), evenals hoe simulators en emulators te gebruiken.

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *