Índice:

Display ergômetro simples baseado em Arduino com feedback diferencial: 7 etapas (com imagens)
Display ergômetro simples baseado em Arduino com feedback diferencial: 7 etapas (com imagens)

Vídeo: Display ergômetro simples baseado em Arduino com feedback diferencial: 7 etapas (com imagens)

Vídeo: Display ergômetro simples baseado em Arduino com feedback diferencial: 7 etapas (com imagens)
Vídeo: ARDUINO GLOSSÁRIO!!! 2024, Novembro
Anonim
Display ergômetro simples baseado em Arduino com feedback diferencial
Display ergômetro simples baseado em Arduino com feedback diferencial
Display ergômetro simples baseado em Arduino com feedback diferencial
Display ergômetro simples baseado em Arduino com feedback diferencial
Display ergômetro simples baseado em Arduino com feedback diferencial
Display ergômetro simples baseado em Arduino com feedback diferencial

O cardio-treino é enfadonho, especialmente quando se exercita dentro de casa. Vários projetos existentes tentam aliviar isso fazendo coisas legais, como acoplar o ergômetro a um console de jogo ou até mesmo simular um passeio de bicicleta real em RV. Por mais emocionantes que sejam, tecnicamente, não ajudam muito: o treino ainda é enfadonho. Então, em vez disso, gostaria de poder apenas ler um livro ou assistir TV durante o treinamento. Mas então é difícil manter um ritmo constante.

A ideia, aqui, é focar no último problema e fornecer feedback direto, se o seu nível atual de treinamento é bom o suficiente ou se você deve se esforçar mais. No entanto, o nível "bom o suficiente" irá variar não só por pessoa, mas também ao longo do tempo (a longo prazo, conforme você melhora, mas também dentro de uma sessão de treinamento: por exemplo, é quase impossível ir a toda velocidade antes de aquecido). Portanto, a ideia por trás deste projeto é simplesmente registrar a) a corrida anterior eb) a melhor corrida (também conhecida como pontuação máxima) e, em seguida, fornecer feedback direto sobre como você está se saindo atualmente em comparação com essas corridas.

Se isso soar um pouco abstrato, pule para a Etapa 7 para obter detalhes sobre o que a tela completa mostrará

Um outro objetivo deste projeto é manter as coisas realmente simples e baratas. Dependendo de onde você encomenda suas peças, você pode concluir este projeto por cerca de US $ 5 (ou cerca de US $ 30 ao fazer o pedido de vendedores domésticos premium), e se você já jogou com o ambiente Arduino, há uma boa chance de que você já tenha a maioria ou todas as peças de que você precisa.

Etapa 1: Lista de Peças

Lista de Peças
Lista de Peças

Vamos examinar a lista de coisas de que você precisa:

Um microprocessador compatível com Arduino

Praticamente qualquer Arduino vendido nos últimos anos servirá. A variante exata (Uno / Nano / Pro Mini, 8 ou 16 MHz, 3.3. Ou 5V) não importa. No entanto, você precisará de um processador ATMEGA328 ou melhor, porque usaremos quase 2k de RAM e 1k de EEPROM. Se você está familiarizado com os meandros do mundo Arduino, recomendo usar um Pro Mini de 3,3 V, pois será mais barato e mais eficiente em termos de bateria. Se você é (relativamente) novo no Arduino, recomendo um "Nano", pois oferece a mesma funcionalidade de um "Uno" em um pacote menor e mais barato.

Observe que este instrutível não irá explicar o básico. Você deve ter pelo menos o software Arduino instalado e saber como conectar seu Arduino e fazer upload de um esboço. Se você não tem ideia do que estou falando, leia estes dois tutoriais fáceis, primeiro: primeiro, segundo.

Um display OLED SSD1306 de 128 * 64 pixels (variante I2C, ou seja, quatro pinos)

Este é um dos monitores mais baratos e fáceis disponíveis hoje. Concordo, é minúsculo, mas bom o suficiente. Claro, se você já tem uma tela de resolução semelhante ou melhor, será possível usá-la, mas este instrutível é escrito para um SSD1306.

  • Uma "placa de ensaio sem solda" e um fio de jumper, para construir seu protótipo
  • Um capacitor de cerâmica 100nF (pode ou não ser necessário; consulte a Etapa 4)
  • Alguns crocodilos ou um ímã, uma chave de palheta e um pouco de cabo (consulte a Etapa 4)
  • Um LED vermelho e um verde, cada (opcional; consulte a Etapa 5)
  • Dois resistores 220Ohm (se estiver usando os LEDs)
  • Um botão (também opcional)
  • Uma bateria adequada (consulte a Etapa 6)

Etapa 2: Conectando o monitor

Conectando a tela
Conectando a tela

Primeiramente, conectaremos o display ao Arduino. Instruções detalhadas estão disponíveis. No entanto, o SSD1306 é realmente fácil de conectar:

  1. Exibir VCC -> Arduino 3,3 V ou 5 V (qualquer um serve)
  2. Exibir Gnd -> Arduino Gnd
  3. Exibir SCL -> Arduino A5
  4. Exibir SCA -> Arduino A4

Em seguida, em seu ambiente Arduino, vá para Sketch-> Incluir biblioteca-> Gerenciar bibliotecas e instale "Adafruit SSD1306". Infelizmente, você terá que editar a biblioteca para configurá-la para a variante de 128 * 64 pixels: localize a pasta "bibliotecas" do arduino e edite "Adafruit_SSD1306 / Adafruit_SSD1306.h". Procure por "#define SSD1306_128_32", desative essa linha e ative "#define SSD1306_128_64".

Neste ponto, você deve carregar Arquivo-> Exemplos-> Adafruit SSD1306-> ssd1306_128x64_i2c para testar se seu monitor está conectado corretamente. Observe que pode ser necessário ajustar o endereço I2C. 0x3C parece ser o valor mais comum.

Em caso de problemas, consulte as instruções mais detalhadas.

Etapa 3: faça upload do esboço

Se tudo funcionou, até agora, agora é hora de fazer o upload do esboço real para o seu Arduino. Você encontrará uma cópia do esboço abaixo. Para uma versão potencialmente mais recente, consulte a página do projeto do github. (Como este é um esboço de arquivo único, basta copiar o arquivo erogmetrino.ino para a janela do Arduino).

Se você tiver que modificar o endereço I2C na etapa anterior, terá que fazer o mesmo ajuste, novamente, agora, na linha que começa com "display.begin".

Após o upload, você deve ver alguns zeros aparecendo em sua tela. Veremos o significado das várias seções da tela, depois que tudo o mais for conectado.

Observe que na primeira inicialização, o display vai demorar um pouco para acender (pode levar até cerca de dez segundos), já que o esboço irá zerar todos os dados armazenados na EEPROM, primeiro.

Etapa 4: Conectando o Ergômetro

Conectando o Ergômetro
Conectando o Ergômetro

Esta etapa não pode ser descrita universalmente, uma vez que nem todos os ergômetros são iguais. No entanto, eles também não são todos diferentes. Se o seu ergômetro incluir um visor eletrônico de velocidade, ele deve ter um sensor eletrônico para detectar as rotações dos pedais ou de algum volante (possivelmente interno) em algum lugar. Em muitos casos, isso consistirá simplesmente em um ímã passando perto de uma chave de palheta (veja também, abaixo). Cada vez que o ímã passa, a chave fecha, sinalizando uma revolução para o display de velocidade.

A primeira coisa que você deve fazer é examinar o visor de velocidade em seu ergômetro para ver se há cabos de entrada. Se você encontrar um cabo de dois fios saindo de algum lugar de dentro do ergômetro, é quase certo que encontrou a conexão com o sensor. E com um pouco de sorte, você pode simplesmente desconectá-lo e conectá-lo ao seu Arduino com alguns clipes de crocodilo (eu direi a quais pinos conectar em um minuto).

No entanto, se você não conseguir encontrar esse cabo, não tenha certeza se encontrou o certo, ou não pode desconectá-lo sem danificar nada, você pode simplesmente prender um pequeno ímã em um dos pedais e fixar uma chave de palheta na estrutura do seu erogômetro, de modo que o ímã passará muito perto. Conecte dois fios ao switch e leve-os ao Arduino.

Conecte os dois fios (sejam seus ou de um sensor existente) para o Arduino Gnd e o pino D2 do Arduino. Se você tiver um em mãos, conecte também o capacitor 100nF entre os pinos D2 e Gnd para um "debouncing". Isso pode ou não ser necessário, mas ajuda a estabilizar as leituras.

Quando terminar, é hora de ligar seu Arduino e subir na bicicleta para um primeiro teste rápido. O número superior esquerdo deve começar mostrando uma medida de velocidade. Se isso não funcionar, verifique toda a fiação e certifique-se de que o ímã esteja perto o suficiente da chave reed. Se a medida de velocidade parece consistentemente muito alta ou muito baixa, basta ajustar a definição "CM_PER_CLICK" perto do topo do esboço (nota: o esboço usa nomes de métricas, mas nenhuma unidade é exibida ou salva em qualquer lugar, então simplesmente ignore isso, e fornecer 100.000ths de uma milha por clique).

Etapa 5: LEDs de status rápido opcionais

LEDs de status rápido opcionais
LEDs de status rápido opcionais

Os LEDs descritos nesta etapa são opcionais, mas interessantes: se você leva a sério a leitura de um livro / assistir TV enquanto se exercita, não precisa ficar olhando muito para a tela. Mas dois LEDs em cores diferentes serão facilmente perceptíveis na visão periférica e serão o suficiente para dar uma ideia aproximada de como você está fazendo.

  • Conecte o primeiro LED (vermelho) ao pino D6 (a perna mais longa do LED vai para o Arduino). Conecte a perna curta do LED ao Gnd por meio de um resistor de 220 ohms. Este LED acenderá quando você estiver 10% ou mais abaixo de sua melhor velocidade na fase atual do treinamento. É hora de se esforçar mais!
  • Conecte o segundo LED (verde) ao pino D5, novamente com um resistor ao Gnd. Este LED acenderá quando você estiver a 1% ou mais de sua melhor corrida. Você está indo bem!

Você quer que os LEDs acendam dependendo de como você se saiu em comparação com a corrida anterior, ou alguma velocidade média arbitrária? Bem, basta conectar um botão entre o pino D4 e Gnd. Usando esse botão, você pode alternar a referência entre "sua melhor corrida", "sua corrida anterior" ou "sua velocidade atual". Uma minúscula letra "P" ou "C" no canto esquerdo inferior significará os dois últimos modos.

Etapa 6: Alimentando Seu Ergômetro

Alimentando Seu Ergômetro
Alimentando Seu Ergômetro

Existem muitas maneiras de aumentar sua tela, mas vou apontar duas que parecem um pouco mais práticas do que outras:

  1. Ao usar um Arduino Uno ou Nano, você provavelmente deseja alimentá-lo usando um banco de energia USB com indicação de bateria fraca integrada.
  2. Ao usar um Arduino Pro Mini @ 3.3V (minha recomendação para usuários avançados), você pode alimentá-lo diretamente com uma única bateria LiPo ou três células NiMH. Como o ATMEGA tolera tensões de alimentação de até 5,5 V, você pode conectá-lo a "VCC / ACC", diretamente, ignorando o regulador de tensão de bordo. Nesta configuração, haverá também um aviso de "bateria fraca" em torno de 3,4 V, sem nenhum hardware adicional (exibido no canto inferior direito). Como o ATMEGA deve funcionar corretamente, pelo menos até 3,0 V ou mais, isso deve deixar você com tempo suficiente para terminar sua unidade de treinamento antes de recarregar.

Etapa 7: usando o visor do ergômetro

Usando o seu Ergômetro
Usando o seu Ergômetro
Usando o seu Ergômetro
Usando o seu Ergômetro

Vamos examinar mais de perto os vários números em seu visor. O maior número no canto superior esquerdo é simplesmente sua velocidade atual, e o maior número no canto superior direito é a distância total em seu treinamento atual.

A próxima linha é sua velocidade média desde o início do treinamento (esquerda) e o tempo desde o início do treinamento (direita). Observe que a cronometragem é interrompida enquanto a bicicleta está parada.

Até agora tão trivial. As duas outras linhas do lado direito são onde fica interessante: elas comparam o seu tempo atual com o seu treino anterior e melhor, respectivamente. Ou seja, a "- 0:01:23" na parte superior dessas linhas significa que você atingiu sua distância atual 1 minuto e 23 segundos antes da corrida anterior. Boa. Uma linha inferior de "+ 0:00:12" significa que até o ponto atual, você está 12 segundos atrasado em sua melhor corrida. (Observe que esses tempos diferenciais não serão 100% exatos. Os pontos de tempo são armazenados a cada 0,5 km / milhas e interpolados entre eles.) Inevitavelmente, é claro, em sua primeira corrida, nenhuma referência de tempo foi registrada ainda, e então ambas as linhas acima mostrarão apenas "-: -: -".

Finalmente, a região inferior esquerda da tela contém um gráfico de sua velocidade no último minuto. Isso permite que você veja rapidamente se está indo de maneira estável ou diminuindo a velocidade. (Observe que esta linha será muito mais suave no treinamento real - mas simplesmente não é fácil manter um ritmo constante ao tentar tirar uma foto …) As linhas horizontais indicam a velocidade anterior / melhor que você alcançou perto do ponto atual de seu anterior treinamentos.

Os LEDs montados próximos ao topo comparam sua velocidade atual com sua melhor velocidade durante esta fase do treinamento. Verde mostra que você está dentro de 1% do seu melhor treinamento, vermelho mostra que você está mais de 10% mais lento do que seu melhor treinamento. Quando você vê a luz vermelha, é hora de se esforçar mais. Observe que, ao contrário dos tempos diferenciais descritos acima, eles se referem apenas à parte atual do treinamento, ou seja, é possível que você esteja atrasado no tempo absoluto, mas o verde mostra que você está alcançando, e vice-versa.

A velocidade de referência usada para os dois LEDs pode ser alterada usando o botão de pressão. Um toque irá alterná-lo do melhor para o treinamento anterior gravado (uma minúscula letra "P" aparecerá no canto inferior esquerdo). Pressionar novamente e sua velocidade atual no momento em que o botão for pressionado se tornará a nova velocidade de referência (uma letra "C" minúscula será exibida). Este último é especialmente útil durante o primeiro treinamento com o novo visor do ergômetro, quando nenhuma referência foi registrada ainda.

Ao terminar o treinamento, basta desconectar a bateria. Seu treinamento já foi salvo na EEPROM interna do seu Arduino.

Como você pode ver, acabei soldando meu protótipo. Sinal claro de que gostei do resultado, eu mesmo. Espero que você também ache útil. Feliz exercício!

Recomendado: