Índice:

Measurino: uma prova de conceito da roda de medição: 9 etapas
Measurino: uma prova de conceito da roda de medição: 9 etapas

Vídeo: Measurino: uma prova de conceito da roda de medição: 9 etapas

Vídeo: Measurino: uma prova de conceito da roda de medição: 9 etapas
Vídeo: DIY dyno (Dynamometer): Part 7 - More Testing 2024, Novembro
Anonim
Measurino: uma prova de conceito de roda de medição
Measurino: uma prova de conceito de roda de medição

Measurino simplesmente conta o número de rotações de uma roda e a distância percorrida é diretamente proporcional ao raio da própria roda. Esse é o princípio básico de um odômetro e iniciei este projeto principalmente para estudar como manter o circuito (operado por um microcontrolador Arduino) compatível com várias faixas de distância, de milímetros a quilômetros, e para avaliar possíveis problemas ou melhorias.

Etapa 1: peças e componentes

  • Arduino Nano rev.3
  • Display OLED de 128 × 64 (SSD1306)
  • Codificador Rotativo Fotoelétrico Incremental (400P / R)
  • Roda de borracha para aeromodelo (51 mm de diâmetro)
  • 2 botões
  • Bateria 9v

Etapa 2: o codificador

O codificador
O codificador
O codificador
O codificador

Para este projeto, testei vários codificadores rotativos baratos, mas os descartei imediatamente devido a problemas de precisão / sensibilidade. Então fui para o Codificador Rotativo Fotoelétrico Incremental do DFRobot - 400P / R SKU: SEN0230. Este é um codificador rotativo fotoelétrico incremental industrial com material de alumínio, corpo de metal e eixo de aço inoxidável. Ele gera sinal de pulso ortogonal bifásico AB através da rotação do disco de grade e optoacoplador. 400 pulsos / rodada para cada fase e 1600 pulsos / rodada para saída 4 vezes bifásica. Este codificador rotativo suporta velocidade máxima de 5000 r / min. E pode ser usado para velocidade, ângulo, velocidade angular e outras medições de dados.

O codificador rotativo fotoelétrico tem uma saída de coletor aberto NPN, então você precisa usar resistores pullup ou habilitar o pull-up do Arduino interno. Ele está usando o chip regulador de tensão 750L05, que tem uma entrada de alimentação de ampla faixa DC4.8V-24V.

Etapa 3: Sensibilidade

Sensibilidade
Sensibilidade

Este codificador rotativo optoelétrico tem realmente uma grande sensibilidade, o que o torna perfeito para aplicações de controle e posicionamento de eixo. Mas, para o meu propósito, era muito sensato. Com uma roda de 51 mm, este codificador tem sensibilidade de 0,4 mm, o que significa que se sua mão tiver tremores mínimos, eles serão gravados. Portanto, diminuí a sensibilidade adicionando uma histerese na rotina de interrupção:

void interrupt ()

{char i; i = digitalRead (B_PHASE); if (i == 1) contagem + = 1; senão contar - = 1; if (abs (contagem)> = histerese) {bandeira_A = bandeira_A + contagem; contagem = 0; }}

Este truque foi suficiente para dar uma boa estabilidade à medida.

Etapa 4: Medição

Selecione sua Unidade de Medida (Decimal ou Imperial) e então posicione a roda com seu ponto de contato no início de sua medida, pressione o botão Reset e mantenha-a girando até o final. Da esquerda para a direita a medida aumenta e soma, da direita para a esquerda diminui e subtrai. Você também pode medir objetos curvos (a forma do seu carro, o corrimão de uma escada em espiral, o comprimento do seu braço do ombro ao pulso com o cotovelo dobrado, etc.).

Uma rotação completa de uma roda com diâmetro = D medirá um comprimento de D * π. No meu caso, com uma roda de 51 mm, isso é 16,02 cm e cada escala mede 0,4 mm (consulte o parágrafo Sensibilidade).

Etapa 5: montagem

O PoC foi feito em uma placa de ensaio para demonstrar o circuito. Cada componente foi anexado à placa e o codificador rotativo está conectado a um bloco de terminais de parafuso de 2x2 pólos. A bateria é uma bateria padrão de 9 V e o consumo total de energia do circuito é de cerca de 60 mA.

Etapa 6: Código

Para o display, usei o U8g2lib que é muito flexível e poderoso para este tipo de display OLED, permitindo uma ampla escolha de fontes e boas funções de posicionamento. Não perdi muito tempo enchendo o display de informações, pois se tratava apenas de um Poc.

Para ler o codificador, estou usando interrupções geradas por uma das 2 fases: cada vez que o eixo do codificador se move, ele gera uma interrupção para o Arduino ligada ao aumento do impulso.

attachInterrupt (digitalPinToInterrupt (A_PHASE), interrupção, RISING);

O display muda automaticamente de milímetros para metros, para quilômetros e (se selecionado no botão) de polegadas, para jardas, para milhas, enquanto o botão RST redefine a medida para zero.

Etapa 7: esquemas

Esquemas
Esquemas

Etapa 8: do PoC à produção

Por que isso é uma prova de conceito? Devido a muitas melhorias que poderiam / deveriam ser feitas antes de construir um equipamento em pleno funcionamento. Vamos ver todas as melhorias possíveis em detalhes:

  • Roda. A sensibilidade / precisão do Measurino depende da roda. Uma roda menor pode dar a você melhor precisão na medição de pequenos comprimentos (da ordem de milímetros a centímetros). Uma roda muito maior com uma lança de extensão permite caminhar na estrada e medir quilômetros. Para rodas pequenas, o material deve ser considerado: uma roda totalmente emborrachada pode deformar levemente e afetar a precisão, então nesse caso vou sugerir uma roda de alumínio / aço com apenas uma fita fina para evitar escorregões. Com uma edição de software trivial (selecione o diâmetro correto da roda com um switch), você pode considerar rodas intercambiáveis para se adaptar a qualquer medida, usando um conector de 4 pinos (ou seja: porta USB).
  • Programas. Ao adicionar outro botão, o software também pode cuidar da medição de áreas de retângulos ou amplitude de ângulos. Aconselho também adicionar um botão "Manter" para congelar a medida no final, evitando mover inadvertidamente a roda antes de ler o valor no visor.
  • Substitua a roda por um carretel. Para medidas curtas (dentro de alguns metros), a roda pode ser substituída por um carretel de mola contendo linha ou fita. Assim, basta puxar a rosca (fazendo girar o eixo do codificador), medir e observar no display.
  • Adicione a exibição do estado da bateria. O pino de referência do Arduino de 3,3 V (com precisão de 1%) pode ser usado como base para o conversor ADC. Então, fazendo uma conversão analógica para digital no pino de 3,3 V (conectando-o a A1) e, em seguida, comparando esta leitura com a leitura do sensor, podemos extrapolar uma leitura real, não importa o que VIN seja (contanto que esteja acima de 3,4 V). Um exemplo prático pode ser encontrado neste outro projeto meu.

Etapa 9: Galeria de imagens

Recomendado: