O Início de Tudo

No dia 6 de Junho de 2018, se deu início ao primeiro projeto da BINARY_QUANTUM: O Druida Tool’s Suite. O primeiro software, ainda em desenvolvimento na data de postagem desse artigo, começou de uma pequena ideia. A intenção era facilitar a união entre uma das placas de prototipagem mais utilizadas no planeta, o Arduino; com um computador convencional. Em suma, o software a ser produzido, deveria permitir que seus usuários construíssem interfaces de comando, sendo elas capazes de realizar acionamentos no Arduino através de periféricos conectados ao computador. Mas ao longo do seu desenvolvimento, idéias ambiciosas surgiram, e na medida que apareciam, iam sendo implementadas no programa.

Desenvolvimento das primeiras telas do software, no ambiente do Visual Studio

O seu desenvolvimento, iniciou-se no ambiente do Visual Studio, sendo utilizada a versão gratuita, o Visual Studio Community 2017. A linguagem utilizada permanece até o momento, sendo o Visual Basic.

O primeiro grande desafio do projeto, foi desenvolver a lógica de um protocolo de comunicação dinâmico, capaz de permitir a troca de informações entre o programa desenvolvido no Visual Studio, e o Arduino. É possível encontrar vários protocolos abertos na internet, como o Modbus por exemplo. Porém, a ideia era desenvolver um protocolo próprio, para que o desenvolvedor tivesse completo domínio do seu funcionamento. Além disso, foi estabelecido que o seu código fonte, deveria ser o mais didático possível, para facilitar a sua compreensão por parte dos futuros usuários do programa.

Após várias xícaras de café, e algumas dezenas de linhas de código revisadas, deu-se forma ao protocolo BqBusCmd. Com um código de programação que não ultrapassava a 200 linhas, ele se mostrou capaz de estabelecer uma comunicação dinâmica, trafegando até 256 palavras de dados, em uma rede serial ponto a ponto.

Sua lógica é bem simples, as palavras de rede são separadas por pontos, e o final da comunicação é sinalizado com um travessão.

Teste do protocolo BqBusCmd no Serial Monitor do Arduino

O segundo desafio, foi tornar o software capaz de enviar um programa para o microcontrolador da placa. Através de uma pesquisa rápida na internet, fica claro que a forma mais simples de enviar um programa para o Arduino fora do seu ambiente de desenvolvimento, é através de ‘linhas de comando’ executadas pelo CMD do Windows, em conjunto com o software ‘avrdude.exe’.

Tela de atualização do firmware, onde é enviado o arquivo ‘.hex’ para o Arduino

O último desafio enfrentado nas etapas iniciais do projeto, foi criar um editor de interfaces, que permitisse ao usuário criar componentes, ajustar o seu tamanho e sua posição, e que fosse possível salvar/carregar as informações no disco rígido do computador. Essa foi certamente a etapa mais complexa. Para conseguir resolver esse problema, foi criada uma ‘engine’ dentro do Visual Studio, capaz de gerenciar controles personalizados. Sua principal função é realizar o escaneamento da tela, e obter os principais atributos dos controles criados pelo usuário, os manipulando de acordo com a operação realizada. É ela que executa as funções “Desfazer”, “Refazer”,”Copiar”, “Recortar”, “Colar”, e as operações responsáveis por “Salvar” ou “Carregar” a tela criada pelo usuário.

Edição de uma interface com o Druida Tool’s Suite

Após essas três etapas, o fluxo do desenvolvimento foi direcionado basicamente para a inclusão de ferramentas com o objetivo de trazer diferenciais para o programa. Existe uma quantidade imensa de softwares dedicados a interligar o Arduino a uma interface de controle e monitoramento, porém o grande diferencial que foi incluído no Druida Tool’s Suite, é a possibilidade de desenvolver a interface e o código fonte do Arduino, utilizando uma única plataforma.

O que parecia inicialmente um projeto simples, acabou se tornando extremamente ambicioso, e provavelmente a coletânea dos maiores desafios enfrentados no desenvolvimento de um software ao longo da minha carreira. Até onde ele pode chegar, confesso que não sou capaz de imaginar, mas posso afirmar, que a experiência obtida já valeu cada segundo gasto em seu desenvolvimento.

Gostou do post? Deixe seu comentário logo abaixo! Leva pouco tempo, e vai motivar quem o criou, a continuar o seu trabalho.

Anúncios

Publicado por WESLEY JOSE SANTOS

Independent developer, with great knowledge about Arduino programming and plataforms of monitoring and process control, also having experience with PLC's, IHM's and SCADA based systems. Desenvolvedor indepentente, possuindo conhecimentos em programação de Arduino e em plataformas de monitoramento e controle de processos, bem como experiência em programação de PLC's, IHM's e sistemas de supervisório (SCADA).

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: