eLua : Lua for a embedded world

Overview

eLua é a versão da linguagem Lua desenvolvida para ser utilizada embarcada em microcontroladores de 32 bits. A linguagem Lua foi desenvolvida pela PUC/RJ com o objetivo de ser uma linguagem de simples utilização, fracamente tipada e ser de fácil aprendizado. Desde o inicio foi projetada com o objetivo de ser utilizada em ambientes sujeitos a mudanças constantes , na linha trocar turbinas em pleno voo. A linguagem pode ser utilizada embarcada em uma outra linguagem , mais comumente C , onde todas as partes principais são escritas em C e o que muda com frequência é  escrito em Lua , podendo ser carregado em tempo de execução. Muitos projetos e aplicações fizeram uso destas facilidades proporcionadas pela linguagem mas foi no mundo dos games que ela tornou-se mais visível e conhecida. Este sucesso deveu-se a muitos jogos terem incluído Lua como a linguagem para a escrita das fases , permitindo a partir de um mesmo engine de games , adicionar novos ambientes e dificuldades a medida que as novas fases fossem atingidas. Lua é utilizada em muitos contextos tais como servidores web, tratamento de imagens , automação de atividades , jogos para celulares , etc etc.

Origem

A Linguagem Lua foi desenvolvida por uma equipe da PUC/TECGraf com o objetivo inicial de ser usada em projetos da Petrobras . Desta equipe faziam parte Roberto Ierusalimschy ,Luiz Henrique de Figueiredo e Waldemar Celes. A linguagem rapidamente passou a contar com uma serie de melhoramentos e ampliações que a tornaram um linguagem de uso geral e fazendo inclusive da infraestrutura do projeto da TV Digital Brasileira.

eLua

A linguagem eLua é uma convergência de dois projetos assemelhados que visavam trazer a linguagem lua para o ambiente dos microcontroladores. Os projetos de Bogdan Marinescu e Dado Sutter ( OHMS , PUC/RJ )  , para portar a linguagem Lua para microcontroladores , existiam independemente e resolveram integrar os esforços, fontes e experiência acumulada para criar um ambiente unico de desenvolvimento. Após esta integração foram iniciados os esforços para portar a linguagem para outros microcontroladores e outras arquiteturas. Atualmente (2015) é possivel executar  eLua em diversos microcontroladores com diferentes graus de acesso aos periféricos internos

Hoje, a principal referencia sobre eLua é a pagina do projeto em http://wiki.eluaproject.net/  . Existe tambem o site eLua builder ,http://builder.eluaproject.net/  , onde está disponível uma plataforma online para a gerar o binário para diversos microcontroladores e kits de desenvolvimento.

Porque falar disso ? Lua está sendo usada para criar mini-aplicações nos módulos Wi-Fi de baixo custo , baseados nos SoCs esp8266 da Expressif  , mas isso é conversa para o próximo post do BlogDoJe.

Referencias :

Lua na Wikipedia

Página do OHMS no Facebook

OHMS – Our Home Maker Space

 

 

Atmel Store

A Atmel lançou recentemente a Atmel Store, uma loja na internet dedicada as suas ferramentas de desenvolvimento e depuração para os produtos fabricados por ela. O site tem as seguintes categorias de produtos a venda : Starter kits, Debuggers, Programmers, Touch kits, Wireless kits, Evaluation kits, Reference designs, Spare parts & Accessories.

Estão disponiveis para venda , por exemplo, o STK-500 por US$ 79,00 e o STK-600 por US$ 199,00 na categoria Starter Kits e o Atmel AVR RZ Raven por US$ 119,00 na categoria Wireless Kits. O AVR RZ Raven permite o desenvolvimento e depuração de aplicações wireless com os protocolos EEE 802.15.4, 6LoWPAN e ZigBee.

Para comprar na loja é necessário preencher um cadastro com dados pessoais e não é obrigatório estar associado a nenhuma empresa. O frete minimo para o Brasil está fixado em US$ 41,00 ( dolares americanos). Não existem informações sobre a possivel venda de componentes através do site.

Links:

Atmel Store

Arduino Shield List

Foi criada uma iniciativa interessante : a Arduino Shield List. O site Shieldlist.org catalogou dados de todas extensões (shields) conhecidas para o Arduino e as reuniu em uma base para consulta. No lado direito da pagina principal, estão listados os fabricantes e quantidade de shields que criaram. Ao clicar no link do fabricante são listados os shields fabricados e finalmente clicando no link do shield, vemos a foto da placa e a informação de quais pinos são utilizados pelo shield.

O trabalho é muito bom. Ainda não está completo ( e talvez nunca esteja …) mas já dá para ser usado como referencia. O criador aceita sugestões de novos shields para serem adicionados a base de dados. Faltam alguns melhoramentos , principalmente uma função de busca.

Link:

Arduino Shield List

III Seminário Programação C&C++ para Sistemas Embarcados

O Portal Embarcados e a Comunidade C&C++ Brasil tem o prazer de anunciar a terceira edição do:
Seminário Programação C&C++ para Sistemas Embarcados

O evento ocorrerá no dia 06 de novembro em São Paulo e contará com a seguinte programação:

  • Comunicação Serial com Microcontroladores: USART, I2C, SPI e Outros – Daniel Quadros

Teoria e prática das formas mais comuns de interligação serial de microcontroladores a periféricos e outros sistemas.
Resumo:
Uma das formas mais tradicionais da interligação de microcontroladores a outros dispositivos é a comunicação serial (um bit por vez). Nesta palestra são apresentadas a comunicação serial assíncrona e os padrões I2C, SPI e MICROWIRE. Além da descrição teórica serão apresentados códigos exemplos para diversos microcontroladores.

Tópicos:
-> Comunicação serial assíncrona. Exemplos: PIC, HCS08.
-> Padrões RS232, RS422 e RS485.
-> Comunicação a 2 fios (I2C). Exemplos: PIC com relógio PCF8583 e MSP430 com memória 24WC256.
-> Comunicação a 3 fios. Exemplo: PIC com relógio DS1302.
-> Comunicação a 4 fios (SPI, MICROWIRE). Exemplo: HCS08 com memória FM93C66.

  • Introdução ao Linux Embarcado – Eduardo Belloti

Linux Embarcado, suas aplicações e ferramentas de desenvolvimento

Resumo:
Serão apresentados fundamentos do sistema Linux em aplicações embarcadas, abordando exemplos de aplicações, arquitetura do sistema, considerações de hardware, ferramentas de desenvolvimento e gerenciamento de imagens, ferramentas de depuração, pilha de software para o desenvolvimento de aplicações e considerações sobre comportamento real-time. A plataforma ARM receberá o foco principal e exemplos práticos ilustrando os conceitos apresentados serão desenvolvidos para a audiência.

Tópicos:
-> Uso do Linux em sistemas embarcados
-> Anatomia de um sistema Linux
-> Plataformas de Hardware
-> Ambiente de desenvolvimento e ferramentas
-> Bibliotecas de software para aplicações
-> Atendendo a requisitos de tempo real
-> Exemplos práticos na plataforma ARM9 S3C2440 (mini2440).

  • Desenvolvendo software seguro em C – Sergio Prado

Técnicas de desenvolvimento de software seguro em linguagem C

Resumo:
A quantidade de dispositivos e equipamentos eletrônicos que interagimos no dia-a-dia aumenta a cada ano. A maioria destes dispositivos ou equipamentos possui certa inteligência (leia-se software embarcado). Meios de comunicação, sistemas de controle aéreo, equipamentos médicos, todos dependem destes dispositivos, onde qualquer falha pode causar consequencias indesejáveis ou fatais. E grande parte da responsabilidade por estas falhas é o software embarcado nestes dispositivos. Todos os envolvidos nas atividades de desenvolvimento de software embarcado precisam conhecer as armadilhas da linguagem C e as técnicas de desenvolvimento de software seguro.

Tópicos:
-> Segurança em Sistemas Embarcados
-> Linguagem C: uma faca de dois gumes
-> Começando certo com um design seguro
-> Alocação dinâmica – usar ou não usar
-> Indo além de ponteiros e buffers
-> Ouvindo o que as funções têm a dizer
-> Ultrapassando os limites de um inteiro
-> Vulnerabilidades em funções do sistema operacional
-> Outras técnicas recomendadas

  • C++ em sistemas embarcados: poder e responsabilidade – André Braga

Resumo:
C++ é uma linguagem poderosa, que permite o uso de muitas técnicas e paradigmas de programação. Mesmo em sistemas embarcados, onde os recursos de processador e memória são mais limitados que em um computador, o C++ pode nos ajudar a programar de forma mais modular e eficiente.
Entretanto, essas vantagens podem virar um problema se não forem bem administradas pelo desenvolvedor. Nem todas as os recursos do C++ são devoradores de recursos do microcontrolador, mas também não se pode escrever um programa para sistema embarcado da mesma forma que se escreve um programa para PC.

Tópicos:
-> Paradigmas de programação
-> Construções típicas do C++ e da orientação a objetos
-> Relação do programador com o compilador
-> Testes em uma linguagem de alto nível
-> Alguns mitos e algumas verdades

Para inscrições e maiores informações acessem:  http://www.temporealeventos.com.br/?area=118

II Workshop do Grupo Arduino-Brasilia

II Workshop do Grupo Arduino-Brasilia

Ontem , 28/08/2010,participei do segundo encontro do grupo Arduino Brasilia. Apareceram 18 pessoas e foi muito legal ver o interesse do pessoal pela plataforma. Os níveis de conhecimento eram muito variados: ia de primeiro contato com o Arduino até quem já está industrializando produtos com base no Arduino. Para nivelamento do grupo , o encontro de ontem acabou sendo uma introdução ao Arduino, já que a maioria do grupo estava vendo o dito cujo pela primeira vez.

II Workshop do Grupo Arduino-Brasilia

Fiz uma apresentação bem básica sobre a plataforma com uma introdução sucinta sobre eletrônica , a IDE do Arduino e a estrutura do código  e depois o Lucas Fragomeni fez demonstrações de uso de sensores, motores e o famoso led piscante (“Hello World”) do Arduino. Com isso, lá se foram 4 horas de muita troca de informações e aprendizado com uma galera muito motivada e participante. A principio devem ocorrer outros encontros, sempre no ultimo sábado de cada mês. Para ficar informado é só se inscrever na lista: http://groups.google.com.br/group/arduino-brasilia

Para quem sentia falta em Brasilia da movimentação que existe em São Paulo e Rio em torno do Arduino, está aí a oportunidade.

Participe !!

Arduino no CONSEGI 2010 em Brasilia

Acontecerá em Brasilia, no período de 18/08 a 20/08, o III Congresso Internacional de Software Livre e Governo Eletrônico – CONSEGI.

Neste Congresso aconteceram diversas palestras sobre software livre e  tecnologias  abertas e lá no dia 19/08 tem agendada uma palestra sobre “Hardware e Software Livres com Arduino” com o Alvaro Justen. Alvaro, mais conhecido Turicas, inventou o “Hack’n’Beer” no Rio de Janeiro, um encontro onde se troca informações sobre hardware, software sob a influencia etílica da cerveja. A confraternização deve ser ótima.

Não percam !!

Links:
III Consegi
Programação do CONSEGI
Blog do Turicas

Monte um Arduino Severino para chamar de seu

Cada vez que converso com os novos interessados no Arduino, a maioria quer usar um Arduino original , italiano com pedigree e atestado de origem ( invoice) . Mas, como todos ja sabem, é possivel montar o seu proprio Arduino , dá trabalho , exige o aprendizado de uma série de conhecimentos durante a “jornada” de montagem e depuração mas que no final, voce estará pronto paras as novas necessidades que surgirão depois que voce tiver completado o seu Arduino.

E onde entra o Severino ? O Arduino S3V3 , Severino , muito prazer, é uma versão melhorada do Arduino Single Side Serial desenvolvida pelo Adilson Akashi. Possui trilhas mais largas , bem distribuídas e que incorpora as novidades presentes nas versões USB mais recentes. Voce pode fazer a sua própria placa usando transferência témica por toner mais ferro de passar roupa, comprar os componentes e monta-la voce mesmo . O custo fica baixo . Segundo o Prof. Paulo Gonçalves da Universidade Estadual de Maringá , em seu ultimo levantamento determinou que o custo total do Severino ficaria em torno de R$ 28,00 reais incluindo o microcontrolador ATMEGA8. A planilha com o levantamento dos preços esta no link abaixo. A confecção da placa não é complicada mas voce terá que lidar com ácidos , ferros de passar roupa e furação da placa. É possivel comprar a  placa já pronta no ponto de só fazer a montagem, no mercadolivre aparecem de vez quando placas do severino para vender . De qualquer forma , o manual de montagem do severino apesar de bem básico , traz o desenho das placas, esquema e lista de componentes.

Montem , errem , consertem , o processo é bem simples . No inicio é provável que voce leve um dia para montar e depurar mas depois de uns 20 arduinos montados, voce conseguirá chegar perto das duas horas para coloca-lo em funcionamento.

Divirta-se !!!

Links:
Documentação Arduino Severino no site Arduino.cc
Planilha com preços dos componentes do Severino

Posts Relacionados:
Arduino Single-Sided Serial Board (versão 3) – Severino

Beagleboard do Je ganha proteção de acrílico

Eu quase destruí a minha Beagleboard !

Deixei uma chave de fenda cair em cima da mesa e por pouco não acertei a coitadinha bem no meio. Por causa disso resolvi fazer uma proteção para ela. Não ficou tão legal quanto a do Tiago Maluta mas vai dar pro gasto. A proteção foi feita com dois pedaços de acrilico que iam ser jogados fora, um branco e outro transparente , 4 parafusos e 12 porcas. As placas foram cortadas nas dimensões de 3 x 3,1 polegadas e furadas nas mesmas posições dos furos da Beagleboard. Após aparafusar tudo, o conjunto ficou bem rigido e protege a Beagleboard pelos dois lados. A “inspiração” para este arranjo veio de um post no blog Becoming Cyborg onde uma Beagleboard é usada como um computador “vestível” ( wearable computer). No post foi colocada a proteção só na parte de cima da Beagleboard, mas eu resolvi colocar do outro lado tambem,  para poder coloca-la em mesas metálicas sem susto .

Acrylic protetion for beagleboard

Links:

Tiago Maluta – Prototipo de caixa para Beagleboard
Becoming Cyborg – CD Case for Beagleboard

Posts Relacionados:
Beagleboard
Beagleboard XM
BlogdoJe leva Arduino e Beagleboard ao FLISOL-DF 2010
Chegou a Beagleboard do Je
Tem Beagleboard a venda na Digikey