Índice:
- Etapa 1: peças necessárias
- Etapa 2: construindo a caixa
- Etapa 3: configuração do Arduino
- Etapa 4: Software - XCTU
- Etapa 5: Software - Arduino Sketch
- Etapa 6: Software - Aplicativo Desktop
- Etapa 7: primeiro início
- Etapa 8: Conclusão
- Etapa 9: Anexo
Vídeo: Construir observador de máquina: 9 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
O ponto de partida para este projeto foi trabalhar em um projeto concreto para aprender algumas coisas sobre placas de microcontrolador.
A ideia inicial era criar um objeto físico que pudesse monitorar um Sistema de Integração Contínua (VSTS | Azure DevOps) e relatar falhas de compilação de software. Devido a questões de segurança do departamento de TI, recusei-me a conectar um dispositivo "não padrão" diretamente à rede corporativa.
Acabei com a arquitetura mostrada na foto acima. O fluxo de trabalho de execução pode ser resumido como:
Um aplicativo da área de trabalho do Windows verifica (puxa) as definições de compilação do VSTS. Ele analisa os resultados da construção e, em seguida, envia um comando para o dispositivo físico que executa uma pequena sequência animada antes de mostrar a bandeira vermelha ou a verde.
Etapa 1: peças necessárias
A lista a seguir resume todos os itens necessários:
- 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
- 1 Expension Shield (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
- 2 módulos XBee S1 (https://www.adafruit.com/product/128).
- 1 XBee explorer dongle (https://www.sparkfun.com/products/11697).
- 2 servo motores contínuos 5VDC com acessórios de fixação (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
- 1 fonte de alimentação 9VDC.
- 3 LEDs.
- 3 resistores de 220 Ohm.
- manga termo retrátil.
- 1 botão de pressão.
- 10KΩ pull resistor para pull up.
- Capacitor 100nF.
- Fios elétricos.
- strip-board (para a montagem do botão)
- Madeira de 5mm (50x50cm).
- madeira vara seção quadrada 5x5 mm (1m).
- cartão.
- Parafuso 10 X de 2 mm de diâmetro.
- 4 parafusos de 5 mm de diâmetro.
- ímã forte.
- módulo de torneamento. Reutilizei a parte interna móvel de uma luz intermitente. você pode colocar o que quiser. Você apenas terá que cuidar para que as 2 partes móveis possam se mover livremente sem se tocarem.
Etapa 2: construindo a caixa
Na verdade, você pode ter uma caixa no formato que desejar. As principais coisas a se pensar antes de começar são onde estarão as partes móveis e garantir que elas possam se mover livremente sem se tocarem. Outro ponto é onde você vai colocar o aparelho? Acabei ficando com um ímã (forte) para grudar em qualquer suporte metálico. se você deseja construir a mesma caixa, pode seguir as instruções no arquivo box_drawings.pdf.
Nesse caso, basta cortar todas as peças diferentes, fazer os furos para os servomotores, os LEDs, o botão e os parafusos e por último colar todas as peças. Depois de seco, um pouco de lixamento e um pouco de cor.
As duas bandeiras foram feitas com um pouco de papelão vermelho e verde. Para fixar o mastro da bandeira nos servomotores, você pode usar as peças de montagem fornecidas na compra.
Etapa 3: configuração do Arduino
Os itens conectados à placa de extensão do Arduino são:
- PIN D2: o botão de pressão.
- PIN D4: o LED que indica que o sistema está LIGADO.
- PIN D5: o LED para dizer que executamos um ciclo.
- PIN D6: o LED indica que o dispositivo recebeu uma nova mensagem.
- PIN D9: o sinal de pulso PWM para o servomotor que manipula o giroscópio.
- PIN D10: o sinal de pulso PWM para o servomotor que manipula a bandeira.
- Soquete XBee: um Módulo ZigBee.
O esquema acima mostra como todos os itens são conectados ao tabuleiro.
Para os LEDs, o resistor e os fios são soldados diretamente nele (cuidado com a polaridade). Tudo é então embalado dentro de uma manga termo-retrátil.
Para o botão de pressão, todas as peças (botão, resistor e capacitor) são soldadas diretamente em uma pequena placa de tira de satélite. O strip-board é então diretamente fixado com dois parafusos (2 mm)
Os servomotores operam com 5 V de potência, portanto, podem ser conectados diretamente ao Arduino. Se você usar um com voltagem mais alta (12V), terá que adicionar outra camada para a fonte de alimentação.
Para os módulos XBee, uma vez configurados para se comunicarem (consulte a próxima seção), eles podem ser conectados diretamente aos soquetes.
Observações: Os LEDs e o botão de pressão podem ter sido conectados diretamente aos pinos do Arduino, pois podem implementar internamente as seguranças necessárias. Eu apenas fiz da maneira antiga, pois esse aspecto não estava muito claro para mim.
Etapa 4: Software - XCTU
Conforme mencionado acima, os dois dispositivos XBee devem ser configurados para se comunicarem. Para fazer isso, você precisa usar o software X-CTU dedicado da DIGI. Você precisa executar esta etapa de configuração apenas uma vez. siga o procedimento descrito no arquivo xbee_configuration.pdf.
Assim que a configuração estiver concluída, você pode conectar cada módulo em seu soquete. Um no conversor USB / Serial e um na placa de extensão do Arduino.
O conversor USB / Serial deve ser reconhecido automaticamente pelo Windows 10. Se não for, pode ser necessário instalar manualmente o driver
Observação:
Usar módulos XBee para fazer uma comunicação serial básica é um pouco exagero. Na época em que iniciei o projeto, não consegui encontrar dispositivos de comunicação serial simples facilmente utilizáveis no Windows 10 (problemas de driver). Também foi uma oportunidade de aprender algumas coisas sobre
Etapa 5: Software - Arduino Sketch
Para programar o Arduino usamos o IDE acessível no site oficial.
A lógica do programa é bastante simples, ele apenas escuta na porta serial padrão da placa por letras únicas ('a', 'b', …). Se o caractere recebido corresponder a um comando conhecido, uma subfunção reproduz a sequência correspondente.
Os 2 principais comandos úteis são animação de sucesso ('a') e animação de erro ('b').
Para poder jogar (ou depurar) um pouco mais com a caixa, existem alguns comandos extras que podem ser executados. Eles são:
- ‘O’: força o LED LIGADO a estar LIGADO
- ‘P’: força o LED LIGADO a ficar DESLIGADO
- ‘Q’: força o LED de Nova Mensagem a LIGAR
- ‘R’: força o LED de Nova Mensagem a DESLIGAR
- ‘S’: força o LED de ciclo para LIGAR
- ‘T’: força o LED de ciclo a DESLIGAR
- ‘U’: ativa o servomotor do giroscópio
- ‘V’: ativa o servomotor da bandeira.
Além do comando serial, existe uma sub-rotina (handlePushButton) que é ativada quando o botão é pressionado no dispositivo. Nesse caso, a animação de erro ou sucesso é reproduzida automaticamente. Este recurso permite verificar se o dispositivo físico foi montado corretamente.
O código do esboço do Arduino está no arquivo único bsldevice.ino. Você pode carregá-lo diretamente usando o IDE.
Etapa 6: Software - Aplicativo Desktop
O objetivo do aplicativo de desktop é monitorar o site do Microsoft Azure DevOps (anteriormente VSTS) e detectar se uma Definição de Compilação foi bem-sucedida ou está com erro. Cada vez que uma compilação é concluída, o aplicativo de desktop determina o status da compilação e envia o comando correspondente ('a' ou 'b') para a porta serial (COMx).
Depois de iniciar o aplicativo, a primeira ação é selecionar a porta de comunicação correta na qual o módulo ZigBee está conectado. Para determinar a porta, você pode usar o Gerenciador de Dispositivos do Windows (em Portas (seção COM e LPT)). A conexão com o Azure DevOps é feita automaticamente na inicialização usando as credenciais do usuário atual. Você também pode enviar qualquer comando predefinido manualmente usando a caixa de combinação à direita.
Todas as fontes foram geradas com Visual Studio 2017 Professional edition. Requer o. NET Framework 4.6.1. Esta versão do Framework é preferível para facilitar a conexão / autenticação ao site do VSTS.
usar:
- baixe o arquivo bslwatcher_sources.zip.
- Extraia-o em seu disco.
- Leia o arquivo how_to_build.txt para detalhes de construção.
Etapa 7: primeiro início
Há duas coisas principais a se ter em mente ao iniciar a caixa:
1- Não há como o sistema saber por si mesmo onde estão as bandeiras. O sistema assume que, na inicialização, a bandeira verde está ativada.
2- Ao ligar a placa Arduino nada deve se mover. Como usamos servos contínuos, a posição zero é definida como 90 por padrão no arquivo de esboço. Se um servomotor começar a girar ou fazer algum barulho. você pode ter que redefinir sua posição zero. Para isso, basta ajustar o potenciômetro dentro do pequeno orifício na lateral do servomotor.
www.arduino.cc/en/Reference/ServoWrite
cmra.rec.ri.cmu.edu/content/electronics/boe…
Etapa 8: Conclusão
Este pequeno dispositivo relatará fisicamente o status do seu Sistema de Integração Contínua.
Como a "inteligência" está no aplicativo de desktop, você pode usar a caixa para monitorar qualquer outro software ou processo (e-mail, sensor de temperatura …). Você só precisa ter acesso a outra API e decidir o que é "bom" ou o que é "ruim". Se você não usar as cores de convenção vermelha e verde, você pode até mesmo alterar o significado da "mensagem".
As melhorias também podem ser trazidas para a própria caixa:
- Use uma bateria.
- Use outro protocolo de comunicação.
- Adicione sensores para saber qual bandeira está no topo.
Espero que você tenha achado este projeto interessante.
Obrigado por ler até aqui.
Etapa 9: Anexo
Alguns dos links usados para criar este projeto:
Site do Arduino:
Site da DIGI:
Software XCTU:
Algumas informações usadas de outras pessoas:
arduino.stackexchange.com/questions/1321/se…
stackoverflow.com/questions/10399400/best-w…
www.mon-club-elec.fr/pmwiki_reference_ardui… (em francês)
jeromeabel.net/
Site do MSDN em geral:
docs.microsoft.com/en-us/dotnet/framework/…
Recomendado:
Observador de umidade e temperatura usando Raspberry Pi com SHT25 em Python: 6 etapas
Observador de Umidade e Temperatura Usando Raspberry Pi com SHT25 em Python: Sendo um entusiasta do Raspberry Pi, pensamos em alguns experimentos mais espetaculares com ele. Nesta campanha, estaremos fazendo um Observador de Umidade e Temperatura que mede a Umidade Relativa e Temperatura usando Raspberry Pi e SHT25, Humidi
Construir Mini Correia Transportadora como Máquina Slinky: 7 etapas (com fotos)
Construir Mini Correia Transportadora como Máquina Slinky: Este pequeno projeto usa um motoredutor amarelo para alimentar uma correia transportadora de 30 cm de comprimento feita de tubo de pvc, madeira de pinho 1 por 4 e tela artística (para a correia). Passei por algumas versões antes de começar a funcionar, cometendo um erro simples e óbvio
Máquina Rube Goldberg de 11 etapas: 8 etapas
Máquina Rube Goldberg de 11 Passos: Este projeto é uma Máquina Rube Goldberg de 11 Passos, que foi projetada para formar uma tarefa simples de uma maneira complicada. A tarefa deste projeto é pegar uma barra de sabão
Como construir uma máquina de malabarismo Claude Shannon: 4 etapas
Como construir uma máquina de malabarismo Claude Shannon: Claude Shannon foi um brilhante engenheiro / matemático que criou a teoria da informação e basicamente nos abençoou com o mundo digital. Ele era malabarista e monociclista e criou a primeira máquina de malabarismo. Decidi construir uma máquina de malabarismo ba
Como construir um programador USBTiny ISP: utilizando a máquina de fresagem CNC PCB: 13 etapas (com fotos)
Como construir um programador USBTiny ISP: utilizando a fresadora CNC PCB: Você pensou em como construir seu próprio projeto eletrônico do zero? Fazer projetos eletrônicos é tão emocionante e divertido para nós, fabricantes. Mas a maioria dos fabricantes e entusiastas de hardware que estão apenas dando um passo à frente na cultura do fabricante construíram seus projetos