Image
19.5.2015 0 Comments

ARDUINO - Sériová komunikácia Arduina s PC /4.časť

Späť na úvod >> Späť na programovanie >> Späť na seriál

Vpredchádzajúcej časti sme si vysvetlili, zakých dôležitých častí sa skladá náš prvý program BLINK. Zároveň sme tento program preložili anahrali do kitu Arduina. Aza domácu úlohu sme mali vyskúšať rôzne zmeny parametrov príkazu delay.

Nová verzia 1.6.3

Prv ako sa začneme venovať dnešnej téme, vás chcem upozorniť na novú verziu prostredia IDE Arduina sčíslom 1.6.2. Tá obsahuje dve novinky. Prvá – tá podstatnejšia – je farebné zvýraznenie štruktúr programovacieho jazyka. Kľúčové slová sú zelené, premenné modrozelené, ostatné funkcie oranžové ahodnoty čierne. To veľmi sprehľadňuje zdrojový kód ahneď vidíme, či sme kľúčové slovo alebo funkciu napísali správne.

Poznámka:

Treba pripomenúť, že programovací jazyk C aC++, ateda aj Wiring je tzv. case-sensitive, teda rozlišujúci malé aveľké písmená. Preto nie je jedno, či napíšeme slovo Serial alebo serial.

Druhou je nový Library Manager (správca knižníc) od firmy Adafruit. Knižnice sú vpodstate programové moduly, ktoré obsahujú rozšírenie príkazov na prácu sexternými zariadeniami (displeje, karty SD, Wi-Fi apod.). Knižniciam sa budeme venovať neskôr.

Toľko novinky, pristúpme knašej téme.

Ahoj, svet!

Tí, ktorí majú skúsenosti sprogramovaním viných programovacích jazykoch (Pascal, Basic, Delphi ainé), že zvyčajne úplne prvý program vpríslušnom jazyku, ktorý budúci nádejný programátor vytvorí, neurobí nič iné, iba na obrazovku počítača vypíše pozdrav „Hello world“ (čiže „Ahoj, svet!“). Primikrokontroléroch a mikroprocesoroch je tento program – z historických dôvodov stále nazývaný Ahoj, svet! – nahradený blikaním LED diódy. Atak sme minule vpodstate pozdravili svet naším prvým blikajúcim programom (a ani sme otom nevedeli).

Ale Arduino dokáže viac! My pomocou Arduina Uno naozaj dokážeme na obrazovke počítača vypísať doslova ado písmena „Ahoj, svet!“. Ale ako?

Podstata komunikácie Arduina s PC

My už vieme, že kit Arduino Uno má na svojej doske integrovaný prevodník USB – serial, pomocou ktorého dokážeme do kitu nahrávať vytvorený apreložený program. Ale nielen to – cez spomínaný prevodník USB – serial dokážeme komunikovať sArduinom obidvoma smermi, teda nielen do Arduina, ale aj zArduina.

Na obrázku č. 1 je nakreslený princíp komunikácie Arduina sPC. Arduino (čiže každý kit) dokáže komunikovať pomocou sériovej linky – obdoby COM (RS-232). Mnohé kity majú sériový port už priamo integrovaný včipe mikrokontroléra Atmel. Niektoré hardvérový čip nemajú, ale môžu použiť softvérový sériový port. Tento sériový port by bolo možné priamo zapojiť do počítača, ale keďže drvivá väčšina nových počítačov už nemá vyvedený sériový port, ale iba port USB, musíme zabezpečiť prevod zo sériového portu na USB anaopak. Oto sa postará takzvaný prevodník USB – serial. Väčšina kitov vrátane Arduina Uno aNano majú tento prevodník ako súčasť dosky kitu. Tie, ktoré ho nemajú (poznáme podľa toho, že nemajú konektor USB), môžu použiť externý prevodník USB – serial za pár eur, napríklad taký, ako je na obrázku č. 2.

Na úplnosť treba povedať, že Arduino používa aj ďalšie spôsoby komunikácie, napríklad I2C, SPI ainé, ktoré využíva na komunikáciu sexternými zariadeniami, pamäťami apod., ale na komunikáciu spočítačom sa nehodia.

Keďže naše Arduino Uno prevodník má ajeho príslušný ovládač sme nainštalovali už pri inštalácii prostredia IDE, nemusíme sa onič starať apostúpime ďalej.

Zapamätáme si

