Índice:

Guino: Painel para seu Arduino: 4 etapas (com imagens)
Guino: Painel para seu Arduino: 4 etapas (com imagens)

Vídeo: Guino: Painel para seu Arduino: 4 etapas (com imagens)

Vídeo: Guino: Painel para seu Arduino: 4 etapas (com imagens)
Vídeo: Aula 47 - Sprint 4 - Criar EC2 (Servidor Amazon Linux 2) - Manha 2024, Junho
Anonim
Guino: painel para seu Arduino
Guino: painel para seu Arduino
Guino: painel para seu Arduino
Guino: painel para seu Arduino
Guino: painel para seu Arduino
Guino: painel para seu Arduino
Guino: painel para seu Arduino
Guino: painel para seu Arduino

Este projeto faz parte de experimentos realizados durante a realização de um artista residente na Instructables. Você pode ver os outros projetos aqui. Pode ser uma tarefa complicada depurar e visualizar dados em tempo real na placa Arduino. Normalmente, você fica preso à saída serial padrão, pois à medida que a complexidade do código do Arduino aumenta, é impossível compreender o que realmente está acontecendo dentro da placa. Para resolver isso, criei uma pequena biblioteca que permitirá que você crie sua própria GUI personalizada para seus projetos do Arduino. Assista a este vídeo para obter uma demonstração de um hello world básico com um potímetro e um diodo: A partir de agora, o programa tem as seguintes possibilidades e recursos: Personalize sua interface a partir da placa Arduino Você define quais controles deslizantes, gráficos e botões você precisa para sua interface. Você faz isso em seu esboço do Arduino, o que significa que o programa gui atua como um escravo do esboço. Todas as informações são armazenadas em sua placa. Visualize e manipule dados em tempo real Esteja você fazendo um controlador de luz RGB ou um braço de robô, obter um feedback gráfico é crucial para entender o que está acontecendo dentro da placa. Isso permite que você entenda se é o seu hardware ou o código que está causando o problema. Além disso, os controles deslizantes e botões permitem que você ajuste os parâmetros individuais em tempo real. Desta forma, você pode ver o efeito que diferentes limites têm na interação. Salve os parâmetros na memória da placa Depois de ajustar os parâmetros, você pode salvá-los na EEProm da placa. Os parâmetros serão carregados automaticamente na próxima vez que você ligar a placa, mesmo se o computador não estiver conectado. Use o mesmo aplicativo para todos os seus projetos do Arduino Eu fiz toneladas de pequenos aplicativos para diferentes projetos. Meu problema é sempre encontrá-los novamente um ano depois. Como salvamos tudo no Arduino, eu só preciso manter um aplicativo em torno do Arduino configurará automaticamente o aplicativo para o projeto atual. Crie um protótipo da interface antes de ligar o ferro de solda Porque você pode projetar a interface do usuário como quiser (dentro do razoável limites), você pode criar um protótipo da interface antes de criar uma interface física. Isso também permite que você divida as tarefas entre várias pessoas, por exemplo, uma pessoa está trabalhando no hardware e outra está trabalhando no código. Quando você tiver feito a interface física, o Guino se integrará perfeitamente. Use-o como um painel de tela inteira Você pode usá-lo como um painel de tela inteira pressionando F e pressionando T alterna a visibilidade do painel de configurações. Por meio deste documento, você apenas apresenta sua interface personalizada para o mundo ao seu redor. Controle da cor de fundo A cor de fundo pode ser controlada a partir do Arduino, o que permite criar cores diferentes para esboços diferentes. Também pode ser usado para fazer alertas quando algo está errado. Pode ser verde quando tudo está ok e vermelho quando algo está errado. Rápido e Slim Tive muito cuidado em fazer a pegada no Arduino o menor possível - Ele armazena apenas uma quantidade mínima de dados na memória (concretamente um ponteiro lista de 100 itens). Essa configuração pode ser alterada para mais baixa ou mais alta, dependendo da quantidade de itens GUI que você pretende ter em sua interface. Além disso, o sistema conta com a biblioteca EasyTransfer, que transfere as informações na forma binária. Cada pacote consiste em um byte para o comando, um byte para o item # e um inteiro para o valor. O ideal é que todos os seus dados sejam normalizados para um intervalo inteiro assinado de 16 bits. Isso significa uso ideal da porta serial ao trabalhar com inteiros (tecnicamente, usamos um pouco de espaço extra para uma soma de verificação). Bom para Instructables A GUI permite que você crie Instructables que requerem apenas os componentes principais. Componentes extras, como medidores de potes, etc., podem ser feitos virtualmente por meio do gui. Limitações e planos futuros Neste momento, o aplicativo foi compilado para a plataforma Mac OSX e Windows. Ele é escrito em Openframeworks, portanto, deve ser capaz de rodar em outras plataformas também. Como o aplicativo está usando a porta serial, você não poderá conectar outros programas ao Arduino. Isso será resolvido em um lançamento futuro que incluirá um Open Sound Control e uma ponte Midi. Créditos: Programação e ideia por: Mads Hobye Easytransfer library por: Bill Porter Biblioteca GUI por: Reza Ali

Etapa 1: primeiros passos

Começando
Começando
Começando
Começando
  • Baixe e descompacte o pacote GUINO.
  • Baixe o Arduino
  • Copie a pasta de bibliotecas para a pasta de bibliotecas do Arduino (como fazer aqui)
  • Reinicie o Arduino.
  • Abra um dos exemplos dentro do Arduino. (Menu: Arquivos -> Exemplos -> Guino -> escolha um)
  • Se você usar o exemplo simples, faça um circuito conforme ilustrado acima.
  • Faça upload do exemplo.
  • Execute o aplicativo Guino.
  • Escolha a porta serial (geralmente a última)
  • Pressione conectar.

A fonte pode ser encontrada aqui.

IMPORTANTE: Ao utilizá-lo na plataforma Windows deve-se utilizar uma porta de comunicação menor ou igual a 10. Se utilizar uma porta igual ou superior a 10 o sistema não funcionará. Este é um bug em openframeworks.

Etapa 2: como modificar o código

Como modificar o código
Como modificar o código

Para que a biblioteca funcione com seu esboço, você precisa de alguns métodos extras. Eu os descrevi abaixo: gInit () é onde você define seu layout. Este método define o layout adicionando componentes sequencialmente. Os componentes que podem ser alterados (controle deslizante, botões, etc.) possuem uma variável anexada. O & na frente da variável significa que não queremos passar o valor na variável, mas queremos passar uma referência (ponteiro) para a variável. Desta forma, o sistema Guino os atualiza automaticamente quando ocorrem mudanças na GUI. void gInit () {gAddLabel ("SLIDERS", 1); gAddSpacer (1); gAddSlider (3, 200, "WIDTH", & width); gAddSlider (3, 200, "HEIGHT", & height); gAddSlider (0, 255, "LED BRIGHTNESS", & ledLight); // Os controles deslizantes giratórios gAddLabel ("ROTARY SLIDERS", 1); gAddSpacer (1); [………….] GAddColumn (); // Adicione mais coisas aqui. gSetColor (r, g, b); // Defina a cor da interface gui. } GButtonPressed (int id) é chamado sempre que um botão é pressionado. Geralmente, as variáveis podem ser atualizadas automaticamente, mas no caso de um botão, ele precisa ser um evento do qual você cuide. Neste exemplo, definimos a variável height para 100 quando alguém pressiona o botão. void gButtonPressed (int id) {if (buttonId == id) {height = 100; gUpdateValue (& height); }} gItemUpdated (int id) É chamado sempre que um item for atualizado. Normalmente não é necessário usar isso, pois o sistema atualizará as variáveis automaticamente. Se você quiser reagir a uma mudança, pode usá-la como tal. Neste caso, estamos atualizando a cor de fundo sempre que um dos 3 controles deslizantes giratórios for alterado. void gItemUpdated (int id) {if (rotaryRID = id || rotaryGID == id || rotaryBID == id) {gSetColor (r, g, b); }}

Etapa 3: algumas dicas rápidas

Lembre-se de desconectar ao fazer upload de um novo esboço. Você não pode ter o Guino em execução durante o upload de um novo esboço para a placa Arduino, porque eles usam a mesma conexão serial. Isso exige que você se desconecte sempre que carregar um novo esboço. Se você (e vai) tentar fazer o upload enquanto tem o Guino conectado, a placa pode entrar em algum estado estranho onde está funcionando, mas não totalmente. Neste ponto, sua única opção é reiniciar a placa pressionando o botão de reinicialização ou desconectando e reconectando o cabo USB. Bugs conhecidos A partir de agora, o sistema está funcionando e estável. A seguir estão os bugs dos quais você deve estar ciente:

  • setMin não funciona em um movingGraph (parece haver um bug na biblioteca GUI que precisa ser corrigido). Portanto, o mínimo permanece em zero.
  • A lista serial é carregada ao iniciar o programa. O Arduino deve ser conectado antes de iniciar o programa. Atualizar a lista serial durante a execução causa um evento inválido. Ainda não foi resolvido.
  • Mexer com a lista serial - às vezes faz o programa travar (mesmo evento gui que atualizar - tem que encontrar a fonte)
  • O fundo dos botões de alternância torna-se preto dependendo da inicialização. Preciso definir o plano de fundo manualmente.
  • Em algumas plataformas Windows, a porta de comunicação não aparece. Pode ser um problema de driver Ftdi.

Etapa 4: casos de uso

Casos de Uso
Casos de Uso

Se você quiser ver alguns casos de uso com a interface Guino, vá para este Instructable.

Recomendado: