Mündəricat:

Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı: 7 addım (şəkillərlə)
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı: 7 addım (şəkillərlə)

Video: Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı: 7 addım (şəkillərlə)

Video: Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı: 7 addım (şəkillərlə)
Video: Подключаем внешний АЦП, ADS1015 (ADS1115). +4 аналоговых входа! 2024, Noyabr
Anonim
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı
Diferensial Geribildirimli Arduino əsaslı sadə Ergometr Ekranı

Kardio-məşq, xüsusən də qapalı məkanda idman edərkən darıxdırıcıdır. Bir neçə mövcud layihə, erqometrini bir oyun konsoluna bağlamaq və ya hətta VR -də əsl velosiped sürməyi simulyasiya etmək kimi gözəl şeylər edərək bunu yüngülləşdirməyə çalışır. Texniki cəhətdən həyəcan verici olsa da, çox kömək etmirlər: Məşq hələ də darıxdırıcıdır. Buna görə də, məşq edərkən sadəcə kitab oxumaq və ya televizora baxmaq istəyərdim. Ancaq sonra sabit bir tempi saxlamaq çətindir.

Buradakı fikir, sonuncu problemə diqqət yetirmək və hazırkı təlim səviyyənizin kifayət qədər yaxşı olub-olmadığı və ya daha çox səy göstərməyiniz barədə birbaşa rəy verməkdir. Ancaq "kifayət qədər yaxşı" səviyyəsi təkcə adam başına deyil, həm də zamanla dəyişəcək (uzun müddət, yaxşılaşdıqca, həm də bir məşq zamanı: məsələn, tam sürətlə getmək mümkün deyil isindi). Buna görə də, bu layihənin arxasında duran fikir sadəcə a) əvvəlki qaçışı və b) ən yaxşı qaçışı (aka yüksək puanlar) qeyd etmək və sonra bu qaçışlarla müqayisədə hal -hazırda necə inkişaf etdiyiniz barədə birbaşa rəy verməkdir.

Bir az mücərrəd səslənirsə, tamamlanmış ekranın göstərəcəyi ilə bağlı ətraflı məlumat üçün 7 -ci addıma keçin

Bu layihənin başqa bir məqsədi şeyləri həqiqətən sadə və ucuz saxlamaqdır. Parçalarınızı haradan sifariş etdiyinizdən asılı olaraq, bu layihəni təxminən 5 dollara başa çatdıra bilərsiniz (və ya yüksək keyfiyyətli yerli satıcılardan sifariş verərkən təxminən 30 dollara) və Arduino mühiti ilə əvvəllər oynamısınızsa, əvvəllər kifayət qədər yaxşı bir şansınız var. ehtiyacınız olan hissələrin çoxu və ya hamısı var.

Addım 1: Parça siyahısı

Parça siyahısı
Parça siyahısı

Lazım olan şeylərin siyahısını nəzərdən keçirək:

Arduino ilə uyğun mikroprosessor

Son bir neçə il ərzində satılan demək olar ki, hər hansı bir Arduino bunu edəcək. Dəqiq variant (Uno / Nano / Pro Mini, 8 və ya 16 MHz, 3.3. Və ya 5V) fərq etməz. Ancaq ATMEGA328 və ya daha yaxşı bir prosessora ehtiyacınız olacaq, çünki demək olar ki, 2k RAM və 1k EEPROM istifadə edəcəyik. Arduino dünyasının incəlikləri ilə tanışsınızsa, 3.3V -də bir Pro Mini istifadə etməyi məsləhət görürəm, çünki bu, ən ucuz və ən qənaətcil batareyadır. Arduinoda (nisbətən) yenisinizsə, daha kiçik və daha ucuz bir paketdə "Uno" ilə eyni funksiyanı təmin etdiyi üçün bir "Nano" tövsiyə edirəm.

Nəzərə alın ki, bu təlimat sizə ən əsasları danışmayacaq. Ən azından Arduino proqramını quraşdırmalı və Arduino -nu necə bağlayacağınızı və eskiz yükləməyi bilməlisiniz. Nə danışdığımı başa düşmürsənsə, əvvəlcə bu iki asan təlimatı oxu: Birinci, ikinci.

128*64 piksel SSD1306 OLED ekran (I2C variantı, yəni dörd sancaq)

