{"id":19958216,"url":"https://github.com/carlos-levi/luaproject","last_synced_at":"2025-09-19T15:32:40.071Z","repository":{"id":245515959,"uuid":"818474585","full_name":"Carlos-Levi/LuaProject","owner":"Carlos-Levi","description":"Repositório sobre a linguagem Lua para monitoria de Sistemas Embarcados que produzi em 2023 durante minha graduação","archived":false,"fork":false,"pushed_at":"2024-07-01T01:44:28.000Z","size":293,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T15:38:29.303Z","etag":null,"topics":["embedded-systems","lua"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Carlos-Levi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-22T00:17:14.000Z","updated_at":"2024-07-30T05:54:50.000Z","dependencies_parsed_at":"2024-11-13T01:41:38.484Z","dependency_job_id":"7e659f7c-803f-45a2-8c4c-985a30fccd6f","html_url":"https://github.com/Carlos-Levi/LuaProject","commit_stats":null,"previous_names":["carlos-levi/luaproject"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Carlos-Levi/LuaProject","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlos-Levi%2FLuaProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlos-Levi%2FLuaProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlos-Levi%2FLuaProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlos-Levi%2FLuaProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Carlos-Levi","download_url":"https://codeload.github.com/Carlos-Levi/LuaProject/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Carlos-Levi%2FLuaProject/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275958775,"owners_count":25559782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-19T02:00:09.700Z","response_time":108,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded-systems","lua"],"created_at":"2024-11-13T01:41:30.686Z","updated_at":"2025-09-19T15:32:39.823Z","avatar_url":"https://github.com/Carlos-Levi.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introdução à Lua para Sistemas Embarcados\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://miro.medium.com/v2/resize:fit:512/1*A240hQnv-DQsFRGuKhiOTw.png\" width=\"600\" height=\"270\" alt=\"Logo Linguagem de programação Lua\"\u003e\n\u003c/div\u003e\n\n- Este repositório é um guia introdutório à linguagem de programação Lua criado para monitoria de Sistemas Embarcados 2023.2 - Acesse também [repostório sistemas embarcados](https://github.com/Carlos-Levi/sistemas-embarcados-monitoria)\n- Essa foi uma das linguagens escolhidas, especialmente em homenagem aos seus 30 anos e para destacar uma linguagem nacional de impacto global 🇧🇷 \n\n## O que é Lua?\n\nLua é uma linguagem de programação poderosa, eficiente, leve e embutível. É projetada para suportar programação procedural, orientada a objetos, funcional, baseada em dados e descritiva.\n\nAtualmente, Lua é desenvolvida no **laboratório LabLua** do **Departamento de Informática da PUC-Rio.**\n\nPara mais informações sobre Lua, visite o [site oficial](https://www.lua.org/).\n\n## História\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://i.ytimg.com/vi/EFZ_ZbcC3OI/maxresdefault.jpg\" width=\"550\" height=\"300\" alt=\"Hisória da linguagem lua - PUC RJ e Petrobbras\"\u003e\n\u003c/div\u003e\n\n\u003eCriada em 1993 numa parceria entre a PUC-RJ e a Petrobras, a linguagem LUA surgiu da necessidade de integrar duas outras linguagens – SOL (Simple Object Language) e DEL (Data-Entry Language) – que eram usadas em alguns projetos de engenharia da empresa. E o resultado foi uma linguagem tão prática e de fácil aprendizado que começou a ser usada em diversos outros ramos da programação, desde jogos até processamento de texto, passando até mesmo pelo controle de robôs, em gigantes da indústria como Microsoft, Verizon, Disney e Intel\n\n\n## Para que serve e Onde é usada?\n\nLua é amplamente usada como linguagem de script em diversas aplicações, principalmente em jogos, mas tamém em softwares de configuração, e outros sistemas embutidos devido à sua simplicidade e eficiência.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://lh6.googleusercontent.com/proxy/XUrAOPtBuhS1oqYdTk4eit07XKbpqKt7vmy9BOhx2pkNikn7nja1brPmJ4r-2aglQwnJ4__oyFO669dZ1jCVM_qk3jgsMEkqWkK5rmeTEy4XAGA-xETBUFCJMVW7AtBBfSUepSCUvHkZolTQUJNFTOu44_tgS3-DEdqebl_GnN-EajbCNT5Un_NEiN3BHw\" width=\"550\" height=\"300\" alt=\"Onde é usada\"\u003e\n\u003c/div\u003e\n\nAlguns exemplos notáveis incluem:\n\n- Jogos: Roblox, World of Warcraft, Angry Birds, The Sims\n- Softwares: Adobe Lightroom, Nginx\n- Pesquisa: Tecgraf (PUC-Rio)\n\u003cbr\u003e\n\n\u003eWaldemar Celes, atual diretor do Tecgraf, segue em contato com a linguagem Lua no dia a dia, em diversos projetos do Instituto.\n\u003eUm deles é o software Geresim, fruto de mais uma parceria com a Petrobras.\n\u003e\n\u003eO programa é um sistema gráfico interativo que integra ferramentas relacionadas à simulação de reservatórios de petróleo.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"http://jornaldapuc.vrc.puc-rio.br/media/23-10-09_Waldemar-Celes_(Mateus%20Monte)%20(2).jpg\" width=\"550\" height=\"300\" alt=\"Software Gerosim em uso\"\u003e\n  \u003cp style=\"font-style: italic; font-size: 20;\"\u003e O software Gerosim em uso no Instituto Tecgraf. Foto: Mateus Monte\u003c/p\u003e\n\u003c/div\u003e\n\nPara mais informações, visite o [site oficial da linguagem Lua](https://www.lua.org/portugues.html).\n\n## Sistemas Embarcados\n\n### O que são?\n\nSistemas embarcados são sistemas de computação especializados que fazem parte de um dispositivo maior e são dedicados a realizar tarefas específicas. Eles combinam hardware e software para controlar, monitorar ou auxiliar a operação de um dispositivo.\n\n### Exemplos de Sistemas Embarcados\n\n- **Eletrodomésticos**: Micro-ondas, máquinas de lavar, e refrigeradores.\n- **Automóveis**: Sistemas de injeção eletrônica, freios ABS, e sistemas de entretenimento a bordo.\n- **Dispositivos Médicos**: Marcapassos, máquinas de ressonância magnética e bombas de insulina.\n- **Eletrônicos de Consumo**: Telefones celulares, câmeras digitais, e smart TVs.\n- **Sistemas de Automação Industrial**: Controladores lógicos programáveis (PLCs) e robôs industriais.\n\nSistemas embarcados são caracterizados por serem altamente específicos, confiáveis, e eficientes em termos de consumo de energia e recursos.\n\n## Lua em Sistemas Embarcados\n\nLua é uma excelente escolha para sistemas embarcados devido à sua leveza e flexibilidade. Aqui estão algumas razões:\n\n- **Baixo consumo de memória**: Ideal para dispositivos com recursos limitados.\n- **Portabilidade**: Pode ser facilmente integrada a aplicações escritas em C.\n- **Simplicidade**: Facilita o desenvolvimento e a manutenção do código.\n\n### Aplicações em Sistemas Embarcados\n\n- Middleware Ginga: Lua é usada no Ginga, o middleware de TV digital adotado pelo Sistema Brasileiro de TV Digital (SBTVD). O Ginga permite a criação de - aplicativos interativos para a televisão digital.\n- Lego MindStorms: Microprocessadores ARM usados no Lego MindStorms, uma plataforma de robótica educativa, utilizam Lua para programar comportamentos robóticos.\n- Automação e Controle: Lua é utilizada em sistemas de automação industrial e controle, onde a necessidade de um script leve e eficiente é crucial.\n \n### Linguagens Comumente Usadas em Sistemas Embarcados\n\n- **C**: A linguagem mais utilizada para desenvolvimento de firmware devido ao seu desempenho e controle sobre o hardware.\n- **C++**: Utilizada em projetos que beneficiam da programação orientada a objetos.\n- **Assembly**: Usada em situações que requerem otimização extrema e controle sobre o hardware.\n- **Lua**: Usada como linguagem de script para adicionar funcionalidades rapidamente e para prototipagem.\n\n## Como Usar\n\n### Pré-requisitos\n\nPara executar scripts Lua, você precisará instalar o interpretador Lua. Aqui estão os passos para instalação em diferentes sistemas operacionais:\n\n- **Windows**: Baixe o instalador do [site oficial](https://www.lua.org/download.html) e siga as instruções.\n- **macOS**: Use Homebrew: `brew install lua`\n- **Linux**: Use o gerenciador de pacotes da sua distribuição (ex.: `sudo apt-get install lua5.3` para Debian/Ubuntu).\n\n### Executando um Script Lua\n\n1. Crie um arquivo com extensão `.lua` (ex.: `meu_script.lua`).\n2. Abra um terminal e navegue até o diretório onde o arquivo está salvo.\n3. Execute o script com o comando `lua meu_script.lua`.\n\n## Exemplos de Código\n\nNa pasta `examples`, você encontrará alguns exemplos simples de código Lua para ajudar a entender a sintaxe e funcionalidades básicas da linguagem. Aqui estão alguns exemplos incluídos:\n\n- `hello_world.lua`: Um simples \"Hello, World!\".\n- `basic_operations.lua`: Operações aritméticas básicas.\n- `control_structures.lua`: Estruturas de controle como if-else e loops.\n- `gpio_control.lua`: Simulação de controle de pinos GPIO.\n- `timer_interrupt.lua`: Simulação de temporizador e interrupções.\n\n## Licença\n\nEste projeto é licenciado sob a licença MIT - veja o arquivo [LICENSE](LICENSE) para mais detalhes. Fique a vontade para fazer qualquer contribuição!\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://www.ctc.puc-rio.br/Upload/Imagem/2022/09/ctc_800x520-card_lua-120922_da_1_.jpg\" width=\"500\" height=\"300\" alt=\"Fundadores\"\u003e\n  \u003cp style=\"font-style: italic; font-size: 20;\"\u003e Criadores da liguagem: Waldemar Celes, Luiz Henrique de Figueiredo e Roberto Ierusalimschy\u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlos-levi%2Fluaproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlos-levi%2Fluaproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlos-levi%2Fluaproject/lists"}