Iot

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.

Zero Configuration Networking

Zeroconf Eu estou sempre criando e carregando dispositivos diversos na minha rede com varias finalidades diferentes. Por dispositivos diversos quero dizer que eles podem mesmo ser qualquer coisa, pode ser por exemplo um SBC para fazer alguma coisa relacionada a IoT, pode ser uma maquina virtual para testar algum software que não quero testar nos sistemas principais, e pode facilmente ser uma VM descartável que vou subir só para fazer um teste rápido e descartar em seguida.

Go transformando imagem PNG em código C

Já tem algum tempo eu estava desenvolvendo um projeto usando a DISCO-F746NG, uma placa bem interessante e com muitos recursos. Um dos recursos mais legais é o LCD-TFT com 4.3” e multi-touch. E a programação da placa é feita usando mbed que é um ambiente bastante bom apesar de eu torcer o nariz para ele. Apesar de muitas qualidades essa placa não tem recursos muito avançados para tratamento de imagem via hardware, para desenhar você simplesmente escreve na memória de vídeo… no bom e velho estilo dos anos 90 gravando pixel a pixel :D

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.

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.