Bu gün mövcud olan ən ucuz və ən asan ekranlardan biridir. Razılaşın, kiçik, amma kifayət qədər yaxşıdır. Əlbəttə ki, oxşar və ya daha yaxşı bir qətnamə ekranınız varsa, bunun əvəzinə istifadə etmək mümkün olacaq, ancaq bu təlimat SSD1306 üçün yazılmışdır.

  • Prototipinizi qurmaq üçün "lehimsiz çörək taxtası" və bir az tullanan tel
  • 100nF keramika kondansatörü (lazım ola bilər və ya olmaya bilər; bax Adım 4)
  • Ya croc-kliplər, ya da maqnit, qamış açarı və bir az kabel (bax Adım 4)
  • Qırmızı və yaşıl LED, hər biri (isteğe bağlıdır; bax Adım 5)
  • İki 220Ohm rezistor (LED istifadə edilərsə)
  • Düymə (isteğe bağlı)
  • Uyğun bir batareya (bax Adım 6)

Addım 2: Ekranı bağlayın

Ekranı birləşdirmək
Ekranı birləşdirmək

İlk olaraq ekranı Arduinoya bağlayacağıq. Ətraflı təlimatlar mövcuddur. Bununla birlikdə, SSD1306 -ı bağlamaq həqiqətən asandır:

  1. VCC -> Arduino 3.3V və ya 5V göstərin (ya edəcək)
  2. Gnd -> Arduino Gnd göstərin
  3. SCL ekran> Arduino A5
  4. SCA -> Arduino A4 göstərin

Sonra, Arduino mühitinizdə Sketch-> Kitabxana daxil et> Kitabxanaları idarə et bölməsinə keçin və "Adafruit SSD1306" qurun. Təəssüf ki, kitabxananı 128*64 piksellik bir variant üçün konfiqurasiya etmək üçün redaktə etməli olacaqsınız: arduino "kitabxanalar" qovluğunuzu tapın və "Adafruit_SSD1306/Adafruit_SSD1306.h" redaktə edin. "#Define SSD1306_128_32" axtarın, bu xətti deaktiv edin və "#define SSD1306_128_64" funksiyasını aktiv edin.

Ekranınızın düzgün bağlı olduğunu yoxlamaq üçün bu nöqtədə Fayl-> Nümunələr-> Adafruit SSD1306-> ssd1306_128x64_i2c yükləməlisiniz. I2C ünvanını tənzimləməyiniz lazım ola biləcəyini unutmayın. 0x3C ən ümumi dəyər kimi görünür.

Problem olduqda daha ətraflı təlimatlara baxın.

Addım 3: Eskizi yükləyin

Hər şey işləmiş olsaydı, əsl eskizi Arduino -ya yükləməyin vaxtı gəldi. Eskizin bir nüsxəsini aşağıda tapa bilərsiniz. Potensial olaraq daha yeni bir versiya üçün github layihə səhifəsinə baxın. (Bu tək bir fayl eskizi olduğundan, erogmetrino.ino faylını Arduino pəncərənizə kopyalamaq kifayətdir).

Əvvəlki addımda I2C ünvanını dəyişdirməli olsaydınız, yenə də "display.begin" ilə başlayan sətirdə eyni düzəlişləri etməlisiniz.

Yüklədikdən sonra ekranda sıfırların göründüyünü görməlisiniz. Qalan hər şey bağlandıqdan sonra ekranın müxtəlif bölmələrinin mənasına baxacağıq.

Diqqət yetirin ki, ilk başlanğıcda ekran çox yavaş yanacaq (təxminən on saniyə çəkə bilər), çünki eskiz əvvəlcə EEPROM -da saxlanılan məlumatları sıfırlayacaq.

Addım 4: Erqometrin qoşulması

Ergometrin bağlanması
Ergometrin bağlanması

Bu addımı bütün dünyada təsvir etmək mümkün deyil, çünki bütün erqometrlər eyni deyil. Ancaq bunların hamısı fərqli deyil. Erqometrinizdə ümumiyyətlə elektron sürət göstəricisi varsa, pedalların və ya bir yerdə (ehtimal ki, daxili) bir təkərin inqilablarını aşkar etmək üçün bir elektron sensoru olmalıdır. Əksər hallarda, bu, bir qamış açarının yanından keçən bir maqnitdən ibarət olacaq (aşağıya bax). Mıknatıs hər dəfə keçəndə keçid bağlanacaq və sürət göstəricisində bir inqilab siqnalı verir.

Etməli olduğunuz ilk şey, gələn kabellər üçün erqometrinizdəki sürət göstəricisini yoxlamaqdır. Ergometrin içərisindən bir yerə gələn iki telli bir kabel tapsanız, demək olar ki, sensorla əlaqəni tapdınız. Və bir az şansla, sadəcə onu ayırıb Arduino'nuza croc-kliplərlə bağlaya bilərsiniz (bir dəqiqədə hansı pinlərə bağlanacağınızı söyləyəcəyəm).

