Arduino-platformprogrammering. setup() en loop() functies

» vertegenwoordigt opleiding cursus"Arduino voor beginners." De serie wordt vertegenwoordigd door 10 lessen, evenals extra materiaal. Lessen zijn inclusief tekstinstructies, foto's en trainingsvideo's. Bij elke les vind je een lijst noodzakelijke componenten, programmaoverzicht en aansluitschema. Na deze 10 te hebben bestudeerd basis lessen, je kunt meer beginnen interessante modellen en het assembleren van robots op basis van Arduino. De cursus is bedoeld voor beginners; je hebt geen kennis nodig om te beginnen. aanvullende informatie uit de elektrotechniek of robotica.

Korte informatie over Arduino

Wat is Arduino?

Arduino (Arduino) is een hardwarecomputerplatform, waarvan de belangrijkste componenten een input-output-bord en een ontwikkelomgeving zijn. Arduino kan worden gebruikt om stand-alone interactieve objecten te maken, of om verbinding te maken met software die op een computer draait. Arduino is een computer met één bord.

Hoe zijn Arduino en robots verbonden?

Het antwoord is heel eenvoudig: Arduino wordt vaak gebruikt als robotbrein.

Het voordeel van Arduino-boards ten opzichte van vergelijkbare platforms is hun relatief lage prijs en de bijna wijdverspreide distributie onder amateurs en professionals in de robotica en elektrotechniek. Zodra u Arduino onder de knie heeft, vindt u ondersteuning in elke taal en gelijkgestemde mensen die uw vragen beantwoorden en uw ontwikkelingen bespreken.

Les 1. Knipperende LED op Arduino

In de eerste les leer je hoe je een LED op een Arduino aansluit en deze laat knipperen. Dit is het eenvoudigste en meest basale model.

LEDhalfgeleider apparaat, waardoor optische straling ontstaat wanneer deze er doorheen gaat elektrische stroom in voorwaartse richting.

Les 2. Een knop op Arduino aansluiten

In deze tutorial leer je hoe je een knop en een LED op een Arduino aansluit.

Wanneer de knop wordt ingedrukt, gaat de LED branden; wanneer de knop wordt ingedrukt, brandt deze niet. Dit is tevens het basismodel.

Les 3. Een potentiometer aansluiten op Arduino

In deze tutorial leer je hoe je een potentiometer op Arduino aansluit.

Potentiometer- Dit weerstand met instelbare weerstand.Potentiometers worden gebruikt als regelaars verschillende parameters– geluidsvolume, vermogen, spanning, enz.Dit is ook een van de basisschema's. In ons model door aan de potentiometerknop te draaienDe helderheid van de LED is afhankelijk.

Les 4. Servobesturing op Arduino

In deze tutorial leer je hoe je een servo op een Arduino aansluit.

Servois een motor waarvan de aspositie kan worden geregeld door de rotatiehoek in te stellen.

Servo's worden gebruikt om verschillende mechanische bewegingen van robots te simuleren.

Les 5. Driekleurige LED op Arduino

In deze tutorial leer je hoe je een driekleurige LED op een Arduino aansluit.

Driekleurige LED(RGB-led) - dit zijn drie LED's verschillende kleuren in één gebouw. Ze zijn klein printplaat, waarop weerstanden zich bevinden, en zonder ingebouwde weerstanden. Beide opties komen in deze les aan bod.

Les 6. Piëzo-element op Arduino

In deze les leer je hoe je een piëzo-element op een Arduino aansluit.

Piëzo-element- een elektromechanische omzetter die vertaalt elektrische spanning in membraantrilling. Deze trillingen creëren geluid.

In ons model kan de geluidsfrequentie worden aangepast door de juiste parameters in het programma in te stellen.

Les 7. Fotoresistor op Arduino

In deze les van onze cursus leer je hoe je een fotoresistor op Arduino aansluit.

Fotoweerstand- een weerstand waarvan de weerstand afhangt van de helderheid van het licht dat erop valt.

In ons model licht de LED alleen op als de helderheid van het licht boven de fotoresistor kleiner is dan een bepaalde helderheid; deze helderheid kan in het programma worden aangepast.

Les 8. Bewegingssensor (PIR) op Arduino. Automatisch verzenden van e-mail

In deze les van onze cursus leer je hoe je een bewegingssensor (PIR) op Arduino aansluit en organiseert automatisch verzenden e-mail.

Bewegingssensor (PIR)- infraroodsensor om beweging of aanwezigheid van mensen of dieren te detecteren.

In ons model stuurt Arduino bij ontvangst van een signaal over menselijke beweging van een PIR-sensor een commando naar de computer om een ​​e-mail te sturen, waarna de brief automatisch wordt verzonden.

Les 9. Een temperatuur- en vochtigheidssensor DHT11 of DHT22 aansluiten

In deze les van ons leert u hoe u een DHT11- of DHT22-temperatuur- en vochtigheidssensor op een Arduino aansluit, en raakt u ook vertrouwd met de verschillen in hun kenmerken.

Temperatuur- en vochtigheidssensor is een samengestelde digitale sensor bestaande uit een capacitieve vochtigheidssensor en een thermistor voor het meten van de temperatuur.

In ons model leest Arduino de sensormetingen en geeft deze weer op het computerscherm.

Les 10. Een matrixtoetsenbord aansluiten

In deze les van onze cursus leer je hoe je een matrixtoetsenbord aansluit Arduino-bord, en maak ook kennis met verschillende interessante schema's.

Matrix-toetsenbord ontworpen om de verbinding te vereenvoudigen groot aantal knoppen Dergelijke apparaten zijn overal te vinden: in computertoetsenborden, rekenmachines, enzovoort.

Les 11. De DS3231 real-time klokmodule aansluiten

In de laatste les van onze cursus leert u hoe u een realtime klokmodule van het gezin kunt aansluiten
DS naar het Arduino-bord en maak ook kennis met verschillende interessante circuits.

Real-time klokmodule- Dit elektronisch circuit, ontworpen om chronometrische gegevens vast te leggen ( huidige tijd, datum, dag van de week, enz.), is een systeem dat bestaat uit een autonome stroombron en een meetapparaat.

Sollicitatie. Kant-en-klare frames en Arduino-robots


Je kunt Arduino niet alleen vanaf het bord zelf leren leren, maar ook door op dit bord een kant-en-klare, volwaardige robot aan te schaffen - een spinrobot, een robotauto, een schildpadrobot, enz. Zo een manier geschikt voor degenen die elektrische schema's niet bijzonder aantrekkelijk.

Door een werkend robotmodel aan te schaffen, b.v. Sterker nog, kant-en-klaar hightech speelgoed kan de belangstelling voor onafhankelijk ontwerp en robotica wekken. De openheid van het Arduino-platform maakt hetzelfde mogelijk componenten maak zelf nieuw speelgoed.

Een andere optie is om een ​​robotframe of -lichaam aan te schaffen: een platform op wielen of een baan, een mensachtige, een spin, enz. In dit geval zul je zelf de robot moeten vullen.

Sollicitatie. Mobiele directory


– een assistent voor ontwikkelaars van algoritmen voor het Arduino-platform, met als doel het geven eindgebruiker gelegenheid te hebben mobiele wijzerplaat opdrachten (referentieboek).

De applicatie bestaat uit 3 hoofdgedeelten:

  • Exploitanten;
  • Gegevens;
  • Functies.

Waar Arduino kopen


Arduino-kits

De cursus wordt aangevuld met extra lessen. Volg ons

Dit artikel helpt je op weg met Arduino en bevat een beschrijving verschillende soorten Arduino, hoe de ontwikkelomgeving te downloaden software Arduino, en beschrijft diverse borden en accessoires beschikbaar voor Arduino die je nodig hebt om Arduino-projecten te ontwikkelen.

Arduino is een controller met één bord en open broncodes, die op vele manieren kan worden gebruikt diverse toepassingen. Dit is misschien wel het eenvoudigste en meest goedkope optie van microcontrollers voor hobbyisten, studenten en professionals om op microcontrollers gebaseerde projecten te ontwikkelen. Arduino-borden gebruiken een Atmel AVR-microcontroller of een Atmel ARM-microcontroller, en sommige hebben dat ook USB-interface. Ze hebben ook zes of meer analoge invoerpinnen en veertien of meer digitale invoer/uitvoer (I/O) pinnen, die worden gebruikt om sensoren, actuatoren en andere apparaten op de microcontroller aan te sluiten. perifere circuits. De prijs van Arduino-boards varieert, afhankelijk van de reeks functies, van zes tot veertig dollar.

Soorten Arduino-borden

Er zijn veel verschillende soorten Arduino-borden, zoals weergegeven in de onderstaande lijst, elk met hun eigen functies. Ze verschillen qua verwerkingssnelheid, geheugen, I/O-poorten en connectiviteit, maar de kernfunctionaliteit blijft hetzelfde.

  • Arduino-robot
  • Arduino-Ethernet

Voor een verscheidenheid aan Arduino-boards en hun technische beschrijvingen kan worden bekeken in de subsectie "Kopen" van deze site.

Software (IDE)

Software gebruikt voor Arduino-programmering, is een geïntegreerde ontwikkelomgeving Arduino-IDE. IDE is Java-applicatie, dat op veel verschillende platforms draait, waaronder pc-, Mac- en Linux-systemen. Het is ontworpen voor beginners die niet bekend zijn met programmeren. Het bevat een editor, compiler en lader. De IDE bevat ook codebibliotheken voor het gebruik van randapparatuur zoals seriële poorten en verschillende soorten beeldschermen. Arduino-programma's worden "sketches" genoemd en zijn geschreven in een taal die sterk lijkt op C of C++.

De meeste Arduino-borden maken verbinding met de computer via USB-kabel. Met deze verbinding kun je schetsen uploaden naar je Arduino-bord en wordt het bord ook van stroom voorzien.

USB-kabel voor Arduino

Programmering

Programmeren met Arduino is eenvoudig: u gebruikt eerst de code-editor van de IDE om een ​​programma te schrijven, compileert en uploadt het vervolgens met één klik.

Het Arduino-programma bevat twee hoofdfuncties:

  • instellen()
  • lus()

U kunt de functie setup() gebruiken om de bordinstellingen te initialiseren. Deze functie wordt slechts één keer uitgevoerd, wanneer het bord is ingeschakeld.

De functie loop() wordt uitgevoerd nadat de functie setup() is voltooid, en in tegenstelling tot de functie setup() wordt deze continu uitgevoerd.

Programma functies

Hieronder vindt u een lijst met de meest gebruikte functies bij het programmeren van Arduino:

  • pinMode - stelt de pin in op invoer- of uitvoermodus;
  • analogRead - leest de analoge spanning op de analoge ingangspin;
  • analogWrite - schrijft een analoge spanning naar de analoge uitgangspin;
  • digitalRead - leest de waarde van een digitale invoerpin;
  • digitalWrite - stelt de waarde van de digitale uitgangspin in op hoog of laag;
  • Serial.print - schrijft gegevens naar seriële poort als voor mensen leesbare ASCII-tekst.

Arduino-bibliotheken

Arduino-bibliotheken zijn verzamelingen functies waarmee u apparaten kunt besturen. Hier zijn enkele van de meest gebruikte bibliotheken:

  • EEPROM - lezen en schrijven naar “permanente” opslag;
  • Ethernet - om verbinding te maken met internet via het Arduino Ethernet Shield-bord;
  • Firmata - voor communicatie met applicaties op een computer met behulp van een standaard serieel protocol;
  • GSM - voor verbinding met het GSM/GRPS-netwerk met behulp van een GSM-kaart;
  • LiquidCrystal - voor het besturen van liquid crystal displays (LCD);
  • SD - voor het lezen en schrijven van SD-kaarten;
  • Servo - voor het besturen van servo's;
  • SPI - voor communicatie met apparaten die de SPI-bus gebruiken;
  • SoftwareSerial - voor seriële communicatie via digitale pinnen;
  • Stepper - voor het besturen van stappenmotoren;
  • TFT - voor het tekenen van tekst, afbeeldingen en vormen op Arduino TFT-schermen;
  • WiFi - om verbinding te maken met internet via het Arduino WiFi-schild;
  • Draad - tweedraads interface (TWI/I2C) voor het verzenden en ontvangen van gegevens via een netwerk van apparaten of sensoren.

Arduino-installatiestappen


Opmerking: Mogelijk moet u stuurprogramma's installeren als uw systeem de Arduino niet detecteert.

Arduino is in feite de ontwikkeling van unieke projecten voor alle gelegenheden. Zoals ik al schreef is Arduino een soort bordje met daarop een microcontroller, dat zonder problemen geprogrammeerd kan worden.

Het uiteindelijke doel van deze manipulaties is om een ​​eenvoudig beheer van velen te garanderen externe apparaten . MET buitenwereld, deze vergoeding communiceert via vele add-ons:

  • sensoren,
  • LED's,
  • motoren,
  • Internet-netwerk
  • enz.

Dit maakt het een redelijk universeel platform voor veel projecten van zeer verschillende niveaus. Momenteel zijn er nogal wat verschillende microcontrollers, waaronder Arduino vooral populair is, wat gepaard gaat met het actief plaatsen van de meest ongelooflijke projecten en ontwikkelingen op het netwerk.

Om eenvoudig een van de miljoenen ideeën te implementeren, kunt u eenvoudig de meeste gebruiken actuele informatie, dat op veel sites onafhankelijk beschikbaar is. Hieronder ziet u een voorbeeld van de implementatie van een van deze ideeën: een kerstbel die kan worden bediend:

Hoe je dat kunt doen, gaan we in een van de volgende lessen bekijken.

Als je nog niet eens een beetje ervaring hebt met het werken met microcontrollers (programmeren en configureren), kun je dankzij de functies gemakkelijk zelf leren door relatief korte experimenten uit te voeren. Hieronder stel ik voor om enkele mogelijkheden van Arduino te analyseren, voorbeelden van waar deze unieke constructor het beste kan worden gebruikt.

Arduino-schetsen

Eigenlijk een programma voor een microcontroller van dit type genaamd schetsen. Elk dergelijk programma bestaat rechtstreeks uit twee hoofdfuncties.

Installatie

Setup() – er is in voorzien dat de gebruiker binnen deze functie alle belangrijke instellingen kan instellen.

Er wordt bijvoorbeeld bepaald welke pinnen vervolgens als output of input zullen werken, het bepalen van de verbinding van specifieke bibliotheken, zelfs het initialiseren van variabelen, dit alles wordt bepaald door het gebruik van deze functionaliteit.

De lancering wordt strikt één keer uitgevoerd tijdens de hele schets, wanneer het allereerste begin van de uitvoering van dit programma wordt genoteerd.

Lus

Loop() - is de hoofdfunctie die onmiddellijk na het starten wordt uitgevoerd (in dit geval wordt deze gebruikt instellen()).

In feite is dit het programma zelf; deze functie blijft voor onbepaalde tijd actief totdat de gebruiker de stroom van het apparaat uitschakelt.

Voorbeelden van schetsen

