Inhoudsopgave:
- Stap 1: Download relevante software op uw computer
- Stap 2: Hardware
- Stap 3: Plaats de fiets op de stationaire fietsstandaard
- Stap 4: Upload en test Arduino-code
- Stap 5: YouTube-controller instellen
Video: Fietssimulator met realtime snelheidsaanpassing - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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
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
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:
Realtime apparaatherkenning met behulp van EM Footprints: 6 stappen
Realtime apparaatherkenning met behulp van EM-voetafdrukken: dit apparaat is bedoeld om verschillende elektronische apparaten te classificeren op basis van hun EM-signalen. Voor verschillende apparaten hebben ze verschillende EM-signalen die erdoor worden uitgezonden. We hebben een IoT-oplossing ontwikkeld om de elektronische apparaten te identificeren met behulp van Particle
MicroPython-programma: gegevens over coronavirusziekte (COVID-19) in realtime bijwerken: 10 stappen (met afbeeldingen)
MicroPython-programma: gegevens over coronavirusziekte (COVID-19) in realtime bijwerken: in de afgelopen weken heeft het aantal bevestigde gevallen van coronavirusziekte (COVID 19) wereldwijd de 100.000 overschreden, en de wereldgezondheidsorganisatie (WHO) heeft de nieuwe uitbraak van coronavirus-pneumonie om een wereldwijde pandemie te zijn. Ik was heel
Live Covid19-tracker met ESP8266 en OLED - Realtime Covid19-dashboard: 4 stappen
Live Covid19-tracker met ESP8266 en OLED | Realtime Covid19-dashboard: bezoek de Techtronic Harsh-website: http://techtronicharsh.com Overal is er een enorme uitbraak van het nieuwe corona-virus (COVID19). Het werd noodzakelijk om het huidige scenario van COVID-19 in de wereld in de gaten te houden. Dus, thuis zijn, was dit de p
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!): Een SCARA-robot is een zeer populaire machine in de industriewereld. De naam staat voor zowel Selective Compliant Assembly Robot Arm als Selective Compliant Articulated Robot Arm. Het is in feite een robot met drie vrijheidsgraden, de eerste twee displ
Realtime gebeurtenismeldingen met NodeMCU (Arduino), Google Firebase en Laravel: 4 stappen (met afbeeldingen)
Realtime gebeurtenismeldingen met NodeMCU (Arduino), Google Firebase en Laravel: heb je ooit een melding willen ontvangen wanneer er een actie op je website wordt uitgevoerd, maar e-mail is niet de juiste keuze? Wil je bij elke verkoop een geluid of een belletje horen? Of er is direct uw aandacht nodig vanwege een calamiteit