{"id":5938,"date":"2023-11-10T09:54:34","date_gmt":"2023-11-10T09:54:34","guid":{"rendered":"https:\/\/picockpit.com\/raspberry-pi\/?p=5938"},"modified":"2023-11-23T02:07:41","modified_gmt":"2023-11-23T02:07:41","slug":"exploring-microlua-lua-programming-for-rp2040","status":"publish","type":"post","link":"https:\/\/picockpit.com\/raspberry-pi\/pt\/explorar-a-programacao-microlua-lua-para-rp2040\/","title":{"rendered":"Explorando MicroLua: Programa\u00e7\u00e3o Lua para RP2040"},"content":{"rendered":"<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"638\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png\" alt=\"Explorando MicroLua para a RP2040 Imagem do t\u00edtulo\" class=\"wp-image-5939\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png 960w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image-300x199.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image-768x510.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image-18x12.png 18w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<p>Alguma vez quiseste mergulhar no mundo da programa\u00e7\u00e3o Lua e explorar as capacidades do microcontrolador RP2040? N\u00e3o precisa de procurar mais - o MicroLua oferece uma excelente oportunidade para fazer isso mesmo! <\/p>\n\n\n\n<p>Neste artigo, pretendo aprofundar o que <a href=\"https:\/\/github.com\/MicroLua\/MicroLua\">MicroLua<\/a> \u00e9, como funciona e porque \u00e9 que eu acho que \u00e9 uma ferramenta super valiosa para os programadores.<\/p>\n\n\n\n<p>Quero enviar uma enorme sauda\u00e7\u00e3o a <a href=\"https:\/\/github.com\/MicroLua\">Remy Blank<\/a> por desenvolver o MicroLua e compartilh\u00e1-lo com o mundo. Remy o lan\u00e7ou com uma licen\u00e7a MIT (como a pr\u00f3pria Lua), tornando o MicroLua dispon\u00edvel para todos. <\/p>\n\n\n\n<p>Estou muito entusiasmado por poder utiliz\u00e1-lo em alguns projectos futuros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>O que \u00e9 MicroLua?<\/strong> <strong>O que \u00e9 um RP2040?<\/strong><\/h2>\n\n\n\n<p>Ent\u00e3o, MicroLua usa a implementa\u00e7\u00e3o de Lua e a empacota. <\/p>\n\n\n\n<p>Lua \u00e9 uma linguagem multiparadigma com tipagem din\u00e2mica. E \u00e9, naturalmente, uma das linguagens de script mais r\u00e1pidas que existem. Ela tamb\u00e9m \u00e9 super pequena (o c\u00f3digo fonte e a documenta\u00e7\u00e3o juntos ocupam 1,3 MB!)<\/p>\n\n\n\n<p>Por isso, \u00e9 r\u00e1pido, \u00e9 pequeno e \u00e9 ideal quando se pretende incorporar algo em aplica\u00e7\u00f5es maiores.<\/p>\n\n\n\n<p>Lua tem tamb\u00e9m 21 palavras-chave destacadas e uma sintaxe bastante direta, pelo que \u00e9 relativamente simples de aprender.<\/p>\n\n\n\n<p>Mas, se n\u00e3o est\u00e1 familiarizado, a coisa imediata de que toda a gente se queixa com Lua \u00e9 o facto de ser uma linguagem indexada baseada em 1. E, honestamente, isso me pega todas as vezes.<\/p>\n\n\n\n<p>Aqui est\u00e1 um exemplo de Lua, para que o possas ver:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"752\" height=\"817\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Screenshot-from-2023-11-09-17-01-24.png\" alt=\"Exemplo Lua de Lua.org\" class=\"wp-image-5943\" style=\"width:511px;height:auto\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Screenshot-from-2023-11-09-17-01-24.png 752w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Screenshot-from-2023-11-09-17-01-24-276x300.png 276w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Screenshot-from-2023-11-09-17-01-24-11x12.png 11w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><figcaption class=\"wp-element-caption\">Cr\u00e9dito: <a href=\"https:\/\/www.lua.org\/cgi-bin\/demo?globals\">lua.org<\/a>.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Remy concebeu o MicroLua para programar especificamente para o microcontrolador RP2040. <\/p>\n\n\n\n<p>O microcontrolador RP2040 \u00e9 um chip interno do Raspberry Pi que acciona um <a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-w-h-konfigurator-pico-pico-w-pico-h-pico-wh?_pos=1&amp;_sid=22b5b2d56&amp;_ss=r&amp;variant=43536399958283\">Pico<\/a>. No entanto, o Raspberry Pi tamb\u00e9m vende <a href=\"https:\/\/buyzero.de\/products\/rp2040-microcontroller-chip?_pos=3&amp;_sid=25007eedd&amp;_ss=r\">o chip RP2040<\/a> separadamente. Assim, tamb\u00e9m pode encontrar o RP2040 noutras placas, como uma <a href=\"https:\/\/buyzero.de\/products\/adafruit-feather-rp2040-pink?_pos=2&amp;_sid=25007eedd&amp;_ss=r\">Adafruit Feather<\/a>.<\/p>\n\n\n\n<p>MicroLua, ent\u00e3o, empacota Lua para essas placas. Neste contexto, MicroLua integra o mais recente interpretador Lua (vers\u00e3o 5.4) com interfaces para <a href=\"https:\/\/github.com\/raspberrypi\/pico-sdk\">o kit de desenvolvimento de software do Pico<\/a> e inclui uma biblioteca de threading cooperativa.<\/p>\n\n\n\n<p>Ao juntar o interpretador Lua com as interfaces do Pico, o MicroLua permite-lhe aceder aos pinos GPIO e aos temporizadores. E eu realmente adoro o fato de Remy ter inclu\u00eddo uma biblioteca de threading cooperativa. Assim, se tiveres um Pico, podes brincar com ambos os n\u00facleos.<\/p>\n\n\n\n<p>Adicionalmente, o MicroLua tem suporte para Fennel, por isso se gosta de Lisp (como eu), ainda pode tirar partido do MicroLua. Quer usar uma linguagem Lisp-like com seu Raspberry Pi Pico? O Remy acabou de tornar isso ridiculamente f\u00e1cil.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Introdu\u00e7\u00e3o ao MicroLua<\/strong><\/h2>\n\n\n\n<p>Para configurar o MicroLua, voc\u00ea ter\u00e1 que clonar <a href=\"https:\/\/github.com\/MicroLua\/MicroLua\">o reposit\u00f3rio<\/a>inicializar os subm\u00f3dulos e seguir as instru\u00e7\u00f5es de compila\u00e7\u00e3o fornecidas.<\/p>\n\n\n\n<p>O GitHub tem o seguinte c\u00f3digo que permite colocar um conjunto de testes a funcionar:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Configure the location of the Pico SDK. Adjust for your setup.$ export PICO_SDK_PATH=&quot;${HOME}\/pico-sdk&quot;# Clone the repository and initialize submodules.$ git clone https:\/\/github.com\/MicroLua\/MicroLua.git$ cd MicroLua$ git submodule update --init# Connect a Picoprobe to the target, on the UART and optionally on the debug# port. Then view the Picoprobe's UART connection in a separate terminal.# The &quot;term&quot; script uses socat.$ tools\/term \/dev\/ttyACM0# Build the unit tests.$ cmake -s . -B build -DPICO_BOARD=pico$ make -j9 -C build\/lib# Start the target in BOOTSEL mode and flash it with picotool.$ picotool load -v -x build\/lib\/mlua_tests.elf# Alternatively, start the target in BOOTSEL mode and copy to its boot drive.$ cp build\/lib\/mlua_tests.uf2 \/mnt\/RPI-RP2\/\" style=\"color:#d8dee9ff;display:none\" aria-label=\"C\u00f3pia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">Configure<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">location<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">of<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Pico<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">SDK<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Adjust<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">your<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">setup<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PICO_SDK_PATH<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">${HOME}\/pico-sdk<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">Clone<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">repository<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">initialize<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">submodules<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">clone<\/span><span style=\"color: #D8DEE9FF\"> https<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #616E88\">\/\/github.com\/MicroLua\/MicroLua.git<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">MicroLua<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">submodule<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">update<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">--<\/span><span style=\"color: #D8DEE9\">init<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">Connect<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">a<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Picoprobe<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">target<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">UART<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">optionally<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">debug<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">port<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Then<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">view<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Picoprobe<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">s UART connection in a separate terminal<\/span><span style=\"color: #D8DEE9\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">The<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">term<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">script<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">uses<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">socat<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">tools<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">term<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">ttyACM0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">Build<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">unit<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">tests<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cmake<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">s<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">B<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">DPICO_BOARD<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">pico<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">make<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">j9<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">C<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">Start<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">target<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">BOOTSEL<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">mode<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">flash<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">it<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">picotool<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">picotool<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">load<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">v<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mlua_tests<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">elf<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">Alternatively<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">start<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">target<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">BOOTSEL<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">mode<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">copy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">its<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">boot<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">drive<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cp<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mlua_tests<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">uf2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">RPI<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">RP2<\/span><span style=\"color: #81A1C1\">\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Quando tiveres isso, est\u00e1s pronto para come\u00e7ar.<\/p>\n\n\n\n<p>Eu devo mencionar que Remy identificou alguns problemas com o desempenho do MicroLua. Primeiro e mais importante, o facto de que a lat\u00eancia de envio de eventos \u00e9 relativamente lenta e precisa de alguma melhoria.<\/p>\n\n\n\n<p>Al\u00e9m disso, se for a <a href=\"https:\/\/github.com\/MicroLua\/MicroLua\/tree\/main\">a p\u00e1gina do GitHub<\/a>Remy incluiu um roteiro para adicionar coisas, como mais liga\u00e7\u00f5es para o Pico SDK, um sistema de arquivos e comunica\u00e7\u00e3o multi-chip. E Remy quer melhorar o desempenho dos threads, a comunica\u00e7\u00e3o entre n\u00facleos e ajustar o coletor de lixo.<\/p>\n\n\n\n<p>Por isso, este \u00e9 um projeto que est\u00e1 bem vivo e que vale a pena manter debaixo de olho.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" hcb-fetch-image-from=\"https:\/\/www.youtube.com\/shorts\/O90MXajJkkk\" title=\"Por vezes, o MELHOR projeto Raspberry Pi Pico \u00e9 o mais F\u00c1CIL projeto Raspberry Pi Pico\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/O90MXajJkkk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Escrevi o pequeno programa do v\u00eddeo em MicroPython - mas da pr\u00f3xima vez vou usar Fennel e MicroLua!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>Agora que j\u00e1 o tem, comece o seu pr\u00f3ximo projeto Pico. O mundo \u00e9 a sua ostra!<\/p>\n\n\n\n<p>A primeira coisa em que pensei quando vi este projeto foi <a href=\"https:\/\/github.com\/whitecatboard\/Lua-RTOS-ESP32\/\">Lua RTOS para um ESP32<\/a>. Por isso, se estiver a ver as suas op\u00e7\u00f5es para Lua com microcontroladores de uma forma mais geral, n\u00e3o se esque\u00e7a de ir ver esse projeto tamb\u00e9m.<\/p>\n\n\n\n<p>Se precisar de alguma inspira\u00e7\u00e3o, pode consultar alguns projectos Pico que apresent\u00e1mos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/picockpit.com\/raspberry-pi\/everything-about-sound-output-using-the-pico-w\/\">Tudo sobre a sa\u00edda de som utilizando o Pico W<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/picockpit.com\/raspberry-pi\/everything-about-bluetooth-on-the-raspberry-pi-pico-w\/\">Tudo sobre o Bluetooth no Raspberry Pi Pico W<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/picockpit.com\/raspberry-pi\/paragon-project-pico-w-security-alarm\/\">Um alarme de seguran\u00e7a Raspberry Pi Pico W<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/picockpit.com\/raspberry-pi\/paragon-project-raspberry-pi-pico-keyboard\/\">Um teclado Raspberry Pi Pico<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/picockpit.com\/raspberry-pi\/paragon-project-pico-clock\/\">Um rel\u00f3gio Raspberry Pi Pico<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/picockpit.com\/raspberry-pi\/paragon-project-pico-air-quality-monitor\/\">Um monitor de qualidade do ar Raspberry Pi Pico<\/a><\/li>\n<\/ul>\n\n\n\n<p>Al\u00e9m disso, se tiver um Pico W, n\u00e3o se esque\u00e7a de o ligar ao <a href=\"https:\/\/picockpit.com\/\">PiCockpit<\/a>Assim, pode ligar-se a ele a partir de qualquer parte do mundo atrav\u00e9s da Internet.<\/p>\n\n\n\n<p>Que projectos vai criar com MicroLua? Estou ansioso por usar o Fennel no meu pr\u00f3ximo projeto Pico!<\/p>\n<div class=\"shariff shariff-align-center shariff-widget-align-left shariff-buttonstretch\"><ul class=\"shariff-buttons theme-white orientation-horizontal buttonsize-medium\"><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fexplorar-a-programacao-microlua-lua-para-rp2040%2F&text=Exploring%20MicroLua%3A%20Lua%20Programming%20for%20RP2040\" title=\"Compartilhar no X\" aria-label=\"Compartilhar no X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#000\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#000\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#000\">partilhar<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fexplorar-a-programacao-microlua-lua-para-rp2040%2F\" title=\"Partilhar no Facebook\" aria-label=\"Partilhar no Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#3b5998\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#3b5998\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#3b5998\">partilhar<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button telegram shariff-nocustomcolor\" style=\"background-color:#4084A6\"><a href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fexplorar-a-programacao-microlua-lua-para-rp2040%2F&text=Exploring%20MicroLua%3A%20Lua%20Programming%20for%20RP2040\" title=\"Compartilhar no Telegram\" aria-label=\"Compartilhar no Telegram\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0088cc; color:#0088cc\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#0088cc\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 32 32\"><path fill=\"#0088cc\" d=\"M30.8 6.5l-4.5 21.4c-.3 1.5-1.2 1.9-2.5 1.2L16.9 24l-3.3 3.2c-.4.4-.7.7-1.4.7l.5-7L25.5 9.2c.6-.5-.1-.8-.9-.3l-15.8 10L2 16.7c-1.5-.5-1.5-1.5.3-2.2L28.9 4.3c1.3-.5 2.3.3 1.9 2.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#0088cc\">partilhar<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpt%2Fexplorar-a-programacao-microlua-lua-para-rp2040%2F\" title=\"Compartilhar no Reddit\" aria-label=\"Compartilhar no Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#ff4500\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#ff4500\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#ff4500\">partilhar<\/span>&nbsp;<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>Alguma vez quiseste mergulhar no mundo da programa\u00e7\u00e3o Lua e explorar as capacidades do microcontrolador RP2040? N\u00e3o precisa de procurar mais - o MicroLua oferece uma excelente oportunidade para fazer isso mesmo! Neste artigo, eu quero mergulhar no que \u00e9 o MicroLua, como ele funciona e por que eu acho que ele \u00e9 um super valioso...<\/p>","protected":false},"author":2,"featured_media":5939,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[2151,483,606,2152,2150,597,2149,11,811,221,1864,475,187,909],"class_list":["post-5938","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi-pico","tag-fennel","tag-language","tag-linux","tag-lisp","tag-lua","tag-microcontroller","tag-microlua","tag-pico","tag-pico-sdk","tag-pico-w","tag-programming","tag-programming-language","tag-raspberry-pi","tag-rp2040"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exploring MicroLua: Lua Programming for RP2040 | PiCockpit<\/title>\n<meta name=\"description\" content=\"Have you ever wanted to use Lua with an RP2040 microcontroller? MicroLua offers an exciting opportunity to do just that!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picockpit.com\/raspberry-pi\/pt\/explorar-a-programacao-microlua-lua-para-rp2040\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploring MicroLua: Lua Programming for RP2040 | PiCockpit\" \/>\n<meta property=\"og:description\" content=\"Have you ever wanted to use Lua with an RP2040 microcontroller? MicroLua offers an exciting opportunity to do just that!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picockpit.com\/raspberry-pi\/pt\/explorar-a-programacao-microlua-lua-para-rp2040\/\" \/>\n<meta property=\"og:site_name\" content=\"PiCockpit\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pi3gshop\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-10T09:54:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-23T02:07:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"638\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"raspi berry\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pi3g\" \/>\n<meta name=\"twitter:site\" content=\"@pi3g\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"raspi berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/\"},\"author\":{\"name\":\"raspi berry\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\"},\"headline\":\"Exploring MicroLua: Lua Programming for RP2040\",\"datePublished\":\"2023-11-10T09:54:34+00:00\",\"dateModified\":\"2023-11-23T02:07:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/\"},\"wordCount\":745,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/Exploring-MicroLua-for-the-RP2040-Title-Image.png\",\"keywords\":[\"Fennel\",\"language\",\"linux\",\"Lisp\",\"Lua\",\"microcontroller\",\"MicroLua\",\"Pico\",\"pico sdk\",\"Pico W\",\"programming\",\"programming language\",\"Raspberry Pi\",\"RP2040\"],\"articleSection\":[\"Raspberry Pi Pico\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/\",\"name\":\"Exploring MicroLua: Lua Programming for RP2040 | PiCockpit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/Exploring-MicroLua-for-the-RP2040-Title-Image.png\",\"datePublished\":\"2023-11-10T09:54:34+00:00\",\"dateModified\":\"2023-11-23T02:07:41+00:00\",\"description\":\"Have you ever wanted to use Lua with an RP2040 microcontroller? MicroLua offers an exciting opportunity to do just that!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#primaryimage\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/Exploring-MicroLua-for-the-RP2040-Title-Image.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/Exploring-MicroLua-for-the-RP2040-Title-Image.png\",\"width\":960,\"height\":638,\"caption\":\"Exploring MicroLua for the RP2040 Title Image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/exploring-microlua-lua-programming-for-rp2040\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi Pico\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/category\\\/raspberry-pi-pico\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Exploring MicroLua: Lua Programming for RP2040\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"name\":\"PiCockpit\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\",\"name\":\"PiCockpit.com\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"width\":1165,\"height\":283,\"caption\":\"PiCockpit.com\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pi3gshop\",\"https:\\\/\\\/x.com\\\/pi3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\",\"name\":\"raspi berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"caption\":\"raspi berry\"},\"description\":\"I'm here to help you with all your Raspberry Pi related questions &amp; love to share about new project ideas for the Raspberry Pi, and give quick tips. Of course I'll also help you with PiCockpit and how to make your Raspberry Pi even easier to use with this raspberry pi monitoring solution :-)\",\"sameAs\":[\"https:\\\/\\\/picockpit.com\"],\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/pt\\\/author\\\/raspi-berry\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Explorando MicroLua: Programa\u00e7\u00e3o Lua para RP2040 | PiCockpit","description":"J\u00e1 alguma vez quis utilizar Lua com um microcontrolador RP2040? O MicroLua oferece uma \u00f3ptima oportunidade para fazer isso mesmo!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picockpit.com\/raspberry-pi\/pt\/explorar-a-programacao-microlua-lua-para-rp2040\/","og_locale":"pt_PT","og_type":"article","og_title":"Exploring MicroLua: Lua Programming for RP2040 | PiCockpit","og_description":"Have you ever wanted to use Lua with an RP2040 microcontroller? MicroLua offers an exciting opportunity to do just that!","og_url":"https:\/\/picockpit.com\/raspberry-pi\/pt\/explorar-a-programacao-microlua-lua-para-rp2040\/","og_site_name":"PiCockpit","article_publisher":"https:\/\/www.facebook.com\/pi3gshop","article_published_time":"2023-11-10T09:54:34+00:00","article_modified_time":"2023-11-23T02:07:41+00:00","og_image":[{"width":960,"height":638,"url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png","type":"image\/png"}],"author":"raspi berry","twitter_card":"summary_large_image","twitter_creator":"@pi3g","twitter_site":"@pi3g","twitter_misc":{"Escrito por":"raspi berry","Tempo estimado de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#article","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/"},"author":{"name":"raspi berry","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee"},"headline":"Exploring MicroLua: Lua Programming for RP2040","datePublished":"2023-11-10T09:54:34+00:00","dateModified":"2023-11-23T02:07:41+00:00","mainEntityOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/"},"wordCount":745,"commentCount":0,"publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png","keywords":["Fennel","language","linux","Lisp","Lua","microcontroller","MicroLua","Pico","pico sdk","Pico W","programming","programming language","Raspberry Pi","RP2040"],"articleSection":["Raspberry Pi Pico"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/","url":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/","name":"Explorando MicroLua: Programa\u00e7\u00e3o Lua para RP2040 | PiCockpit","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#primaryimage"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png","datePublished":"2023-11-10T09:54:34+00:00","dateModified":"2023-11-23T02:07:41+00:00","description":"J\u00e1 alguma vez quis utilizar Lua com um microcontrolador RP2040? O MicroLua oferece uma \u00f3ptima oportunidade para fazer isso mesmo!","breadcrumb":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#primaryimage","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/11\/Exploring-MicroLua-for-the-RP2040-Title-Image.png","width":960,"height":638,"caption":"Exploring MicroLua for the RP2040 Title Image"},{"@type":"BreadcrumbList","@id":"https:\/\/picockpit.com\/raspberry-pi\/exploring-microlua-lua-programming-for-rp2040\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picockpit.com\/raspberry-pi\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi Pico","item":"https:\/\/picockpit.com\/raspberry-pi\/category\/raspberry-pi-pico\/"},{"@type":"ListItem","position":3,"name":"Exploring MicroLua: Lua Programming for RP2040"}]},{"@type":"WebSite","@id":"https:\/\/picockpit.com\/raspberry-pi\/#website","url":"https:\/\/picockpit.com\/raspberry-pi\/","name":"PiCockpit","description":"","publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picockpit.com\/raspberry-pi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization","name":"PiCockpit.com","url":"https:\/\/picockpit.com\/raspberry-pi\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","width":1165,"height":283,"caption":"PiCockpit.com"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pi3gshop","https:\/\/x.com\/pi3g"]},{"@type":"Person","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee","name":"baga de framboesa","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","caption":"raspi berry"},"description":"Estou aqui para ajud\u00e1-lo com todas as suas perguntas relacionadas com o Raspberry Pi e adoro compartilhar sobre novas id\u00e9ias de projetos para o Raspberry Pi, e dar dicas r\u00e1pidas. Claro que tamb\u00e9m o ajudarei com o PiCockpit e como tornar o seu Raspberry Pi ainda mais f\u00e1cil de usar com esta solu\u00e7\u00e3o de monitoriza\u00e7\u00e3o do raspberry Pi :-)","sameAs":["https:\/\/picockpit.com"],"url":"https:\/\/picockpit.com\/raspberry-pi\/pt\/author\/raspi-berry\/"}]}},"_links":{"self":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts\/5938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/comments?post=5938"}],"version-history":[{"count":7,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts\/5938\/revisions"}],"predecessor-version":[{"id":5948,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/posts\/5938\/revisions\/5948"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/media\/5939"}],"wp:attachment":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/media?parent=5938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/categories?post=5938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pt\/wp-json\/wp\/v2\/tags?post=5938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}