U kunt enkele voorbeelden van schetsen overwegen die een leidraad zullen vormen voor de daaropvolgende bediening van de apparatuur. Ik zal proberen elk van de voorbeelden in de volgende materialen te implementeren. Vandaag zullen we het alleen hebben over de mogelijkheden.

Voorbeeld 1

Een van de interessante schetsen kan worden gebruikt om de bedrijfstijd van de controller weer te geven en vervolgens het “knipper”-commando te accepteren. Het is bedoeld om de knipperprocedure van LED-elementen te initialiseren.

In feite is er niets bijzonder nuttigs in de schets, maar het bevat ook de mogelijkheid om willekeurig een bepaalde zinsnede "Gegevens ontvangen" uit te voeren, deze kan in de toekomst rechtstreeks worden gebruikt voor testen en analyseren vastgestelde regels werking van een modulair element.

Voorbeeld 2

Een speciaal aansluiten huidige waterniveausensor, regensensor. Om een ​​specifiek project te implementeren, moet u beschikken over:

De watersensor zelf,
- Arduino-controller,
- een set aansluitdraden,
- een computer met kabels en IDE-programma, bijbehorend ontwikkelbord.

Hierdoor is het dankzij de relatief eenvoudige opzet van de microcontroller mogelijk om optimale omstandigheden voor sensorbediening.

Voorbeeld 3

De mogelijkheid tot implementatie karakteruitvoer, daaropvolgende installatie van lettertypen op de LCD5110, die de eenvoudigste en meest betrouwbare controle over de status van de apparatuur zelf zal bieden.

Lettertypen worden uitgevoerd en gewijzigd met behulp van Arduino-mogelijkheden. In dit geval moet u een kant-en-klare gegevensbibliotheek en broncode gebruiken.

Voorbeelden van het gebruik van Arduino

Als je naar talloze voorbeelden van Arduino kijkt, kun je alleen maar verrast zijn creatieve aanpak projectontwikkelaars en buitengewone verbeeldingskracht. In feite kun je de meest ongelooflijke dingen maken, bijvoorbeeld hetzelfde muziekspeler met een set LED's.

Een dergelijke ontwikkeling zal zeer gewaardeerd worden door muziekliefhebbers, waardoor je niet alleen origineel kunt creëren soundtrack, maar geven ook de mogelijkheid om te genieten van een heldere, buitengewone kleurencombinatie.

Zelfs huisdieren, bijvoorbeeld katten, zullen de projecten kunnen evalueren. De reden zal zijn automatische kattenvoer, die bijvoorbeeld kan worden ontwikkeld op basis van een conventionele cd-speler, en niet alleen.

Een van de voordelen van deze apparatuur Opgemerkt moet worden dat het mogelijk is om voer aan het dier te doseren; het is niet nodig om regelmatig de hoeveelheid voer in de voerbak te controleren. De openingstijd wordt aangepast, waarna de kat voedzaam voedsel krijgt, strikt volgens het vastgestelde schema, genietend van het originele idee van de eigenaar.

Als we het hebben over volledig ongebruikelijke projecten, kunnen we dit benadrukken automatische bloemapparatuur, dat nu informatie over de huidige status rechtstreeks naar Twitter kan verzenden. Dit alles wordt gedaan door gebruik te maken van de mogelijkheden van de Arduino-microcontroller, waarmee u gegevens rechtstreeks via een internetverbinding kunt overbrengen. Zoals u kunt zien, kunnen de voorbeelden heel verschillend zijn. Ik zal proberen er in de volgende artikelen aandacht aan te besteden.

Nadat je vertrouwd bent geraakt met de basiselementen van Arduino en een programma hebt geschreven “ Hallo wereld! Het is tijd om kennis te maken met een programmeertaal.

De structuur van de taal is voornamelijk gebaseerd op C/C++, dus degenen die eerder in deze taal hebben geprogrammeerd, zullen geen moeite hebben om de Arduino-programmering onder de knie te krijgen. Anderen moeten basisinformatie leren over besturingsopdrachten, gegevenstypen en functies.

Veel van de hier gegeven informatie zal compatibel zijn met elke C/C++-cursus, rekening houdend met de verschillen in gegevenstypen, evenals met enkele specifieke instructies gerelateerd aan het programmeren van I/O-poorten.

Basisprincipes

Een paar formele dingen, dat wil zeggen zaken die iedereen kent, maar soms vergeet...

In de Arduino IDE moet je, net als in C/C++, rekening houden met karaktergevallen. Trefwoorden, zoals if, for worden altijd in kleine letters geschreven. Elke instructie eindigt met ";". De puntkomma vertelt de compiler welk deel als instructie moet worden geïnterpreteerd.

Om programmablokken aan te duiden worden haakjes (..) gebruikt. We gebruiken ze om functielichamen (zie hieronder), lussen en voorwaardelijke instructies te beperken.

Het is een goede gewoonte om commentaar toe te voegen aan de programma-inhoud, dit maakt de code gemakkelijk te begrijpen. Opmerkingen van één regel beginnen met // (dubbele schuine streep). Commentaar met meerdere regels begint met /* en eindigen met */

Als we een bibliotheek in ons programma willen opnemen, gebruiken we de opdracht include. Hier zijn voorbeelden van het verbinden van bibliotheken:

#erbij betrekken // standaardbibliotheek #include “svoya_biblioteka.h” // bibliotheek in de projectmap

Functies in Arduino

Een functie (subroutine) is een afzonderlijk onderdeel van een programma dat bepaalde bewerkingen uitvoert. Functies worden gebruikt om het hoofdprogramma te vereenvoudigen en de leesbaarheid van de code te verbeteren. Het is handig om functies te gebruiken, omdat we deze gemakkelijk in veel van onze projecten kunnen gebruiken.

Een standaard programmeercursus bevat informatie over functies die in de volgende artikelen worden gepresenteerd. In het geval van Arduino zullen de functies in het begin worden besproken, omdat even eenvoudigste programma moet er twee hebben speciale functies. Dit is al vermeld in eerdere artikelen, maar hier zullen we deze informatie systematiseren.

Functieverklaring

Het functiedeclaratiediagram ziet er als volgt uit:

Type function_name(parameter) ( // instructies voor uitvoering (functietekst) return (/* return value*/); )

type is de naam van elk beschikbaar gegevenstype op gegeven taal programmeren. In een apart artikel geven we een lijst met typen die beschikbaar zijn bij het programmeren van Arduino.

Na uitvoering retourneert de functie de waarde van het gedeclareerde type. Als de functie geen enkele retourwaarde accepteert, is het gegevenstype ‘void’.

functie_naam zorgt ervoor dat het uniek kan worden geïdentificeerd. Om een ​​functie aan te roepen (uit te voeren), geven we deze een naam.

parameter— functieaanroepparameter. De parameters zijn niet vereist, maar zijn vaak nuttig. Als we een functie schrijven die geen argumenten heeft, vertrekken we haakjes leeg.

Tussen haakjes staat “(…)” de daadwerkelijke inhoud van de functie of instructie die we willen uitvoeren. Een beschrijving van specifieke instructies zullen we in een apart artikel geven.

Alle functies die een waarde retourneren, eindigen met een return-instructie gevolgd door de retourwaarde. Alleen functies die zijn gedeclareerd met een null-pointer ("void") bevatten geen return-instructie. U moet weten dat de return-instructie de functie beëindigt, ongeacht de locatie.

Hieronder vindt u enkele voorbeelden van functiedeclaraties.

Leegte f1() ( //functie body) —————————————— int minus() ( //function body return (0); ) ——————————— ——— int plus(int a, int b) ( return (a+b); )

Zoals u in de voorbeelden kunt zien, kan een functiedeclaratie bestaan verschillende vormen afhankelijk van uw behoeften.

We raden u ten zeerste aan om functies te leren en te gebruiken tijdens het schrijven eigen programma's. In de loop van de tijd ontwikkelt elke programmeur zijn eigen bibliotheek met functies ‘voor alle gelegenheden’, waardoor het gemakkelijker en sneller wordt om nieuwe programma’s te schrijven.

Nu we weten hoe we onze eigen functie moeten schrijven, moeten we leren hoe we deze moeten gebruiken.

Een functie aanroepen

We schrijven alle functies in één bestand/programma. Er is natuurlijk een elegantere oplossing, maar die zullen we de volgende keer proberen te beschrijven.

Zodra we een functie declareren, kunnen we deze in andere functies gebruiken met de juiste naam en eventuele vereiste parameters. Hieronder staan ​​voorbeelden van het aanroepen van de functies die we hierboven hebben gegeven:

F1(); plus(2,2); y=plus(1,5);

Zoals u in de voorbeelden kunt zien, wordt een functieaanroep gedaan door de naam en het vereiste aantal parameters op te geven. Het is belangrijk om een ​​functie altijd aan te roepen zoals gedeclareerd.

Als de functie f1() zonder parameters wordt gedeclareerd, kunnen er geen parameters worden opgegeven bij het aanroepen ervan, d.w.z. het aanroepen van f1(0) zal onjuist zijn.

De functie plus(int a, int b) vereist precies twee parameters, dus aanroepen met één of drie parameters is niet mogelijk.

Door y=plus(1,5) aan te roepen wordt de functie "plus" uitgevoerd met de parameters "1" en "5" en wordt de geretourneerde waarde opgeslagen in de variabele "y".

setup() en loop() functies.

Met kennis over het declareren en aanroepen van functies kunnen we verder gaan met het systeem Arduino-functies: instellen() En lus(). Arduino-IDE verplicht u moet deze twee functies declareren.

setup() is een functie die automatisch wordt aangeroepen wanneer de stroom wordt ingeschakeld of de RESET-knop wordt ingedrukt.

Zoals de naam al doet vermoeden, wordt het gebruikt om de initiële waarden van variabelen, declaraties van systeeminvoer en -uitvoer in te stellen, die meestal worden gespecificeerd in de initiële parameters. Vanwege zijn specificiteit retourneert deze functie geen waarde en wordt deze niet aangeroepen met parameters. De juiste setup() functiedeclaratie vindt u hieronder:

Installatie ongeldig () ( // functie body - systeeminitialisatie )

loop() is een functie die wordt aangeroepen in een oneindige lus. Deze functie retourneert ook geen waarde en wordt niet aangeroepen met parameters. De juiste functiedeclaratie van loop() wordt hieronder weergegeven:

Ongeldige lus () ( // functielichaam - programmacode )

Zoals u kunt zien, is de functiedeclaratie loop() identiek aan de functiedeclaratie setup(). Het verschil ligt in de uitvoering van deze functies door de microcontroller.

We zullen nu de volgende pseudocode analyseren:

Installatie ongeldig () (on_led1 (); //zet led1 uit_led1 aan (); //zet led1 uit) ongeldige lus () (on_led2 (); //zet led2 uit_led2 aan (); //zet led2 uit)

Er zijn twee instructies in de setup()-functie: de eerste schakelt led1 in die op het bord is aangesloten (bijvoorbeeld pin 13) en de tweede schakelt led1 uit.

De functie loop() heeft identieke instructies voor het in- en uitschakelen van de LED2 die op het bord is aangesloten (bijvoorbeeld pin 12).

Als gevolg van het uitvoeren van het programma zal led1 één keer knipperen, terwijl led2 oplicht en uitgaat zolang de Arduino is ingeschakeld.

Als u op de RESET-knop drukt, gaat led1 opnieuw knipperen en led2 weer continu.

Laten we het samenvatten:

  • De functies setup() en loop() zijn dat wel systeem functies, die in elk project moet worden gedefinieerd. Zelfs in een situatie waarin we geen code in een van deze functies schrijven, moeten we deze twee functies nog steeds declareren;
  • De functie setup() wordt één keer uitgevoerd, loop() wordt continu uitgevoerd;
  • Wij creëren inheemse functies in één bestand;
  • We kunnen onze functies zowel vanuit setup() en loop() als vanuit andere functies aanroepen;
  • Onze eigen functies kunnen met parameters worden aangeroepen en een waarde retourneren;
  • Er moet een functieaanroep worden gedaan in overeenstemming met de declaratie ervan.

Hallo! Ik ben Alikin Alexander Sergejevitsj, leraar extra onderwijs leid ik de clubs ‘Robotica’ en ‘Radiotechniek’ in het Centrum voor Jeugd en Jeugdtechnologie in Labinsk. Ik wil het graag hebben over een vereenvoudigde methode voor het programmeren van Arduino met behulp van het ArduBlock-programma.

Ik ben dit programma binnengegaan educatief proces en was opgetogen over het resultaat, er is vooral veel vraag naar bij kinderen, vooral bij het schrijven van eenvoudige programma's of bij het creëren van een soort eerste fase; complexe programma's. ArduBlock is een grafische programmeeromgeving, d.w.z. alle acties worden uitgevoerd met getekende afbeeldingen met ondertekende acties in het Russisch, wat het leren van het Arduino-platform aanzienlijk vereenvoudigt. Kinderen vanaf het 2e leerjaar kunnen dankzij dit programma het werken met Arduino gemakkelijk onder de knie krijgen.

Ja, iemand zou kunnen zeggen dat Scratch nog steeds bestaat en dat het ook nog eens heel eenvoudig is grafische omgeving voor het programmeren van Arduino. Maar Scratch flasht de Arduino niet, maar bestuurt hem alleen via een USB-kabel. Arduino is computerafhankelijk en kan niet autonoom werken. Bij het maken eigen projecten autonomie voor Arduino is het belangrijkste, vooral bij het maken van robotapparaten.

Zelfs iedereen weet het LEGO-robots, zoals NXT of EV3, zijn niet langer zo interessant voor onze studenten met de komst van het ArduBlock-programma in Arduino-programmering. Arduino is ook veel goedkoper dan welke LEGO-bouwpakketten dan ook en veel onderdelen kunnen gewoon uit een oud huishouden worden gehaald elektronische technologie. Het ArduBlock-programma helpt niet alleen beginners, maar ook actieve gebruikers Arduino-platforms.

Dus, wat is ArduBlock? Zoals ik al zei, is dit een grafische programmeeromgeving. Bijna volledig vertaald in het Russisch. Maar het hoogtepunt van ArduBlock is niet alleen dit, maar ook het feit dat het ArduBlock-programma dat we schreven, wordt omgezet in Arduino IDE-code. Dit programma is ingebouwd in de Arduino IDE-programmeeromgeving, dat wil zeggen dat het een plug-in is.

Hieronder ziet u een voorbeeld van een knipperende LED en een geconverteerd programma in Arduino IDE. Al het werken met het programma is heel eenvoudig en elke student kan het begrijpen.

Als gevolg van het werken met het programma kun je niet alleen Arduino programmeren, maar ook commando's bestuderen die we niet begrijpen tekst formaat Arduino IDE, maar als je te lui bent om standaardopdrachten te schrijven, kun je snel de muis gebruiken om een ​​eenvoudig programma in ArduBlok te schetsen en dit in Arduino IDE te debuggen.

Om ArduBlok te installeren, moet u eerst de Arduino IDE downloaden en installeren vanaf de officiële Arduino-website en de instellingen begrijpen wanneer u met het Arduino UNO-bord werkt. Hoe je dat doet, staat beschreven op dezelfde website of op Amperka, of bekijk het op YouTube. Als dit allemaal is uitgezocht, moet je ArduBlok downloaden van de officiële website, hier. Ik raad niet aan om de nieuwste versies te downloaden, deze zijn erg ingewikkeld voor beginners, maar de versie van 12-07-2013 is de beste, dit bestand is daar het populairst.

Hernoem vervolgens het gedownloade bestand naar ardublock-all en in de map "documenten". Wij creëren volgende mappen: Arduino > tools > ArduBlockTool > tool en in de laatste gooien we het gedownloade en hernoemde bestand. ArduBlok werkt op iedereen besturingssystemen, zelfs op Linux, ik heb het zelf gecontroleerd op XP, Win7, Win8, allemaal voorbeelden voor Win7. De installatie van het programma is voor alle systemen hetzelfde.

Nou, om het simpel te zeggen, ik heb een archief voorbereid op de 7z Mail-schijf, bij het uitpakken vind je 2 mappen. In één al werkprogramma Arduino IDE, en in een andere map moet de inhoud naar de map Documenten worden gestuurd.

Om in ArduBlok te kunnen werken, moet je de Arduino IDE uitvoeren. Vervolgens gaan we naar het tabblad Tools en daar vinden we het ArduBlok-item, klik erop - en hier is het, ons doel.

Laten we nu eens kijken naar de programma-interface. Zoals je al begrijpt, zitten er geen instellingen in, maar er zijn voldoende pictogrammen voor programmeren en elk ervan bevat een commando in Arduino IDE-tekstformaat. Er zijn nog meer pictogrammen in nieuwe versies, dus zoek het uit met ArduBlok nieuwste versie moeilijk en sommige iconen zijn niet in het Russisch vertaald.

In de sectie "Beheer" vinden we verschillende cycli.

In het gedeelte ‘Poorten’ kunnen we de waarden van de poorten beheren, evenals de geluidszender, servo of ultrasone nabijheidssensor die erop is aangesloten.

In het gedeelte ‘Getallen/Constanten’ kunnen we digitale waarden selecteren of een variabele maken, maar het is onwaarschijnlijk dat u het onderstaande zult gebruiken.

In de sectie “Operators” vinden we alle noodzakelijke vergelijkings- en berekeningsoperatoren.

In het gedeelte Hulpprogramma's worden voornamelijk getimede pictogrammen gebruikt.

"TinkerKit Bloks" is de sectie voor gekochte TinkerKit-sensoren. Zo'n set hebben wij natuurlijk niet, maar dit betekent niet dat de iconen niet geschikt zijn voor andere sets, integendeel, het is voor de jongens erg handig om iconen te gebruiken zoals het aanzetten van een LED of een knop. Deze tekens worden in bijna alle programma's gebruikt. Maar ze hebben een bijzonderheid: wanneer u ze selecteert, zijn er onjuiste pictogrammen die poorten aangeven, dus u moet ze verwijderen en het pictogram vervangen uit het gedeelte "getallen/constanten" bovenaan de lijst.

"DF Robot" - deze sectie wordt gebruikt als de daarin gespecificeerde sensoren aanwezig zijn, deze worden soms gevonden. En de onze het voorbeeld van vandaag- is geen uitzondering, we hebben “Verstelbare IR-schakelaar” en “Lijnsensor”. De “lijnsensor” is anders dan die op de foto, aangezien deze van het bedrijf Amperka is. Hun acties zijn identiek, maar de Ampere-sensor is veel beter, omdat deze een gevoeligheidsregelaar heeft.

"Seedstudio Grove" - ​​Ik heb de sensoren in deze sectie nooit gebruikt, hoewel er alleen joysticks zijn. In nieuwe versies is deze sectie uitgebreid.

EN laatste sectie Dit is de Linker-kit. De daarin gepresenteerde sensoren ben ik niet tegengekomen.

Ik wil graag een voorbeeld laten zien van een programma over een robot die langs een strook beweegt. De robot is heel eenvoudig, zowel in elkaar te zetten als te kopen, maar eerst en vooral. Laten we beginnen met de aanschaf en montage ervan.

Hier is de set onderdelen zelf, alles is gekocht op de Amperka-website.

  1. AMP-B001 Motorscherm (2 kanalen, 2 A) RUB 1.890
  2. AMP-B017 Troyka-schild RUB 1.690
  3. AMP-X053 Batterijcompartiment 3×2 AA 1 60 RUR
  4. AMP-B018 Digitale lijnsensor RUB 2.580
  5. ROB0049 MiniQ tweewielig platform RUB 1,1890
  6. SEN0019 Infrarood obstakelsensor RUB 1.390
  7. FIT0032 Houder voor infrarood obstakelsensor RUB 1,90
  8. A000066 Arduino Uno 1 1150 RUR

Laten we eerst het platform op wielen monteren en de draden aan de motoren solderen.

Vervolgens zullen we rekken installeren voor het monteren van het Arduino UNO-bord, die van het oude zijn overgenomen moederbord of andere soortgelijke bevestigingen.

Vervolgens bevestigen we het Arduino UNO-bord aan deze racks, maar we kunnen geen enkele bout vastdraaien: de connectoren zitten in de weg. Je kunt ze natuurlijk losmaken, maar dit is naar eigen goeddunken.

Vervolgens bevestigen we de infrarood obstakelsensor op de speciale houder. Let op: de gevoeligheidsregelaar bevindt zich bovenaan, dit is voor het gemak van het afstellen.

Nu installeren we digitale lijnsensoren, hier moet je een paar bouten en 4 moeren voor zoeken. We installeren twee moeren tussen het platform zelf en de lijnsensor, en bevestigen de sensoren met de rest.

Vervolgens installeren we Motor Shield, of anders kun je het de motordriver noemen. Let in ons geval op de springer. We gaan geen aparte voeding voor de motoren gebruiken, daarom wordt deze in deze positie geïnstalleerd. Het onderste deel is afgedicht met isolatietape om onbedoelde kortsluiting van de Arduino UNO USB-connector te voorkomen, voor het geval dat.

We installeren Troyka Shield bovenop het Motor Shield. Het is noodzakelijk voor het gemak van het aansluiten van sensoren. Alle sensoren die we gebruiken zijn digitaal, dus de lijnsensoren zijn aangesloten op poort 8 en 9, zoals ze ook wel pinnen worden genoemd, en de infrarood obstakelsensor is aangesloten op poort 12. Houd er rekening mee dat u de poorten 4, 5, 6 en 7 niet kunt gebruiken, omdat deze door Motor Shield worden gebruikt om motoren te besturen. Ik heb deze poorten zelfs speciaal met een rode stift overschilderd, zodat de leerlingen het konden uitzoeken.

Als je het al gemerkt hebt, heb ik voor de zekerheid een zwarte bus toegevoegd, zodat het batterijcompartiment dat we hebben geïnstalleerd niet naar buiten zou vliegen. En ten slotte zetten we de hele structuur vast met een gewone elastische band.

Verbindingen batterijcompartiment er kunnen 2 soorten zijn. Eerste aansluiting van draden op Troyka Shield. Het is ook mogelijk om de stekker te solderen en deze op het Arduino UNO-bord zelf aan te sluiten.

Onze robot is er klaar voor. Voordat u begint met programmeren, moet u leren hoe alles werkt, namelijk:
- Motoren:
Poorten 4 en 5 worden gebruikt om één motor te besturen, en 6 en 7 een andere;
We regelen de rotatiesnelheid van de motoren met behulp van PWM op poort 5 en 6;
Vooruit of achteruit door signalen naar poorten 4 en 7 te sturen.
- Sensoren:
We hebben alles digitaal, dus zij geven logische signalen als 1 of 0;
En om ze aan te passen, hebben ze speciale regelaars en met behulp van een geschikte schroevendraaier kunnen ze worden gekalibreerd.

Details zijn te vinden bij Amperke. Waarom hier? Omdat er veel informatie te vinden is over het werken met Arduino.

Nou ja, we hebben waarschijnlijk alles oppervlakkig bekeken, bestudeerd en natuurlijk de robot in elkaar gezet. Nu moet het geprogrammeerd worden, hier is het - het langverwachte programma!

En het programma geconverteerd naar Arduino IDE:

Setup ongeldig maken() ( pinMode(8 , INPUT); pinMode(12 , INPUT); pinMode(9 , INPUT); pinMode(4 , OUTPUT); pinMode(7 , OUTPUT); pinMode(5, OUTPUT); pinMode(6 , OUTPUT); ) void loop() ( if (digitalRead(12)) ( if (digitalRead(8)) ( if (digitalRead(9)) ( digitalWrite(4, HOOG); analogWrite(5, 255); analogWrite( 6, 255); digitalWrite(7, HOOG); else ( digitalWrite(4, HOOG); analogWrite(5, 255); analogWrite(6, 50); digitalWrite(7, LAAG); ) ) else ( if (digitalRead) (9)) ( digitalWrite(4, LAAG); analogWrite(5, 50); analogWrite(6, 255); digitalWrite(7, HOOG); ) else ( digitalWrite(4, HOOG); analogWrite(5, 255); analogWrite(6, 255); digitalWrite(7, HOOG); anders ( digitalWrite(4, HOOG); analogWrite(5, 0); analogWrite(6, 0); digitalWrite(7, HOOG); ) )

Concluderend wil ik zeggen dat dit programma gewoon een geschenk uit de hemel is voor het onderwijs; zelfs voor zelfstudie zal het je helpen leren Arduino-opdrachten IDE. Het belangrijkste hoogtepunt is dat er meer dan 50 installatiepictogrammen zijn, het begint te "glitchen". Ja, dit is inderdaad het hoogtepunt, aangezien programmeren alleen op ArduBlok je niet leert programmeren in de Arduino IDE. De zogenaamde "glitch" geeft je de mogelijkheid om na te denken en commando's te onthouden voor het nauwkeurig debuggen van programma's.

Ik wens je succes.