Índice:

Simulador de bicicleta com ajuste de velocidade em tempo real: 5 etapas
Simulador de bicicleta com ajuste de velocidade em tempo real: 5 etapas

Vídeo: Simulador de bicicleta com ajuste de velocidade em tempo real: 5 etapas

Vídeo: Simulador de bicicleta com ajuste de velocidade em tempo real: 5 etapas
Vídeo: quando uma bicicleta ultrapassa um caminhão 2024, Novembro
Anonim
Simulador de bicicleta com ajuste de velocidade em tempo real
Simulador de bicicleta com ajuste de velocidade em tempo real

Este projeto usa uma chave de palheta magnética para criar um velocímetro e controlar a velocidade de vídeo de vídeos de ciclismo em primeira pessoa no YouTube ou outra mídia. O Arduino calcula a mph e então usa essa informação para simular um pressionamento de botão do computador. Esse pressionamento de botão, emparelhado com uma extensão do Google Chrome, acelera ou desacelera o vídeo com base na mudança na velocidade. Ele tem uma configuração de hardware básica que os iniciantes no Arduino podem criar por conta própria.

O código do velocímetro é baseado neste projeto:

Lista de Hardware:

1. Arduino Leonardo

2. Cabo Micro USB (deve ser capaz de transferir arquivos e ter <3 pés)

3. Chave Magnética Reed

4. Resistor de 10k Ohm

5. Fio de bitola 22 (<4 pés)

6. Ferro de soldar

7. Solda

8. Fita Elétrica

9. Zip Ties

10. Suporte de bicicleta estacionário

11. Bicicleta

Etapa 1: Baixe o software relevante em seu computador

1. Arduino IDE

2. Controlador de velocidade de vídeo (extensão do navegador da Web)

uma. Google Chrome

b. Raposa de fogo

Etapa 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Todas as conexões devem ser soldadas juntas e protegidas com fita isolante. O Arduino pode ser montado na bicicleta usando uma caixa de plástico incluída com o Arduino (link na lista de peças acima). Isso é importante porque, se o metal da bicicleta estiver em contato direto com os pinos, pode criar conexões indesejadas. O case também tem orifícios que tornam mais fácil prender o case com zíper na bicicleta. O fio de bitola 22 deve ser enrolado ao longo da estrutura da bicicleta e preso com fita ou zíper. Certifique-se de evitar enrolar o fio em qualquer lugar onde ele possa ficar preso nos mecanismos em movimento.

Etapa 3: coloque a bicicleta no suporte de bicicleta estacionário

Prenda a bicicleta no suporte para bicicleta ergométrica e certifique-se de que está perto o suficiente do computador para que o cabo micro-USB chegue ao computador. Além disso, certifique-se de que a distância de visualização para você é adequada para poder ver a tela confortavelmente. Um tutorial sobre como colocar sua bicicleta com segurança no suporte pode ser encontrado aqui.

Etapa 4: fazer upload e testar o código do Arduino

Carregar e testar o código do Arduino
Carregar e testar o código do Arduino

Se você é novo no Arduino IDE, uma página de introdução pode ser encontrada aqui. É importante observar que o Leonardo requer um cabo micro-USC para fazer upload com recursos de transferência de arquivos. Muitos cabos micro-USB são usados apenas para carregar e não funcionam. Assim que o Arduino Leonardo for reconhecido pelo computador, copie, cole e carregue o seguinte código:

// Este código encontra a velocidade de uma bicicleta e a converte para pressionar o teclado do computador

// cálculos

// raio do pneu ~ 13,5 polegadas // circunferência = pi * 2 * r = ~ 85 polegadas // velocidade máxima de 35 mph = ~ 616 polegadas / segundo // rps máx. = ~ 7,25

#incluir

# define reed A0 // pino conectado ao interruptor de leitura

// variáveis de armazenamento

int reedVal; long timer; // tempo entre uma rotação completa (em ms) float mph; raio da flutuação = 13,5; // raio do pneu (em polegadas) circunferência da flutuação; float vprevious; taxa de flutuação;

int maxReedCounter = 100; // tempo mínimo (em ms) de uma rotação (para debouncing)

int reedCounter;

void setup () {

reedCounter = maxReedCounter; circunferência = 2 * 3,14 * raio; pinMode (palheta, INPUT); Keyboard.begin (); // CONFIGURAÇÃO DO TEMPORIZADOR - a interrupção do temporizador permite medições temporizadas precisas do interruptor reed // para mais informações sobre a configuração dos temporizadores Arduino, consulte https://arduino.cc/playground/Code/Timer1 cli (); // interrompe as interrupções

// define a interrupção do timer1 em 1kHz

TCCR1A = 0; // definir todo o registro TCCR1A para 0 TCCR1B = 0; // o mesmo para TCCR1B TCNT1 = 0; // define a contagem do cronômetro para incrementos de 1 khz OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1 // liga o modo CTC TCCR1B | = (1 < <WGM12); // Define o bit CS11 para 8 prescaler TCCR1B | = (1 << CS11); // ativa a interrupção de comparação do temporizador TIMSK1 | = (1 << OCIE1A); sei (); // permite interrupções // END TIMER SETUP Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Interromper na frequência de 1kHz para medir a chave de palheta

reedVal = digitalRead (reed); // obtém val de A0 if (reedVal) {// se o interruptor reed está fechado if (reedCounter == 0) {// o tempo mínimo entre os pulsos passou vprevious = mph; atraso (500); mph = (56,8 * float (circunferência)) / float (timer); // calcular milhas por hora cronômetro = 0; // redefinir cronômetro reedCounter = maxReedCounter; // redefinir reedCounter} else {if (reedCounter> 0) {// não deixe reedCounter ficar negativo reedCounter - = 1; // decrementar reedCounter}}} else {// se o interruptor reed estiver aberto if (reedCounter> 0) {// não deixar reedCounter ficar negativo reedCounter - = 1; / / decremento reedCounter}} if (timer> 2000) {mph = 0; // se nenhum novo pulso do switch reed estiver parado, defina mph para 0 vprevious = 0; } else {cronômetro + = 1; // incrementar cronômetro}}

void controlComp () {

if (vprevious mph) // Diminui a velocidade do vídeo {Keyboard.press ('s'); Keyboard.releaseAll (); atraso (750); } if (vprevious == mph) // não fazer nada {; }} void loop () {// imprime mph duas vezes por segundo Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);

Serial.print ("MPH:");

Serial.print ("\ t"); Serial.println (mph); controlComp (); }

Assim que o código for carregado com sucesso, abra o monitor serial. Sem movimento da roda traseira, “MPH” e “VPrevious” devem estar marcando 0,00. Gire a roda para que ela acelere por algumas revoluções e depois diminua a velocidade. O monitor deve ler a velocidade e digitar d para aceleração e s para desaceleração. Se nenhum valor aparecer quando a roda for girada, o ímã pode não ser detectado pela chave de palheta. Certifique-se de que o magnético é forte o suficiente, ouvindo um ruído de parada * clink * quando o ímã passa pelo interruptor.

Etapa 5: configurar o controlador do YouTube

Configure o controlador do YouTube
Configure o controlador do YouTube

A etapa final é trazer os vídeos do YouTube que você deseja usar para acompanhar sua bicicleta. A ideia é ter vídeos em primeira pessoa nos quais você possa mergulhar totalmente e curtir a paisagem enquanto anda de bicicleta. Eu compilei uma lista de reprodução do YouTube com uma variedade de opções de vídeo. Eles variam entre uma série de canais que enviam vídeos que correspondem a esses critérios de primeira pessoa. Eles também são vídeos como voar através das nuvens e viagens de trem cross-country para uma variedade de aventuras em primeira pessoa.

Recomendado: