Мазмуну:

Реалдуу убакытта ылдамдыкты жөнгө салуу менен велосипед симулятору: 5 кадам
Реалдуу убакытта ылдамдыкты жөнгө салуу менен велосипед симулятору: 5 кадам

Video: Реалдуу убакытта ылдамдыкты жөнгө салуу менен велосипед симулятору: 5 кадам

Video: Реалдуу убакытта ылдамдыкты жөнгө салуу менен велосипед симулятору: 5 кадам
Video: 12v DC DC мотору үчүн 43v DC Converter 2024, Ноябрь
Anonim
Реалдуу убакытта ылдамдыкты жөнгө салуу менен велосипед симулятору
Реалдуу убакытта ылдамдыкты жөнгө салуу менен велосипед симулятору

Бул долбоор спидометрди түзүү үчүн YouTube же башка медиада велосипед тебүү видеолорунун ылдамдыгын көзөмөлдөө үчүн магниттик камыш которгучту колдонот. Arduino миляны эсептеп, анан ошол маалыматты компьютердин баскычын басууну окшоштуруу үчүн колдонот. Бул баскычты басуу, Google Chrome кеңейтүүсү менен жупташып, ылдамдыктын өзгөрүшүнүн негизинде видеону тездетет же жайлатат. Бул Arduinoго жаңыдан баштагандар оңой эле өз алдынча түзө ала турган негизги аппараттык орнотууга ээ.

Спидометрдин коду бул долбоорго негизделген:

Аппараттык тизме:

1. Ардуино Леонардо

2. Микро USB кабели (Файлды өткөрүүгө жөндөмдүү болушу керек жана <3 фут)

3. Магниттик камыш которуштуруу

4. 10k Ом резистору

5. 22 ченегич зым (<4 фут)

6. Лайнер

7. Solder

8. Электр лентасы

9. Zip галстуктары

10. Стационардык велосипед стенди

11. Велосипед

1 -кадам: Компьютериңизге тиешелүү программалык камсыздоону жүктөп алыңыз

1. Arduino IDE

2. Видео ылдамдыгын көзөмөлдөөчү (Веб -браузердин кеңейтүүсү)

а. Google Chrome

б. Firefox

2 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

Бардык туташуулар биригип, электр лента менен жабыштырылышы керек. Arduino Arduino менен коштолгон пластикалык корпустун жардамы менен велосипедге орнотулушу мүмкүн (жогорудагы бөлүктөр тизмесинде шилтеме кылынган). Бул маанилүү, анткени эгер велосипед металлы төөнөгүчтөр менен түз байланышта болсо, анда керексиз байланыштарды түзүшү мүмкүн. Капчыкта велосипедге зип байлап турган тешиктер бар. 22 калибрлүү зым велосипеддин алкагына оролуп, скотч же зым галстук менен бекитилиши керек. Зымдын кыймылдоочу механизмдерге түшө турган жерлерге оролуп калбасын.

3 -кадам: Велосипедди стационардык велосипед стендине коюңуз

Велосипедди стационардык велосипед стендине бекитип, микро USB кабели сиздин компьютериңизге жетиши үчүн сиздин компьютериңизге жакын экенин текшериңиз. Ошондой эле, экранды ыңгайлуу көрүү үчүн көрүү аралыкыңыз ылайыктуу экенин текшериңиз. Велосипедди стендге кантип коопсуз орнотуу керектигин бул жерден тапса болот.

4 -кадам: Arduino кодун жүктөө жана текшерүү

Arduino кодун жүктөө жана текшерүү
Arduino кодун жүктөө жана текшерүү

Эгерде сиз Arduino IDEде жаңы болсоңуз, анда киришүү баракчасын бул жерден тапса болот. Белгилей кетчү нерсе, Леонардо файлды өткөрүп берүү мүмкүнчүлүгүнө ээ болгон жүктөө үчүн micro-USC кабелин талап кылат. Көптөгөн микро USB кабелдери кубаттоо үчүн гана колдонулат жана алар иштебейт. Ардуино Леонардо компьютер тарабынан таанылгандан кийин, төмөнкү кодду көчүрүү жана чаптоо жана жүктөө:

// Бул код велосипеддин ылдамдыгын табат жана аны компьютердин баскычтоп басуусуна айлантат

// эсептөөлөр

// шинанын радиусу ~ 13.5 дюйм // айланасы = pi*2*r = ~ 85 дюйм // максималдуу ылдамдыгы 35 миль/саат ~ 616 дюйм/секунда // максималдуу rps = ~ 7.25

#кошуу

#define камыш A0 // окуучу которуштурууга туташкан

// сактоо өзгөрмөлөрү

int reedVal; узак таймер; // бир толук айлануунун ортосундагы убакыт (мс менен) сүзүүчү миля; сүзүү радиусу = 13.5; // шинанын радиусу (дюймда) калкып жүрүү чөйрөсү; float vprevious; сүзүү ылдамдыгы;

int maxReedCounter = 100; // минута (мс менен) бир айлануу (дебюндоо үчүн)

int reedCounter;

жараксыз орнотуу () {

reedCounter = maxReedCounter; айланасы = 2*3.14*радиусу; pinMode (камыш, INPUT); Keyboard.begin (); // TIMER SETUP- таймердин үзүлүшү камыш которгучтун так убакыт ченөөлөрүнө мүмкүнчүлүк берет // arduino таймерлеринин конфигурациясы жөнүндө көбүрөөк маалымат үчүн https://arduino.cc/playground/Code/Timer1 cli () караңыз; // үзгүлтүктөрдү токтотуу

// таймер1 үзүлүүсүн 1 кГцге коюңуз

TCCR1A = 0; // бүт TCCR1A регистрин 0 TCCR1B = 0 деп коюу; // TCCR1B үчүн бирдей TCNT1 = 0; // таймердин санын 1 кГц өсүшү үчүн OCR1A = 1999; // = (1/1000)/((1/(16*10^6))*8) - 1 // CTC режимин күйгүзүү TCCR1B | = (1 < <WGM12); // CS11 битти 8 prescaler TCCR1B үчүн коюңуз | = (1 << CS11); // таймерди салыштыруу үзгүлтүгүн иштетүү TIMSK1 | = (1 << OCIE1A); sei (); // үзгүлтүктөргө уруксат берүү // END TIMER SETUP Serial.begin (9600); }

ISR (TIMER1_COMPA_vect) {// Камыш которгучту өлчөө үчүн 1 кГц жыштыгында үзгүлтүккө учуратуу

reedVal = digitalRead (reed); // A0 валына ээ бол (reedVal) {// эгер камыш которгуч жабылган болсо (reedCounter == 0) {// импульстар ортосундагы мүнөт vprevious = mph өттү; кечигүү (500); mph = (56.8*калкып чыгуу (айланасы))/калкып чыгуу (таймер); // саатына миля эсептөө таймер = 0; // таймер reedCounter = maxReedCounter; reedCounter терс reedCounter -= 1; // азайтуу reedCounter}}} башка {// эгер камыш которгуч ачык болсо (reedCounter> 0) {// reedCounter терс reedCounter -= 1; /decrement reedCounter}} if (таймер> 2000) {mph = 0; // эгер камыш которгучтан жаңы импульстар али жок болсо, mphти 0го коюңуз vprevious = 0; } башка {таймер += 1; // көбөйтүү таймери}}

Void controlComp () {

if (vprevious mph) // Видео ылдамдыгын төмөндөтүү {Keyboard.press (s)); Keyboard.releaseAll (); кечиктирүү (750); } if (vprevious == mph) // эч нерсе кылба {; }} void loop () {// mph басып чыгаруу секундасына эки жолу Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);

Serial.print ("MPH:");

Serial.print ("\ t"); Serial.println (mph); controlComp (); }

Код ийгиликтүү жүктөлгөндөн кийин, сериялык мониторду ачыңыз. Арткы дөңгөлөк кыймылдабаганда, "MPH" жана "VPrevious" 0.00 окулушу керек. Дөңгөлөктү бир нече революцияга чейин ылдамдатып, анан басаңдата тургандай кылып буруңуз. Монитор ылдамдыкты жана d түрүн ылдамдатуу үчүн, ал эми басаңдоо үчүн s'лерди окушу керек. Эгерде дөңгөлөк айланганда эч кандай баалуулуктар пайда болбосо, магнит камыш которгуч тарабынан аныкталбашы мүмкүн. Магнит которгучтан өтүп баратканда, quit * clink * ызы -чуусун угуу менен, магниттин күчтүү экенин текшериңиз.

5 -кадам: YouTube Controller орнотуу

YouTube Controller'ди орнотуңуз
YouTube Controller'ди орнотуңуз

Акыркы кадам - велосипед менен жүрүү үчүн колдонууну каалаган YouTube видеолорун чыгаруу. Идея - велосипед тебүү учурунда пейзаждан ырахат ала турган биринчи адамдын видеолору. Мен ар кандай видео варианттарынын YouTube плейлистин аткардым. Алар бул биринчи критерийлерге туура келген видеолорду жүктөгөн бир нече каналдан турат. Алар ошондой эле булуттар аркылуу учуу жана биринчи адам укмуштуу окуялары үчүн кросс поезд саякаттары сыяктуу видеолор.

Сунушталууда: