{"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\/pt\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","title":{"rendered":"Como criar programas para Windows no Arduino","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/3cc15ea6c8304f594ed7d78dace45b8f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUm dia, tive uma ideia maluca de reunir <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/428513\/\">500 ponteiros laser em um s\u00f3 lugar<\/a><\/noindex>. Passei muito tempo fazendo isso. O resultado foi espetacular e in\u00fatil, mas eu gostei. Seis meses atr\u00e1s, tive outra ideia maluca. Desta vez, n\u00e3o t\u00e3o espetacular, mas muito mais \u00fatil. Tamb\u00e9m gastei muito tempo com isso. E neste artigo, apresento a vers\u00e3o beta da minha segunda ideia maluca.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nChamei o projeto de Nanonyam e at\u00e9 criei um logotipo para ele (desenhei por 5 minutos).<\/p>\n<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/2c91fb239bbf26a83bda83f572f2ac98.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara aqueles que pensam em termos de Arduino, pode-se dizer que o Nanonyam \u00e9 um escudo virtual Arduino para controlar o Windows.<\/p>\n<p>Em outras palavras, o Nanonyam \u00e9 uma m\u00e1quina virtual que utiliza firmware para microcontroladores AVR como c\u00f3digo de byte (recomendamos o ATMEGA2560). Dentro dessa m\u00e1quina virtual, h\u00e1 um simulador do n\u00facleo AVR, mas ao inv\u00e9s de dispositivos perif\u00e9ricos, que est\u00e3o localizados nos endere\u00e7os SRAM de 0x0060 a 0x01FF, h\u00e1 uma interface especial para fun\u00e7\u00f5es virtuais (incluindo fun\u00e7\u00f5es da API do Windows). \u00c9 muito importante entender desde o in\u00edcio: o c\u00f3digo para o Nanonyam n\u00e3o deve ter qualquer acesso ao intervalo de mem\u00f3ria especificado, para n\u00e3o acidentalmente chamar, por exemplo, a fun\u00e7\u00e3o de exclus\u00e3o de arquivos ou formata\u00e7\u00e3o de disco. O restante do intervalo de mem\u00f3ria SRAM de 0x0200 a 0xFFFF (isso \u00e9 mais do que em um microcontrolador real) est\u00e1 dispon\u00edvel para o usu\u00e1rio para quaisquer fins. Vale ressaltar que h\u00e1 uma prote\u00e7\u00e3o especial contra a ativa\u00e7\u00e3o acidental do firmware de um microcontrolador real (ou firmware de outra arquitetura): antes de ativar as fun\u00e7\u00f5es \u201cperigosas\u201d, \u00e9 necess\u00e1rio chamar uma fun\u00e7\u00e3o virtual especial. Existem tamb\u00e9m outros elementos de prote\u00e7\u00e3o.<\/p>\n<p>Para criar programas para o Nanonyam, \u00e9 necess\u00e1rio usar bibliotecas especiais, que implementam todas as fun\u00e7\u00f5es virtuais dispon\u00edveis at\u00e9 agora. Baixar a m\u00e1quina virtual Nanonyam e as bibliotecas para ela <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/downloads.html\">aqui<\/a><\/noindex>. E aqui <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">p\u00e1gina de descri\u00e7\u00e3o das fun\u00e7\u00f5es virtuais<\/a><\/noindex>. E sim, meu site \u00e9 muito primitivo e n\u00e3o adaptado para dispositivos m\u00f3veis.<\/p>\n<p><b>O programa Nanonyam \u00e9 gratuito para uso dom\u00e9stico e comercial. O programa Nanonyam \u00e9 fornecido sob o termo 'como est\u00e1'. O c\u00f3digo-fonte n\u00e3o \u00e9 disponibilizado.<\/b><\/p>\n<p>Atualmente, o programa est\u00e1 em fase de testes. Cerca de 200 fun\u00e7\u00f5es virtuais foram implementadas, permitindo a cria\u00e7\u00e3o de programas simples para Windows.<br \/>\n\u00c9 evidente que criar algo complexo em tal m\u00e1quina virtual n\u00e3o ser\u00e1 poss\u00edvel, pois a mem\u00f3ria para o c\u00f3digo \u00e9 de apenas 256 kB. Os dados podem ser armazenados em arquivos separados, e o buffer para a parte gr\u00e1fica \u00e9 implementado externamente. Todas as fun\u00e7\u00f5es s\u00e3o simplificadas e adaptadas para a arquitetura de 8 bits.<\/p>\n<p>O que pode ser feito no Nanonyam? Eu elaborei algumas tarefas.<\/p>\n<h4>Pr\u00e1tica de blocos de programa\u00e7\u00e3o<\/h4>\n<p>\nUm dia eu precisei desenvolver um menu complexo para um display gr\u00e1fico de 128\u00d764 pixels. Eu realmente n\u00e3o queria estar constantemente carregando o firmware em um microcontrolador real para ver como os pixels apareciam. Assim nasceu a ideia do Nanonyam. Na imagem abaixo, h\u00e1 uma captura de um OLED real de uma das op\u00e7\u00f5es desse menu. Agora eu posso trabalhar nele sem um dispositivo real.<\/p>\n<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/1564f1cd12a966743a3f70ebfb592491.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nO Nanonyam (em sua concep\u00e7\u00e3o final) \u00e9 uma boa ferramenta para praticar blocos de programa\u00e7\u00e3o para microcontroladores, pois possui fun\u00e7\u00f5es para trabalhar com gr\u00e1ficos (\u00e9 poss\u00edvel simular displays e indicadores), com arquivos (\u00e9 poss\u00edvel criar logs, ler dados de teste), com teclado (\u00e9 poss\u00edvel ler at\u00e9 10 bot\u00f5es ao mesmo tempo), e com portas COM (aqui h\u00e1 um ponto separado).<\/p>\n<h4>Cria\u00e7\u00e3o de programas r\u00e1pidos<\/h4>\n<p>\nPor exemplo, voc\u00ea precisa rapidamente processar 100500 arquivos de texto. Cada um precisa ser aberto, um pouco modificado por algum algoritmo simples, salvo e fechado. Se voc\u00ea \u00e9 um mestre do Python, parab\u00e9ns, voc\u00ea j\u00e1 tem tudo. Mas se voc\u00ea \u00e9 um ardoroso entusiasta do Arduino (e h\u00e1 muitos assim), o Nanonyam ir\u00e1 ajud\u00e1-lo a resolver essa tarefa. Este \u00e9 o meu segundo objetivo com o Nanonyam: adicionar v\u00e1rias fun\u00e7\u00f5es \u00fateis, como processamento de texto, cria\u00e7\u00e3o de capturas de tela ou simula\u00e7\u00e3o de pressionamento de teclas no sistema (tudo isso j\u00e1 existe), al\u00e9m de muitas outras fun\u00e7\u00f5es para resolver tarefas rotineiras.<\/p>\n<h4>Testes de hardware via porta COM<\/h4>\n<p>\nO Nanonyam pode atuar como um terminal que funciona de acordo com seu algoritmo. \u00c9 poss\u00edvel desenhar um pequeno menu para controlar o dispositivo e exibir os dados recebidos da porta. Voc\u00ea pode salvar e ler dados de arquivos para an\u00e1lise. Uma ferramenta conveniente para depura\u00e7\u00e3o e calibra\u00e7\u00e3o simples de hardware, assim como para criar pain\u00e9is de controle virtuais simples. Para estudantes e jovens cientistas, esse projeto pode ser muito \u00fatil.<\/p>\n<h4>Aprendizado de programa\u00e7\u00e3o<\/h4>\n<p>\nNo entanto, assim como em todo o projeto Arduino, a principal utilidade do Nanonyam reside na simplicidade das suas fun\u00e7\u00f5es, interface e carregador. Portanto, este projeto deve ser interessante para programadores iniciantes e para aqueles que se contentam com o n\u00edvel do Arduino. A prop\u00f3sito, eu mesmo ainda n\u00e3o estudei o Arduino detalhadamente, pois sempre usei WinAVR ou AVR Studio, e comecei com assembly. Portanto, o exemplo de programa abaixo pode estar um pouco incorreto, mas \u00e9 perfeitamente funcional.<\/p>\n<h4>Ol\u00e1, Habr!<\/h4>\n<p>\n\u00c9 hora de conhecer algumas fun\u00e7\u00f5es do Nanonyam e escrever um programa simples. Vamos codificar no Arduino, mas n\u00e3o da maneira usual, e sim da forma como sei fazer agora (eu j\u00e1 disse que ainda n\u00e3o entendi muito bem esse ambiente). Para come\u00e7ar, criamos um novo esbo\u00e7o e escolhemos a placa Mega2560.<\/p>\n<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/edfb326204fea718e5238b0a6a32ed89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSalvamos o esbo\u00e7o em um arquivo e copiamos ao lado <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/downloads.html\">a biblioteca Nanonyam<\/a><\/noindex>. Seria correto incluir os cabe\u00e7alhos das bibliotecas, mas eu n\u00e3o sei como compilar arquivos individuais no Arduino, ent\u00e3o por enquanto vamos simplesmente incluir as bibliotecas diretamente (e todas de uma vez):<\/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>\nSeria ainda mais correto criar um m\u00f3dulo especial \u201cNanonyam para Arduino\u201d, que pode ser instalado diretamente do Arduino. Assim que eu entender isso, farei, mas por enquanto estou apenas mostrando a ess\u00eancia do trabalho com a m\u00e1quina virtual. Vamos escrever este c\u00f3digo:<\/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>\nO esbo\u00e7o com este programa <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nanoslavic.com\/downloads\/example002.ino\">pode ser baixado aqui<\/a><\/noindex>. A descri\u00e7\u00e3o detalhada das fun\u00e7\u00f5es <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">voc\u00ea pode encontrar no site<\/a><\/noindex>. Espero que os coment\u00e1rios neste c\u00f3digo sejam suficientes para compreender a ess\u00eancia. Aqui a fun\u00e7\u00e3o <b>sys_Nanonyam()<\/b> atua como uma \"senha\" para a m\u00e1quina virtual, que remove as restri\u00e7\u00f5es sobre as fun\u00e7\u00f5es virtuais. Sem essa fun\u00e7\u00e3o, o programa ser\u00e1 encerrado ap\u00f3s 3 segundos de opera\u00e7\u00e3o.<\/p>\n<p>Clicamos no bot\u00e3o \u201cVerificar\u201d e n\u00e3o deve haver erros.<\/p>\n<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/ab8e13e6bf320848a30d4a997ba6bd8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAgora \u00e9 preciso obter o arquivo bin\u00e1rio (firmware). Vamos escolher o menu \u00ab<i>Sketch&gt;&gt;Exportar arquivo bin\u00e1rio (CTRL+ALT+S)<\/i>&#171;.<\/p>\n<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/3cae211bf76616e8d4cd7beb8f91c7a7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDessa forma, dois arquivos HEX ser\u00e3o copiados para a pasta do esbo\u00e7o. <b>N\u00f3s pegamos apenas o arquivo sem o prefixo \u00abwith_bootloader.mega\u00bb.<\/b><\/p>\n<p>Existem v\u00e1rias maneiras de especificar o arquivo HEX para a m\u00e1quina virtual Nanonyam, todas descritas <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/libraries.html\">nesta p\u00e1gina<\/a><\/noindex>. Eu sugiro criar um arquivo chamado <i>Nanonyam.exe<\/i> arquivo <i>Nanonyam.path<\/i>, onde escreveremos o caminho completo para nosso arquivo HEX. Ap\u00f3s isso, podemos executar <i>Nanonyam.exe<\/i>. Recebemos uma janela com a nossa mensagem.<\/p>\n<p><img decoding=\"async\" alt=\"Como criar programas para Windows no Arduino\" src=\"\/wp-content\/uploads\/2019\/10\/0bb6e712cedbd9d10d3a7202a5d1b488.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDa mesma forma, \u00e9 poss\u00edvel criar programas em outros ambientes, como AVR Studio ou WinAVR.<\/p>\n<p>Vamos encerrar por enquanto nosso conhecimento sobre Nanonyam. A ideia principal deve estar clara. <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/nanonyam\/examples.html\">Mais exemplos est\u00e3o dispon\u00edveis no site<\/a><\/noindex>. Se houver interesse suficiente em utilizar este projeto, farei mais exemplos e continuarei a \"preencher\" as bibliotecas de fun\u00e7\u00f5es virtuais. Sugest\u00f5es espec\u00edficas para o desenvolvimento do projeto e relat\u00f3rios sobre falhas, bugs e erros s\u00e3o bem-vindas. \u00c9 prefer\u00edvel envi\u00e1-las pelos contatos <noindex><a rel=\"nofollow\" href=\"http:\/\/nanoslavic.ru\/contacts.html\">fornecidos no site<\/a><\/noindex>. Discuss\u00f5es s\u00e3o bem-vindas nos coment\u00e1rios.<\/p>\n<p>Obrigado a todos pela aten\u00e7\u00e3o e boa programa\u00e7\u00e3o!<br \/>\n<br \/>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47 Como criar programas para Windows no Arduino | ProHoster","description":"Certa vez, tive uma ideia maluca.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/kak-v-arduino-sozdavat-programmy-dlya-windows","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/39389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=39389"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/39389\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/39390"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=39389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=39389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=39389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}