{"id":39389,"date":"2019-10-31T22:31:46","date_gmt":"2019-10-31T19:31:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-v-arduino-sozdavat-programmy-dlya-windows\/"},"modified":"2019-10-31T22:31:46","modified_gmt":"2019-10-31T19:31:46","slug":"kak-v-arduino-sozdavat-programmy-dlya-windows","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","title":{"rendered":"Jak v Arduino vytv\u00e1\u0159et programy pro Windows","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/3cc15ea6c8304f594ed7d78dace45b8f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednou m\u011b napadla \u0161\u00edlen\u00e1 my\u0161lenka shrom\u00e1\u017edit <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/428513\/\">500 laserov\u00fdch ukazatel\u016f na jedno m\u00edsto<\/a><\/noindex>. Str\u00e1vil jsem t\u00edm hodn\u011b \u010dasu a poda\u0159ilo se mi to. Vypadalo to skv\u011ble a bylo to k ni\u010demu, ale l\u00edbilo se mi to. P\u0159ed p\u016fl rokem m\u011b napadla dal\u0161\u00ed \u0161\u00edlen\u00e1 my\u0161lenka. Tentokr\u00e1t nebyla zdaleka tak ok\u00e1zal\u00e1, ale byla mnohem u\u017eite\u010dn\u011bj\u0161\u00ed. Op\u011bt jsem na to str\u00e1vil hodn\u011b \u010dasu. A v tomto \u010dl\u00e1nku p\u0159edstav\u00edm beta verzi sv\u00e9 druh\u00e9 \u0161\u00edlen\u00e9 my\u0161lenky.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nProjekt jsem nazval Nanonyam a dokonce jsem mu vymyslel logo (kreslil jsem cel\u00fdch 5 minut).<\/p>\n<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/2c91fb239bbf26a83bda83f572f2ac98.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPro ty, kte\u0159\u00ed mysl\u00ed v term\u00ednech Arduino, lze \u0159\u00edci, \u017ee Nanonyam je virtu\u00e1ln\u00ed Arduino shield pro ovl\u00e1d\u00e1n\u00ed Windows.<\/p>\n<p>Jin\u00fdmi slovy, Nanonyam je virtu\u00e1ln\u00ed stroj, ve kter\u00e9m se jako bajtk\u00f3d pou\u017e\u00edv\u00e1 firmware pro mikro\u0159adi\u010d AVR (doporu\u010duje se ATMEGA2560). Uvnit\u0159 tohoto virtu\u00e1ln\u00edho stroje je simul\u00e1tor j\u00e1dra AVR, ale m\u00edsto perifern\u00edch za\u0159\u00edzen\u00ed, kter\u00e1 se nach\u00e1zej\u00ed v adresn\u00edm rozsahu SRAM od 0x0060 do 0x01FF, je zde speci\u00e1ln\u00ed rozhran\u00ed pro virtu\u00e1ln\u00ed funkce (v\u010detn\u011b funkc\u00ed Windows API). A tady je velmi d\u016fle\u017eit\u00e9 hned na za\u010d\u00e1tku pochopit: k\u00f3d pro Nanonyam by nem\u011bl m\u00edt \u017e\u00e1dn\u00e9 odkazy na uveden\u00fd rozsah pam\u011bti, aby n\u00e1hodou nezavolal t\u0159eba funkci pro smaz\u00e1n\u00ed soubor\u016f nebo form\u00e1tov\u00e1n\u00ed disku. Zbytek rozsahu pam\u011bti SRAM od 0x0200 do 0xFFFF (to je v\u00edce, ne\u017e m\u00e1 skute\u010dn\u00fd mikro\u0159adi\u010d) je u\u017eivateli k dispozici pro jak\u00e9koli \u00fa\u010dely. Hned upozor\u0148uji, \u017ee existuje speci\u00e1ln\u00ed ochrana proti n\u00e1hodn\u00e9mu spu\u0161t\u011bn\u00ed firmwaru skute\u010dn\u00e9ho mikro\u0159adi\u010de (nebo firmwaru z jin\u00e9 architektury): ne\u017e aktivujete \u201enebezpe\u010dn\u00e9\u201c funkce, je t\u0159eba zavolat speci\u00e1ln\u00ed chytrou virtu\u00e1ln\u00ed funkci. Existuj\u00ed tak\u00e9 dal\u0161\u00ed prvky ochrany.<\/p>\n<p>Pro vytv\u00e1\u0159en\u00ed program\u016f pro Nanonyam je t\u0159eba pou\u017e\u00edvat speci\u00e1ln\u00ed knihovny, ve kter\u00fdch jsou realizov\u00e1ny v\u0161echny dostupn\u00e9 virtu\u00e1ln\u00ed funkce. St\u00e1hn\u011bte si virtu\u00e1ln\u00ed stroj Nanonyam a knihovny k n\u011bmu <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/downloads.html\">m\u016f\u017eete zde<\/a><\/noindex>. A nyn\u00ed <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">str\u00e1nka popisuj\u00edc\u00ed virtu\u00e1ln\u00ed funkce<\/a><\/noindex>. A ano, moje str\u00e1nka je velmi primitivn\u00ed a nen\u00ed p\u0159izp\u016fsobena pro mobiln\u00ed za\u0159\u00edzen\u00ed.<\/p>\n<p><b>Program Nanonyam je bezplatn\u00fd pro dom\u00e1c\u00ed a komer\u010dn\u00ed pou\u017eit\u00ed. Program Nanonyam se poskytuje na z\u00e1klad\u011b \u201ejak je\u201c. Zdrojov\u00fd k\u00f3d nen\u00ed poskytov\u00e1n.<\/b><\/p>\n<p>Program je moment\u00e1ln\u011b v testovac\u00ed f\u00e1zi. Bylo implementov\u00e1no asi 200 virtu\u00e1ln\u00edch funkc\u00ed, kter\u00e9 umo\u017e\u0148uj\u00ed vytv\u00e1\u0159et jednoduch\u00e9 programy pro Windows.<br \/>\nJe z\u0159ejm\u00e9, \u017ee v takov\u00e9 virtu\u00e1ln\u00ed ma\u0161in\u011b nen\u00ed mo\u017en\u00e9 vytv\u00e1\u0159et n\u011bco slo\u017eit\u00e9ho, proto\u017ee pam\u011b\u0165 pro k\u00f3d \u010din\u00ed pouze 256 kB. Data lze ukl\u00e1dat do samostatn\u00fdch soubor\u016f, buffer pro grafickou \u010d\u00e1st je realizov\u00e1n extern\u011b. V\u0161echny funkce jsou zjednodu\u0161en\u00e9 a p\u0159izp\u016fsoben\u00e9 pro 8-bitovou architekturu.<\/p>\n<p>Co v\u0161echno lze v Nanonyam ud\u011blat? P\u0159i\u0161el jsem na n\u011bkolik \u00fakol\u016f.<\/p>\n<h4>Cvi\u010den\u00ed programov\u00fdch blok\u016f<\/h4>\n<p>\nJednou jsem pot\u0159eboval vyvinout slo\u017eit\u00e9 menu pro grafick\u00fd displej 128\u00d764 bod\u016f. Opravu se mi necht\u011blo neust\u00e1le nahr\u00e1vat firmware do skute\u010dn\u00e9ho mikrokontrol\u00e9ru, abych vid\u011bl, jak vypadaj\u00ed pixely. Tak p\u0159i\u0161la my\u0161lenka na Nanonyam. Na obr\u00e1zku n\u00ed\u017ee je zobrazen\u00ed z re\u00e1ln\u00e9ho OLED displeje jednoho z polo\u017eek toho menu. Nyn\u00ed mohu pracovat na jeho n\u00e1vrhu bez skute\u010dn\u00e9ho za\u0159\u00edzen\u00ed.<\/p>\n<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/1564f1cd12a966743a3f70ebfb592491.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNanonyam (ve sv\u00e9 kone\u010dn\u00e9 podob\u011b) je dobr\u00fd n\u00e1stroj pro procvi\u010dov\u00e1n\u00ed programov\u00fdch blok\u016f pro mikro\u0159adi\u010de, proto\u017ee obsahuje funkce pro pr\u00e1ci s grafikou (lze simulovat displeje a indik\u00e1tory), se soubory (lze vytv\u00e1\u0159et logy, na\u010d\u00edtat testovac\u00ed data), s kl\u00e1vesnic\u00ed (lze sou\u010dasn\u011b \u010d\u00edst a\u017e 10 tla\u010d\u00edtek) a s COM porty (toto je samostatn\u00e1 sekce).<\/p>\n<h4>Vytv\u00e1\u0159en\u00ed rychl\u00fdch program\u016f<\/h4>\n<p>\nNap\u0159\u00edklad pot\u0159ebujete rychle zpracovat 100500 textov\u00fdch soubor\u016f. Ka\u017ed\u00fd je t\u0159eba otev\u0159\u00edt, trochu zm\u011bnit podle n\u011bjak\u00e9ho jednodu\u0161\u0161\u00edho algoritmu, ulo\u017eit a zav\u0159\u00edt. Pokud jste mistr Pythonu, gratuluji, m\u00e1te v\u0161echno, co pot\u0159ebujete. Ale pokud jste zap\u00e1len\u00fd Arduino program\u00e1tor (a takov\u00fdch je dost), Nanonyam v\u00e1m pom\u016f\u017ee vy\u0159e\u0161it tento \u00fakol. To je druh\u00fd c\u00edl Nanonyam: p\u0159idat spoustu u\u017eite\u010dn\u00fdch funkc\u00ed, jako je zpracov\u00e1n\u00ed textu, vytv\u00e1\u0159en\u00ed sn\u00edmk\u016f obrazovky nebo simulace stisknut\u00ed kl\u00e1ves v syst\u00e9mu (to v\u0161e je mimochodem ji\u017e k dispozici), a tak\u00e9 mnoho dal\u0161\u00edch funkc\u00ed pro \u0159e\u0161en\u00ed rutinn\u00edch \u00faloh.<\/p>\n<h4>Testov\u00e1n\u00ed za\u0159\u00edzen\u00ed p\u0159es COM port<\/h4>\n<p>\nNanonyam m\u016f\u017ee fungovat jako termin\u00e1l, kter\u00fd pracuje podle va\u0161eho algoritmu. M\u016f\u017eete vytvo\u0159it mal\u00e9 menu pro ovl\u00e1d\u00e1n\u00ed za\u0159\u00edzen\u00ed a zobrazovat data z\u00edskan\u00e1 z portu. Je mo\u017en\u00e9 ukl\u00e1dat a \u010d\u00edst data z soubor\u016f pro anal\u00fdzu. Je to u\u017eite\u010dn\u00fd n\u00e1stroj pro jednoduch\u00e9 lad\u011bn\u00ed a kalibraci za\u0159\u00edzen\u00ed, stejn\u011b jako pro vytv\u00e1\u0159en\u00ed jednoduch\u00fdch virtu\u00e1ln\u00edch ovl\u00e1dac\u00edch panel\u016f. Pro studenty a mlad\u00e9 v\u011bdce m\u016f\u017ee b\u00fdt tento projekt velmi u\u017eite\u010dn\u00fd.<\/p>\n<h4>V\u00fduka programov\u00e1n\u00ed<\/h4>\n<p>\nNicm\u00e9n\u011b, jako ve v\u0161ech projektech Arduino, hlavn\u00ed u\u017eite\u010dnost Nanonyam spo\u010d\u00edv\u00e1 v jednoduchosti funkc\u00ed, rozhran\u00ed a nahr\u00e1va\u010de. Proto by tento projekt m\u011bl b\u00fdt zaj\u00edmav\u00fd pro za\u010d\u00ednaj\u00edc\u00ed program\u00e1tory a ty, kte\u0159\u00ed se spokoj\u00ed s \u00farovn\u00ed Arduina. Mimochodem, s\u00e1m jsem dosud detailn\u011b nezkoumal Arduina, proto\u017ee jsem v\u017edy pou\u017e\u00edval WinAVR nebo AVR Studio, a za\u010d\u00ednal jsem s assemblerem. Proto bude p\u0159\u00edklad programu n\u00ed\u017ee trochu nespr\u00e1vn\u00fd, ale zcela funk\u010dn\u00ed.<\/p>\n<h4>Ahoj, Habr!<\/h4>\n<p>\nNastal \u010das se sezn\u00e1mit s n\u011bkter\u00fdmi funkcemi Nanonyam a napsat jednoduch\u00fd program. Budeme ps\u00e1t v Arduinu, ale ne tak, jak je obvykl\u00e9, ale tak, jak to te\u010f um\u00edm (u\u017e jsem \u0159\u00edkal, \u017ee jsem zat\u00edm je\u0161t\u011b \u00fapln\u011b nepochopil toto prost\u0159ed\u00ed). Nejd\u0159\u00edve vytvo\u0159\u00edme nov\u00fd sket\u010d a vybereme desku Mega2560.<\/p>\n<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/edfb326204fea718e5238b0a6a32ed89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUlo\u017e\u00edme sket\u010d do souboru a vedle zkop\u00edrujeme <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/downloads.html\">knihovnu Nanonyam<\/a><\/noindex>. Bylo by spr\u00e1vn\u00e9 zahrnout hlavi\u010dky knihoven, ale nev\u00edm, jak v Arduinu nastavovat kompilaci jednotliv\u00fdch soubor\u016f, tak\u017ee prozat\u00edm zahrneme knihovny p\u0159\u00edmo (a v\u0161echny najednou):<\/p>\n<pre><code class=\"plaintext\">#include &lt;stdio.h&gt;\n#include \"NanonyamnN_System_lib.c\"\n#include \"NanonyamnN_Keyboard_lib.c\"\n#include \"NanonyamnN_File_lib.c\"\n#include \"NanonyamnN_Math_lib.c\"\n#include \"NanonyamnN_Text_lib.c\"\n#include \"NanonyamnN_Graphics_lib.c\"\n#include \"NanonyamnN_RS232_lib.c\"<\/code><\/pre>\n<p>\nJe\u0161t\u011b spr\u00e1vn\u011bj\u0161\u00ed by bylo vytvo\u0159it speci\u00e1ln\u00ed modul \u201cNanonyam pro Arduino\u201d, kter\u00fd by se dal nainstalovat p\u0159\u00edmo z Arduina. Jakmile se s t\u00edm vyzn\u00e1m, ud\u011bl\u00e1m to, a zat\u00edm ukazuji podstatu pr\u00e1ce s virtu\u00e1ln\u00edm strojem. Nap\u00ed\u0161eme takov\u00fd k\u00f3d:<\/p>\n<pre><code class=\"plaintext\">\/\/\u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0440\u0438\u0441\u0443\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0432 \u043e\u043a\u043d\u0435\nvoid setup() {\n  sys_Nanonyam();\/\/\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u043c \u043a\u043e\u0434 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b\n  g_SetScreenSize(400,200);\/\/\u0417\u0430\u0434\u0430\u0451\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043f\u043b\u0435\u044f 400\u0445200 \u0442\u043e\u0447\u0435\u043a\n  sys_WindowSetText(\"Example\");\/\/\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u043a\u043d\u0430\n  g_ConfigExternalFont(0,60,1,0,0,0,\"Arial\");\/\/\u0417\u0430\u0434\u0430\u0451\u043c \u0448\u0440\u0438\u0444\u0442 Windows \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 0\n  g_SetExternalFont(0);\/\/\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0447\u0435\u0439\u043a\u0443 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 0 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430\n  g_SetBackRGB(0,0,255);\/\/\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430 \u0441\u0438\u043d\u0438\u0439\n  g_SetTextRGB(255,255,0);\/\/\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430 \u0436\u0451\u043b\u0442\u044b\u0439\n  g_ClearAll();\/\/\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u044d\u043a\u0440\u0430\u043d (\u0437\u0430\u043b\u0438\u0432\u043a\u0430 \u0446\u0432\u0435\u0442\u043e\u043c \u0444\u043e\u043d\u0430)\n  g_DrawTextCenterX(0,400,70,\"Hello, Habr!\");\/\/\u0420\u0438\u0441\u0443\u0435\u043c \u043d\u0430\u0434\u043f\u0438\u0441\u044c\n  g_Update();\/\/\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\n}\n\n\/\/\u041f\u0440\u043e\u0441\u0442\u043e \u0436\u0434\u0451\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\nvoid loop() {\n  sys_Delay(100);\/\/\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0438 \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\n}<\/code><\/pre>\n<p>\nSket\u010d s t\u00edmto programem <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nanoslavic.com\/downloads\/example002.ino\">si m\u016f\u017eete st\u00e1hnout zde<\/a><\/noindex>. Podrobn\u00e9 popisy funkc\u00ed <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">hledejte na webu<\/a><\/noindex>. Douf\u00e1m, \u017ee v tomto k\u00f3du je dost pozn\u00e1mek na pochopen\u00ed podstaty. Tady funkce <b>sys_Nanonyam()<\/b> hraj\u00ed roli \u201ehesla\u201c pro virtu\u00e1ln\u00ed stroj, kter\u00e9 odstra\u0148uje omezen\u00ed virtu\u00e1ln\u00edch funkc\u00ed. Bez t\u00e9to funkce se program uzav\u0159e po 3 sekund\u00e1ch provozu.<\/p>\n<p>Stiskneme tla\u010d\u00edtko \u201eOv\u011b\u0159it\u201c a \u017e\u00e1dn\u00e9 chyby by nem\u011bly b\u00fdt.<\/p>\n<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/ab8e13e6bf320848a30d4a997ba6bd8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNyn\u00ed je t\u0159eba z\u00edskat bin\u00e1rn\u00ed soubor (firmware). Vyberte menu \u201e<i>Sket\u010d&gt;&gt;Exportovat bin\u00e1rn\u00ed soubor (CTRL+ALT+S)<\/i>&#171;.<\/p>\n<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/3cae211bf76616e8d4cd7beb8f91c7a7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u0159itom budou do slo\u017eky se sketchem zkop\u00edrov\u00e1ny dva HEX-soubory. <b>Bereme pouze soubor bez p\u0159edpony \u201ewith_bootloader.mega\u201c.<\/b><\/p>\n<p>Existuje n\u011bkolik zp\u016fsob\u016f, jak specifikovat HEX soubor virtu\u00e1ln\u00edmu stroji Nanonyam, v\u0161echny jsou pops\u00e1ny <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">na t\u00e9to str\u00e1nce<\/a><\/noindex>. Navrhuji vytvo\u0159it vedle souboru <i>Nanonyam.exe<\/i> soubor <i>Nanonyam.path<\/i>, ve kter\u00e9m uvedeme \u00faplnou cestu k na\u0161emu HEX souboru. Pot\u00e9 m\u016f\u017eeme spustit <i>Nanonyam.exe<\/i>. Obdr\u017e\u00edme okno s na\u0161\u00edm n\u00e1pisem.<\/p>\n<p><img decoding=\"async\" alt=\"Jak v Arduino vytv\u00e1\u0159et programy pro Windows\" src=\"\/wp-content\/uploads\/2019\/10\/0bb6e712cedbd9d10d3a7202a5d1b488.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPodobn\u011b lze vytv\u00e1\u0159et programy v jin\u00fdch prost\u0159ed\u00edch, nap\u0159\u00edklad v AVR Studio nebo WinAVR.<\/p>\n<p>Na tom zat\u00edm skon\u010d\u00edme sezn\u00e1men\u00ed s Nanonyam. Hlavn\u00ed my\u0161lenka by m\u011bla b\u00fdt jasn\u00e1. <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/examples.html\">Dal\u0161\u00ed p\u0159\u00edklady jsou na webov\u00e9 str\u00e1nce<\/a><\/noindex>. Pokud bude dostatek z\u00e1jemc\u016f o vyu\u017e\u00edv\u00e1n\u00ed tohoto projektu, vytvo\u0159\u00edm v\u00edce p\u0159\u00edklad\u016f a budu pokra\u010dovat v \u201enapl\u0148ov\u00e1n\u00ed\u201c knihoven virtu\u00e1ln\u00edch funkc\u00ed. P\u0159ij\u00edm\u00e1me konkr\u00e9tn\u00ed n\u00e1pady na rozvoj projektu a zpr\u00e1vy o chyb\u00e1ch, bugu a p\u0159ehl\u00e9dnut\u00ed. Je \u017e\u00e1douc\u00ed je sm\u011b\u0159ovat na kontakty <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/contacts.html\">uveden\u00e9 na webov\u00e9 str\u00e1nce<\/a><\/noindex>. A diskuse je v\u00edt\u00e1na v koment\u00e1\u0159\u00edch.<\/p>\n<p>V\u0161em d\u011bkuji za pozornost a p\u0159\u00edjemn\u00e9 programov\u00e1n\u00ed!<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/472958\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u043d\u0435 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u0431\u0440\u0435\u0434\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u0441\u0432\u0435\u0441\u0442\u0438 500 \u043b\u0430\u0437\u0435\u0440\u043d\u044b\u0445 \u0443\u043a\u0430\u0437\u043e\u043a \u0432 \u043e\u0434\u043d\u043e \u043c\u0435\u0441\u0442\u043e. \u042f \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0441\u0434\u0435\u043b\u0430\u043b \u044d\u0442\u043e. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0437\u0440\u0435\u043b\u0438\u0449\u043d\u043e \u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u041f\u043e\u043b\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u0431\u0440\u0435\u0434\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0437\u0440\u0435\u043b\u0438\u0449\u043d\u0430\u044f, \u043d\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0435\u0435. \u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u043d\u0435\u0451 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0418 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39390,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u043d\u0435 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u0431\u0440\u0435\u0434\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0432 Arduino \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f Windows | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u043d\u0435 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u0431\u0440\u0435\u0434\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:31:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:31:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jak vytv\u00e1\u0159et programy pro Windows v Arduinu | ProHoster","description":"Jednou mi napadla bl\u00e1zniv\u00e1 my\u0161lenka.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0432 Arduino \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f Windows | ProHoster","og:description":"\u041e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u043d\u0435 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u0431\u0440\u0435\u0434\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:31:46+00:00","article:modified_time":"2019-10-31T19:31:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39389","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 01:51:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:51:26","updated":"2026-01-24 01:51:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/39389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=39389"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/39389\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/39390"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=39389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=39389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=39389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}