Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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
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
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
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.