Arduino-programmering i c. Grunderna i programmering i Arduino IDE. Installation av drivrutiner för Arduino

Den här artikeln hjälper dig att komma igång med Arduino och innehåller en beskrivning av de olika typerna av Arduino, hur du laddar ner Arduinos mjukvaruutvecklingsmiljö och beskriver de olika korten och tillbehören som finns tillgängliga för Arduino som du behöver för att utveckla dina Arduino-projekt.

Arduino är en enkelkortskontroll med öppen källkod som kan användas i många olika applikationer. Detta är möjligen det enklaste och billigaste mikrokontrolleralternativet för hobbyister, studenter och proffs för att utveckla mikrokontrollerbaserade projekt. Arduino-kort använder antingen en Atmel AVR-mikrokontroller eller en Atmel ARM-mikrokontroller, och vissa versioner har ett USB-gränssnitt. De har också sex eller fler analoga ingångsstift och fjorton eller fler digitala in-/utgångsstift (I/O) som används för att ansluta sensorer, enheter och andra perifera kretsar till mikrokontrollern. Priset på Arduino-brädor, beroende på funktionsuppsättningen, varierar från sex till fyrtio dollar.

Typer av Arduino-brädor

Det finns många olika typer av Arduino-brädor, som visas i listan nedan, alla med sin egen uppsättning funktioner. De skiljer sig åt i bearbetningshastighet, minne, I/O-portar och anslutning, men huvudkomponenten i deras funktionalitet förblir oförändrad.

  • Arduino robot
  • Arduino Ethernet

Mångfalden av Arduino-brädor och deras tekniska beskrivningar finns i undersektionen "" i "Köp"-sektionen på denna webbplats.

Programvara (IDE)

Mjukvaran som används för Arduino-programmering är Arduino IDE. IDE är en Java-applikation som körs på många olika plattformar inklusive PC, Mac och Linux-system. Den är designad för nybörjare som inte är bekanta med programmering. Den innehåller en redaktör, kompilator och laddare. I IDE ingår också kodbibliotek för användning av kringutrustning som seriella portar och olika typer av bildskärmar. Arduino-program kallas "skisser" och är skrivna på ett språk som mycket liknar C eller C++.

De flesta Arduino-kort ansluts till en dator med en USB-kabel. Denna anslutning låter dig ladda upp skisser till ditt Arduino-kort och ger även ström till brädet.

USB-kabel för Arduino

Programmering

Arduino-programmering är lätt: först använder du IDE:s kodredigerare för att skriva programmet, kompilerar sedan och laddar ner det med ett klick.

Arduino-mjukvaran innehåller två huvudfunktioner:

  • uppstart ()
  • loop ()

Du kan använda inställningsfunktionen () för att initiera kortets inställningar. Denna funktion utförs endast en gång, när kortet är påslaget.

Loop-funktionen () exekveras efter att setup-funktionen () är klar, och till skillnad från setup-funktionen () körs den kontinuerligt.

Programfunktioner

Nedan är en lista över de mest använda funktionerna i Arduino-programmering:

  • pinMode - ställer in stiftet för att gå in i eller avsluta läge;
  • analogRead - läser den analoga spänningen vid det analoga ingångsstiftet;
  • analogWrite - Skriver analog spänning till analog utgångsstift;
  • digitalRead - läser det digitala ingångsstiftvärdet;
  • digitalWrite - Ställer in det digitala utgångsstiftvärdet till högt eller lågt;
  • Serial.print - Skriver data till den seriella porten som mänskligt läsbar ASCII-text.

Arduino bibliotek

Arduino-bibliotek är samlingar av funktioner som låter dig styra enheter. Några av de mest använda biblioteken är:

  • EEPROM - läsning och skrivning till "permanent" lagring;
  • Ethernet - för anslutning till Internet med Arduino Ethernet Shield-kortet;
  • Firmata - för att kommunicera med applikationer på en dator med ett standardserieprotokoll;
  • GSM - för att ansluta till GSM / GRPS-nätverket med hjälp av GSM-kortet;
  • LiquidCrystal - för att styra LCD-skärmar med flytande kristaller;
  • SD - för att läsa och skriva SD-kort;
  • Servo - för att styra servodrifter;
  • SPI - för kommunikation med enheter som använder SPI-bussen;
  • SoftwareSerial - för seriell kommunikation genom alla digitala stift;
  • Stepper - för att styra stegmotorer;
  • TFT - för att rita text, bilder och former på Arduino TFT-skärmar;
  • WiFi - för att ansluta till internet med Arduino WiFi shield board;
  • Wire är ett tvåtrådsgränssnitt (TWI / I2C) för att överföra och ta emot data genom ett nätverk av enheter eller sensorer.

Arduino installationssteg


Obs: Du kan behöva installera drivrutiner om ditt system inte upptäcker Arduino.

Hej! Jag är Aleksandr Sergeevich Alikin, lärare i tilläggsutbildning, jag leder cirklarna "Robotics" och "Radiotechnics" vid Central Children's School of Music i Labinsk. Jag skulle vilja berätta lite om ett förenklat sätt att programmera Arduino med ArduBloсk-programmet.

Jag introducerade det här programmet i utbildningsprocessen och är nöjd med resultatet; det är mycket efterfrågat bland barn, särskilt när man skriver de enklaste programmen eller för att skapa någon form av inledande skede av komplexa program. ArduBloсk är en grafisk programmeringsmiljö, det vill säga alla åtgärder utförs med ritade bilder med signerade åtgärder på ryska, vilket avsevärt förenklar studiet av Arduino-plattformen. Barn från årskurs 2 kan enkelt lära sig att arbeta med Arduino tack vare detta program.

Ja, någon kanske säger att Scratch fortfarande existerar och det är också en väldigt enkel grafisk miljö för Arduino-programmering. Men Scratch flashar inte Arduino, den styr den bara via en USB-kabel. Arduino är datorberoende och kan inte fungera självständigt. När du skapar dina egna projekt är autonomi för Arduino det viktigaste, särskilt när du skapar robotenheter.

Även de välkända LEGO-robotarna, som NXT eller EV3, är inte längre så intressanta för våra elever med ArduBloсk-programmet som dyker upp i Arduino-programmering. Arduino är också mycket billigare än alla LEGO-konstruktörer och många komponenter kan helt enkelt tas från gammal elektronisk hushållsutrustning. ArduBloсk-programmet hjälper inte bara nybörjare utan även aktiva användare av Arduino-plattformen i arbetet.

Så vad är ArduBlock? Det är som sagt en grafisk programmeringsmiljö. Nästan helt översatt till ryska. Men i ArduBloсk är höjdpunkten inte bara detta, utan också det faktum att ArduBloсk-programmet vi har skrivit omvandlas till Arduino IDE-koden. Detta program är inbyggt i Arduino IDE-programmeringsmiljön, dvs det är en plugin.

Nedan är ett exempel på en blinkande lysdiod och ett konverterat program i Arduino IDE. Allt arbete med programmet är väldigt enkelt och alla elever kan förstå det.

Som ett resultat av att arbeta med programmet kan du inte bara programmera Arduino, utan också studera kommandon som vi inte förstår i textformatet för Arduino IDE, men om du är "för lat" för att skriva standardkommandon, kan du ska snabbt skissa ett enkelt program i ArduBlok med musen och felsöka det i Arduino IDE ...

För att installera ArduBlok måste du först ladda ner och installera Arduino IDE från den officiella Arduino-webbplatsen och ta reda på inställningarna när du arbetar med Arduino UNO-kortet. Hur man gör detta beskrivs på samma sida eller på Amperka, eller se den på YouTube. Tja, när vi kom på allt detta måste du ladda ner ArduBlok från den officiella webbplatsen här. Jag rekommenderar inte att ladda ner de senaste versionerna, för nybörjare är de väldigt svåra, men versionen från 2013-07-12 är själva grejen, den här filen är den mest populära där.

Byt sedan namn på den nedladdade filen till ardublock-all och i mappen "dokument". Vi skapar följande mappar: Arduino> verktyg> ArduBlockTool> verktyg och i den sista kastar vi den nedladdade och omdöpta filen. ArduBlok fungerar på alla operativsystem, även Linux, jag testade det personligen på XP, Win7, Win8, alla exempel för Win7. Installationen av programmet är densamma för alla system.

Tja, om det är enklare, förberedde jag ett arkiv på Mail-disk 7z, packar upp som du kommer att hitta 2 mappar. I den ena fungerar Arduino IDE redan, och i den andra mappen måste innehållet skickas till dokumentmappen.

För att kunna arbeta med ArduBlok måste du köra Arduino IDE. Sedan går vi till fliken Verktyg och där hittar vi ArduBlok-objektet, klicka på det - och här är det, vårt mål.

Låt oss nu ta en titt på programgränssnittet. Som du redan förstått finns det inga inställningar i det, men det finns gott om ikoner för programmering, och var och en av dem bär ett kommando i textformatet för Arduino IDE. Det finns ännu fler ikoner i de nya versionerna, så det är svårt att förstå den senaste versionen av ArduBlok och några av ikonerna är inte översatta till ryska.

I avsnittet "Kontroll" hittar vi en mängd olika cykler.

I avsnittet "Portar" kan vi hantera portarnas värden, såväl som ljudsändaren, servo- eller ultraljudsnärhetssensorn som är ansluten till dem, tillsammans med dig.

I avsnittet "Siffror / Konstanter" kan vi välja digitala värden eller skapa en variabel med dig, men vad du knappast kommer att använda nedan.

I avsnittet "Operatorer" hittar vi med dig alla nödvändiga jämförelse- och beräkningsoperatörer.

Verktygssektionen använder huvudsakligen ikoner över tid.

TinkerKit Bloks är sektionen för köpta TinkerKit-sensorer. Vi har naturligtvis inte en sådan uppsättning, men det betyder inte att ikoner inte kommer att fungera för andra uppsättningar, tvärtom - det är väldigt bekvämt för killarna att använda ikoner som att slå på en lysdiod eller en knapp. Dessa tecken används i nästan alla program. Men de har en egenhet - när de väljs finns det felaktiga ikoner som anger portar, så de måste tas bort och ikonen från avsnittet "siffror / konstanter", den översta i listan, måste ersättas.

"DF Robot" - det här avsnittet används om det finns sensorer specificerade i det, de påträffas ibland. Och vårt dagens exempel är inget undantag, vi har "Justerbar IR Switch" och "Line Sensor". "Linjesensorn" skiljer sig från den på bilden, eftersom den är från Amperka. Deras åtgärder är identiska, men sensorn från Amperka är mycket bättre, eftersom den har en känslighetsregulator.

"Seeedstudio Grove" - ​​Jag har aldrig använt sensorerna i det här avsnittet, även om det bara finns joysticks. Denna sektion har utökats i nya versioner.

Och det sista avsnittet är Linker Kit. Sensorerna som presenterades i den kom inte över för mig.

Jag skulle vilja visa ett exempel på ett program på en robot som rör sig längs körfältet. Roboten är väldigt enkel, både i montering och i inköp, men först till kvarn. Låt oss börja med att köpa och montera den.

Här är själva uppsättningen av delar, allt köptes på Amperkas hemsida.

  1. AMP-B001 Motor Shield (2 kanaler, 2 A) 1 890 rubel
  2. AMP-B017 Troyka Shield 1 690 rub
  3. AMP-X053 Batterifack 3 × 2 AA 1 60 rubel
  4. AMP-B018 Linjesensor digital 2 580 rubel
  5. ROB0049 Tvåhjulig plattform miniQ 1 1890 rub
  6. SEN0019 Infraröd hindersensor 1 390 rubel
  7. FIT0032 Fäste för infraröd hindersensor 1 90 rubel
  8. A000066 Arduino Uno 1 1150 rub

Låt oss först montera den hjulförsedda plattformen och löda ledningarna till motorerna.

Sedan kommer vi att installera racken för att fästa Arduino UNO-kortet, som togs från det gamla moderkortet eller andra liknande fästen.

Sedan fäster vi Arduino UNO-kortet på dessa stativ, men vi kan inte skruva en bult - kontakterna stör. Du kan naturligtvis lösa ut dem, men detta är efter ditt gottfinnande.

Därefter fäster vi den infraröda hindersensorn på dess speciella fäste. Observera att känslighetskontrollen är placerad på toppen, detta för att underlätta justeringen.

Nu installerar vi digitala linjesensorer, här får vi leta efter ett par bultar och 4 muttrar till dem.Vi monterar två muttrar mellan själva plattformen och linjesensorn, och fixar resten av sensorerna.

Installera sedan Motor Shield, eller på annat sätt kan du ringa motorföraren. I vårt fall, var uppmärksam på bygeln. Vi kommer inte att använda en separat strömförsörjning för motorerna, så den är installerad i denna position. Den nedre delen är förseglad med elektrisk tejp så att det inte blir några oavsiktliga kortslutningar från USB-kontakten på Arduino UNO, för säkerhets skull.

Placera Troyka Shield ovanpå Motor Shield. Det är nödvändigt för bekvämligheten med att ansluta sensorerna. Alla sensorer vi använder är digitala, så linjesensorerna är anslutna till port 8 och 9, som de också kallas stift, och den infraröda hindersensorn är ansluten till port 12. Var noga med att notera att portarna 4, 5, 6, 7 inte kan användas eftersom de används av Motor Shield för att styra motorer. Jag specialmålade till och med dessa portar med en röd tusch så att eleverna kunde lista ut det.

Om du redan har märkt det så har jag lagt till en svart bussning för säkerhets skull så att batterifacket vi installerat inte flyger ut. Och slutligen fixar vi hela strukturen med ett vanligt elastiskt band.

Det finns 2 typer av batterifackanslutningar. Första trådanslutningen till Troyka Shield. Det är också möjligt att löda nätkontakten och ansluta den till själva Arduino UNO-kortet.

Nu är vår robot klar. Innan du börjar programmera måste du lära dig hur allt fungerar, nämligen:
- Motorer:
Port 4 och 5 används för att styra en motor, och 6 och 7 används för den andra;
Vi justerar motorernas rotationshastighet med PWM på portarna 5 och 6;
Framåt eller bakåt genom att signalera port 4 och 7.
- Sensorer:
Alla av oss är digitala, därför ger de logiska signaler i form av 1 eller 0;
Och för att justera dem finns speciella regulatorer i dem och med hjälp av en lämplig skruvmejsel kan de kalibreras.

Detaljer finns på Amperka. Varför är den här? Eftersom det finns mycket information om att arbeta med Arduino.

Jo, vi kanske tittade på allt ytligt, studerade och såklart monterade roboten. Nu ska det programmeras, här är det - det efterlängtade programmet!

Och programmet konverterat till Arduino IDE:

Void setup () (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, HIGH); analogWrite (5, 255); analogWrite ( 6, 255); digitalWrite (7, HIGH);) else (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite (6, 50); digitalWrite (7, LOW);)) else (if (digitalRead) (9)) (digitalWrite (4, LÅG); analogWrite (5, 50); analogWrite (6, 255); digitalWrite (7, HIGH);) annat (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite (6, 255); digitalWrite (7, HIGH);))) else (digitalWrite (4, HIGH); analogWrite (5, 0); analogWrite (6, 0); digitalWrite (7, HIGH);))

Sammanfattningsvis vill jag säga att det här programmet bara är en gudagåva för utbildning, även för självstudier, det kommer att hjälpa dig att lära dig kommandona i Arduino IDE. Den viktigaste höjdpunkten är att det finns mer än 50 installationsikoner, det börjar "glitra". Ja, verkligen, detta är en höjdpunkt, eftersom konstant programmering endast på ArduBlok inte kommer att lära dig hur du programmerar i Arduino IDE. Den så kallade "glitchen" gör det möjligt att tänka och försöka komma ihåg kommandon för korrekt felsökning av program.

Önskar dig framgång.

Arduino är väldigt populärt bland alla byggentusiaster. Det är nödvändigt att bekanta sig med dem som aldrig har hört talas om honom.

Vad är Arduino?

Hur kan du sammanfatta Arduino? De bästa orden skulle vara: Arduino är ett verktyg med vilket du kan skapa olika elektroniska enheter. I huvudsak är det en sann universell datorhårdvaruplattform. Den kan användas både för att bygga enkla kretsar och för att genomföra ganska komplexa projekt.

Konstruktören är baserad på dess hårdvara, som är ett input-output-kort. För programmering av kortet används språk som är baserade på C/C++. De hette respektive Processing / Wiring. Från grupp C ärvde de den yttersta enkelheten, på grund av vilken de bemästras mycket snabbt av någon person, och att tillämpa kunskap i praktiken är inte ett ganska betydande problem. För att du ska förstå hur lätt det är sägs det ofta att Arduino är för nybörjare och trollkarlar. Även barn kan hantera Arduino-brädor.

Vad kan du samla på den?

Användningen av Arduino är ganska varierande, den kan användas både för de enklaste exemplen, som kommer att rekommenderas i slutet av artikeln, och för ganska komplexa mekanismer, inklusive manipulatorer, robotar eller produktionsmaskiner. Vissa hantverkare lyckas tillverka surfplattor, telefoner, hemövervaknings- och säkerhetssystem, smarta hemsystem eller bara datorer utifrån sådana system. Arduino-projekt för nybörjare, som även någon utan erfarenhet kan komma igång med, finns i slutet av artikeln. De kan till och med användas för att skapa primitiva virtuella verklighetssystem. Allt tack vare innehållet i den mångsidiga hårdvaran och de möjligheter som Arduino-programmering ger.

Var kan jag få tag i komponenterna?

Komponenter tillverkade i Italien anses vara original. Men priset på sådana kit är inte heller lågt. Därför tillverkar ett antal företag eller till och med enskilda personer Arduino-kompatibla enheter och komponenter med hantverk, som de skämtsamt kallar produktionskloner. När man köper sådana kloner kan man inte med säkerhet säga att de kommer att fungera, men viljan att spara pengar tar ut sin rätt.

Komponenter kan köpas antingen som en del av kit eller separat. Det finns till och med förberedda kit för att montera bilar, helikoptrar med olika typer av kontroller eller fartyg. Satsen, som visas ovan, tillverkad i Kina, kommer att kosta $ 49.

Mer om hårdvara

Arduino-kortet är en enkel AVR-mikrokontroller som har flashats med en bootloader och har minsta nödvändiga USB-UART-port. Det finns också viktiga komponenter, men inom ramen för artikeln vore det bättre att bara fokusera på dessa två komponenter.

Först, om mikrokontrollern, en mekanism byggd på en krets, i vilken det utvecklade programmet finns. Programmet kan påverkas genom att trycka på knappar, ta emot signaler från skapande komponenter (motstånd, transistorer, sensorer, etc.), etc. Dessutom kan sensorerna vara väldigt olika i sitt syfte: belysning, acceleration, temperatur, avstånd, tryck , hinder etc. Enkla delar kan användas som displayenheter, från lysdioder och summer till komplexa enheter som grafiska displayer. Motorer, ventiler, reläer, servon, elektromagneter och många andra övervägs, som är väldigt, väldigt långa att lista. Med något från dessa listor arbetar MK direkt med anslutningsledningar. Vissa mekanismer kräver adapterenheter. Men när du väl börjar designa blir det svårt för dig att komma loss. Låt oss nu prata om Arduino-programmering.

Lär dig mer om styrelseprogrammeringsprocessen

Ett program som redan är redo att arbeta på en mikrokontroller kallas firmware. Det kan finnas antingen ett projekt eller Arduino-projekt, så det skulle vara önskvärt att lagra varje firmware i en separat mapp för att påskynda processen att hitta de nödvändiga filerna. Den sys fast på MK-kristallen med hjälp av specialiserade enheter: programmerare. Och här har "Arduino" en fördel - den behöver ingen programmerare. Allt görs för att programmera Arduino enkelt för nybörjare. Den skrivna koden kan laddas in i MK med en USB-kabel. Denna fördel uppnås inte av någon redan inbyggd programmerare, utan av en speciell firmware - en bootloader. En bootloader är ett speciellt program som startar direkt efter anslutning och lyssnar på om det finns några kommandon, om man ska flasha kristallen, om det finns Arduino-projekt eller inte. Flera mycket attraktiva fördelar uppstår med att använda en bootloader:

  1. Använder endast en kommunikationskanal, vilket inte kräver extra tidskostnader. Arduino-projekt kräver till exempel inte att du kopplar ihop många olika ledningar, och förvirring har uppstått när du använder dem. En USB-kabel räcker för framgångsrik drift.
  2. Skydd mot krokiga händer. Det är ganska lätt att föra mikrokontrollern till en tegelsten med hjälp av direkt firmware, du behöver inte anstränga dig för mycket. När du arbetar med en bootloader kan du inte komma till potentiellt farliga inställningar (med hjälp av utvecklingsprogrammet förstås, men du kan bryta allt). Därför är Arduino för nybörjare designad inte bara utifrån att det är förståeligt och bekvämt, det låter dig också undvika oönskade utgifter förknippade med oerfarenhet hos den person som arbetar med dem.

Projekt för att komma igång

När du har skaffat ett kit, en lödkolv, kolofonium och lod bör du inte omedelbart skulptera mycket komplexa strukturer. Naturligtvis kan du blinda dem, men chansen att lyckas i Arduino för nybörjare är ganska låg för komplexa projekt. För att träna och "stoppa" din hand kan du försöka implementera några enklare idéer som hjälper dig att förstå interaktionen och arbetet med "Arduino". Som sådana första steg i att arbeta med Arduino för nybörjare, är det lämpligt att överväga:

  1. Skapa som kommer att fungera tack vare "Arduino".
  2. Ansluter en separat knapp till "Arduino". I det här fallet kan du göra det så att knappen kan reglera lysdiodens ljus från punkt #1.
  3. Potentiometeranslutning.
  4. Servokontroll.
  5. Ansluta och arbeta med en trefärgad LED.
  6. Anslutning av ett piezoelektriskt element.
  7. Fotoresistoranslutning.
  8. Anslutning av en rörelsesensor och signaler om dess arbete.
  9. Anslutning av en fukt- eller temperatursensor.

Projekt för framtiden

Det är osannolikt att du är intresserad av "Arduino" för att ansluta individuella lysdioder. Troligtvis lockas du av möjligheten att skapa din egen bil, eller en flygande skivspelare. Sådana projekt är komplexa att genomföra, de kommer att ta mycket tid och uthållighet, men efter att ha slutfört dem kommer du att få det du vill ha: värdefull erfarenhet av att bygga med Arduino för nybörjare.

Hej! Jag är Aleksandr Sergeevich Alikin, lärare i tilläggsutbildning, jag leder cirklarna "Robotics" och "Radiotechnics" vid Central Children's School of Music i Labinsk. Jag skulle vilja berätta lite om ett förenklat sätt att programmera Arduino med ArduBloсk-programmet.

Jag introducerade det här programmet i utbildningsprocessen och är nöjd med resultatet; det är mycket efterfrågat bland barn, särskilt när man skriver de enklaste programmen eller för att skapa någon form av inledande skede av komplexa program. ArduBloсk är en grafisk programmeringsmiljö, det vill säga alla åtgärder utförs med ritade bilder med signerade åtgärder på ryska, vilket avsevärt förenklar studiet av Arduino-plattformen. Barn från årskurs 2 kan enkelt lära sig att arbeta med Arduino tack vare detta program.

Ja, någon kanske säger att Scratch fortfarande existerar och det är också en väldigt enkel grafisk miljö för Arduino-programmering. Men Scratch flashar inte Arduino, den styr den bara via en USB-kabel. Arduino är datorberoende och kan inte fungera självständigt. När du skapar dina egna projekt är autonomi för Arduino det viktigaste, särskilt när du skapar robotenheter.

Även de välkända LEGO-robotarna, som NXT eller EV3, är inte längre så intressanta för våra elever med ArduBloсk-programmet som dyker upp i Arduino-programmering. Arduino är också mycket billigare än alla LEGO-konstruktörer och många komponenter kan helt enkelt tas från gammal elektronisk hushållsutrustning. ArduBloсk-programmet hjälper inte bara nybörjare utan även aktiva användare av Arduino-plattformen i arbetet.

Så vad är ArduBlock? Det är som sagt en grafisk programmeringsmiljö. Nästan helt översatt till ryska. Men i ArduBloсk är höjdpunkten inte bara detta, utan också det faktum att ArduBloсk-programmet vi har skrivit omvandlas till Arduino IDE-koden. Detta program är inbyggt i Arduino IDE-programmeringsmiljön, dvs det är en plugin.

Nedan är ett exempel på en blinkande lysdiod och ett konverterat program i Arduino IDE. Allt arbete med programmet är väldigt enkelt och alla elever kan förstå det.

Som ett resultat av att arbeta med programmet kan du inte bara programmera Arduino, utan också studera kommandon som vi inte förstår i textformatet för Arduino IDE, men om du är "för lat" för att skriva standardkommandon, kan du ska snabbt skissa ett enkelt program i ArduBlok med musen och felsöka det i Arduino IDE ...

För att installera ArduBlok måste du först ladda ner och installera Arduino IDE från den officiella Arduino-webbplatsen och ta reda på inställningarna när du arbetar med Arduino UNO-kortet. Hur man gör detta beskrivs på samma sida eller på Amperka, eller se den på YouTube. Tja, när vi kom på allt detta måste du ladda ner ArduBlok från den officiella webbplatsen här. Jag rekommenderar inte att ladda ner de senaste versionerna, för nybörjare är de väldigt svåra, men versionen från 2013-07-12 är själva grejen, den här filen är den mest populära där.

Byt sedan namn på den nedladdade filen till ardublock-all och i mappen "dokument". Vi skapar följande mappar: Arduino> verktyg> ArduBlockTool> verktyg och i den sista kastar vi den nedladdade och omdöpta filen. ArduBlok fungerar på alla operativsystem, även Linux, jag testade det personligen på XP, Win7, Win8, alla exempel för Win7. Installationen av programmet är densamma för alla system.

Tja, om det är enklare, förberedde jag ett arkiv på Mail-disk 7z, packar upp som du kommer att hitta 2 mappar. I den ena fungerar Arduino IDE redan, och i den andra mappen måste innehållet skickas till dokumentmappen.

För att kunna arbeta med ArduBlok måste du köra Arduino IDE. Sedan går vi till fliken Verktyg och där hittar vi ArduBlok-objektet, klicka på det - och här är det, vårt mål.

Låt oss nu ta en titt på programgränssnittet. Som du redan förstått finns det inga inställningar i det, men det finns gott om ikoner för programmering, och var och en av dem bär ett kommando i textformatet för Arduino IDE. Det finns ännu fler ikoner i de nya versionerna, så det är svårt att förstå den senaste versionen av ArduBlok och några av ikonerna är inte översatta till ryska.

I avsnittet "Kontroll" hittar vi en mängd olika cykler.

I avsnittet "Portar" kan vi hantera portarnas värden, såväl som ljudsändaren, servo- eller ultraljudsnärhetssensorn som är ansluten till dem, tillsammans med dig.

I avsnittet "Siffror / Konstanter" kan vi välja digitala värden eller skapa en variabel med dig, men vad du knappast kommer att använda nedan.

I avsnittet "Operatorer" hittar vi med dig alla nödvändiga jämförelse- och beräkningsoperatörer.

Verktygssektionen använder huvudsakligen ikoner över tid.

TinkerKit Bloks är sektionen för köpta TinkerKit-sensorer. Vi har naturligtvis inte en sådan uppsättning, men det betyder inte att ikoner inte kommer att fungera för andra uppsättningar, tvärtom - det är väldigt bekvämt för killarna att använda ikoner som att slå på en lysdiod eller en knapp. Dessa tecken används i nästan alla program. Men de har en egenhet - när de väljs finns det felaktiga ikoner som anger portar, så de måste tas bort och ikonen från avsnittet "siffror / konstanter", den översta i listan, måste ersättas.

"DF Robot" - det här avsnittet används om det finns sensorer specificerade i det, de påträffas ibland. Och vårt dagens exempel är inget undantag, vi har "Justerbar IR Switch" och "Line Sensor". "Linjesensorn" skiljer sig från den på bilden, eftersom den är från Amperka. Deras åtgärder är identiska, men sensorn från Amperka är mycket bättre, eftersom den har en känslighetsregulator.

