Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Tento projekt používa magnetický jazýčkový spínač na vytvorenie rýchlomera a ovládanie rýchlosti videa z bicyklovania z pohľadu prvej osoby na YouTube alebo iných médiách. Arduino vypočíta mph a potom tieto informácie použije na simuláciu stlačenia tlačidla počítača. Toto stlačenie tlačidla, spárované s rozšírením Google Chrome, zrýchľuje alebo spomaľuje video na základe zmeny rýchlosti. Má základné hardvérové usporiadanie, ktoré si môžu začiatočníci v Arduine ľahko vytvoriť sami.
Kód rýchlomera je založený na tomto projekte:
Zoznam hardvéru:
1. Arduino Leonardo
2. Kábel Micro USB (musí byť schopný prenosu súborov a <3 stopy)
3. Magnetický jazýčkový spínač
4. 10k Ohm odpor
5. Drôt s priemerom 22 (<4 stopy)
6. Spájkovačka
7. Spájka
8. Elektrická páska
9. Kravaty na zips
10. Stacionárny stojan na bicykle
11. Bicykel
Krok 1: Stiahnite si príslušný softvér do počítača
1. Arduino IDE
2. Ovládač rýchlosti videa (rozšírenie webového prehliadača)
a. Google Chrome
b. Firefox
Krok 2: Hardvér
Všetky spoje by mali byť spájkované a prelepené elektrickou páskou. Arduino je možné namontovať na bicykel pomocou plastového puzdra, ktoré je súčasťou balenia Arduino (prepojené so zoznamom dielov vyššie). Je to dôležité, pretože ak je kov bicykla v priamom kontakte s kolíkmi, môže to spôsobiť nežiaduce spojenia. Puzdro má tiež otvory, ktoré uľahčujú pripájanie puzdra na bicykel na zips. Drôt s rozmerom 22 by mal byť omotaný pozdĺž rámu bicykla a zaistený páskou alebo sponami na zips. Dbajte na to, aby ste drôt nezabalili na žiadne miesta, kde by sa mohol zachytiť o pohybujúce sa mechanizmy.
Krok 3: Umiestnite bicykel na stacionárny stojan na bicykle
Zaistite bicykel do stojana na pevné bicykle a uistite sa, že je dostatočne blízko počítača, aby sa kábel micro-USB dostal k vášmu počítaču. Uistite sa tiež, že pozorovacia vzdialenosť je pre vás vhodná, aby ste mohli pohodlne vidieť obrazovku. Tu nájdete návod, ako bezpečne umiestniť bicykel na stojan.
Krok 4: Nahrajte a otestujte kód Arduino
Ak ste novým používateľom Arduino IDE, úvodnú stránku nájdete tu. Je dôležité poznamenať, že Leonardo na odosielanie vyžaduje kábel micro-USC, ktorý má možnosti prenosu súborov. Mnoho káblov micro-USB sa používa iba na nabíjanie a tie nebudú fungovať. Hneď ako počítač Arduino Leonardo rozpozná, skopírujte a prilepte a nahrajte nasledujúci kód:
// Tento kód zisťuje rýchlosť bicykla a prevádza ho na stlačenie klávesnice počítača
// výpočty
// polomer pneumatiky ~ 13,5 palca // obvod = pi*2*r = ~ 85 palcov // max. rychlost 35 mph = ~ 616 palcov/s // max rps = ~ 7,25
#zahrnúť
#define jazýček A0 // kolík pripojený k spínaču čítania
// premenné úložiska
int reedVal; dlhý časovač; // čas medzi jedným úplným otočením (v ms) float mph; polomer float = 13,5; // polomer pneumatiky (v palcoch) obvod plaváka; float vprevious; float rate;
int maxReedCounter = 100; // min. čas (v ms) jednej rotácie (na odskakovanie)
int reedCounter;
neplatné nastavenie () {
reedCounter = maxReedCounter; obvod = 2*3,14*polomer; pinMode (trstina, VSTUP); Keyboard.begin (); // NASTAVENIE ČASOVAČA- prerušenie časovača umožňuje presné načasované meranie jazýčkového spínača // viac informácií o konfigurácii arduino časovačov nájdete na stránke https://arduino.cc/playground/Code/Timer1 cli (); // zastavenie prerušenia
// nastavenie prerušenia timer1 na 1kHz
TCCR1A = 0; // nastavenie celého registra TCCR1A na 0 TCCR1B = 0; // to isté pre TCCR1B TCNT1 = 0; // nastavenie počtu časovačov pre prírastky 1 kHz OCR1A = 1999; // = (1/1000)/((1/(16*10^6))*8) - 1 // zapnutie režimu CTC TCCR1B | = (1 < <WGM12); // Nastav bit CS11 pre 8 predzosilňovačov TCCR1B | = (1 << CS11); // povolenie prerušenia porovnávania časovača TIMSK1 | = (1 << OCIE1A); sei (); // povoliť prerušenia // NASTAVENIE KONIEC ČASOVAČA Serial.begin (9600); }
ISR (TIMER1_COMPA_vect) {// Prerušenie pri frekvencii 1 kHz na meranie jazýčkového spínača
reedVal = digitalRead (reed); // získanie hodnoty A0 if (reedVal) {// ak je jazýčkový spínač zatvorený, ak (reedCounter == 0) {// min. čas medzi impulzmi uplynul vprevious = mph; oneskorenie (500); mph = (56,8*float (obvod))/float (časovač); // výpočet míľ za hodinu časovač = 0; // reset časovača reedCounter = maxReedCounter; // reset reedCounter} else {if (reedCounter> 0) {// nenechajte reedCounter ísť negatívny reedCounter -= 1; // dekrementujte reedCounter}}} else {// ak je jazýčkový spínač otvorený, ak (reedCounter> 0) {// nenechajte reedCounter ísť negatívny reedCounter -= 1;/ /decrement reedCounter}} if (časovač> 2000) {mph = 0; // ak nie sú žiadne nové impulzy z jazýčkového spínača, nastavte mph na 0 vprevious = 0; } else {časovač += 1; // prírastkový časovač}}
void controlComp () {
if (vprevious mph) // Spomalenie rýchlosti videa {Keyboard.press ('s'); Keyboard.releaseAll (); oneskorenie (750); } if (vprevious == mph) // nič nerobiť; }} void loop () {// tlač mph dvakrát za sekundu Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);
Serial.print ("MPH:");
Serial.print ("\ t"); Serial.println (mph); controlComp (); }
Po úspešnom nahraní kódu otvorte sériový monitor. Bez pohybu zadného kolesa by mali hodnoty „MPH“a „VPrevious“ukazovať 0,00. Otočte koleso tak, aby sa zrýchlilo na niekoľko otáčok a potom spomalilo. Monitor by mal odčítať rýchlosť a typ d pre zrýchlenie a s pre spomalenie. Ak sa pri otáčaní kolesa nezobrazia žiadne hodnoty, magnet nemusí byť rozpoznaný jazýčkovým spínačom. Uistite sa, že magnet je dostatočne silný, počúvajte, či pri prechode magnetu prepínačom prestane * cinkot *.
Krok 5: Nastavte ovládač YouTube
Posledným krokom je vyvolanie videí z YouTube, ktoré by ste chceli používať na svojom bicykli. Cieľom je mať videá z pohľadu prvej osoby, do ktorých sa môžete úplne ponoriť a užiť si scenériu pri bicyklovaní. Dodržal som zoznam videí YouTube pre rôzne možnosti videa. Pochádzajú z niekoľkých kanálov, ktoré nahrávajú videá, ktoré vyhovujú týmto kritériám prvej osoby. Sú to tiež videá ako lietanie v oblakoch a výlety na bežkách na rôzne dobrodružstvá z pohľadu prvej osoby.