Innholdsfortegnelse:
- Trinn 1: Last ned relevant programvare til datamaskinen
- Trinn 2: Maskinvare
- Trinn 3: Plasser sykkelen på stasjonær sykkelstativ
- Trinn 4: Last opp og test Arduino -koden
- Trinn 5: Konfigurer YouTube -kontrolleren
Video: Sykkelsimulator med hastighetsjustering i sanntid: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Dette prosjektet bruker en magnetisk sivbryter for å lage et hastighetsmåler og kontrollere videohastigheten til førstepersons sykkelvideoer på YouTube eller andre medier. Arduino beregner km / t og bruker deretter denne informasjonen til å simulere et trykk på en datamaskin. Dette knappetrykket, sammen med en utvidelse av Google Chrome, øker eller bremser videoen basert på hastighetsendringen. Den har en grunnleggende maskinvareoppsett som de som er nybegynnere til Arduino enkelt kan lage på egen hånd.
Hastighetsmålerkoden er basert på dette prosjektet:
Maskinvareliste:
1. Arduino Leonardo
2. Micro USB -kabel (må være i stand til filoverføring og <3ft)
3. Magnetisk sivbryter
4. 10k Ohm motstand
5. 22 gauge Wire (<4ft)
6. Loddejern
7. Lodding
8. Elektrisk tape
9. Glidelåser
10. Stasjonær sykkelstativ
11. Sykkel
Trinn 1: Last ned relevant programvare til datamaskinen
1. Arduino IDE
2. Video Speed Controller (nettleserutvidelse)
en. Google Chrome
b. Firefox
Trinn 2: Maskinvare
Alle tilkoblinger skal loddes sammen og teipes over med elektrisk tape. Arduino kan monteres på sykkelen ved hjelp av et plastikkhus som følger med Arduino (lenket i delelisten ovenfor). Dette er viktig fordi hvis sykkelmetallet er i direkte kontakt med pinnene, kan det opprette uønskede forbindelser. Dekselet har også hull som gjør det enkelt å feste saken til sykkelen. 22 gauge ledningen skal vikles langs sykkelrammen og festes med tape eller glidelåser. Sørg for å unngå å vikle inn ledningen et sted hvor den kan sette seg fast på bevegelige mekanismer.
Trinn 3: Plasser sykkelen på stasjonær sykkelstativ
Fest sykkelen i det stasjonære sykkelstativet og sørg for at den er nær nok datamaskinen til at mikro-USB-kabelen kan nå datamaskinen. Sørg også for at visningsavstanden for deg er egnet for å kunne se skjermen komfortabelt. Du finner en veiledning om hvordan du plasserer sykkelen på stativet på en sikker måte.
Trinn 4: Last opp og test Arduino -koden
Hvis du er ny på Arduino IDE, kan du finne en introduksjonsside her. Det er viktig å merke seg at Leonardo krever en mikro-USC-kabel for å laste opp som har filoverføringsmuligheter. Mange mikro-USB-kabler brukes bare til lading, og de vil ikke fungere. Når Arduino Leonardo er gjenkjent av datamaskinen, kopier og lim inn og last opp følgende kode:
// Denne koden finner hastigheten på en sykkel og konverterer den til tastaturet på datamaskinen
// beregninger
// dekkradius ~ 13,5 tommer // omkrets = pi*2*r = ~ 85 tommer // maks hastighet på 35 mph = ~ 616 tommer/sekund // maks rps = ~ 7,25
#inkludere
#define reed A0 // pin koblet til lesebryter
// lagringsvariabler
int reedVal; lang timer; // tid mellom en full rotasjon (i ms) flyte mph; flyteradius = 13,5; // dekkradius (i tommer) flyteomkrets; flyte vforrige; flytehastighet;
int maxReedCounter = 100; // min tid (i ms) for en rotasjon (for debouncing)
int reedCounter;
ugyldig oppsett () {
reedCounter = maxReedCounter; omkrets = 2*3,14*radius; pinMode (siv, INNGANG); Keyboard.begin (); // TIMER SETUP- tidsavbruddet tillater presise tidsbestemte målinger av reed-bryteren // for mer informasjon om konfigurasjon av arduino-timere se https://arduino.cc/playground/Code/Timer1 cli (); // stopp avbrudd
// sett timer1 -avbrudd på 1 kHz
TCCR1A = 0; // sett hele TCCR1A -registeret til 0 TCCR1B = 0; // samme for TCCR1B TCNT1 = 0; // sett timertall for trinn på 1 kHz OCR1A = 1999; // = (1/1000)/((1/(16*10^6))*8) - 1 // slå på CTC -modus TCCR1B | = (1 < <WGM12); // Angi CS11 -bit for 8 forhåndsskaler TCCR1B | = (1 << CS11); // aktiver tidsur sammenligne interrupt TIMSK1 | = (1 << OCIE1A); sei (); // tillat avbrudd // END TIMER SETUP Serial.begin (9600); }
ISR (TIMER1_COMPA_vect) {// Avbryt ved frekvens på 1 kHz for å måle sivbryter
reedVal = digitalRead (reed); // få val av A0 hvis (reedVal) {// hvis reed -bryteren er lukket hvis (reedCounter == 0) {// min tid mellom pulser har passert vprevious = mph; forsinkelse (500); mph = (56,8*float (omkrets))/float (timer); // beregne miles per time timer = 0; // reset timer reedCounter = maxReedCounter; // reset reedCounter} else {if (reedCounter> 0) {// ikke la reedCounter gå negativ reedCounter -= 1; // redusere reedCounter}}} annet {// hvis reed -bryteren er åpen hvis (reedCounter> 0) {// ikke la reedCounter gå negativ reedCounter -= 1;/ /decrement reedCounter}} if (timer> 2000) {mph = 0; // hvis ingen nye pulser fra sivbryteren er stille, sett mph til 0 vprevious = 0; } annet {timer += 1; // trinnvis timer}}
void controlComp () {
hvis (tidligere mph) // Senk videohastigheten {Keyboard.press ('s'); Keyboard.releaseAll (); forsinkelse (750); } hvis (vprevious == mph) // ikke gjør noe {; }} void loop () {// print mph to ganger i sekundet Serial.print ("VForrige:"); Serial.print ("\ t"); Serial.println (tidligere);
Serial.print ("MPH:");
Serial.print ("\ t"); Serial.println (mph); controlComp (); }
Når koden er lastet opp, åpner du den serielle skjermen. Uten bevegelse av bakhjulet, bør “MPH” og “VPrevious” lese 0,00. Roter hjulet slik at det setter fart i noen få omdreininger og deretter senker farten. Monitoren bør lese hastigheten og typen d for akselerasjon og s for retardasjon. Hvis det ikke vises noen verdier når hjulet roteres, kan det hende at magneten ikke blir oppdaget av sivbryteren. Sørg for at magneten er sterk nok ved å lytte etter en "clink *" -støy når magneten passerer bryteren.
Trinn 5: Konfigurer YouTube -kontrolleren
Det siste trinnet er å ta opp YouTube -videoene du ønsker å bruke til å følge med på sykkelen din. Tanken er å ha førstepersonsvideoer som du helt kan fordype deg i og nyte naturen mens du sykler. Jeg har fulgt en YouTube -spilleliste med en rekke videoalternativer. De spenner fra en rekke kanaler som laster opp videoer som samsvarer med disse førstepersons kriteriene. De er også videoer som å fly gjennom skyer og langrennstog for noen forskjellige førstepersonsopplevelser.
Anbefalt:
Enhetsgjenkjenning i sanntid ved bruk av EM-fotavtrykk: 6 trinn
Sanntids enhetsgjenkjenning ved bruk av EM-fotavtrykk: Denne enheten er ment å klassifisere forskjellige elektroniske enheter i henhold til deres EM-signaler. For forskjellige enheter har de forskjellige EM -signaler som sendes ut av den. Vi har utviklet en IoT -løsning for å identifisere elektroniske enheter ved hjelp av Particle
MicroPython-program: Oppdater data om koronavirussykdom (COVID-19) i sanntid: 10 trinn (med bilder)
MicroPython-program: Oppdater data om koronavirussykdom (COVID-19) i sanntid: I løpet av de siste ukene har antall bekreftede tilfeller av koronavirussykdom (COVID 19) oversteget 100 000, og verdens helseorganisasjon (WHO) har erklært nytt koronavirus lungebetennelse utbrudd for å være en global pandemi. Jeg var veldig
Opplys meg! en LED-stripekontroll i sanntid på tvers av plattformer: 5 trinn (med bilder)
Opplys meg! en LED-stripekontroll i sanntid på tvers av plattformer: LightMeUp! er et system jeg oppfant for å kontrollere en RGB LED-stripe i sanntid, samtidig som kostnadene er lave og ytelsen høy. Serveren er skrevet i Node.js og derfor kryssplattformbar. I mitt eksempel bruker jeg en Raspberry Pi 3B for langtidsbruk
Ansiktsgjenkjenning i sanntid på RaspberryPi-4: 6 trinn (med bilder)
Ansiktsgjenkjenning i sanntid på RaspberryPi-4: I denne instruksen skal vi utføre ansiktsgjenkjenning i sanntid på Raspberry Pi 4 med Shunya O/S ved bruk av Shunyaface-biblioteket. Du kan oppnå en deteksjonsramme på 15-17 på RaspberryPi-4 ved å følge denne opplæringen
Ansiktsgjenkjenning i sanntid: et ende-til-ende-prosjekt: 8 trinn (med bilder)
Ansiktsgjenkjenning i sanntid: et ende-til-ende-prosjekt: På min siste opplæring som utforsket OpenCV, lærte vi AUTOMATIC VISION OBJECT TRACKING. Nå skal vi bruke PiCam til å gjenkjenne ansikter i sanntid, som du kan se nedenfor: Dette prosjektet ble utført med dette fantastiske "Open Source Computer Vision Library"