Até o último momento, os controladores (e o Arduino, em particular) trabalhavam sem uma interface ou com interfaces primitivas, relativamente falando, com um ou dois botões. Com o advento do Mega Server do Arduino, a situação mudou drasticamente e tornou-se possível fazer qualquer interface para seu projeto no Arduino.Hoje iremos ainda mais longe e falaremos sobre como criar uma interface 3D interativa completa para o seu projeto no Arduino. Realizaremos todos os experimentos no novo microcontrolador Genuino 101 fabricado em conjunto pela Intel e Arduino e gentilmente fornecido pela Intel para portar o sistema Arduino Mega Server para ele.Por que você precisa de 3D no Arduino?
Obviamente, você pode ficar sem uma interface e limitar-se ao simples controle de algo usando o controlador, mas quão mais conveniente é controlar o dispositivo a partir de uma bela interface da Web e quão mais agradável é observar dados não na forma de matrizes de números abstratos, mas na forma de belos modelos tridimensionais, com com o qual você pode interagir diretamente na tela do seu computador.Aplicações 3D
Todo o espectro de aplicação das tecnologias 3D em microcontroladores pode ser dividido em três partes: visualização de dados, interfaces 3D e treinamento interativo. Vamos considerar mais detalhadamente cada um desses aspectos.Visualização de dados
As tecnologias 3D podem ser usadas para visualizar visualmente processos complexos que ocorrem tanto dentro do sistema (estado das partes do sistema, trabalho das funções, estado das variáveis etc.) quanto externamente (estado das matrizes de sensores, estado de um parâmetro ou objeto controlado, etc.) )A beleza dos gráficos 3D é que, de relance, você pode avaliar o estado de um sistema complexo e, se necessário, executar as ações necessárias.O mesmo modelo 3D é um elemento de controle universal, quando você pode dimensionar o modelo e alterar o estado de suas partes com um clique do mouse (afinal, é interativo). Isso não passa de um novo tipo de interface.Mundos 3D
Sob mundos 3D, aqui queremos dizer modelos 3D interativos desenvolvidos que contêm conjuntos de elementos (objetos) e as regras para a interação desses objetos dentro do modelo (a "física" deste mundo).Em relação aos controladores (com seus sensores, eles estão conectados ao mundo real), esse conceito se traduz na representação de objetos e processos reais em um mundo 3D virtual. E como o modelo virtual é interativo, o impacto nele no mundo virtual leva a uma mudança no estado dos objetos no mundo real (o controlador é conectado ao mundo real por muitos atuadores).Como resultado, esse é um novo tipo de interface, e a base para os conjuntos de treinamento e a base para aplicativos de jogos de controladores, etc., etc., a variedade de aplicativos dessa tecnologia é muito ampla.Aprendizagem online
Essa tecnologia (em conjunto com as tecnologias Arduino Mega Server e OHAS ) permite criar controladores que contêm tudo o que você precisa para interagir com o usuário (exemplos 3D interativos, documentação, manuais, manuais, etc.) e construir sistemas complexos é tão fácil quanto dobrar cubos de lego.
Isso pode ser usado para ensinar, visualizar processos complexos, jogos, enciclopédias interativas e cursos de treinamento (contidos no controlador!), Etc.Questões tecnológicas
Em geral, a idéia de ensinar os controladores Arduino a trabalhar com gráficos 3D parece muito atraente, mas a incorporação dessa idéia se depara com uma barreira aos microcontroladores, tanto em termos de RAM quanto no poder de processamento do próprio controlador.Se você tentar resolver esse problema sozinho, não terá êxito ou a solução levará muito tempo e esforço para implementá-lo. Nossa tarefa é bastante simplificada - podemos usar o mecanismo pronto para uso do sistema Arduino Mega Server, que enfrentará todas as dificuldades de trabalhar com arquivos e exibir páginas da web na tela do usuário.Solução técnica
A beleza da solução reside no fato de que podemos usar qualquer biblioteca JavaScript pronta (juntamente com seus muitos exemplos) e desenvolver rapidamente quaisquer soluções 3D necessárias nesta base.Nesses exemplos específicos, as bibliotecas padrão Processing.js e Three.js foram usadas. Mas, se você é fã de outra biblioteca, nada o impede de usar sua biblioteca favorita.Tudo que você precisa fazer para começar a usar o 3D no seu projeto do Arduino é conectar a biblioteca 3D apropriada da maneira usual<script src="process.js"></script>
ou<script src="three.js"></script>
Em seguida, insira o código de exemplo 3D na página ou insira o link para o arquivo com o exemplo 3D<canvas id="sketch" data-processing-sources="cube.pde"></canvas>
E isso, de fato, é tudo o que você precisa fazer para obter um exemplo em 3D na sua página do Arduino Mega Server. Tudo é feito exatamente da mesma maneira que em um site regular da Internet. E o Arduino Mega Server realiza todo o trabalho duro para garantir a disponibilidade do sistema.Interatividade
Apenas rodar um modelo 3D no Arduino é certamente ótimo, mas não esqueça que o trabalho é feito no controlador, e este é um dispositivo conectado ao mundo real com muitos sensores na entrada e muitos atuadores na saída. E seria bom exibir alguns parâmetros de um sistema real em um modelo 3D.
Vamos, por exemplo, considerar a visualização das funções de rede do microcontrolador.A operação da interface do Arduino Mega Server é garantida pela troca contínua do Ajax entre o controlador e o navegador do usuário. Como modelo 3D, usamos um hipercubo composto por seis objetos em cada um dos três eixos de coordenadas (um total de 216 objetos).Cada objeto pode alterar seu tamanho, sua geometria, cor ou tipo de movimento, dependendo do estado do objeto real (função de rede, neste caso). Neste exemplo, é selecionada uma alteração na cor do brilho da esfera ao ativar uma função de rede.Como resultado, a pulsação medida de duas esferas em um modelo 3D mostra a operação normal das funções Ajax do sistema e você tem outros 214 objetos para indicar outros parâmetros. E um número quase ilimitado de páginas da web para renderizar outros modelos 3D.Interação do sistema e modelos 3D
Os valores são transferidos para o modelo 3D simplesmente alterando as variáveis JavaScript; da mesma forma, ações de controle podem ser produzidas a partir do modelo 3D (clicando na esfera com o mouse - ligando ou desligando, por exemplo, alguma função ou sensor, etc.).Uma variável é declarada no arquivo scripts.jsvar dash_marker1 = 0;
E então os marcadores são colocados nos lugares certos do programa que alteram o estado da variável. Nesse caso, quando você "entra" e "sai" de uma função de rede.dash_marker1 = parseFloat("1.0");
dash_marker1 = parseFloat("0.0");
Em um esboço sobre Processamento, as variáveis são declaradas para "capturar" valores do JavaScriptfloat for_dash_marker1 = 0;
E o próprio momento de "pegar"try {
for_dash_marker1 = float(dash_marker1);
} catch (exception) {
for_dash_marker1 = float("0.0");
}
E, em seguida, são descritas ações com um modelo 3D, dependendo do estado das variáveisif (for_dash_marker1 < 1.0) {
...
}
Você pode assistir ao resultado desse código no vídeo e familiarizar-se com todo o pacote de distribuição (e executá-lo, se tiver um controlador Genuino 101) na página de Download do projeto Arduino Mega Server.Vídeo
Vídeo mostrando o trabalho de gráficos 3D no ArduinoConclusão
Agora, os gráficos 3D se tornaram mais acessíveis do que nunca para seus projetos no Arduino, e as perspectivas ainda mais emocionantes esperam por você: o Arduino Mega Server é portado para esp8266 e pode fazer tudo o que é descrito neste artigo enquanto trabalha sem fio através de Wi-Fi e está em um módulo de tamanho com uma moeda de dez centavos.
E em um futuro próximo, a distribuição da AMC para esp8266 aparecerá no site do projeto. Você está aguardando downloads de arquivos e piscando o controlador sem fio, um servidor FTP e muitos outros recursos que o Arduino Mega Server fornece. E essa é outra revolução no mercado de IoT.