Nech už máme Arduino pripojené kpočítaču priamo na sériový port COM, alebo cez prevodník USB, Arduino vždy bude zo softvérového pohľadu komunikovať po sériovej linke.

Spustíme si prostredie IDE Arduina anapíšeme si program podľa výpisu č. 1:

void setup() {
Serial.begin(9600);
}
 
void loop() {
Serial.println("Ahoj, Svet!");
delay(500);
}

Už vieme, že každý program (či skica) vArduine sa skladá zdvoch povinných častí: void setup() avoid loop(). Príkaz Serial.begin vsekcii setup() značí, že chceme pracovať so sériovou linkou, parameter v zátvorkách značí prenosovú rýchlosť 9600 baudov (bitov za sekundu).

Obrázok 3.bmp

Obrázok 4.bmp

Vslučke loop() sa nachádzajú dva príkazy. Príkaz Serial.println zabezpečí výpis po sériovej linke. Čo sa má vypísať, to je parametrom vzátvorkách. My chceme vypísať text Ahoj, Svet!, akeďže je to skutočný text, ten musí byť uvedený vúvodzovkách. Koncovka ln vpríkaze println značí, že po výpise textu sa kurzor obrazovky presunie na začiatok nového riadka.

Druhý príkaz delay už dobre poznáme – hovorí, že sa mikrokontrolér zastaví na čas stanovený vzátvorkách, teda vnašom prípade na 500 milisekúnd, čo je pol sekundy.

Preložme tento program anahrajme do Arduina. Ak sme neurobili chybu, na konci celého procesu by samalo objaviť hlásenie Done uploading.

Ale čo teraz? Kde je očakávaný pozdrav? Teraz musíme spustiť Serial Monitor poklepaním na ikonku lupy vpravom hornom rohu prostredia IDE Arduina. Odteraz by sa vpravidelných polsekundových intervaloch mal objaviť výpis textu Ahoj, Svet! tak ako na obrázku č. 3. Ak sa to nedeje, skontrolujte apozmeňte parameter prenosovej rýchlosti vpravom dolnom rohu na hodnotu 9600 baudov.

Ale my nie sme takí pyšní anevyžadujeme, aby nás Arduino zdravilo dookola. Nám bude stačiť, ak nás pozdraví iba raz. Ale ako na to? Vieme, že sekcia void loop() sa vykonáva cyklicky. Preto aj výpis pozdravu sa cyklicky opakuje. Presuňme teraz príkaz výpisu Serial.println zo sekcie loop() do sekcie setup(), ako je to na výpise č. 2:

void setup() {
Serial.begin(9600);
Serial.println("Ahoj, Svet!");
}
 
void loop() {
}

Sekciu void loop() musíme zachovať, aj keď je teraz prázdna.

Program skompilujeme (preložíme) anahráme do kitu Arduina. Znova spustíme Serial Monitor. Tentoraz výpis uvidíme iba raz, ako je to na obrázku č. 4.

Zapamätáme si

Príkazy umiestnené vsekcii setup() sa vykonajú na začiatku celého programu, ale iba raz. Príkazy vsekcii loop() sa vykonávajú cyklicky. Ak teda nechceme príkazy vykonávať opakovane, presunieme ich do sekcie setup() asekciu loop() ponecháme prázdnu.

Za úlohu si v uvedených príkladoch programov pozmeňte text, zameňte príkaz serial.println za serial.print apozmeňte aj rýchlosť prenosu (nezabudnime nastaviť správnu rýchlosť aj vokne Serial Monitora). Sledujme, ako sa zmenilo správanie programu.

Takto sme veľmi jednoducho pripli kArduinu monitor počítača abudeme to vnašom kurze často používať, keďže sa budeme učiť rôzne príkazy. Nabudúce si ukážeme, ako môžeme zpočítača zadávať údaje ahodnoty do Arduina avýsledky zobrazovať na obrazovke počítača.

 

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Čo robiť keď firme chýba IT expert?

08.12.2016 10:36

IT projekty majú z hľadiska nárokov na kapacity špecialistov premenlivý charakter a v určitých fázach často treba posilniť kapacity IT oddelení externými odborníkmi. Riešením je IT ousourcing, ako fo ...

Ako na to

Ako funguje sandbox?

08.12.2016 15:36

Každá aplikácia môže pre operačný systém počítača či mobilného zariadenia predstavovať potenciálnu hrozbu, a to aj v prípade, ak neobsahuje žiadne bloky škodlivého kódu. Murphyho zákony neúprosne defi ...

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá