{"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\/ro\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","title":{"rendered":"Cum s\u0103 creezi programe pentru Windows pe Arduino","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/3cc15ea6c8304f594ed7d78dace45b8f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOdat\u0103, mi-a venit \u00een cap o idee absurd\u0103 de a aduna <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/428513\/\">500 de lasere \u00eentr-un singur loc<\/a><\/noindex>. Am investit mult timp \u0219i am realizat-o. A ie\u0219it spectaculos \u0219i inutil, dar mi-a pl\u0103cut. Acum \u0219ase luni, mi-a venit o alt\u0103 idee absurd\u0103. De data aceasta, nu a fost deloc vizual\u0103, dar mult mai util\u0103. Am investit, de asemenea, mult timp \u00een ea. \u00cen acest articol, v\u0103 prezint versiunea beta a celei de-a doua idei absurde.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nProiectul l-am numit Nanonyam \u0219i chiar i-am creat un logo (am desenat timp de cinci minute).<\/p>\n<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/2c91fb239bbf26a83bda83f572f2ac98.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPentru cei care g\u00e2ndesc \u00een termeni de Arduino, se poate spune c\u0103 Nanonyam este un scut virtual Arduino pentru controlul Windows.<\/p>\n<p>Cu alte cuvinte, Nanonyam este o ma\u0219in\u0103 virtual\u0103, \u00een care codul de byte folosit este un firmware pentru microcontrolerul AVR (se recomand\u0103 ATMEGA2560). \u00cen interiorul acestei ma\u0219ini virtuale se afl\u0103 un simulator de nucleu AVR, dar \u00een loc de perifericele care se afl\u0103 la adresele SRAM de la 0x0060 la 0x01FF, exist\u0103 o interfa\u021b\u0103 special\u0103 pentru func\u021biile virtuale (inclusiv func\u021biile Windows API). \u0218i aici este foarte important s\u0103 \u00een\u021belegem de la \u00eenceput: codul pentru Nanonyam nu trebuie s\u0103 aib\u0103 nicio referin\u021b\u0103 la intervalul de memorie specificat, pentru a nu activa accidental, de exemplu, func\u021bia de \u0219tergere a fi\u0219ierelor sau de formatare a discului. Restul intervalului de memorie SRAM de la 0x0200 la 0xFFFF (care este mai mult dec\u00e2t \u00eentr-un microcontroler real) este disponibil utilizatorului pentru orice scop. Pentru a preveni activarea accidental\u0103 a firmware-ului unui microcontroler real (sau al unui firmware de la o alt\u0103 arhitectur\u0103), exist\u0103 o protec\u021bie special\u0103: \u00eenainte de a activa func\u021biile \u201epericuloase\u201d, trebuie s\u0103 apel\u0103m o func\u021bie virtual\u0103 special\u0103. Exist\u0103 \u0219i unele alte elemente de protec\u021bie.<\/p>\n<p>Pentru a crea programe pentru Nanonyam, trebuie s\u0103 folosi\u021bi biblioteci speciale, \u00een care sunt implementate toate func\u021biile virtuale disponibile la momentul actual. Pute\u021bi desc\u0103rca ma\u0219ina virtual\u0103 Nanonyam \u0219i bibliotecile acesteia <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/downloads.html\">aici<\/a><\/noindex>. Iar acum <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">pagina de descriere a func\u021biilor virtuale<\/a><\/noindex>. \u0218i da, site-ul meu este foarte primitiv \u0219i nu este adaptat pentru dispozitive mobile.<\/p>\n<p><b>Programul Nanonyam este gratuit pentru utilizare acas\u0103 \u0219i comercial. Programul Nanonyam este oferit \u00een condi\u021biile \u201ea\u0219a cum este\u201d. Codul surs\u0103 nu este disponibil.<\/b><\/p>\n<p>\u00cen prezent, programul se afl\u0103 \u00een stadiul de testare. Au fost implementate aproximativ 200 de func\u021bii virtuale, care permit crearea de programe simple pentru Windows.<br \/>\nEste evident c\u0103 nu se pot crea lucruri complexe \u00een o astfel de ma\u0219in\u0103 virtual\u0103, deoarece memoria pentru cod este de doar 256 kB. Datele pot fi stocate \u00een fi\u0219iere separate, iar bufferul pentru partea grafic\u0103 este implementat extern. Toate func\u021biile sunt simplificate \u0219i adaptate pentru arhitectura de 8 bi\u021bi.<\/p>\n<p>Ce se poate face \u00een Nanonyam? Am venit cu c\u00e2teva sarcini.<\/p>\n<h4>Exersarea blocurilor de programare<\/h4>\n<p>\nOdat\u0103, am avut nevoie s\u0103 dezvolt un meniu complex pentru un afi\u0219aj grafic de 128&#215;64 pixeli. Nu-mi doream s\u0103 \u00eencarc constant firmware-ul pe microcontrolerul real pentru a vedea cum arat\u0103 pixelii. A\u0219a a luat na\u0219tere ideea Nanonyam. \u00cen imaginea de mai jos este un screenshot de pe un afi\u0219aj OLED real al uneia dintre op\u021biunile acelui meniu. Acum pot lucra la el f\u0103r\u0103 un dispozitiv real.<\/p>\n<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/1564f1cd12a966743a3f70ebfb592491.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNanonyam (\u00een concep\u021bia sa final\u0103) este un instrument bun pentru exersarea blocurilor de programare pentru microcontrolere, deoarece exist\u0103 func\u021bii pentru lucrul cu grafic\u0103 (se pot simula afi\u0219aje \u0219i indicatoare), cu fi\u0219iere (se pot face loguri, citi date de test), cu tastatura (se pot citi p\u00e2n\u0103 la 10 butoane simultan), cu porturile COM (aici urmeaz\u0103 un punct separat).<\/p>\n<h4>Crearea de programe rapide<\/h4>\n<p>\nDe exemplu, trebuie s\u0103 procesezi rapid 100500 de fi\u0219iere text. Fiecare trebuie deschis, u\u0219or modificat conform unui algoritm simplu, salvat \u0219i \u00eenchis. Dac\u0103 e\u0219ti expert \u00een Python, te felicit, ai tot ce \u00ee\u021bi trebuie. Dar dac\u0103 e\u0219ti un pasionat \u00eenr\u0103it de Arduino (\u0219i sunt destui), atunci Nanonyam te va ajuta s\u0103 rezolvi aceast\u0103 problem\u0103. Aceasta este a doua mea \u021bint\u0103 \u00een Nanonyam: s\u0103 adaug multe func\u021bii utile, cum ar fi procesarea textului, crearea de capturi de ecran sau simularea ap\u0103s\u0103rilor de taste \u00een sistem (toate acestea sunt deja disponibile), precum \u0219i multe alte func\u021bii pentru rezolvarea sarcinilor de rutin\u0103.<\/p>\n<h4>Testarea dispozitivelor prin portul COM<\/h4>\n<p>\nNanonyam poate ac\u021biona ca un terminal care func\u021bioneaz\u0103 conform algoritmului t\u0103u. Po\u021bi crea un mic meniu pentru a gestiona dispozitivul \u0219i a afi\u0219a datele primite din port. Este posibil s\u0103 salvezi \u0219i s\u0103 cite\u0219ti date din fi\u0219iere pentru analiz\u0103. Un instrument convenabil pentru depanarea \u0219i calibr\u0103rile simple ale echipamentului, precum \u0219i pentru a crea panouri virtuale de control. Acest proiect poate fi foarte util pentru studen\u021bi \u0219i tineri cercet\u0103tori.<\/p>\n<h4>\u00cenv\u0103\u021barea program\u0103rii<\/h4>\n<p>\nTotu\u0219i, ca \u0219i \u00een \u00eentregul proiect Arduino, utilitatea principal\u0103 a Nanonyam const\u0103 \u00een simplitatea func\u021biilor, interfe\u021bei \u0219i bootloaderului. Prin urmare, acest proiect ar trebui s\u0103 fie interesant pentru programatorii \u00eencep\u0103tori \u0219i pentru cei care sunt mul\u021bumi\u021bi de nivelul Arduino. Apropo, eu nu am studiat detaliat Arduino, deoarece am folosit mereu WinAVR sau AVR Studio, \u00eencep\u00e2nd cu asamblare. A\u0219adar, exemplul de program de mai jos va fi pu\u021bin incorect, dar func\u021bional.<\/p>\n<h4>Bun\u0103, Habr!<\/h4>\n<p>\nA venit timpul s\u0103 ne familiariz\u0103m cu unele func\u021bii ale Nanonyam \u0219i s\u0103 scriem un program simplu. Vom scrie \u00een Arduino, dar nu a\u0219a cum se obi\u0219nuie\u0219te, ci a\u0219a cum \u0219tiu eu acum (am men\u021bionat c\u0103 nu m-am deprins \u00eenc\u0103 bine cu acest mediu). Mai \u00eent\u00e2i, cre\u0103m un nou sketch \u0219i alegem placa Mega2560.<\/p>\n<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/edfb326204fea718e5238b0a6a32ed89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSalv\u0103m sketch-ul \u00een fi\u0219ier \u0219i copiem l\u00e2ng\u0103 <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/downloads.html\">biblioteca Nanonyam<\/a><\/noindex>. Ar fi corect s\u0103 includem fi\u0219ierele header ale bibliotecii, dar nu \u0219tiu cum s\u0103 specific compilarea fi\u0219ierelor separate \u00een Arduino, a\u0219a c\u0103 deocamdat\u0103 vom include bibliotecile direct (toate deodat\u0103):<\/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>\nAr fi chiar mai corect s\u0103 realiz\u0103m un modul special \"Nanonyam pentru Arduino\" care poate fi instalat direct din Arduino. De \u00eendat\u0103 ce m\u0103 voi descurca cu asta, voi face, dar deocamdat\u0103 am s\u0103 ar\u0103t esen\u021ba lucrului cu ma\u0219ina virtual\u0103. Vom scrie acest cod:<\/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>\nSketchul cu acest program <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nanoslavic.com\/downloads\/example002.ino\">poate fi desc\u0103rcat de aici<\/a><\/noindex>. Detaliile func\u021biilor <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">le g\u0103si\u021bi pe site<\/a><\/noindex>. Sper c\u0103 comentariile din acest cod sunt suficiente pentru a \u00een\u021belege esen\u021ba. Aici, func\u021bia <b>sys_Nanonyam()<\/b> joac\u0103 rolul de \u201eparol\u0103\u201d pentru ma\u0219ina virtual\u0103, care ridic\u0103 restric\u021biile asupra func\u021biilor virtuale. F\u0103r\u0103 aceast\u0103 func\u021bie, programul se va \u00eenchide dup\u0103 3 secunde de func\u021bionare.<\/p>\n<p>Ap\u0103s\u0103m butonul \u201eVerific\u0103\u201d, iar erori nu ar trebui s\u0103 fie.<\/p>\n<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/ab8e13e6bf320848a30d4a997ba6bd8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum trebuie s\u0103 ob\u021binem fi\u0219ierul binar (firmware). Alegem meniul &#171;<i>Sketch&gt;&gt;Exportare fi\u0219ier binar (CTRL+ALT+S)<\/i>&#171;.<\/p>\n<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/3cae211bf76616e8d4cd7beb8f91c7a7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen acest fel, \u00een folderul cu sketch-ul vor fi copiate dou\u0103 fi\u0219iere HEX. <b>Lu\u0103m doar fi\u0219ierul f\u0103r\u0103 prefixul \u201ewith_bootloader.mega\u201d.<\/b><\/p>\n<p>Exist\u0103 mai multe modalit\u0103\u021bi de a specifica fi\u0219ierul HEX pentru ma\u0219ina virtual\u0103 Nanonyam, toate sunt descrise <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">pe aceast\u0103 pagin\u0103<\/a><\/noindex>. V\u0103 propun s\u0103 crea\u021bi l\u00e2ng\u0103 fi\u0219ierul <i>Nanonyam.exe<\/i> fi\u0219ier <i>Nanonyam.path<\/i>, \u00een care s\u0103 specifica\u021bi calea complet\u0103 c\u0103tre fi\u0219ierul nostru HEX. Dup\u0103 aceasta, putem rula <i>Nanonyam.exe<\/i>. Se deschide o fereastr\u0103 cu mesajul nostru.<\/p>\n<p><img decoding=\"async\" alt=\"Cum s\u0103 creezi programe pentru Windows pe Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/0bb6e712cedbd9d10d3a7202a5d1b488.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen mod similar, putem crea programe \u00een alte medii, cum ar fi AVR Studio sau WinAVR.<\/p>\n<p>Aici \u00eencheiem deocamdat\u0103 familiarizarea cu Nanonyam. Ideea de baz\u0103 ar trebui s\u0103 fie clar\u0103. <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/examples.html\">Mai sunt exemple pe site-ul<\/a><\/noindex>. Dac\u0103 va fi suficient de mult\u0103 lume interesat\u0103 s\u0103 foloseasc\u0103 acest proiect, voi face mai multe exemple \u0219i voi continua s\u0103 \u201eumplu\u201d bibliotecile func\u021biilor virtuale. Ideile concrete pentru dezvoltarea proiectului \u0219i rapoartele despre probleme, erori \u0219i neajunsuri sunt binevenite. Ar fi de preferat s\u0103 le trimite\u021bi prin contactele <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/contacts.html\">indicate pe site<\/a><\/noindex>. Discu\u021biile sunt binevenite \u00een comentarii.<\/p>\n<p>V\u0103 mul\u021bumesc tuturor pentru aten\u021bie \u0219i un programare de succes!<br \/>\n<br \/>Sursa: <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.2.1 - 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\/ro\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Cum s\u0103 crea\u021bi programe pentru Windows \u00een Arduino | ProHoster","description":"Odat\u0103, mi-a venit o idee nebuneasc\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/39389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=39389"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/39389\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/39390"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=39389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=39389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=39389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}