Arduino nyelvi hivatkozás. Arduino programozási nyelv - rugalmasság és egyszerűség. Az Arduino IDE leírása

Bevezetés

A Freeduino/Arduino be van programozva speciális nyelv programozás - C / C ++-on alapul, és lehetővé teszi bármely funkciójának használatát. Szigorúan véve külön nyelv Nincs Arduino, és nincs Arduino fordító - az írott programokat (minimális változtatásokkal) C / C ++ programmá alakítják, majd az AVR-GCC fordító fordítja le. Tehát valójában egy speciálisat használnak AVR mikrokontrollerek C/C++ változat.

Vegye ki ezeket az alternatív nyelveket egy tesztvezetésre. Ahogyan rengeteg különböző kódolási nyelv létezik, sokféle oka lehet annak, amit érdemes. Számos módja van a programozás tanulási görbéjének megkönnyítésére. Piszkolja be a kezét, és tanuljon gyorsabban a mellékprojektekkel, amelyeket bármikor elkezdhet. Lehet, hogy az egyik nyelv logikusabbá teszi az Ön számára, míg egy másik felhasználó egy teljesen más keretrendszerben boldogulhat.

Fontos, hogy megtaláld azt a nyelvet, amely beszél hozzád, és az elérni kívánt célokat. Ahelyett, hogy beírná a saját kódját, vizuálisan is elkészítheti programját ugyanazzal a funkciókészlettel, mint Ön. Te és a gyerekeid vacakolsz együtt? A végtermék nem lesz más, mint egy normál folyamattal felépített program, így ez egy nagyszerű első lépés, ha még csak most kezdi. Azok számára, akik még nem állnak készen egy programozási nyelv elsajátítására, ez egy nagyszerű módja annak, hogy megtanulják a kulcsfontosságú fogalmakat anélkül, hogy elragadnák a kódolási technikákat.

A különbség az, hogy egy egyszerű fejlesztőkörnyezetet kapunk, és egy sor alapvető könyvtárat, amelyek megkönnyítik a mikrokontroller „fedélzetén” lévő perifériák elérését.

Egyetértek, nagyon kényelmes elkezdeni dolgozni egy soros porttal 9600 bit/s sebességgel, és egy vonalban kezdeményezni a hívást:

Serial.begin(9600);

A "csupasz" C / C ++ használatakor pedig foglalkoznia kell a mikrokontroller dokumentációjával, és valami ilyesmit kell hívnia:

A vázlatok elkészítésének módja továbbra is ugyanaz a látványtervezőben, de egyértelmű, hogy ez a szoftver valamivel idősebb közönséget céloz meg. Semmi értelme annak, hogy ez a programozás egyszerűbb módja – csak eltér a megszokottól. Bár béta verzióban kínálják, és a fejlesztők elismerik, hogy még mindig sok a hiba, ez nagyon kényelmes.

Ez a mi elektronikai oktatási platformunk, és ez a miénk a legjobb választás gyors prototípuskészítéshez, de nem mindenkinek való. Alább rövid áttekintés minden fedett felület. A jövőben részletesen megvizsgáljuk. Tekintse meg a Megvalósítási és Gyorsindítási útmutatót. Tekintse meg az interfész bemutatását.

UBRR0H = ((F_CPU / 16 + 9600 / 2) / 9600 - 1) >> 8;
UBRR0L = ((F_CPU / 16 + 9600 / 2) / 9600 - 1);
sbi(UCSR0B, RXEN0);
sbi(UCSR0B, TXEN0);
sbi(UCSR0B, RXCIE0);

Itt található egy rövid áttekintés az Arduino programozás fő funkcióiról és jellemzőiről. Ha nem ismeri a C/C++ nyelvek szintaxisát, javasoljuk, hogy tekintse át a témával kapcsolatos szakirodalmakat vagy internetes forrásokat.

Másrészt az összes bemutatott példa nagyon egyszerű, és valószínűleg nem lesz nehéz megértenie forráskódés az írás saját programokat további szakirodalom olvasása nélkül is.

A programozási nyelvek általános leírása

Ezek azok az alternatívák, amelyeket ebben az oktatóanyagban tárgyalunk, de sok mást is érdemes megnézni, köztük. A jól beolajozott hajad helyett inkább az alkotásra fordíthatod az idődet! Kövesse az alábbi lépéseket a telepítéshez.


A bal oldalon vannak a "ládák", amelyek tárolják az összes lehetséges blokkot, amelyet hozzáadhat a vázlathoz. A tőle jobbra lévő üres szürke lapon rajzolja meg a vázlatot.

A teljesebb dokumentáció (angol nyelven) elérhető a projekt hivatalos honlapján - http://www.arduino.cc. Van egy fórum is, linkek további könyvtárakhoz és leírásuk.

A hivatalos weboldalon található leíráshoz hasonlóan Arduino projekt, a "port" a mikrokontroller érintkezőjére utal, kimenet a megfelelő szám alatti csatlakozóra. Ezen kívül van egy soros adatport (COM port).

Miért van szükség programozási nyelvekre?

Ha blokkot szeretne hozzáadni egy vázlathoz, egyszerűen húzza azt a tálcából az üres szürke területre. Innen további blokkokat húzhat át, és illesztheti őket a Loop vagy Customize szakaszba. Itt próbálj meg egy villogó programot csinálni. A digitális kimenetet befolyásoló telepített digitális tűblokkok a Pins tálcában találhatók.

Mi az a program, és hova kell írni

Miután sikeresen feltöltötte az első vázlatot, folytassa a játékot és fedezze fel a többi doboz tartalmát! Ez egy hatalmas időben megosztott használat nagy rajzokhoz. Ideiglenesen eltávolíthatja a kódot a vázlatból, ha kihúzza a programblokkból. Minden, ami nem kapcsolódik a fő programblokkhoz, figyelmen kívül lesz hagyva a kód fordításakor.

A program felépítése

A programban két fő függvényt kell deklarálnod: setup() és loop().

A setup() függvény egyszer kerül meghívásra a Freeduino kártya minden egyes bekapcsolása vagy alaphelyzetbe állítása után. Használja változók inicializálására, digitális portmódok beállítására stb.

A loop() függvény szekvenciálisan végrehajtja a törzsében leírt parancsokat újra és újra. Azok. a függvény lejárta után újra meghívásra kerül.

Ez nagyszerű tanulási eszköz lesz, ha a grafikus programozásról a szövegre szeretne áttérni. Ez egy nagyszerű eszköz, ha a grafikus programozási nyelvekről a szövegre szeretne ugrani. Mit értesz nyílt forráskód alatt?

A nyílt forráskódú hardver sok olyan alapelvvel és megközelítéssel rendelkezik, mint az ingyenes szoftver nyílt forráskód. Különösen úgy gondoljuk, hogy az embereknek képesnek kell lenniük a berendezéseink tanulmányozására, hogy megértsék azok működését, módosíthassák azokat, és megosszák ezeket a változtatásokat.

Vegyünk egy egyszerű példát:

void setup() // kezdeti beállítások
{
beginSerial(9600); // a soros port sebességét állítsa be 9600 bps-ra
pinMode(3, INPUT); // a 3. port beállítása adatbevitelhez
}

// A program ellenőrzi a 3. portot, hogy van-e rajta jel, és választ küld erre
// szöveges üzenetként a számítógép soros portjára
void loop() // programtörzs
{
if (digitalRead(3) == HIGH) // a 3. lekérdezési port feltétele
serialWrite("H"); // küldjön egy üzenetet "H" betű formájában a COM portra
más
serialWrite("L"); // üzenetet küldeni "L" betű formájában a COM portra
késleltetés(1000); // késleltetés 1 mp.
}

Az Arduino IDE leírása

Ez lehetővé teszi az emberek számára, hogy jobban felismerjék, mi jön közvetlenül tőlünk és mi a közösségből. Ha valami érdekeset szeretne tenni a közösség érdekében, megkérjük, hogy vitassa meg ötleteit, hogy a potenciális felhasználók javaslatokat tegyenek. Ha saját táblát hoz létre, találja ki a saját nevét! Ez lehetővé teszi az emberek számára, hogy azonosuljanak a termékeivel, és segít a márka felépítésében. Íme néhány javaslat, amelyek elmagyarázzák, melyeket tartunk ésszerűnek.

Hogyan programozható az Arduino?

Igen, a következő feltételekkel. Ez nem akadályozza meg a származékos szoftverek értékesítését vagy kereskedelmi termékekbe való beépítését. A kapott terméket előállíthatja és értékesítheti. . A pontos követelményeket minden esetben a vonatkozó engedély határozza meg.

pinMode(port, mód);

Leírás:

Beállítja a megadott portot jel be- és kimenetére.

Lehetőségek:

port – annak a portnak a száma, amelynek a módját be szeretné állítani (egész szám 0 és 13 között).

mód - INPUT (bemenet) vagy OUTPUT (kimenet).

pinMode(13, OUTPUT); //13. tű lesz a kimenet
pinMode(12, INPUT); //és a 12. a bemenet

Jegyzet:

Az analóg bemenetek digitális bemenetként/kimenetként használhatók, ha a 14 (0. analóg bemenet) és a 19. (5. analóg bemenet) közötti számokkal érik el őket.

Elég furcsa hangzású, és minden alkalommal okosnak kell éreznie magát, amikor használja. Ezt szándékosan leegyszerűsítették, hogy a dolgok a lehető legegyszerűbbek és egyértelműbbek legyenek. A kód, amit írsz: " olvasmányos személy”, azaz értelmes lesz az Ön számára, és úgy lesz megszervezve, hogy a személy kövesse. Ezt a folyamatot összeállításnak nevezik.

Az összeállítási folyamat egyszerű a felhasználó számára. Csak egy gombot kell megnyomnia. A hibaüzenet célja, hogy segítsen azonosítani, hogy mit csinálhatott rosszul – néha az üzenet nagyon egyértelmű, például "Hé, elfelejtette a pontosvesszőt", néha pedig a hibaüzenet homályos.

digitalWrite(port, érték);

Leírás:

A feszültségszintet magasra (HIGH) vagy alacsonyra (LOW) állítja a megadott porton.

Lehetőségek:

port: portszám

érték: HIGH vagy LOW

digitalWrite(13, HIGH); // állítsa a 13-as lábat "magas" állapotba

érték = digitalRead(port);

Leírás:

Értéket olvas a megadott porton

Lehetőségek:

Miért foglalkozol azzal a pontosvesszővel, amit kérdezel? Olyan ez, mint a nyelvtan az írásban. Tegyük fel, hogy például nem használtunk pontokat, amikor írtunk – az ember időt tölthet azzal, hogy kitalálja, mikor kezdődik és mikor végződik a mondat.

Vagy ha nem használunk vesszőt, hogyan tudnánk egy hirtelen szünetet közvetíteni az olvasó felé? És hadd mondjam el, volt-e valaha tanárod az angol nyelvből túlaktív piros tollal tízszer rosszabb a fordító. Ez eleinte megőrjíthet, mert nagyon természetes, hogy elfelejtjük a szintaxist. A programozási tapasztalat megszerzésével megtanulja, hogy szorgalmas legyen a nyelvtan kódolásával kapcsolatban.

port: lekérdezett portszám

Visszatérési érték: az int típusú port (HIGH vagy LOW) aktuális értékét adja vissza

int érték;
val = digitalRead(12); // lekérdezi a 12. kimenetet

Jegyzet:

Ha semmi sem csatlakozik az olvasási porthoz, akkor a digitalRead() függvény véletlenszerűen HIGH vagy LOW értéket adhat vissza.

Analóg bemeneti/kimeneti jel

Tegyük össze a kezünket, és vezessünk be néhány szintaxist. Ez jelzi a fordítónak, hogy befejezte a kódrészletet, és továbblép a következő kódrészletre. Ez teljes jóváhagyást jelent. A göndör zárójelek a függvény által végrehajtott további utasítások bezárására szolgálnak. Mindig van egy nyitott göndör zárójel és egy záró göndör zárójel. Ha elfelejted bezárni a göndör kapcsos zárójelet, a fordítónak ez nem fog tetszeni, és hibakódot fog dobni.

Ne feledje – göndör fogszabályzót nem lehet bezárni! Váltsunk egy kicsit, és beszéljünk a funkciókról. A függvények olyan kódrészletek, amelyeket olyan gyakran használnak, hogy meghatározott kulcsszavakba vannak foglalva, így könnyebben használhatja őket.

érték = analógRead(port);

Leírás:

Értéket olvas be a megadott analóg portról. A Freeduino 6 csatornát tartalmaz, egyenként 10 bites A/D konvertert. Ez azt jelenti, hogy a 0 és 5 V közötti bemeneti feszültség 0 és 1023 közötti egész számmá alakul. Az olvasási felbontás: 5 V/1024 értékek = 0,004883 V/érték (4,883 mV). Körülbelül 100 nS (0,0001 S) szükséges az analóg bemeneti érték kiolvasásához, így a maximális kiolvasási sebesség körülbelül 10 000 másodpercenként.

Amikor beírja őket, a függvény neve narancssárga lesz. Sok függvényhez argumentumok szükségesek. Az argumentum az az információ, amelyet a függvény a futása során használ. Amikor megadja ezeket az argumentumokat, a terminológiát passzívnak nevezik. A szükséges információkat átadja a funkcióknak. Nem minden függvény igényel argumentumot, de a nyitó és záró zárójelek maradnak, bár üresek.

Furcsának tűnik számodra, hogy a kód egy nagy ciklusban fut? Ez a látszólagos variáció hiánya illúzió. A legtöbb kód bizonyos várakozási feltételekkel rendelkezik, amelyek új műveleteket indítanak el. A cikluskód folyamatosan ellenőrzi a hőmérsékletet, amely a ventilátor beindulására vár.

Lehetőségek:

Visszatérési érték: 0 és 1023 közötti int értéket ad vissza, a megadott portról olvasva.

int érték;
val = analógRead(0); // érték olvasása a 0 analóg bemeneten

Jegyzet:

Az analóg portok alapértelmezés szerint definiált jelbemenetek, és a digitális portokkal ellentétben ezeket nem kell a pinMode funkció meghívásával konfigurálni.

Ezért, bár a kód ismétlődik újra és újra, nem minden kódrészlet kerül végrehajtásra a ciklus minden iterációjában. Alapok és nyisson meg három különböző vázlatot. Határozza meg a következő szintaxist és függvényeket, amelyeket a vázlatokon talál. Továbbiakat találsz hasznos információ ezen elemek mindegyikéhez. Ez egy olyan eszköz, amely leegyszerűsíti a programok létrehozását és sok részletet elrejt, de szeretném alább nézni, hogy megértsem az általában rejtett részleteket. A grafikus programozó eszközzel a kevés tapasztalattal rendelkező fejlesztők percek alatt megtervezhetik a rendszereket.

analógWrite(port, érték);

Leírás:

Analóg értéket ad ki a portra. Ez a funkció a következőkön működik: 3, 5, 6, 9, 10 és 11 Freeduino digitális porton.

Használható a LED fényerejének változtatására, a motor vezérlésére stb. Az analogWrite funkció meghívása után a megfelelő port impulzusszélesség-modulált feszültség üzemmódban fog működni mindaddig, amíg az AnaWrite funkció (vagy az ugyanazon a porton lévő digitalRead / digitalWrite funkciók) következő hívása meg nem történik.

Kötelezettség és időkorlát nélkül ezt ingyenes verzió igazán hasznos projektek létrehozására használható. A fizikai számítástechnikát többféleképpen definiálták, de a központi gondolat ugyanaz: a fizikai számítástechnika olyan szoftver fejlesztéséről szól, amely hardver és szoftver kombinációján keresztül kölcsönhatásba lép a gazdaszámítógépen kívüli világgal – ismeri a világot, így beszél. Ez a tudatosság teszi ezeket az alkalmazásokat képessé arra, hogy érzékeljék a külső eseményeket, és előre meghatározott módon reagáljanak rájuk.

Lehetőségek:

port: a lekérdezett analóg bemenet száma

érték: 0 és 255 közötti egész szám. A 0 érték 0 V feszültséget generál a megadott porton; a 255-ös érték +5 V-ot generál a megadott porton. 0 és 255 közötti értékek esetén a port gyorsan 0 és +5 V között vált – minél magasabb az érték, annál gyakrabban generál HIGH (5 V) értéket.

Ezt érzékelők és aktuátorok használatával érik el. Az érzékelők olyan elektronikus alkatrészek, amelyek leírják az alkalmazás világát. Az érzékelők működésének egyik általános módja az, hogy elektromos tulajdonságaik megváltoznak a működési feltételek változásának hatására. Például egy fotoellenállás ellenállása megváltozik, ha a rá eső fény intenzitása megváltozik. A termisztorok egy másik példa az ilyen érzékelőkre, amelyek ellenállása az üzemi hőmérséklettel változik.

A hajlító érzékelő az érzékelők másik kategóriája, ahol az ellenállás a hajlítás vagy "hajlítás" mértékével változik. Az érzékelő típusától függően a jel lehet digitális vagy analóg. A cikk utolsó része bemutatja, hogyan kell dolgozni az analóg érzékelőkkel. Másrészt az aktuátorok olyan elektronikus alkatrészek, amelyeket külső eseményre reagálnak. Például amikor besötétedik, a világításnak fel kell kapcsolnia. Így az érzékelőket és aktuátorokat további célok elérésére használják: az egyik észlel, a másik reagál.

analogWrite(9, 128);// állítsa be a 9-es érintkezőt 2,5 V-nak megfelelő értékre

Jegyzet:

Nem szükséges meghívni a pinMode függvényt, hogy a portot pin-re állítsuk az AnaWrite függvény meghívása előtt.

A jelgenerálási frekvencia körülbelül 490 Hz.

idő = millis();

Leírás:

Az ezredmásodpercek számát adja vissza, mióta a Freeduino végrehajtotta az aktuális programot. A számláló túlcsordul, és körülbelül 9 óra elteltével nullázódik.

A működtetők példái a mágnesszelepek és a szervók.

  • Elrendezés a séma testreszabásához.
  • Ellenállások: 330 Ohm, 10 kOhm ellenállások.
  • Folyamatos forgású szervo.
  • Lineáris potenciométer.
Ez a kezdőkészlet tartalmazza az összes hardvert és még sok minden mást, amelyre a cikk követéséhez szüksége van. Ha több eszközt csatlakoztat, külső tápegységet kell csatlakoztatnia.

Fontosak a vázlat összeállításához és letöltéséhez szükséges gombok. Megfelelően be kell állítania az engedélyeket a soros port eléréséhez. Lapos lista - összecsukva Lapos lista - kibontva Szálas lista - összecsukva Szálas lista - kibontva.

Visszatérési érték: unsigned long típusú értéket ad vissza

hosszú ideig aláíratlan; // az előjel nélküli hosszú típusú időváltozó deklarálása
idő = millis(); // ezredmásodpercek számának átadása

delay(time_ms);

Leírás:

Szünetelteti a programot a megadott számú ezredmásodpercig.

Lehetőségek:

time_ms – program késleltetési ideje ezredmásodpercben

késleltetés(1000); //szünet 1 másodperc

késleltetésMikromásodperc

késleltetésMikroszekundum(idő_µs);

Leírás:

A megadott számú mikroszekundumra szünetelteti a programot.

Lehetőségek:

time_µs – program késleltetési ideje mikroszekundumban

késleltetésMikroszekundum(500); //szünet 500 mikroszekundum

pulseIn(port, érték);

Leírás:

Kiolvas egy impulzust (magas vagy alacsony) egy digitális portról, és visszaadja az impulzus időtartamát mikroszekundumban.

Például, ha a "value" paraméter HIGH-ra van állítva a függvény hívásakor, akkor a pulseIn() megvárja, amíg a port magas jelszintet kap. Attól a pillanattól kezdve, hogy megérkezik, a visszaszámlálás kezdődik, amíg a port fogad alacsony szint jel. A függvény visszaadja az impulzushosszt ( magas szint) mikroszekundumban. 10 mikroszekundum és 3 perc közötti impulzusokkal működik. Vegye figyelembe, hogy ez a funkció addig nem ad eredményt, amíg impulzust nem észlel.

Lehetőségek:

port: annak a portnak a száma, amelyről az impulzust olvassuk

érték: HIGH vagy LOW impulzustípus

Visszatérési érték: az impulzus időtartamát adja vissza mikroszekundumban (int típus)

int időtartama; // az int típusú időtartam változó deklarálása
időtartam = pulseIn(csap, HIGH); // az impulzus időtartamának mérése

Soros kommunikáció

A Freeduino beépített soros vezérlővel rendelkezik, amellyel kommunikálhat a Freeduino/Arduino eszközök között vagy számítógéppel. Számítógépen a megfelelő csatlakozást egy USB COM-port képviseli.

A kommunikáció a 0-s és 1-es digitális portokon történik, ezért ezeket nem használhatja digitális I/O-hoz, ha soros adatfunkciókat használ.

Serial.begin(baud rate);

Leírás:

Beállítja a COM-port adatátviteli sebességét bit per másodpercben a soros kommunikációhoz. A számítógéppel való kommunikációhoz használja a következő szabványos sebességek valamelyikét: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 vagy 115200. Más sebességű portok megadásával is megadhat más mikrovezérlőket. és 1.

Lehetőségek:

baudráta: adatsebesség bit per másodpercben.

Serial.begin(9600); // állítsa be a sebességet 9600 bps-ra

soros.elérhető

count = serial.available();

Leírás:

A soros porton keresztül kapott bájtok a mikrokontroller pufferébe kerülnek, ahonnan a programja be tudja olvasni azokat. A függvény a pufferben felhalmozott bájtok számát adja vissza. A soros puffer legfeljebb 128 bájtot képes tárolni.

Visszatérési érték:

Egy int értéket ad vissza, a soros pufferben olvasható bájtok számát, vagy 0-t, ha semmi sem érhető el.

if (Serial.available() > 0) ( // Ha van adat a pufferben
// itt kell az adatok fogadása és feldolgozása
}

char = Serial.read();

Leírás:

Beolvassa a következő bájtot a soros pufferből.

Visszatérési érték:

A soros portról bejövő adatok első elérhető bájtja, vagy -1, ha nincs bejövő adat.

incomingByte = Serial.read(); // bájt olvasása

Leírás:

Törli a soros port bemeneti pufferét. A pufferelt adatok elvesznek, és a Serial.read() vagy a Serial.available() további hívásai értelmet kapnak a Serial.flush() hívása után kapott adatok számára.

Serial.flush(); // Törölje a puffert - kezdje el az adatok fogadását "a nulláról"

Leírás:

Adatkimenet a soros portra.

Lehetőségek:

A függvénynek több hívási formája van a kimeneti adatok típusától és formátumától függően.

A Serial.print(b, DEC) kiír egy ASCII karakterláncot, a b decimális reprezentációját.

int b = 79;

A Serial.print(b, HEX) egy ASCII karakterláncot ír ki, a b szám hexadecimális reprezentációját.

int b = 79;

A Serial.print(b, OCT) egy ASCII karakterláncot ír ki, a b szám oktális reprezentációját.

int b = 79;
serial print(b, oct); //a "117" karakterláncot adja ki a portra

A Serial.print(b, BIN) egy ASCII karakterláncot nyomtat, a b szám bináris reprezentációját.

int b = 79;
Serial.print(b, BIN); //az „1001111” karakterláncot adja ki a portra

A Serial.print(b, BYTE) a b alsó bájtját írja ki.

int b = 79;
Serial.print(b, BYTE); //kiírja a 79-es számot (egy bájt). A monitorban
//soros port kapjuk az "O" karaktert - annak
//kód: 79

Serial.print(str), ha az str egy karakterlánc vagy egy karaktertömb, bájtonként küldi el az str-t a COM-portra.

char bájtok = (79, 80, 81); //3 bájtos tömb 79,80,81 értékekkel
Serial.print("Itt a bájtjaink:"); //kiírja a "Itt a bájtjaink:" karakterláncot
Soros nyomtatás (byte); //3 karaktert ad ki 79,80,81 kóddal -
//ezek az "OPQ" karakterek

Serial.print(b) ha a b byte vagy char típusú, magát a b számot írja ki a portra.

szén = 79;
Sorozatnyomat(b); //az "O" karaktert adja ki a portnak

Serial.print(b) ha b egy egész szám, kiírja b decimális ábrázolását a portra.

int b = 79;
Sorozatnyomat(b); //a "79" karakterláncot adja ki a portra

Leírás:

A Serial.println függvény hasonló a Serial.print függvényhez, és ugyanazokkal a hívási opciókkal rendelkezik. Az egyetlen különbség az, hogy az adatok után két további karakter kerül kiadásra - egy kocsivissza (ASCII 13 vagy "\r") és egy újsor karakter (ASCII 10 vagy "\n").

Az 1. és a 2. példa ugyanazt fogja kiadni a portra:

int b = 79;
Serial.print(b, DEC); //a "79" karakterláncot adja ki a portra
Serial.print("\r\n"); //megjeleníti a "\r\n" - újsor karaktereket
Serial.print(b, HEX); //a "4F" karakterláncot adja ki a portra
Serial.print("\r\n");//kinyomtatja a "\r\n" karaktereket – újsor

int b = 79;
Serial.println(b, DEC); //a "79\r\n" karakterláncot adja ki a portra
Serial.println(b, HEX); //a "4F\r\n" karakterláncot adja ki a portra

A soros port monitorban kapunk.

Az Arduino az egyik legtöbb egyszerű módokon mester mikrokontrollerek: az "Arduino nyelv" egyszerű felületének, egyszerűségének (akár primitívségének) köszönhetően a programozási mikrokontrollerek még az iskolások számára is elérhetővé válnak. Azonban mindig vannak olyan lelkesek, akik megpróbálják javítani azt is, ami egyébként egyszerűnek tűnik. Ebben az esetben "vizuális programozásról" beszélünk, pl. grafikus környezetek, amelyek segítségével nem programokat írhatunk, hanem rajzolhatunk.
Tehát találkozunk: Scratch, ArduBloсk és FLProg - három kísérlet arra, hogy a programozást még az óvodásoknak is elérhetővé tegyük :)

Karcolás
Projekt oldal - s4a.cat/
2003-ban az MIT Media Lab kutatóinak egy csoportja Mitchell Resnick vezetésével úgy döntött, hogy közkinccsé teszik a programozási nyelvet. Ennek eredményeként 4 évvel később megjelent a Scratch - "egy környezet az iskolások programozásának tanítására".
Ebben a környezetben különféle tárgyakat hozhat létre, játszhat velük, módosíthatja megjelenésüket, mozgathatja őket a képernyőn, és interakciós formákat alakíthat ki közöttük. Ez a LEGO konstruktor elvén alapuló objektum-orientált környezet, amelyben a programokat többszínű parancskockákból állítják össze ugyanúgy, ahogy a Lego konstruktorokat többszínű kockákból.
A környezet eloroszosodott, sok orosz nyelvű utasítás, kézikönyv van hozzá. A Scratch-ben létrehozott projektek a scratch.mit.edu/ projekt weboldalon kerülnek közzétételre, amelyek mindegyike letölthető és használható. A munkakörnyezet a gyermek rendelkezésére áll fiatalon aki tud egy kicsit olvasni és egeret használni.
A környezet alapja a több csoportra osztott parancsblokkok: mozgás, megjelenés, hang, toll, vezérlés, érzékelők, operátorok, változók. A beépített "festő" lehetővé teszi a rajzolást kívánt tárgyat, és parancsblokkok (az egérrel húzni kell őket) - állítsa be a műveleti programot, beleértve a feltételes állításokés ciklusok. Természetesen a Scratchből rengeteg funkció hiányzik. igazi nyelv programozás, de elég bonyolult programok és játékok készítéséhez elég elérhető. Maga a program meglehetősen nagy adatbázissal rendelkezik készen megrajzolt állatokról, házakról, tárgyakról, stb., ezen kívül a több ezer, az interneten megjelent, felnőttek és gyerekek által készített példaprogramok bármelyike ​​használható mintaként.
2008-ban megjelent az Arduino Scratch projektje (eredetiben: Scratch For Arduino vagy S4A) - ez a Scratch olyan módosítása, amely lehetővé teszi az Arduino vezérlő egyszerű vizuális programozását, valamint új blokkokat tartalmaz az érzékelők és az érzékelők vezérléséhez. Az Arduino-hoz csatlakoztatott működtetők.
Az S4A egy s4a.cat/downloads/S4AFirmware15.ino firmware vázlat, ami az Arduino-ba van betöltve, végrehajtó eszközzé teszi, a program fut a számítógépen, az Arduino fizikailag végrehajtja, jeleket továbbítva a kártya kimeneteire. Ebben az esetben az Arduino a soros kapcsolaton keresztül kap parancsokat a Scratch-től, hogy melyik porton melyik szintre kell beállítani, és a mért szinteket továbbítja a bemenetekről a PC-re.
További részletek a projekt oldalán, vagy az Amperka videójának megtekintésével - www.youtube.com/playlist?…OzZQGDFdoRfldtqbmNU6a-PIp

ArduBlock
A projekt oldala -blog.ardublock.com/
A fejlesztők nevét és lokalizációját nem találtam, de ezt a projektet a sparkfun board fejlesztője aktívan támogatja, így IMHO ez az ő projektjük.
Ardublock az grafikus nyelv programozószoftver az Arduino számára, nem programozóknak készült és könnyen használható. A Scratchtől eltérően az ArduBloсk az Arduino IDE környezetbe van beépítve, és egy programvázlatot generál, amely betöltődik az MK-ba. Sőt, a platformra való feltöltés után a kód autonóm végrehajtásra kerül, azaz. nem igényel közvetlen vezérlést a számítógépről vezetékes vagy vezeték nélküli kommunikáción keresztül.
Az orosz nyelvű közösség körében a projekt egy lelkes labinszki tanárnak, Alekszandr Szergejevics Alikinnak köszönhetően ismert - geektimes.ru/post/258834/

FLProg
A projekt oldala - flprog.ru/
A projektet egy személy fejleszti - Sergey Glushenko. A fő ötlet az ipari vezérlőprogramozás területén használt FBD és LAD nyelvek Arduinohoz való adaptálása.

FBD (Funkcióblokk diagram)- az IEC 61131-3 szabvány grafikus programozási nyelve. A program felülről lefelé egymás után végrehajtott áramkörök listájából áll össze. A programozás során könyvtári blokkkészleteket használunk. A blokk (elem) egy szubrutin, függvény, ill funkcionális blokk(ÉS, VAGY, NEM, triggerek, időzítők, számlálók, analóg jelfeldolgozó blokkok, matematikai műveletek satöbbi.). Minden egyes lánc az egyes elemekből grafikusan összeállított kifejezés. A következő blokk a blokk kimenetéhez csatlakozik, láncot alkotva. A láncon belül a blokkok végrehajtása szigorúan a kapcsolódási sorrendben történik. Az áramköri számítás eredményét egy belső változóba írjuk, vagy a vezérlő kimenetére tápláljuk.

Létradiagram (LD, LAD, RKS)- a relé (létra) logika nyelve. A nyelv szintaxisa kényelmes a relétechnológián készült logikai áramkörök helyettesítésére. Ipari üzemekben dolgozó automatizálási mérnökök számára készült. Vizuális felületet biztosít a vezérlő logikájához, amely nemcsak magát a programozási és üzembe helyezési feladatokat könnyíti meg, hanem gyors keresés meghibásodások a vezérlőhöz csatlakoztatott berendezésben. A létralogikai program vizuális és intuitív grafikus felülettel rendelkezik villamosmérnökök számára, amely a logikai műveleteket zárt és nyitott érintkezőkkel rendelkező elektromos áramkörként jeleníti meg. Az áram áramlása vagy hiánya ebben az áramkörben megfelel az eredménynek logikai működés(igaz, ha áramlik; hamis, ha nem folyik áram). A nyelv fő elemei az érintkezők, amelyek képletesen egy relé- vagy gombérintkezőpárhoz hasonlíthatók. Az érintkezőpárt egy logikai változóval azonosítjuk, és ennek a párnak az állapotát a változó értékével azonosítjuk. Megkülönböztetjük az alaphelyzetben zárt és az alaphelyzetben nyitott érintkezőelemeket, amelyek az elektromos áramkörök alaphelyzetben zárt és alaphelyzetben nyitott nyomógombjaihoz hasonlíthatók.
Az FLProg munkájának eredménye a végleges kód, amit be lehet tölteni az MK-ba.

Ezek nem mindegyik projekt, amely lehetővé teszi a programozás vizuális módjának megvalósítását. Vannak mások is – talán jobbak és progresszívebbek, de kevésbé ismertek.