Inhoudsopgave:

Fietssimulator met realtime snelheidsaanpassing - Ajarnpa
Fietssimulator met realtime snelheidsaanpassing - Ajarnpa

Video: Fietssimulator met realtime snelheidsaanpassing - Ajarnpa

Video: Fietssimulator met realtime snelheidsaanpassing - Ajarnpa
Video: 10 потрясающих инструментов для ваших проектов своими руками 2024, November
Anonim
Fietssimulator met realtime snelheidsaanpassing
Fietssimulator met realtime snelheidsaanpassing

Dit project maakt gebruik van een magnetische reed-schakelaar om een snelheidsmeter te maken en de videosnelheid van first-person fietsvideo's op YouTube of andere media te regelen. De Arduino berekent de mph en gebruikt die informatie vervolgens om het indrukken van een computerknop te simuleren. Deze druk op de knop, gecombineerd met een Google Chrome-extensie, versnelt of vertraagt de video op basis van de verandering in snelheid. Het heeft een basis hardware-opstelling die beginners van Arduino gemakkelijk zelf kunnen maken.

De snelheidsmetercode is gebaseerd op dit project:

Hardwarelijst:

1. Arduino Leonardo

2. Micro-USB-kabel (moet bestand kunnen worden overgedragen en < 3ft)

3. Magnetische reed-schakelaar

4. Weerstand van 10k Ohm

5. 22 gauge draad (< 4ft)

6. Soldeerbout

7. Soldeer

8. Elektrische tape

9. Ritssluitingen

10. Stationaire fietsstandaard

11. Fiets

Stap 1: Download relevante software op uw computer

1. Arduino-IDE

2. Videosnelheidsregelaar (webbrowserextensie)

A. Google Chrome

B. Firefox

Stap 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Alle verbindingen moeten aan elkaar worden gesoldeerd en afgeplakt met isolatietape. De Arduino kan op de fiets worden gemonteerd met behulp van een plastic behuizing die bij de Arduino wordt geleverd (gekoppeld in de onderdelenlijst hierboven). Dit is belangrijk omdat als het metaal van de fiets in direct contact komt met de pinnen, het ongewenste verbindingen kan maken. De koffer heeft ook gaten waardoor de koffer eenvoudig aan de fiets kan worden vastgemaakt. De 22 gauge draad moet langs het frame van de fiets worden gewikkeld en vastgezet met tape of ritssluitingen. Zorg ervoor dat u de draad niet wikkelt op plaatsen waar deze vast kan komen te zitten in bewegende mechanismen.

Stap 3: Plaats de fiets op de stationaire fietsstandaard

Zet de fiets vast in de stationaire fietsstandaard en zorg ervoor dat deze zich dicht genoeg bij uw computer bevindt zodat de micro-USB-kabel uw computer kan bereiken. Zorg er ook voor dat de kijkafstand voor jou geschikt is om comfortabel naar het scherm te kunnen kijken. Een tutorial over hoe u uw fiets veilig op de standaard kunt plaatsen, vindt u hier.

Stap 4: Upload en test Arduino-code

Upload en test Arduino-code
Upload en test Arduino-code

Als Arduino IDE nieuw voor u is, vindt u hier een introductiepagina. Het is belangrijk op te merken dat de Leonardo een micro-USC-kabel nodig heeft om te uploaden met mogelijkheden voor bestandsoverdracht. Veel micro-USB-kabels worden alleen gebruikt om op te laden en die zullen niet werken. Zodra de Arduino Leonardo door de computer wordt herkend, kopieert en plakt u en uploadt u de volgende code:

//Deze code vindt de snelheid van een fiets en zet die om in computertoetsenborddruk

//berekeningen

//bandradius ~ 13,5 inch //omtrek = pi*2*r =~85 inch //max. snelheid van 35mph =~ 616inch/seconde //max. rps =~7,25

#erbij betrekken

#define reed A0//pin aangesloten op leesschakelaar

//opslagvariabelen

int reedVal; lange timer;// tijd tussen één volledige omwenteling (in ms) float mph; vlotterstraal = 13,5;// bandstraal (in inches) vlotteromtrek; zweven vvorige; vlotter tarief;

int maxReedCounter = 100;//min tijd (in ms) van één omwenteling (voor debouncing)

int reedCounter;

ongeldige setup(){

reedCounter = maxReedCounter; omtrek = 2*3.14*straal; pinMode (riet, INPUT); Toetsenbord.begin(); // TIMER SETUP- de timer-interrupt maakt nauwkeurige getimede metingen van de reed-schakelaar mogelijk //voor meer informatie over de configuratie van Arduino-timers, zie https://arduino.cc/playground/Code/Timer1 cli();//stop interrupts

//set timer1 interrupt op 1kHz

TCCR1A = 0;// zet het hele TCCR1A-register op 0 TCCR1B = 0;// hetzelfde voor TCCR1B TCNT1 = 0; // stel timertelling in voor stappen van 1khz OCR1A = 1999;// = (1/1000) / ((1/(16*10^6))*8) - 1 // zet CTC-modus aan TCCR1B |= (1 < <WGM12); // Stel CS11 bit in voor 8 prescaler TCCR1B |= (1 << CS11); // inschakelen timer vergelijk interrupt TIMSK1 |= (1 << OCIE1A); sei();//allow interrupts //END TIMER SETUP Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Interrupt bij freq van 1 kHz om reed-schakelaar te meten

reedVal = digitalRead (reed); // haal waarde van A0 als (reedVal) {// als reed-schakelaar is gesloten als (reedCounter == 0) {// min tijd tussen pulsen is verstreken vvorige = mph; vertraging (500); mph = (56,8*float(omtrek))/float(timer);//bereken mijl per uur timer = 0;//reset timer reedCounter = maxReedCounter;//reset reedCounter } else{ if (reedCounter > 0){// laat reedCounter niet negatief worden reedCounter -= 1;//verlaag reedCounter} }} else{//als reed-schakelaar open is als (reedCounter > 0){// laat reedCounter niet negatief worden reedCounter -= 1;/ /decrement reedCounter } } if (timer > 2000){ mph = 0;//als er geen nieuwe pulsen van reed-switch-band nog zijn, zet mph op 0 vvorige = 0; } else{ timer += 1;//timer verhogen } }

ongeldige controleComp(){

if (vvorige mph) // Videosnelheid vertragen { Keyboard.press('s'); Toetsenbord.releaseAll(); vertraging (750); } if (vvorige == mph) // niets doen {; } } void loop(){ //print mph tweemaal per seconde Serial.print("VPrevious:"); Serieel.print("\t"); Serial.println(vvorige);

Serial.print("MPH:");

Serieel.print("\t"); Serieel.println(mph); controleComp(); }

Zodra de code met succes is geüpload, opent u de seriële monitor. Zonder beweging van het achterwiel, zouden de "MPH" en "VPrevious" 0,00 moeten zijn. Draai het wiel zodat het een paar omwentelingen versnelt en vervolgens vertraagt. De monitor moet de snelheid aflezen en type d's voor acceleratie en s's voor vertraging. Als er geen waarden verschijnen wanneer het wiel wordt gedraaid, wordt de magneet mogelijk niet gedetecteerd door de reed-schakelaar. Zorg ervoor dat de magneet sterk genoeg is door te luisteren naar een stoppend *gerinkel* geluid wanneer de magneet de schakelaar passeert.

Stap 5: YouTube-controller instellen

YouTube-controller instellen
YouTube-controller instellen

De laatste stap is om de YouTube-video's te openen die je wilt gebruiken om mee te volgen op je fiets. Het idee is om first person-video's te hebben waarin je jezelf volledig kunt onderdompelen en kunt genieten van het landschap tijdens het fietsen. Ik heb voldaan aan een YouTube-afspeellijst met verschillende video-opties. Ze variëren van een aantal kanalen die video's uploaden die voldoen aan deze first-person-criteria. Het zijn ook video's zoals vliegen door wolken en treinreizen door het hele land voor een verscheidenheid aan first-person-avonturen.

Aanbevolen: