Spisu treści:

Symulator roweru z regulacją prędkości w czasie rzeczywistym: 5 kroków
Symulator roweru z regulacją prędkości w czasie rzeczywistym: 5 kroków

Wideo: Symulator roweru z regulacją prędkości w czasie rzeczywistym: 5 kroków

Wideo: Symulator roweru z regulacją prędkości w czasie rzeczywistym: 5 kroków
Wideo: Ups. 2024, Listopad
Anonim
Symulator roweru z regulacją prędkości w czasie rzeczywistym
Symulator roweru z regulacją prędkości w czasie rzeczywistym

Ten projekt wykorzystuje magnetyczny kontaktron do tworzenia prędkościomierza i kontrolowania prędkości wideo pierwszoosobowych filmów rowerowych na YouTube lub innych mediach. Arduino oblicza mph, a następnie wykorzystuje te informacje do symulacji naciśnięcia przycisku komputera. To naciśnięcie przycisku w połączeniu z rozszerzeniem Google Chrome przyspiesza lub spowalnia wideo w zależności od zmiany prędkości. Ma podstawową konfigurację sprzętową, którą osoby początkujące w Arduino mogą łatwo stworzyć samodzielnie.

Kod prędkościomierza oparty jest na tym projekcie:

Lista sprzętu:

1. Arduino Leonardo

2. Kabel Micro USB (musi być w stanie przesyłać pliki i <3 stopy)

3. Magnetyczny kontaktron

4. Rezystor 10k Ohm

5. Przewód o grubości 22 (<4 stopy)

6. Lutownica

7. Lutowane

8. Taśma elektryczna

9. Krawaty na suwak

10. Stacjonarny stojak na rowery

11. Rower

Krok 1: Pobierz odpowiednie oprogramowanie na swój komputer

1. Środowisko Arduino

2. Kontroler prędkości wideo (rozszerzenie przeglądarki internetowej)

a. Google Chrome

b. Firefox

Krok 2: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Wszystkie połączenia powinny być ze sobą zlutowane i oklejone taśmą elektryczną. Arduino można zamontować na rowerze za pomocą plastikowej obudowy dołączonej do Arduino (powiązanej na powyższej liście części). Jest to ważne, ponieważ jeśli metal roweru styka się bezpośrednio ze szpilkami, może tworzyć niepożądane połączenia. Pokrowiec posiada również otwory, które ułatwiają przypięcie pokrowca do roweru. Przewód o rozmiarze 22 powinien być owinięty wzdłuż ramy roweru i zabezpieczony taśmą lub opaskami zaciskowymi. Uważaj, aby nie owijać drutu w miejscach, w których może on zaczepić o ruchome mechanizmy.

Krok 3: Umieść rower na stojaku stacjonarnym

Przymocuj rower do stacjonarnego stojaka rowerowego i upewnij się, że znajduje się on wystarczająco blisko komputera, aby przewód micro-USB mógł dotrzeć do komputera. Upewnij się również, że odległość oglądania jest odpowiednia, aby móc wygodnie widzieć ekran. Samouczek dotyczący bezpiecznego umieszczania roweru na stojaku można znaleźć tutaj.

Krok 4: Prześlij i przetestuj kod Arduino

Prześlij i przetestuj kod Arduino
Prześlij i przetestuj kod Arduino

Jeśli jesteś nowy w Arduino IDE, stronę wprowadzającą można znaleźć tutaj. Ważne jest, aby pamiętać, że Leonardo wymaga kabla micro-USC do przesyłania, który ma możliwość przesyłania plików. Wiele kabli micro-USB służy tylko do ładowania i te nie będą działać. Po rozpoznaniu Arduino Leonardo przez komputer skopiuj i wklej i prześlij następujący kod:

//Ten kod wyszukuje prędkość roweru i zamienia ją na naciśnięcie klawiatury komputera

//obliczenia

//promień opony ~ 13,5 cala //obwód = pi*2*r =~85 cali //maksymalna prędkość 35 mil na godzinę =~ 616 cali/sekundę //maks. obr./s =~7,25

#włączać

#Define reed A0//pin podłączony do przełącznika odczytu

//przechowywanie zmiennych

int reedVal; długi timer;// czas pomiędzy jednym pełnym obrotem (w ms) float mph; promień pływania = 13.5;// promień opony (w calach) obwód pływaka; pływak vpoprzedni; płynność;

int maxReedCounter = 100;//min czas (w ms) jednego obrotu (dla odbicia)

int licznik trzciny;

pusta konfiguracja (){

ReedCounter = maxReedCounter; obwód = 2*3,14*promień; pinMode(stroik, INPUT); Klawiatura.początek(); // TIMER SETUP- przerwanie timera umożliwia precyzyjne pomiary czasowe kontaktronu //więcej informacji o konfiguracji timerów arduino na https://arduino.cc/playground/Code/Timer1 cli();//stop interrupts

//ustaw przerwanie timera1 na 1kHz

TCCR1A = 0;// ustaw cały rejestr TCCR1A na 0 TCCR1B = 0;// to samo dla TCCR1B TCNT1 = 0; //ustaw licznik czasu dla przyrostów 1kHz OCR1A = 1999;// = (1/1000) / ((1/(16*10^6))*8) - 1 //włącz tryb CTC TCCR1B |= (1 < < WGM12); // Ustaw bit CS11 dla 8 preskalerów TCCR1B |= (1 << CS11); // włącz timer porównaj przerwanie TIMSK1 |= (1 << OCIE1A); sei();//zezwalaj na przerwania //USTAWIENIA ZEGARA KONIECOWEGO Serial.begin(9600); }

ISR(TIMER1_COMPA_vect) {//Przerwanie przy częstotliwości 1kHz w celu pomiaru kontaktronu

reedVal = digitalRead(reed);//uzyskaj wartość A0 if (reedVal){//jeśli kontaktron jest zamknięty if (reedCounter == 0){//min upłynął czas między impulsami vprevious = mph; opóźnienie (500); mph = (56.8*float(circumference))/float(timer);//oblicz mile na godzinę timer = 0;//resetuj licznik reedCounter = maxReedCounter;//reset reedCounter } else{ if (reedCounter > 0){// nie pozwól, aby reedCounter przeszedł ujemny reedCounter -= 1;//decrement reedCounter } } } else{//if kontaktron jest otwarty if (reedCounter > 0){//nie pozwól, aby reedCounter przeszedł ujemny reedCounter -= 1;/ /decrement reedCounter } } if (timer > 2000){ mph = 0;//jeśli nie ma nowych impulsów z kontaktronu- opona jest nadal, ustaw mph na 0 vprevious = 0; } else{ timer += 1;//inkrementuj timer } }

void controlComp(){

if (vprevious mph) //Zwolnij prędkość wideo { Keyboard.press('s'); Keyboard.releaseAll(); opóźnienie(750); } if (vprevious == mph) //nic nie rób {; } } void loop(){ //print mph dwa razy na sekundę Serial.print("VPrevious:"); Serial.print("\t"); Serial.println(vpoprzedni);

Serial.print("MPH:");

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

Po pomyślnym przesłaniu kodu otwórz monitor szeregowy. Bez ruchu tylnego koła, „MPH” i „VPrevious” powinny wskazywać 0,00. Obróć koło tak, aby przyspieszyło przez kilka obrotów, a następnie zwolniło. Monitor powinien odczytać prędkość i wpisać d dla przyspieszenia i s dla zwalniania. Jeśli podczas obracania koła nie pojawiają się żadne wartości, magnes może nie zostać wykryty przez kontaktron. Upewnij się, że magnes jest wystarczająco silny, nasłuchując, czy nie słychać *brzęczenia*, gdy magnes przechodzi przez przełącznik.

Krok 5: Skonfiguruj kontroler YouTube

Skonfiguruj kontroler YouTube
Skonfiguruj kontroler YouTube

Ostatnim krokiem jest wyświetlenie filmów z YouTube, które chcesz wykorzystać do śledzenia na rowerze. Chodzi o to, aby mieć filmy z perspektywy pierwszej osoby, w których można w pełni zanurzyć się i cieszyć krajobrazem podczas jazdy na rowerze. Użyłem listy odtwarzania YouTube z różnymi opcjami wideo. Obejmują one wiele kanałów, które przesyłają filmy spełniające te kryteria pierwszej osoby. Są to również filmy, takie jak latanie przez chmury i podróże koleją przełajową dla różnych przygód z perspektywy pierwszej osoby.

Zalecana: