- 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
- Essa foi uma das linguagens escolhidas, especialmente em homenagem aos seus 30 anos e para destacar uma linguagem nacional de impacto global 🇧🇷
Lua é 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.
Atualmente, Lua é desenvolvida no laboratório LabLua do Departamento de Informática da PUC-Rio.
Para mais informações sobre Lua, visite o site oficial.
Criada 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
Lua é 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.
Alguns exemplos notáveis incluem:
- Jogos: Roblox, World of Warcraft, Angry Birds, The Sims
- Softwares: Adobe Lightroom, Nginx
- Pesquisa: Tecgraf (PUC-Rio)
Waldemar Celes, atual diretor do Tecgraf, segue em contato com a linguagem Lua no dia a dia, em diversos projetos do Instituto. Um deles é o software Geresim, fruto de mais uma parceria com a Petrobras.
O programa é um sistema gráfico interativo que integra ferramentas relacionadas à simulação de reservatórios de petróleo.
Para mais informações, visite o site oficial da linguagem Lua.
Sistemas 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.
- Eletrodomésticos: Micro-ondas, máquinas de lavar, e refrigeradores.
- Automóveis: Sistemas de injeção eletrônica, freios ABS, e sistemas de entretenimento a bordo.
- Dispositivos Médicos: Marcapassos, máquinas de ressonância magnética e bombas de insulina.
- Eletrônicos de Consumo: Telefones celulares, câmeras digitais, e smart TVs.
- Sistemas de Automação Industrial: Controladores lógicos programáveis (PLCs) e robôs industriais.
Sistemas embarcados são caracterizados por serem altamente específicos, confiáveis, e eficientes em termos de consumo de energia e recursos.
Lua é uma excelente escolha para sistemas embarcados devido à sua leveza e flexibilidade. Aqui estão algumas razões:
- Baixo consumo de memória: Ideal para dispositivos com recursos limitados.
- Portabilidade: Pode ser facilmente integrada a aplicações escritas em C.
- Simplicidade: Facilita o desenvolvimento e a manutenção do código.
- 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.
- Lego MindStorms: Microprocessadores ARM usados no Lego MindStorms, uma plataforma de robótica educativa, utilizam Lua para programar comportamentos robóticos.
- Automação e Controle: Lua é utilizada em sistemas de automação industrial e controle, onde a necessidade de um script leve e eficiente é crucial.
- C: A linguagem mais utilizada para desenvolvimento de firmware devido ao seu desempenho e controle sobre o hardware.
- C++: Utilizada em projetos que beneficiam da programação orientada a objetos.
- Assembly: Usada em situações que requerem otimização extrema e controle sobre o hardware.
- Lua: Usada como linguagem de script para adicionar funcionalidades rapidamente e para prototipagem.
Para executar scripts Lua, você precisará instalar o interpretador Lua. Aqui estão os passos para instalação em diferentes sistemas operacionais:
- Windows: Baixe o instalador do site oficial e siga as instruções.
- macOS: Use Homebrew:
brew install lua
- Linux: Use o gerenciador de pacotes da sua distribuição (ex.:
sudo apt-get install lua5.3
para Debian/Ubuntu).
- Crie um arquivo com extensão
.lua
(ex.:meu_script.lua
). - Abra um terminal e navegue até o diretório onde o arquivo está salvo.
- Execute o script com o comando
lua meu_script.lua
.
Na 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:
hello_world.lua
: Um simples "Hello, World!".basic_operations.lua
: Operações aritméticas básicas.control_structures.lua
: Estruturas de controle como if-else e loops.gpio_control.lua
: Simulação de controle de pinos GPIO.timer_interrupt.lua
: Simulação de temporizador e interrupções.
Este projeto é licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes. Fique a vontade para fazer qualquer contribuição!