"Seeedstudio Grove" - ​​Jag har aldrig använt sensorerna i det här avsnittet, även om det bara finns joysticks. Denna sektion har utökats i nya versioner.

Och det sista avsnittet är Linker Kit. Sensorerna som presenterades i den kom inte över för mig.

Jag skulle vilja visa ett exempel på ett program på en robot som rör sig längs körfältet. Roboten är väldigt enkel, både i montering och i inköp, men först till kvarn. Låt oss börja med att köpa och montera den.

Här är själva uppsättningen av delar, allt köptes på Amperkas hemsida.

  1. AMP-B001 Motor Shield (2 kanaler, 2 A) 1 890 rubel
  2. AMP-B017 Troyka Shield 1 690 rub
  3. AMP-X053 Batterifack 3 × 2 AA 1 60 rubel
  4. AMP-B018 Linjesensor digital 2 580 rubel
  5. ROB0049 Tvåhjulig plattform miniQ 1 1890 rub
  6. SEN0019 Infraröd hindersensor 1 390 rubel
  7. FIT0032 Fäste för infraröd hindersensor 1 90 rubel
  8. A000066 Arduino Uno 1 1150 rub

Låt oss först montera den hjulförsedda plattformen och löda ledningarna till motorerna.

Sedan kommer vi att installera racken för att fästa Arduino UNO-kortet, som togs från det gamla moderkortet eller andra liknande fästen.

Sedan fäster vi Arduino UNO-kortet på dessa stativ, men vi kan inte skruva en bult - kontakterna stör. Du kan naturligtvis lösa ut dem, men detta är efter ditt gottfinnande.

Därefter fäster vi den infraröda hindersensorn på dess speciella fäste. Observera att känslighetskontrollen är placerad på toppen, detta för att underlätta justeringen.

Nu installerar vi digitala linjesensorer, här får vi leta efter ett par bultar och 4 muttrar till dem.Vi monterar två muttrar mellan själva plattformen och linjesensorn, och fixar resten av sensorerna.

Installera sedan Motor Shield, eller på annat sätt kan du ringa motorföraren. I vårt fall, var uppmärksam på bygeln. Vi kommer inte att använda en separat strömförsörjning för motorerna, så den är installerad i denna position. Den nedre delen är förseglad med elektrisk tejp så att det inte blir några oavsiktliga kortslutningar från USB-kontakten på Arduino UNO, för säkerhets skull.

Placera Troyka Shield ovanpå Motor Shield. Det är nödvändigt för bekvämligheten med att ansluta sensorerna. Alla sensorer vi använder är digitala, så linjesensorerna är anslutna till port 8 och 9, som de också kallas stift, och den infraröda hindersensorn är ansluten till port 12. Var noga med att notera att portarna 4, 5, 6, 7 inte kan användas eftersom de används av Motor Shield för att styra motorer. Jag specialmålade till och med dessa portar med en röd tusch så att eleverna kunde lista ut det.

Om du redan har märkt det så har jag lagt till en svart bussning för säkerhets skull så att batterifacket vi installerat inte flyger ut. Och slutligen fixar vi hela strukturen med ett vanligt elastiskt band.

Det finns 2 typer av batterifackanslutningar. Första trådanslutningen till Troyka Shield. Det är också möjligt att löda nätkontakten och ansluta den till själva Arduino UNO-kortet.

Nu är vår robot klar. Innan du börjar programmera måste du lära dig hur allt fungerar, nämligen:
- Motorer:
Port 4 och 5 används för att styra en motor, och 6 och 7 används för den andra;
Vi justerar motorernas rotationshastighet med PWM på portarna 5 och 6;
Framåt eller bakåt genom att signalera port 4 och 7.
- Sensorer:
Alla av oss är digitala, därför ger de logiska signaler i form av 1 eller 0;
Och för att justera dem finns speciella regulatorer i dem och med hjälp av en lämplig skruvmejsel kan de kalibreras.

Detaljer finns på Amperka. Varför är den här? Eftersom det finns mycket information om att arbeta med Arduino.

Jo, vi kanske tittade på allt ytligt, studerade och såklart monterade roboten. Nu ska det programmeras, här är det - det efterlängtade programmet!

Och programmet konverterat till Arduino IDE:

Void setup () (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, HIGH); analogWrite (5, 255); analogWrite ( 6, 255); digitalWrite (7, HIGH);) else (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite (6, 50); digitalWrite (7, LOW);)) else (if (digitalRead) (9)) (digitalWrite (4, LÅG); analogWrite (5, 50); analogWrite (6, 255); digitalWrite (7, HIGH);) annat (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite (6, 255); digitalWrite (7, HIGH);))) else (digitalWrite (4, HIGH); analogWrite (5, 0); analogWrite (6, 0); digitalWrite (7, HIGH);))

Sammanfattningsvis vill jag säga att det här programmet bara är en gudagåva för utbildning, även för självstudier, det kommer att hjälpa dig att lära dig kommandona i Arduino IDE. Den viktigaste höjdpunkten är att det finns mer än 50 installationsikoner, det börjar "glitra". Ja, verkligen, detta är en höjdpunkt, eftersom konstant programmering endast på ArduBlok inte kommer att lära dig hur du programmerar i Arduino IDE. Den så kallade "glitchen" gör det möjligt att tänka och försöka komma ihåg kommandon för korrekt felsökning av program.

Önskar dig framgång.

Så du har en processor. Som du säkert förstår kan processorn på något sätt programmeras för att göra det du vill att den ska göra. För att användbart arbete ska kunna utföras är det nödvändigt (a) att skriva ett användbart program och (b) ge det till processorn för exekvering.

Generellt sett spelar det ingen roll vilken typ av processor du har: den senaste Intel Pentium i din bärbara dator eller en mikrokontroller på Arduino-kortet. Principerna för att skriva ett program, d.v.s. programmeringär desamma i båda fallen. Den enda skillnaden är hastigheten och mängden möjligheter att arbeta med andra enheter.

Vad är ett program och var man skriver det

Processorn, trots all komplexitet i produktionen, är i huvudsak en ganska enkel och okomplicerad sak. Han vet inte hur han ska tänka. Han kan bara blint, byte för byte, utföra instruktionerna som skickades till honom. Här är ett grovt exempel på en sekvens av instruktioner:

Byte-instruktionVad betyder det för processorn
00001001 betyder: ta nästa byte och lagra den i cell #1
00000110 ... detta är bara nästa byte som vi kommer ihåg i cell # 1: nummer 5
00011001 betyder: subtrahera ett från värdet i cell nr 1 och lämna det uppdaterade resultatet där
00101001 betyder: jämför värdet i cell nummer 1 med noll och om det är noll - hoppa över så många byte som anges i nästa byte
00000100 ... om resultatet blev noll vill vi hoppa över 4 byte, till den näst sista instruktionen
10000011
01000001 ... bokstaven "A" bara motsvarar denna kod
00101000 betyder att vi vill hoppa tillbaka så många byte som anges i nästa byte
00000110 ... vi hoppar 6 byte tillbaka till instruktion #3
10000011 betyder att vi vill visa tecknet vars kod skrivs i nästa byte
00100001 ... skylten "!" matchar bara den här koden

Som ett resultat av utförandet av en sådan sekvens av instruktioner kommer panikfrasen "AAAA!" att visas på skärmen.

Ganska mycket kod för ett så enkelt syfte! Det är klart att om alla program skrevs så här, direkt, skulle utvecklingen av komplexa produkter ta århundraden.

Varför behövs programmeringsspråk

För att förenkla uppgiften en miljon gånger uppfanns programmeringsspråk. Det finns många av dem, och även av dem som ständigt hörs kan du snabbt återkalla ett dussin eller två: Assembler, C, C ++, C #, Java, Python, Ruby, PHP, Scala, JavaScript.

Program på dessa språk är mycket närmare människans naturliga språk. Och därför är de lättare, snabbare och trevligare att skriva, och viktigast av allt, de är mycket enklare. läsa: till dig direkt efter att du skrivit, dig om ett år eller din kollega.

Problemet är att sådana språk inte är förståeliga för processorn, och innan han ger honom det här programmet behöver han det. sammanställa: översätt från naturligt språk till samma instruktioner i form av nollor och ettor. Detta görs av program som kallas kompilatorer... Varje språk, om det inte förblir på fantasinivån, har sin egen kompilator. För populära språk finns det oftast flera att välja på, från olika tillverkare och för olika plattformar. De flesta av dem är fritt tillgängliga på Internet.

Så det finns program på ett språk som är ganska förståeligt för människor: de kallas också "källkod", helt enkelt "kod" eller "källkod". De skrivs till enkla textfiler med några en textredigerare, åtminstone med hjälp av anteckningsblock. Sedan förvandlas de till uppsättningar av nollor och ettor som är förståeliga för processorn med hjälp av kompilatorn: kompilatorn tar emot källkoden som indata, och vid utgången skapar den binär körbar, den som processorn förstår.

Binära filer är inte läsbara och är i allmänhet endast avsedda att köras av processorn. De kan vara av olika typer, beroende på vad de tas emot för: .exe är program för Windows, .hex är program för exekvering av en mikrokontroller som Arduino osv.

Varför finns det så många programmeringsspråk och vad är skillnaden?

    Varför? För det finns många människor och företag på jorden, och många trodde att de kunde göra det bästa: bekvämare, tydligare, snabbare, smalare.

    Vad är skillnaden: Olika språk har olika balans mellan skrivhastighet, läsförståelse och exekveringshastighet.

Låt oss titta på samma program som visar en låt om 99 flaskor öl på skärmen på olika programmeringsspråk.

Till exempel Perl-språket. Snabbt skrivet; det är omöjligt att förstå vad programmeraren menade; utförs långsamt:

sub b ($ n = 99 - @_ - $ _ || Nej; "$ n flaska". "s" x !! - $ n. "av öl"); $ w = "på väggen"; die karta (b. "$ w, \ n "... b. ", \ n Ta ner en, skicka runt den, \ n "... b (0). "$ w. \ n \ n "} 0 .. 98

Java språk. Det tar relativt lång tid; lätt att läsa; går ganska snabbt, men tar upp mycket minne:

klass flaskor (public static void main ( Sträng args) ( Sträng s = "s"; för (int öl = 99; öl> - 1;) ( Systemet.out .print (öl + "flaska" + s + "öl på väggen,"); Systemet.out .println (öl + "flaska" + s + "av öl,"); if (öl == 0) ( Systemet.out .print ( "Gå till affären, köp lite mer") ; Systemet.out .println ( "99 flaskor öl på väggen. \ N") ; Systemet.exit (0); ) annat Systemet.out .print ( "Ta ner en, skicka runt den"); s = (- öl == 1)? "": "s"; Systemet.out .println (öl + "flaska" + s + "av öl på väggen. \ n") ; } } }

Assembler språk. Det tar lång tid; svårt att läsa; väldigt snabbt:

kodsegment anta cs: kod, ds: kod org 100h start:; Huvudslinga mov cx, 99; flaskor till att börja med loopstart: ring printcx; skriv ut numret mov dx, offset line1 ; skriv ut resten av den första raden mov ah, 9; MS-DOS utskriftssträngsrutin int 21h call printcx; skriv ut numret mov dx, offset line2_3 ; resten av 2:a och 3:e raden mov ah, 9 int 21h dec cx; ta ett nedsamtal printcx; skriv ut numret mov dx, offset line4 ; skriv ut resten av den fjärde raden mov ah, 9 int 21h cmp cx, 0; Slut på öl? jne loopstart; om inte, fortsätt int 20h; avsluta till MS-DOS ; subrutin för att skriva ut CX-registret i decimal printcx: mov di, offset numbufferend ; fyll i bufferten från slutet mov yxa, cx ; sätt talet i AX så att vi kan dela det printcxloop: mov dx, 0 ; räkneord av hög ordning - alltid 0 mov bx, 10 div bx ; dividera DX: AX med 10. AX = kvot, DX = resten lägg till dl, "0" ; konvertera resten till ett ASCII-tecken mov [ds: di], dl; lägg den i utskriftsbufferten cmp axe, 0; Finns det fler siffror att räkna ut? je printcxend; om inte, avsluta dec di ; sätt nästa siffra före den nuvarande jmp printcxloop; loop printcxend: mov dx, di ; skriv ut, med början på den sista beräknade siffran mov ah, 9 int 21h ret; Datalinje 1 db "flaskor öl på väggen", 13, 10, "$" line2_3 db "ölflaskor", 13, 10, "Ta ner en, skicka runt den", 13, 10, "$" rad4 db "flaskor öl på väggen.", 13, 10, 13, 10, "$" numbuffer db 0, 0, 0, 0, 0 numbufferend db 0, "$" kod slutar slut start

Vad är Arduino programmerad på?

Om vi ​​pratar om Arduino eller mikrokontroller från Atmel, på vilket språk kan du skriva program för dem? Teoretiskt svar: någon. Men i praktiken är valet begränsat till Assembler, C och C++. Detta beror på att de har mycket begränsade resurser jämfört med en stationär dator. Kilobyte minne, inte gigabyte. Megahertz på processorn, inte gigahertz. Detta är ett pris att betala för att vara billig och energieffektiv.

Därför behöver du ett språk som kan kompilera och köra effektivt. Det vill säga att omvandlas till samma nollor och ettor från instruktioner så optimalt som möjligt, utan att spendera dyrbara instruktioner och minne i det tomma utrymmet. Dessa språk är precis så effektiva. Genom att använda dem även inom de snäva gränserna för mikrokontrollerns resurser kan du skriva funktionsrika program som körs snabbt.

Assembler, som du har sett, kan inte kallas den enklaste och mest eleganta och som ett resultat är flaggskeppsspråket för Arduino C / C ++.

Många källor säger att Arduino är programmerad i Arduino, Processing, Wiring. Detta är inte helt korrekt påstående. Arduino är programmerad i C/C++, och vad de kallar dessa ord är bara ett praktiskt "bodykit" som låter dig lösa många vanliga uppgifter utan att uppfinna hjulet på nytt varje gång.

Varför nämns C och C++ i samma mening? C ++ är en överbyggnad över C. Alla C-program är ett giltigt C ++-program, men inte vice versa. Du kan använda båda. Oftare än inte tänker du inte ens på vad du använder när du löser det aktuella problemet.

Mer till saken: det första programmet

Låt oss skriva det första Arduino-programmet och få styrelsen att köra. Du måste skapa en textfil med källkoden, kompilera den och skicka den resulterande binära filen till mikrokontrollern på kortet.

Låt oss gå i ordning. Låt oss skriva källkoden. Du kan skriva det i anteckningsblock eller någon annan redigerare. Men för att göra arbetet smidigt finns det så kallade utvecklingsmiljöer (IDE: Integrated Development Environment). De tillhandahåller en textredigerare med markering och tips, en kompilator som startas med en knapp och många andra glädjeämnen i form av ett enda verktyg. För Arduino kallas denna miljö för Arduino IDE. Den är gratis tillgänglig för nedladdning på den officiella webbplatsen.

Installera miljön och kör den. I fönstret som visas ser du: det mesta av utrymmet ges till textredigeraren. Koden skrivs in i den. Koden i Arduino-världen kallas också skiss.

Så låt oss skriva en skiss som inte gör någonting. Det vill säga minsta möjliga korrekta C++-program som slösar tid.

void inställning () () void loop () ()

Vi kommer inte att fokusera på innebörden av den skrivna koden för tillfället. Låt oss kompilera det. För att göra detta, i Arduino IDE, finns det en "Verifiera"-knapp i verktygsfältet. Klicka på den och om några sekunder är den binära filen klar. Detta kommer att meddelas av inskriptionen "Klart att kompilera" under textredigeraren.

Som ett resultat fick vi en binär fil med tillägget .hex, som kan köras av mikrokontrollern.

Nu måste du lägga in den i Arduino. Denna process kallas uppladdning, blinkning eller uppladdning. För att ladda upp till Arduino IDE finns det en Ladda upp-knapp i verktygsfältet. Anslut Arduino till din dator via en USB-kabel, klicka på "Ladda upp" och om några ögonblick kommer programmet att laddas upp till Arduino. I det här fallet kommer programmet som fanns där tidigare att raderas.

Den framgångsrika firmware kommer att meddelas med inskriptionen "Klar med uppladdning".

Om du stöter på ett fel när du försöker ladda ner, se till att:

    I menyn Verktyg → Board väljs den port som Arduino faktiskt är ansluten till. Du kan sätta i och koppla ur USB-kabeln för att ta reda på vilken port som kommer och går: det här är Arduino.

    Du har installerat de nödvändiga drivrutinerna för Arduino. Detta krävs för Windows, krävs inte för Linux, och behövs bara för äldre kort före Arduino Duemilanove på MacOS.

Grattis! Du har gått hela vägen från ett tomt blad till ett fungerande program i Arduino. Även om hon inte gör någonting är det redan en framgång.