Intel Edison

NASA OpenMCT com Intel Edison

Já criei vários sistemas de telemetria e de vez em quando era necessário escrever um dashboard para exibir os dados, eu estava planejando criar um dashboard mais flexível e configurável que eu pudesse usar em vários projetos quando esbarrei com o OpenMCT. O OpenMCT é um frontend para qualquer coisa capaz de gerar dados de telemetria, assim eu posso me focar no backend que para mim é a parte mais divertida e a única coisa que preciso fazer é criar um “telemetry provider” para o OpenMCT, que basicamente significa responder corretamente a algumas chamadas de websocket.

Instalando ffmpeg no Intel Edison

Os tutoriais que encontrei para instalar o ffmpeg no Edison envolvem adicionar repositórios e instalar usando opkg update e install. Isso é ruim porque muitas vezes esses repositórios estão desatualizados e a instalação muitas vezes quebra com outras coisas que estão funcionando. Mas tem uma forma muito mais simples de instalar qualquer coisa no Edison, é só explorar o fato do processador ser um 80x86 puro sangue, então é só encontrar a versão compilada estaticamente para i386 e seu software vai funcionar out of box.

Go com Intel Edison Lendo valor analógico

Este é mais um post da serie falando sobre Go com Intel Edison, e estou usando bastante do que já falei em outros posts como tratamento de sinais por exemplo. Para gerar o sinal analógico vamos usar um potenciômetro, ou melhor RAS, Rotary Angle Sensor :D. O estilo do código é muito parecido com o que fizemos para gerar sinais PWM, mas agora a operação é de leitura. Lendo valores analógicos com MRAA.

Go com Intel Edison controlando saída PWM

PWM ou Pulse Width Modulation tem uma gama enorme de aplicações, usamos para controlar servos, definir o brilho de LEDs, potência de motores, regular tenção, efeitos sonoros e por ai vai. PWD com MRAA Como de costume poderíamos ter chamado diretamente as funções da MRAA, mas daí o código fica muito mais confuso, uma pratica melhor é dividir o programa em múltiplos arquivos. Primeiro o cabeçalho pwm.h que vai ser usado para incluir as funções C no código Go.

Go com Intel Edison lendo um botão.

Continuando com a diversão com o Intel Edison e a linguagem Go, esse é um pequeno exemplo de como ler o estado de um botão e usar esse estado para exibir uma mensagem na tela e para acender um LED. Para facilitar o entendimento vamos ver duas formas de implementação, uma com tudo em um único arquivo e outra com um código mais organizado. Primeiro exemplo Crie um arquivo com o nome button.

Intel Bong com Edison

Eu quero emitir alertas sonoros no meu projeto de controle IoT e para isso eu precisava entender como a classe buzzer da biblioteca UPM funciona, dava para fazer tudo usando apenas a MRAA afinal é apenas um PWM em um terminal, mas vale a pena usar a UPM pois já vou usar para coisas mais pesadas como controle de periféricos i2c por exemplo. Outro motivo para esse pequeno tutorial é que a UPM tem vários recursos e bons exemplos mas não encontrei nenhum lugar explicando como compilar apenas usando os recursos do próprio Edison com uma simples linha de comando ou no máximo com um pequeno Makefile.

IPFS com Intel Edison

Faz tempo que estou querendo brincar com IPFS, a ideia é usar o Edison como um servidor interno para cache de recursos, experimentar e testar o protocolo. Para ter um pouco mais de espaço de armazenamento adicionei um sdcard que vou usar também para armazenar alguns outros recursos da rede de casa. Se você não sabe o que é e como funciona IPFS, de uma olhada no site oficial em https://ipfs.

Go com Intel Edison

Golang com Intel Edison Como prometido no post sobre a construção do meu IoT home appliance, essa é a forma mais simples e segura de instalar Go no Edison. A maioria dos tutoriais que encontrei na internet pedem para compilar Go, o que dá bastante trabalho e demora. Isso se você não esbarrar com alguma dependência como a versão do git por exemplo, ou então adicionar repositórios que muitas vezes estão desatualizados tornando o Yocto instável.

IoT home appliance

IoT home appliance A ideia de construir um appliance para controlar algumas coisas de casa, automatizar algumas tarefas e criar alguns indicadores não é nada nova, mas é uma daquelas ideias que estou sempre adiando por um motivo ou outro. Até agora eu simplesmente não tinha encontrado uma plataforma de hardware e software que realmente me agradasse. Eu queria compatibilidade com o 80x86 mas não queria um PC ligado o tempo todo e também queria uma linguagem empolgante e moderna mas não queria nada interpretado, e escrever tudo em C é legal mas dá preguiça e aumenta a possibilidade do projeto retornar para a gaveta… Agora finalmente eu acredito que encontrei uma boa combinação com o Edison e Go.