Cuprins:
- Pasul 1: Descărcați software-ul relevant pe computer
- Pasul 2: Hardware
- Pasul 3: Așezați bicicleta pe suportul de biciclete staționar
- Pasul 4: Încărcați și testați codul Arduino
- Pasul 5: configurați controlerul YouTube
Video: Simulator de biciclete cu reglare a vitezei în timp real: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Acest proiect folosește un comutator magnetic Reed pentru a crea un vitezometru și pentru a controla viteza video a videoclipurilor de pe prima persoană pe YouTube sau pe alte medii. Arduino calculează mph și apoi folosește acele informații pentru a simula apăsarea butonului computerului. Acest buton de apăsare, asociat cu o extensie Google Chrome, accelerează sau încetinește videoclipul pe baza modificării vitezei. Are o configurare hardware de bază pe care cei care încep la Arduino o pot crea cu ușurință pe cont propriu.
Codul vitezometrului se bazează pe acest proiect:
Lista hardware:
1. Arduino Leonardo
2. Cablu micro USB (trebuie să fie capabil de transfer de fișiere și <3ft)
3. Comutator Reed magnetic
4. Rezistor 10k Ohm
5. Sârmă de gabarit 22 (<4ft)
6. Fier de lipit
7. lipit
8. Bandă electrică
9. Cravate cu fermoar
10. Suport staționar pentru biciclete
11. Bicicleta
Pasul 1: Descărcați software-ul relevant pe computer
1. IDE Arduino
2. Controler de viteză video (extensie browser web)
A. Google Chrome
b. Firefox
Pasul 2: Hardware
Toate conexiunile trebuie lipite împreună și lipite cu bandă electrică. Arduino poate fi montat pe bicicletă folosind o carcasă din plastic inclusă cu Arduino (legată în lista pieselor de mai sus). Acest lucru este important deoarece, dacă metalul bicicletei este în contact direct cu știfturile, ar putea crea conexiuni nedorite. Carcasa are, de asemenea, găuri care simplifică fixarea carcasei la bicicletă. Sârmă de calibru 22 ar trebui să fie înfășurată de-a lungul cadrului bicicletei și fixată cu benzi cu bandă sau fermoar. Asigurați-vă că evitați înfășurarea firului în orice loc unde acesta poate fi prins de mecanismele în mișcare.
Pasul 3: Așezați bicicleta pe suportul de biciclete staționar
Fixați bicicleta în suportul fix pentru biciclete și asigurați-vă că este suficient de aproape de computer pentru ca cablul micro-USB să ajungă la computer. De asemenea, asigurați-vă că distanța de vizualizare pentru dvs. este potrivită pentru a putea vedea confortabil ecranul. Un tutorial despre cum să așezați în siguranță bicicleta pe suport poate fi găsit aici.
Pasul 4: Încărcați și testați codul Arduino
Dacă sunteți nou în Arduino IDE, o pagină de introducere poate fi găsită aici. Este important să rețineți că Leonardo necesită un cablu micro-USC pentru încărcare care are capacități de transfer de fișiere. Multe cabluri micro-USB sunt folosite doar pentru încărcare și acestea nu vor funcționa. Odată ce Arduino Leonardo este recunoscut de computer, copiați și lipiți și încărcați următorul cod:
// Acest cod găsește viteza unei biciclete și o convertește în tastatura computerului
// calcule
// raza anvelopei ~ 13,5 inci // circumferinta = pi * 2 * r = ~ 85 inci // viteza maxima de 35 mph = ~ 616 inch / secunda // max rps = ~ 7,25
#include
#define reed A0 // pin conectat la comutatorul de citire
// variabile de stocare
int reedVal; temporizator lung; // timpul dintre o rotație completă (în ms) plutitor mph; raza plutitoare = 13,5; // raza anvelopei (în inci) circumferința plutitorului; float vprevious; rata de plutire;
int maxReedCounter = 100; // timp min (în ms) al unei rotații (pentru debouncing)
int reedCounter;
configurare nulă () {
reedCounter = maxReedCounter; circumferință = 2 * 3,14 * rază; pinMode (reed, INPUT); Keyboard.begin (); // TIMER SETUP- întreruperea temporizatorului permite măsurări precise temporizate ale comutatorului reed // pentru mai multe informații despre configurarea temporizatoarelor arduino vezi https://arduino.cc/playground/Code/Timer1 cli (); // stop interrupts
// setați întreruperea timer1 la 1kHz
TCCR1A = 0; // setați întregul registru TCCR1A la 0 TCCR1B = 0; // același pentru TCCR1B TCNT1 = 0; // setați numărul temporizatorului pentru creșteri de 1 kHz OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1 // activați modul CTC TCCR1B | = (1 < <WGM12); // Setați bitul CS11 pentru 8 prescaler TCCR1B | = (1 << CS11); // activa temporizator compara întrerupere TIMSK1 | = (1 << OCIE1A); sei (); // permit întreruperi // FINALIZARE TIMER CONFIGURARE Serial.begin (9600); }
ISR (TIMER1_COMPA_vect) {// Întrerupeți la frecvența de 1kHz pentru a măsura comutatorul reed
reedVal = digitalRead (reed); // obțineți valul lui A0 dacă (reedVal) {// dacă comutatorul reed este închis dacă (reedCounter == 0) {// timpul dintre impulsuri a trecut vprevious = mph; întârziere (500); mph = (56,8 * float (circumferință)) / float (timer); // calculați mile pe oră timer = 0; // resetare temporizator reedCounter = maxReedCounter; // reset reedCounter} else {if (reedCounter> 0) {// nu lăsați reedCounter să meargă negativ reedCounter - = 1; // decrement reedCounter}}} else {// dacă reed switch este deschis dacă (reedCounter> 0) {// nu lăsați reedCounter să meargă negativ reedCounter - = 1; / / decrement reedCounter}} if (cronometru> 2000) {mph = 0; // dacă nu există încă impulsuri noi de la comutatorul reed, setați mph la 0 vprevious = 0; } else {timer + = 1; // increment cronometru}}
void controlComp () {
if (vprevious mph) // Reduce viteza video {Keyboard.press ('s'); Keyboard.releaseAll (); întârziere (750); } if (vprevious == mph) // nu face nimic {; }} void loop () {// print mph de două ori pe secundă Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);
Serial.print ("MPH:");
Serial.print ("\ t"); Serial.println (mph); controlComp (); }
Odată ce codul este încărcat cu succes, deschideți monitorul serial. Fără mișcare a roții din spate, „MPH” și „VPrevious” ar trebui să citească 0,00. Rotiți roata astfel încât să se accelereze pentru câteva rotații și apoi să încetinească. Monitorul ar trebui să citească viteza și tastați d pentru accelerare și s pentru decelerare. Dacă nu apar valori atunci când roata este rotită, magnetul nu poate fi detectat de comutatorul reed. Asigurați-vă că magnetul este suficient de puternic ascultând un zgomot de ieșire * clink * când magnetul trece de comutator.
Pasul 5: configurați controlerul YouTube
Ultimul pas este să afișezi videoclipurile YouTube pe care dorești să le folosești pentru a le urmări pe bicicletă. Ideea este să aveți videoclipuri de la prima persoană în care să vă puteți scufunda pe deplin și să vă bucurați de peisaj în timp ce mergeți cu bicicleta. Am respectat o listă de redare YouTube cu o varietate de opțiuni video. Acestea variază de la un număr de canale care încarcă videoclipuri care corespund acestui criteriu pentru persoana întâi. Sunt, de asemenea, videoclipuri cum ar fi zborul prin nori și excursii cu trenul pentru o varietate de aventuri la persoana întâi.
Recomandat:
Cum se folosește un modul de ceas în timp real (DS3231): 5 pași
Cum se folosește un modul de ceas în timp real (DS3231): DS3231 este un ceas I2C în timp real (RTC) cu cost redus, extrem de precis, cu un oscilator de cristal integrat compensat de temperatură (TCXO) și cristal. Dispozitivul încorporează o intrare a bateriei și menține o cronometrare exactă atunci când alimentarea principală la
Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: 4 pași
Solver Rubik’s Cube Blindfolded în timp real folosind Raspberry Pi și OpenCV: Aceasta este a doua versiune a instrumentului cub Rubik’s cub făcut pentru rezolvarea în legături la ochi. Prima versiune a fost dezvoltată de javascript, puteți vedea proiectul RubiksCubeBlindfolded1 Spre deosebire de versiunea anterioară, această versiune folosește biblioteca OpenCV pentru a detecta culorile și e
Un contor de nivel al apei în timp real: 6 pași (cu imagini)
Un contor de nivel al apei de fântână în timp real: Aceste instrucțiuni descriu cum să construiți un contor de nivel al apei în timp real, cu cost redus, pentru a fi utilizat în puțurile săpate. Contorul de nivel al apei este proiectat să stea în interiorul unei fântâni săpate, să măsoare nivelul apei o dată pe zi și să trimită datele prin WiFi sau conexiune celulară
Un contor de temperatură, conductivitate și nivel al apei în timp real: 6 pași (cu imagini)
Un contor de temperatură, conductivitate și nivel al apei în timp real: Aceste instrucțiuni descriu cum să construiți un contor de apă cu cost redus, în timp real, pentru monitorizarea temperaturii, a conductivității electrice (EC) și a nivelului apei în puțurile săpate. Contorul este proiectat să stea în interiorul unei fântâni săpate, să măsoare temperatura apei, EC și
Trasarea graficului în timp real pe Android de la Arduino prin HC-05: 3 pași
Plotarea graficului în timp real pe Android de la Arduino prin HC-05: Hei, iată un tutorial despre cum să trasați un grafic în timp real al valorilor de la un microcontroler, cum ar fi un Arduino, la aplicație. Folosește un modul Bluetooth, cum ar fi HC-05, pentru a acționa ca un dispozitiv de mesagerie pentru a transmite și primi datele între Ar