https://github.com/carlos-levi/luaproject
Repositório sobre a linguagem Lua para monitoria de Sistemas Embarcados que produzi em 2023 durante minha graduação
https://github.com/carlos-levi/luaproject
embedded-systems lua
Last synced: 4 months ago
JSON representation
Repositório sobre a linguagem Lua para monitoria de Sistemas Embarcados que produzi em 2023 durante minha graduação
- Host: GitHub
- URL: https://github.com/carlos-levi/luaproject
- Owner: Carlos-Levi
- License: mit
- Created: 2024-06-22T00:17:14.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-01T01:44:28.000Z (over 1 year ago)
- Last Synced: 2025-04-02T15:38:29.303Z (10 months ago)
- Topics: embedded-systems, lua
- Language: Lua
- Homepage:
- Size: 286 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Introdução à Lua para Sistemas Embarcados
- 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)
- Essa foi uma das linguagens escolhidas, especialmente em homenagem aos seus 30 anos e para destacar uma linguagem nacional de impacto global 🇧🇷
## O que é Lua?
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](https://www.lua.org/).
## História
>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
## Para que serve e Onde é usada?
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.
O software Gerosim em uso no Instituto Tecgraf. Foto: Mateus Monte
Para mais informações, visite o [site oficial da linguagem Lua](https://www.lua.org/portugues.html).
## Sistemas Embarcados
### O que são?
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.
### Exemplos de Sistemas Embarcados
- **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 em Sistemas Embarcados
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.
### Aplicações em Sistemas Embarcados
- 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.
### Linguagens Comumente Usadas em Sistemas Embarcados
- **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.
## Como Usar
### Pré-requisitos
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](https://www.lua.org/download.html) 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).
### Executando um Script Lua
1. Crie um arquivo com extensão `.lua` (ex.: `meu_script.lua`).
2. Abra um terminal e navegue até o diretório onde o arquivo está salvo.
3. Execute o script com o comando `lua meu_script.lua`.
## Exemplos de Código
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.
## Licença
Este projeto é licenciado sob a licença MIT - veja o arquivo [LICENSE](LICENSE) para mais detalhes. Fique a vontade para fazer qualquer contribuição!
Criadores da liguagem: Waldemar Celes, Luiz Henrique de Figueiredo e Roberto Ierusalimschy