Ancaq belə bir kabel tapa bilmirsinizsə, doğru olanı tapdığınızdan əmin deyilsinizsə və ya heç bir şeyə zərər vermədən ayıra bilmirsinizsə, pedallardan birinə kiçik bir maqnit bağlaya və erogmeter çərçivəsinə bir qamış açarı düzəldə bilərsiniz., maqnit onun yanından çox yaxından keçəcək. Anahtara iki tel qoşun və Arduino -ya aparın.

Arduino Gnd və Arduino pin D2 -yə gedəcək iki teli birləşdirin (istər öz, istərsə də mövcud bir sensordan olsun). Əlinizdə bir şey varsa, 100nF kondansatörü D2 və Gnd pinləri arasında bağlayın. Bu lazım ola bilər və ya olmaya bilər, ancaq oxunuşları sabitləşdirməyə kömək edir.

Bitirdikdən sonra Arduino -nuzu işə salmağın və ilk sürətli test üçün velosipedə minməyin vaxtı gəldi. Sol üst nömrə sürət ölçüsünü göstərməyə başlamalıdır. Bu işləmirsə, bütün naqilləri yoxlayın və maqnitin qamış açarına kifayət qədər yaxın olduğundan əmin olun. Sürət ölçüsü ardıcıl olaraq çox yüksək və ya çox aşağı görünürsə, eskizin üst hissəsinin yaxınlığındakı "CM_PER_CLICK" tərifini düzəldin (qeyd: eskizdə metrik adlar istifadə olunur, lakin heç bir yerdə heç bir vahid göstərilmir və ya qeyd olunmur, buna görə də buna məhəl qoymayın və klik başına bir milin 100.000də biri).

Addım 5: İsteğe bağlı Tez Vəziyyət LEDləri

İsteğe bağlı Tez Vəziyyət LEDləri
İsteğe bağlı Tez Vəziyyət LEDləri

Bu addımda təsvir olunan LEDlər isteğe bağlıdır, amma səliqəlidir: Məşq edərkən kitab oxumaq / TV seyr etməklə ciddi məşğul olsanız, ekrana çox baxmaq istəmirsiniz. Ancaq fərqli rəngli iki LED, periferik görmə qabiliyyətində asanlıqla nəzərə çarpacaq və işləriniz haqqında kobud fikir vermək üçün kifayət edəcək.

  • İlk (qırmızı) LED -i D6 pininə qoşun (LED -in daha uzun ayağı Arduino -ya gedir). LED -in qısa ayağını 220 Ohm müqavimət vasitəsi ilə Gnd -ə qoşun. Təlimin hazırkı mərhələsində ən yaxşı sürətinizdən 10% və ya daha çox aşağı olduqda bu LED yanacaq. Daha çox səy göstərməyin vaxtı gəldi!
  • İkinci (yaşıl) LED -i D5 pininə yenidən Gnd rezistoru ilə bağlayın. Bu LED ən yaxşı qaçışınızın 1%-i və ya daha yuxarı olanda yanacaq. Yaxşı edirsən!

LED -lərin əvvəlki işlə müqayisədə necə işlədiyinizə və ya özbaşına bir orta sürətə görə yanmasını istəyirsiniz? Yaxşı, pin D4 ilə Gnd arasında bir düyməni bağlayın. Bu düyməni istifadə edərək "ən yaxşı qaçış", "əvvəlki qaçış" və ya "cari sürətiniz" arasında keçid edə bilərsiniz. Sol alt küncdəki kiçik "P" və ya "C" hərfi son iki rejimi ifadə edəcək.

Addım 6: Ergometr Ekranınızı Gücləndirin

Ergometr Ekranınızı Gücləndirir
Ergometr Ekranınızı Gücləndirir

Ekranınızı gücləndirməyin bir çox yolu var, amma digərlərindən daha praktik görünən iki üsula işarə edəcəyəm:

  1. Bir Arduino Uno və ya Nano istifadə edərkən, ehtimal ki, daxili aşağı batareya göstəricisi olan bir USB güc bankı istifadə edərək onu gücləndirmək istəyirsiniz.
  2. Arduino Pro Mini @ 3.3V (qabaqcıl istifadəçilər üçün tövsiyəm) istifadə edərkən, ya birbaşa bir LiPo batareyasından, ya da üç NiMH hüceyrəsindən güc ala bilərsiniz. ATMEGA, 5.5V-a qədər olan gərginliklərə dözə biləcəyi üçün, on-board gərginlik tənzimləyicisini atlayaraq, birbaşa "VCC/ACC" -ə qoşa bilərsiniz. Bu qurğuda, heç bir əlavə avadanlıq olmadan (sağ alt küncdə göstərilir) təxminən 3.4V -də "aşağı batareya" xəbərdarlığı olacaq. ATMEGA -nın düzgün işləməsini gözləmək olar, ən azı 3.0V -a qədər, bu, şarj etməzdən əvvəl təlim vahidinizi bitirməyiniz üçün kifayət qədər vaxt buraxmalıdır.

Addım 7: Ergometr Ekranınızdan istifadə edin

Ergometr Ekranınızdan istifadə edin
Ergometr Ekranınızdan istifadə edin
Ergometr Ekranınızdan istifadə edin
Ergometr Ekranınızdan istifadə edin

Ekranınızdakı müxtəlif rəqəmlərə daha yaxından nəzər salaq. Sol üstdəki daha çox sayı, sadəcə olaraq, hazırkı sürətinizdir və sağ üstdəki daha çox sayı, hazırkı məşqinizdəki ümumi məsafədir.

Növbəti sətir təlimin başlanmasından (solda) və təlimin başlamasından keçən vaxta (sağda) olan orta sürətinizdir. Velosiped dayanarkən vaxtın dayandırıldığını unutmayın.

İndiyə qədər bu qədər mənasızdır. Sağ tərəfdəki digər iki xətt maraqlı olduğu yerlərdir: Bunlar cari vaxtınızı əvvəlki və ən yaxşı məşqlərinizlə müqayisə edir. Yəni Bu sətirlərin yuxarı hissəsindəki "- 0:01:23" indiki məsafəyə əvvəlki qaçışınızdan 1 dəqiqə 23 saniyə əvvəl çatdığınız mənasını verəcəkdir. Yaxşı. Daha aşağı "+ 0:00:12" xətti, hazırkı nöqtəyə qədər ən yaxşı qaçışınızdan 12 saniyə geridə qaldığınız mənasını verəcəkdir. (Diqqət yetirin ki, bu diferensial vaxtlar 100% dəqiq olmayacaq. Zaman nöqtələri hər.5 km / mil məsafədə saxlanılır və aralarında interpolasiya edilir.) Əlbəttə ki, ilk qaçışınızda heç bir vaxt istinadları qeydə alınmamışdır. buna görə yuxarıdakı sətirlərin hər ikisi yalnız "-:-:-" göstərəcək.

Nəhayət, ekranın sol alt bölgəsində son dəqiqədə sürətinizin qrafiki var. Bu, sabit bir şəkildə getdiyinizi və ya yavaşladığınızı bir baxışda görməyə imkan verir. (Diqqət yetirin ki, bu xətt əsl məşqdə daha hamar olacaq - ancaq şəkil çəkməyə çalışarkən sabit bir tempi qorumaq asan deyil …) Üfüqi xətlər, əvvəlki səviyyənizin indiki nöqtəsinə yaxın əldə etdiyiniz əvvəlki / ən yaxşı sürəti göstərir. təlimlər.

Üst hissənin yaxınlığında quraşdırılmış LED -lər, təlimin bu mərhələsində mövcud sürətinizi ən yaxşı sürətinizlə müqayisə edir. Yaşıl şoular ən yaxşı səviyyənizin 1% -ni əhatə edir, qırmızı şoular ən yaxşı məşqlərinizdən 10% -dən çox yavaş olduğunu göstərir. Qırmızı işıq gördüyünüz zaman daha çox səy göstərməyin vaxtı gəldi. Diqqət yetirin ki, yuxarıda təsvir edilən diferensial vaxtların əksinə olaraq, bunlar təlimin cari hissəsinə aiddir, yəni mütləq vaxtda geridə qalmağınız mümkündür, ancaq yaşıl tutduğunuzu göstərir və əksinə.

İki LED üçün istifadə olunan istinad sürəti, düyməni istifadə edərək dəyişdirilə bilər. Bir düymə onu ən yaxşıdan əvvəlki qeyd olunan təlimə keçirəcək (sol altda kiçik bir "P" hərfi görünəcək). Başqa bir basma və düyməni basma anındakı cari sürətiniz yeni istinad sürəti olacaq (kiçik bir "C" hərfi görünəcək). İkincisi, hələ heç bir istinad qeydə alınmadıqda, yeni erqometr ekranınızla ilk məşqiniz zamanı faydalıdır.

Təliminizi bitirdikdən sonra batareyanı ayırın. Təliminiz artıq Arduino daxili EEPROM -da saxlanılıb.

Gördüyünüz kimi, prototipimi lehimlə bitirdim. Nəticəni bəyəndiyimin əlaməti, özüm. Ümid edirəm bunu da faydalı tapacaqsınız. Xoşbəxt məşqlər!

Tövsiyə: