Articles

alles wat u moet weten over Arduino CodeBlog Postcircuito teamarch 11, 2018

sinds de lancering van het Arduino open-source platform, heeft het merk zich gevestigd in het centrum van een uitgebreide 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 belangrijke keus voor een brede waaier van gebruikers over de hele wereld van hobbyisten, ontwerpers, en kunstenaars aan productprototypes.

Het Arduino bord is via USB verbonden met een computer, waar het verbinding maakt met de Arduino development environment (IDE). De gebruiker schrijft de Arduino-code in IDE, dan uploadt het aan microcontroller die de code uitvoert, die met input en output zoals sensoren, motoren, en lichten in wisselwerking staan.

zowel beginners als 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 op Arduino moeten coderen. 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 wij u door enkele basisprincipes van codering voor Arduino.

Plan uw volgende Arduino-Project >>

Arduino-Codeeromgeving en basishulpmiddelen

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 voor mensen leesbare programmeertaal. Wanneer u een ‘sketch’ (de naam gegeven aan Arduino code bestanden) maakt, wordt het verwerkt en gecompileerd naar machinetaal.

Arduino IDE

de Arduino Integrated Development Environment (IDE) is het belangrijkste tekstbewerkingsprogramma dat gebruikt wordt voor Arduino-programmering. Het is waar je je code intypt voordat je het uploadt naar het forum dat je wilt programmeren. Arduino code wordt aangeduid als schetsen.

Opmerking: Het is belangrijk om de nieuwste versie van Arduino IDE te gebruiken. Van tijd tot tijd, check hier voor updates.

Arduino code voorbeeld

zoals u kunt zien, heeft de IDE een minimalistisch ontwerp. Er zijn slechts 5 koppen op de menubalk, evenals een reeks knoppen waaronder u kunt controleren en uploaden van uw schetsen. In wezen, de IDE vertaalt en compileert uw schetsen in code die Arduino kan begrijpen. Zodra uw Arduino code is gecompileerd wordt het vervolgens geüpload naar het geheugen van het bord.

het enige wat de gebruiker hoeft te doen om te beginnen met het samenstellen van zijn schets is op een knop drukken (een handleiding hiervoor is hieronder te vinden).

als er fouten zijn in de Arduino-code zal een waarschuwingsbericht verschijnen waarin de gebruiker wordt gevraagd om wijzigingen aan te brengen. De meeste nieuwe gebruikers ervaren vaak problemen met het compileren vanwege de strenge syntaxisvereisten 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

seriële monitor van Arduino kan worden geopend door te klikken op het vergrootglas in de rechterbovenhoek van de IDE of onder Hulpmiddelen. De periodieke monitor wordt gebruikt hoofdzakelijk voor interactie met de Raad van Arduino gebruikend de computer, en is een groot hulpmiddel voor real-time controle en debugging. Om de monitor te gebruiken, moet je de seriële Klasse gebruiken.

de code waarvan u downloadt circuito.io heeft een test sectie die u helpt bij het testen van elk onderdeel met behulp van de seriële monitor, zoals u kunt zien in de screenshot hieronder:

Arduino serial plotter is een ander onderdeel van de Arduino IDE, waarmee u een real-time grafiek van uw seriële gegevens te genereren. De seriële plotter maakt het veel gemakkelijker voor u om uw gegevens te analyseren door middel van een visuele weergave. Je bent in staat om grafieken te maken, negatieve waarde grafieken, en uit te voeren golfvorm analyse.

Debugging Arduino Code en Hardware

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

met behulp 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 seriële spelden 0 en 1 gebruiken die met de USB-poort worden verbonden.

codestructuur

bibliotheken

in Arduino zijn er, net als andere toonaangevende programmeerplatforms, ingebouwde bibliotheken die basisfunctionaliteit bieden. Daarnaast is het mogelijk om andere bibliotheken te importeren en de Arduino board mogelijkheden en functies uit te breiden. Deze bibliotheken zijn grofweg verdeeld in bibliotheken die interageren met een specifieke component of die nieuwe functies implementeren.

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

bovendien, bovenaan uw .ino bestand, moet je’ # include ‘ gebruiken om externe bibliotheken op te nemen. U kunt ook aangepaste bibliotheken maken om te gebruiken in geïsoleerde schetsen.

Pin-definities

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

‘#define pinName pinNumber’.

de functionaliteit is input of output en wordt gedefinieerd met behulp van de pinMode () methode in de setup sectie.

declaraties

variabelen

wanneer u Arduino gebruikt, moet u globale variabelen en instanties declareren om later te gebruiken. In een notendop, een variabele kunt u een naam en een waarde op te slaan om te worden gebruikt in de toekomst. U zou bijvoorbeeld gegevens van een sensor opslaan om deze later te gebruiken. Om een variabele te declareren definieer je simpelweg het type, de naam en de beginwaarde.

Het is vermeldenswaard dat het declareren van globale variabelen geen absolute noodzaak is. Het is echter raadzaam dat u uw variabelen declareert om het gemakkelijk te maken om uw waarden verder te gebruiken.

Instances

in Softwareprogrammering is een klasse Een verzameling van functies en variabelen die op één plaats bij elkaar worden gehouden. Elke klasse heeft een speciale functie die bekend staat als een constructor, die wordt gebruikt om een instantie van de klasse te maken. Om de functies van de klasse te gebruiken, moeten we er een instantie voor declareren.

Setup ()

elke Arduino-schets moet een setup-functie hebben. Deze functie definieert de aanvankelijke staat van Arduino op laars en loopt slechts één keer.

hier definiëren we het volgende:

  1. Pin-functionaliteit met behulp van de pinMode-functie
  2. initiële status van pins
  3. initialiseer klassen
  4. initialiseer variabelen
  5. Codelogica

Loop ()

de loop-functie is ook een must voor elke Arduino-schets en voert uit zodra setup() is voltooid. Het is de belangrijkste functie en zoals de naam al aangeeft, loopt het keer op keer in een lus. De lus beschrijft de belangrijkste logica van je circuit.

bijvoorbeeld:

opmerking: het gebruik van de term ‘void’ betekent dat de functie geen waarden retourneert.

programmeren van Arduino

de basislogica van de arduinocode is een “als-dan” – structuur en kan worden onderverdeeld in 4 blokken:

Setup – wordt meestal geschreven in de setup-sectie van de Arduino-code, en voert dingen uit die slechts één keer moeten worden gedaan, zoals sensorkalibratie.

Input-lees aan het begin van de lus de ingangen. Deze waarden zullen worden gebruikt als voorwaarden (“if”) zoals de meting van het omgevingslicht van een LDR met behulp van analogRead ().

data manipuleren-deze sectie wordt gebruikt om de gegevens om te zetten in een handigere vorm of berekeningen uit te voeren. Bijvoorbeeld, de AnalogRead() geeft een lezing van 0-1023 die kan worden toegewezen aan een bereik van 0-255 te gebruiken voor PWM.(zie analogWrite ())

Output-deze sectie definieert het uiteindelijke resultaat van de logica (“dan”) volgens de gegevens berekend in de vorige stap. Als u naar ons voorbeeld van de LDR en PWM kijkt, schakelt u een LED alleen in als het omgevingslichtniveau onder een bepaalde drempelwaarde komt.

Arduino-codebibliotheken

Bibliotheekstructuur

een bibliotheek is een map die bestaat uit bestanden met c++ (.cpp) codebestanden en c++ (.h) header bestanden.

De .h file beschrijft de structuur van de bibliotheek en declareert alle variabelen en functies.

De .cpp bestand bevat de functie implementatie.

bibliotheken importeren

het eerste wat u moet doen is de bibliotheek vinden die u wilt gebruiken uit de vele online beschikbare bibliotheken. Na het downloaden naar uw computer, hoeft u alleen maar Arduino IDE te openen en klik op Sketch > Include Library > bibliotheken beheren. U kunt vervolgens de bibliotheek selecteren die u in de IDE wilt importeren. Zodra het proces is voltooid zal de bibliotheek beschikbaar zijn in het sketch menu.

in de door circuito.io in plaats van het toevoegen van externe bibliotheken zoals eerder vermeld, voorzien we ze van de firmware map. In dit geval weet de IDE hoe ze te vinden bij het gebruik van #include.

van Software naar Hardware

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

Code → compileren → uploaden → Run

in 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. Als u op de uploadknop klikt (het pijlpictogram naar rechts), compileert u de code en uploadt u deze als het compilatie is gepasseerd. Zodra uw upload is voltooid, zal het programma automatisch beginnen te lopen.

u kunt dit ook stap voor stap doen:

  1. eerst compileer de code. Om dit te doen klikt u op het pictogram controleren (of klik op sketch > verifiëren / compileren in de menubalk.

zoals u kunt zien, bevindt het vinkje zich linksboven onder de “File” tag in de menusectie.

als je dit gedaan hebt, zal Arduino beginnen met compileren. Zodra het klaar is, ontvangt u een voltooiingsbericht dat er zo uitziet:

zoals u kunt zien, vertelt de groene lijn onderaan de pagina dat u klaar bent met compileren. Als uw code niet wordt uitgevoerd, krijgt u een melding in dezelfde sectie en wordt de problematische code gemarkeerd om te bewerken.

zodra u uw schets hebt gecompileerd, is het tijd om het te uploaden.

  1. kies de seriële poort waarmee uw Arduino momenteel verbonden is. Om dit te doen klikt u op Tools > seriële poort in het menu om de gekozen seriële poort aan te geven (zoals hierboven getoond). U kunt dan de gecompileerde schets uploaden.
  2. om de schets te uploaden, klikt u op het pictogram uploaden naast het vinkje. U kunt ook naar het menu gaan en op Bestand> uploaden klikken. Uw Arduino LEDS zullen flikkeren zodra de gegevens worden overgebracht.

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

uw IDE instellen

om een Arduino-bord op uw computer aan te sluiten heeft u een USB-kabel nodig. Wanneer het gebruiken van Arduino UNO, brengt USB de gegevens in het programma direct aan uw Raad over. De USB-kabel wordt gebruikt om uw arduino van stroom te voorzien. U kunt uw Arduino ook door een externe stroombron laten lopen.

voordat u de code kunt uploaden, zijn er enkele instellingen die u moet configureren.

kies je board-je moet aangeven welk Arduino board je gaat gebruiken. Doe dit door op Tools > Board > uw Board te klikken.

Kies uw processor – er zijn bepaalde borden (bijvoorbeeld Arduino pro-mini) waarvoor u moet opgeven welk Processormodel u hebt. Onder Hulpmiddelen > processor > selecteer het model dat u 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 installeer je niet-Native Boards (bijvoorbeeld NodeMCU)

sommige boardmodellen 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 u:

  1. klik op tools > Boards > Boards Manager
  2. zoek naar het board dat u wilt toevoegen in de zoekbalk en klik op “install”.

sommige boards kunnen niet gevonden worden via de Board Manager. In dit geval moet u ze handmatig toevoegen. Om dit te doen:

  1. klik op Bestanden > Voorkeuren
  2. in het extra Boards Manager veld, plak de URL van het installatie pakket van je board. Voeg bijvoorbeeld voor nodeMCU de volgende URL toe: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. klik op OK
  4. ga naar hulpmiddelen > Boards > Boards Manager
  5. zoek naar het board dat u wilt toevoegen in de zoekbalk en klik op”install”.

zodra u deze stap hebt voltooid, ziet u de geïnstalleerde boards in de lijst met boards onder Hulpmiddelen.

opmerking: het proces kan enigszins verschillen voor verschillende boards.

Arduino: een zeer veelzijdig Platform

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

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