Mundarija:

DIY yopiq velosipedli aqlli murabbiy: 5 qadam
DIY yopiq velosipedli aqlli murabbiy: 5 qadam

Video: DIY yopiq velosipedli aqlli murabbiy: 5 qadam

Video: DIY yopiq velosipedli aqlli murabbiy: 5 qadam
Video: Sotaman shu velikni narxi 350-ming so‘m 2024, Noyabr
Anonim
DIY yopiq velosipedli aqlli murabbiy
DIY yopiq velosipedli aqlli murabbiy
DIY yopiq velosipedli aqlli murabbiy
DIY yopiq velosipedli aqlli murabbiy
DIY yopiq velosipedli aqlli murabbiy
DIY yopiq velosipedli aqlli murabbiy

Kirish

Bu loyiha Schwinn IC Elite yopiq velosipedining oddiy modifikatsiyasi sifatida boshlandi, u qarshilik sozlamalari uchun oddiy vint va namlagichlardan foydalanadi. Men hal qilmoqchi bo'lgan muammo shundaki, vintning burchagi juda katta edi, shuning uchun pedal bosa olmaslikdan tortib to g'ildirakni tekin aylantirishgacha bo'lgan masofa qarshilik tugmachasida bir necha daraja edi. Avval vintni M6 ga almashtirdim, lekin keyin men tugmachani yasashim kerak edi, shuning uchun qarshilikni o'zgartirish uchun NEMA 17 qadamli motorni ishlatmang. Agar allaqachon elektronika bo'lsa, nima uchun aqlli murabbiy qilish uchun kompyuterga krank quvvat o'lchagichi va bluetooth ulanishi qo'shilmasin?

Bu kutilganidan ko'ra qiyinroq bo'ldi, chunki kuch o'lchagichni arduino va bluetooth bilan taqlid qilish bo'yicha misollar yo'q edi. Men dasturlash va BLE GATT spetsifikatsiyalarini talqin qilish uchun taxminan 20 soat sarfladim. Umid qilamanki, men misol keltirsam, kimgadir "xizmat ma'lumotlari AD turi maydoni" nimani anglatishini tushunishga ko'p vaqt sarflamaslikka yordam bera olaman …

Dasturiy ta'minot

Butun loyiha GitHub -da:

github.com/kswiorek/ble-ftms

Agar siz mening kodimni nusxalashdan ko'ra jiddiyroq ish qilmoqchi bo'lsangiz, Visual Studio-ni VisualGDB plaginidan foydalanishni tavsiya qilaman.

Agar sizda dastur haqida savollaringiz bo'lsa, iltimos, so'rang, bilaman, mening minimalistik izohlarim unchalik yordam bermasligi mumkin.

Kreditlar

Stoppi71 ga quvvat o'lchagichni yasash bo'yicha ko'rsatmasi uchun rahmat. Men uning dizayniga ko'ra krank qildim.

Ta'minot:

Ushbu loyihaning materiallari siz qanday velosipedni o'zgartirayotganingizga bog'liq, lekin ba'zi universal qismlar mavjud.

Krank:

  1. ESP32 moduli
  2. HX711 Og'irlik sensori ADC
  3. Kuchlanish o'lchagichlari
  4. MPU - giroskop
  5. Kichik Li-Po batareyasi (taxminan 750 mA / soat)
  6. Issiqlik qisqaruvchi qisma
  7. A4988 step haydovchi
  8. 5V regulyator
  9. Arduino barreli uyasi
  10. 12V arduino quvvat manbai

Konsol:

  1. NEMA 17 qadam (juda kuchli bo'lishi kerak,> 0.4Nm)
  2. M6 tayog'i
  3. 12864 lcd
  4. WeMos LOLIN32
  5. Aloqa kalitlari

Uskunalar

Buni amalga oshirish uchun, ehtimol, faqat 3D -printer yordamida qutulish mumkin edi, lekin siz korpusni lazer bilan kesish orqali ko'p vaqtni tejashingiz mumkin, va siz ham tenglikni yasashingiz mumkin. DXF va gerber fayllari GitHub -da, shuning uchun siz ularni mahalliy buyurtma qilishingiz mumkin. Vintli tayoqchadan dvigatelgacha bo'lgan ulagich tornada yoqilgan va bu yagona muammo bo'lishi mumkin, chunki uning qismini yostiqlarni tortib olish uchun juda kuchli bo'lishi kerak, lekin bu velosipedda juda ko'p joy yo'q.

Birinchi velosipedni yasaganimdan so'ng, men krankdagi datchiklar uchun uyalar yasashga imkon beradigan freze mashinasini oldim. Bu ularni yopishtirishni biroz osonlashtiradi, shuningdek, agar krankka biror narsa tegsa, ularni himoya qiladi. (Menda sensorlar bir necha marta yiqilgan, shuning uchun men xavfsiz bo'lishni xohlardim.)

1 -qadam: Krank:

Krank
Krank
Krank
Krank
Krank
Krank

Eng yaxshisi, ushbu qo'llanmani kuzatib boring:

Datchiklarni krankka to'rt joyga yopishtirish va ularni taxtaning yon tomonlariga ulash kerak.

Tegishli ulanishlar allaqachon mavjud, shuning uchun siz juft simlarni to'g'ridan -to'g'ri bortdagi sakkizta prokladkaga lehimlashingiz kerak.

Datchiklarga ulanish uchun iloji boricha eng nozik simni ishlating - prokladkalarni ko'tarish juda oson. Siz avval datchiklarni yopishtirishingiz va lehimlash uchun ularning ko'pini tashqarida qoldirishingiz kerak, so'ngra qolgan qismini epoksi bilan yopishingiz kerak. Agar siz yopishtirishdan oldin lehim qilmoqchi bo'lsangiz, ular kıvrılır va buziladi.

PCBni yig'ish uchun:

  1. Oltin pimlarni pastki qismdan (izlari bo'lgan tomondan) tagiga yaqin bo'lgan vertikallardan tashqari barcha teshiklarga joylashtiring.
  2. Oltin pinlar ikkala teshikdan o'tishi uchun uchta taxtani (tepada ESP32, keyin MPU, HX711) joylashtiring.
  3. Sarlavhalarni tepadagi taxtalarga lehimlang
  4. Oltin pimlarni pastdan kesib oling. (O'rnatishdan oldin ularni kesib ko'ring, shunda bilasizki, "oltin pimlaringiz" ichida po'lat emas - ularni kesish deyarli imkonsiz bo'lib qoladi va siz ularni maydalashingiz yoki maydalashingiz kerak bo'ladi)
  5. taxtaning pastki qismiga qolgan oltin pimlarni lehimlang.
  6. Krank uchun dasturiy ta'minotni yuklang

Oxirgi qadam - butun krankni issiqlik qisqaruvchi qisma bilan o'rash.

Kengashni yasashning bu usuli ideal emas, chunki taxtalar siz boshqa narsalarga mos keladigan ko'p joyni egallaydi. Eng yaxshisi, barcha komponentlarni to'g'ridan -to'g'ri taxtaga lehim qilish, lekin men bu kichik SMD -ni o'zim lehimlash mahoratiga ega emasman. Men uni yig'ishga buyurtma berishim kerak edi, ehtimol men ba'zi xatolarga yo'l qo'ygan bo'lardim va ularni uch marta buyurtma qilib, ular kelishidan bir yil oldin kutardim.

Agar kimdir taxtani loyihalashtira oladigan bo'lsa, agar batareyani himoya qilish aylanasi va krank harakatlana boshlasa, ESPni yoqadigan sensori bo'lsa yaxshi bo'lardi.

MUHIM

HX711 sensori sukut bo'yicha 10 Gts ga o'rnatiladi - quvvatni o'lchash sekinlashadi. Siz 15 -pinni taxtadan ko'tarib, 16 -pinga ulashingiz kerak. Bu pinni YUQORI haydab, 80 Gts rejimini yoqadi. Aytgancha, bu 80 Gts butun arduino pastadir tezligini o'rnatadi.

Foydalanish

ESP32 30 -yillardan keyin bluetooth qurilmasi ulanmagan holda uxlash uchun dasturlashtirilgan. Qayta yoqish uchun siz asl holatini tiklash tugmachasini bosishingiz kerak. Datchiklar, shuningdek, uyqu holatida LOW holatiga o'tadigan raqamli pin orqali quvvatlanadi. Agar siz kutubxonalardan misol kodi bilan datchiklarni sinab ko'rmoqchi bo'lsangiz, PIN -kodni yuqori haydashingiz va sensorlar yoqilmaguncha biroz kutishingiz kerak.

O'rnatishdan so'ng, datchiklarni kuchsiz va keyin qo'llaniladigan og'irlik bilan o'qish orqali sozlash kerak (men pedalga osilgan 12 kg yoki 16 kg chovgumdan foydalanardim). Bu qiymatlarni powerCrank kodiga kiritish kerak.

Krankni har safar haydashdan oldin tarash yaxshidir - kimdir pedalda o'zini tortolmasligi kerak, lekin kechirimdan ko'ra xavfsizroq va uni yoqish paytida faqat bir marta tarash mumkin. Agar siz g'alati quvvat darajasini ko'rsangiz, bu jarayonni takrorlashingiz kerak bo'ladi:

  1. Chiroq miltillay boshlaguncha krankni pastga qo'ying.
  2. Bir necha soniyadan keyin chiroq yonadi - unga tegmang
  3. Chiroq o'chganda, u aniqlangan joriy kuchni yangi 0 ga o'rnatadi.

Agar siz krankni konsolsiz ishlatmoqchi bo'lsangiz, kod bu erda github -da. Qolganlarning hammasi bir xil ishlaydi.

2 -qadam: Konsol

Konsol
Konsol
Konsol
Konsol
Konsol
Konsol

Koson 3 mm akrildan kesilgan, tugmachalari 3D bosilgan va 5 mm akrildan kesilgan LCD uchun bo'shliqlar mavjud. U issiq elim bilan yopishtirilgan (u akrilga yaxshi yopishadi) va PCBni LCD displeyda ushlab turish uchun 3D bosma "qavs" mavjud. LCD displeylari pastki tomondan lehimlangan, shuning uchun u ESPga xalaqit bermaydi.

ESP teskari lehimlangan, shuning uchun USB porti korpusga mos keladi

Alohida tugmachali PCB issiq elim bilan yopishtirilgan, shuning uchun tugmalar ularning teshiklariga tushadi, lekin ular baribir kalitlarni bosishadi. Tugmalar JST PH 2.0 ulagichlari bilan taxtaga ulangan va pin tartibini sxematik tarzda aniqlash oson.

Step drayverini to'g'ri yo'nalishda o'rnatish juda muhimdir (ESP yaqinidagi potentsiometr)

SD -kartaning butun qismi o'chirilgan, chunki uni birinchi versiyada hech kim ishlatmagan. Kodni haydovchining og'irligi va sozlashning murakkabligi kabi ba'zi UI sozlamalari bilan yangilash kerak.

Konsol laserkut "qo'llar" va ziptilar yordamida o'rnatiladi. Kichkina tishlar ruldan qazishadi va konsolni ushlab turishadi.

3 -qadam: Dvigatel

Dvigatel
Dvigatel
Dvigatel
Dvigatel
Dvigatel
Dvigatel

Dvigatel 3D bosma qavsli sozlagich tugmachasining o'rnida turadi. Uning miliga ulagich o'rnatilgan - bir tomonida milni ushlab turadigan vintlardek 5 mm bo'lgan teshik, ikkinchisida qulflash uchun vintlar bilan M6 tishli. Agar xohlasangiz, uni 10 mm dumaloq dumaloq matkap yordamida yasashingiz mumkin. Bu juda aniq bo'lishi shart emas, chunki dvigatel juda mahkam o'rnatilmagan.

M6 tishli novdaning bir qismi ulagichga vidalanadi va u M6 guruchli nonni tortadi. Men uni ishlov berdim, lekin uni misdan yasalgan misdan osonlikcha yasash mumkin. Siz hatto bir oz bo'laklarni oddiy yong'oqqa payvandlashingiz mumkin, shuning uchun u aylanmaydi. 3D bosilgan yong'oq ham yechim bo'lishi mumkin.

Ip zanjir vintidan ko'ra nozikroq bo'lishi kerak. Uning balandligi taxminan 1,3 mm, M6 uchun esa 0,8 mm. Dvigatel vintni burish uchun etarli momentga ega emas.

Yong'oqni yaxshi moylash kerak, chunki dvigatel zo'rg'a yuqori sozlamalarni burab qo'yadi

4 -qadam: Konfiguratsiya

Konfiguratsiya
Konfiguratsiya
Konfiguratsiya
Konfiguratsiya

Arduino IDE-dan ESP32-ga kod yuklash uchun siz ushbu qo'llanmani bajarishingiz kerak:

Kengash "WeMos LOLIN32", lekin "Dev moduli" ham ishlaydi

Men Visual Studio -dan foydalanishni taklif qilaman, lekin u tez -tez buzilishi mumkin.

Birinchi foydalanishdan oldin

Krankni "Krank" qadamiga muvofiq sozlash kerak

"NRF Connect" ilovasidan foydalanib, siz ESP32 krankining MAC manzilini tekshirishingiz va uni BLE.h fayliga o'rnatishingiz kerak.

IndoorBike.ino -ning 19 -qatorida qarshilikni to'liq bo'shashmasdan maksimal darajaga o'rnatish uchun vintning qancha aylanishi kerak. ("Maksimal" ataylab sub'ektivdir, siz bu sozlama bilan qiyinchilikni to'g'rilaysiz.)

Aqlli murabbiy ularni to'g'ri sozlash uchun "virtual viteslar" ga ega, siz uni 28 va 29 -qatorlarda sozlashingiz kerak. Siz ma'lum bir qarshilik sozlamasida doimiy kadans bilan pedal bosishingiz kerak, keyin quvvatni o'qing va uni faylga o'rnating. Buni boshqa sozlama bilan takrorlang.

Eng chap tugma ERG rejimidan (mutlaq qarshilik) simulyatsiya rejimiga (virtual uzatmalar) o'tadi. Kompyuterga ulanmagan simulyatsiya rejimi hech narsa qilmaydi, chunki simulyatsiya ma'lumotlari yo'q.

36 -qatorda virtual viteslar - son va nisbatlar o'rnatiladi. Siz ularni oldingi vitesdagi tishlar sonini orqa tishli tishlarga bo'lish orqali hisoblaysiz.

12 -qatorda siz chavandoz va velosipedning og'irligini qo'yasiz ([nyutonlarda], tortishish tezlashmasidan massa marta!)

Bu fizikaning butun qismi, ehtimol, juda murakkab va men nima qilayotganini aniq eslay olmayman, lekin men velosipedchini tepaga yoki shunga o'xshash narsalarni tortish uchun kerakli momentni hisoblayman (shuning uchun kalibrlash).

Bu parametrlar juda sub'ektivdir, to'g'ri ishlashi uchun ularni bir necha yurishdan keyin sozlash kerak.

Tuzatuvchi COM porti bluetooth orqali olingan ikkilik ma'lumotlarni tirnoq ("") va simulyatsiya ma'lumotlari orqali yuboradi.

Konfigurator

Go'yoki real fizika konfiguratsiyasi haqiqatga aylanishi uchun katta qiyinchilik bo'lib kelganligi sababli, men foydalanuvchilarga tepalik darajasidan mutlaq qarshilik darajasiga o'tadigan funktsiyani grafik tarzda aniqlashga imkon beradigan GUI konfiguratorini yaratdim. Bu hali tugallanmagan va menda uni sinab ko'rish imkoni bo'lmagan, lekin kelgusi oyda men boshqa velosipedni aylantiraman, shuning uchun uni jilolayman.

"Gears" yorlig'ida slayderlarni siljitish orqali har bir vitesning nisbatini belgilashingiz mumkin. Keyin koddagi belgilangan viteslarni almashtirish uchun kod bitini nusxalashingiz kerak.

"Baho" yorlig'ida sizga chiziqli funktsiya grafigi beriladi (ha, matematikada eng nafratlanadigan mavzu haqiqatan ham foydalidir), u bahoni oladi (vertikal o'q) va mutlaq qarshilik qadamlarini chiqaradi (gorizontal o'q). Qiziquvchilar uchun matematikaga biroz keyinroq kiraman.

Foydalanuvchi bu funktsiyani ikkita nuqta yordamida belgilashi mumkin. O'ng tomonda joriy vitesni o'zgartirish uchun joy bor. Tanlangan vites, siz tasavvur qilganingizdek, yo'lni o'zgartiradi, qarshilik darajasi qanday o'zgaradi - past viteslarda tepalikka o'tish osonroq. Slayderni siljitish 2 -koeffitsientni o'zgartiradi, bu esa tanlangan vites funktsiyani qanday o'zgartirishiga ta'sir qiladi. Bir muncha vaqt o'ynash, uning o'zini qanday tutishini ko'rish osonroq. Sizga mos keladigan narsani topish uchun siz bir nechta sozlamalarni sinab ko'rishingiz kerak bo'lishi mumkin.

U Python 3 da yozilgan va standart kutubxonalar bilan ishlashi kerak. Buni ishlatish uchun "konfiguratorni ishlatish uchun bu satrlarni sharhlamang" dan so'ng darhol chiziqlarni olib tashlash kerak. Aytganimdek, bu sinovdan o'tkazilmagan, shuning uchun ba'zi xatolar bo'lishi mumkin, lekin agar biror narsa bo'lsa, iltimos, sharh yozing yoki muammoni oching, shunda men uni tuzata olaman.

Matematika (va fizika)

Tekshirish moslamasini tepaga ko'tarilayotganday his qilishning yagona usuli - qarshilik vintini burish. Bahoni aylanishlar soniga aylantirishimiz kerak. O'rnatishni osonlashtirish uchun, krankni aylantira olmaslikdan tortib to bo'shashmasigacha bo'lgan barcha diapazon 40 bosqichga bo'linadi, bu xuddi ERG rejimida qo'llaniladi, lekin bu safar u butun sonlar o'rniga haqiqiy sonlarni ishlatadi. Bu oddiy xarita funktsiyasi yordamida amalga oshiriladi - siz uni koddan topishingiz mumkin. Endi biz bir pog'ona yuqoriroqmiz - vintning aylanishlari bilan emas, balki xayoliy qadamlar bilan shug'ullanamiz.

Endi velosipedda (doimiy tezlikda) tepalikka chiqsangiz, bu qanday ishlaydi? Ko'rinib turibdiki, sizni majburlaydigan kuch bo'lishi kerak, aks holda siz yiqilib tushasiz. Bu kuch, birinchi harakat qonuni aytganidek, siz teng harakatda bo'lishingiz uchun kattaligiga teng bo'lishi kerak, lekin sizni pastga tortadigan kuchga qarama -qarshi bo'lishi kerak. Bu g'ildirak va er orasidagi ishqalanishdan kelib chiqadi va agar siz bu kuchlarning diagrammasini chizsangiz, u velosiped va chavandozning og'irligiga teng bo'lishi kerak:

F = Fg*G

Endi g'ildirakni bu kuchni ishlatishga nima majbur qiladi? Vites va g'ildiraklar bilan ish olib borayotganimizda, tork haqida o'ylash osonroq bo'ladi, bu faqat radiusdan ko'p marta kuch:

t = F*R

Viteslar bor ekan, siz krankka tork berasiz, u zanjirni tortadi va g'ildirakni aylantiradi. G'ildirakni burish uchun zarur bo'lgan moment tishli ulushga ko'paytiriladi:

tp = tw*gr

va tork formulasidan qaytib, biz pedalni aylantirish uchun zarur bo'lgan kuchni olamiz

Fp = tp/r

Bu krankdagi quvvat o'lchagich yordamida o'lchashimiz mumkin bo'lgan narsa. Dinamik ishqalanish kuch bilan chiziqli bog'liq va bu velosiped bu kuchni berish uchun buloqlardan foydalanganligi uchun vintning harakatiga to'g'ri keladi.

Quvvat - bu tezlikdan ko'p marta kuch (vektorlarning bir xil yo'nalishini hisobga olgan holda).

P = F*V

va pedalning chiziqli tezligi burchak tezligiga bog'liq:

V = ω*r

va shuning uchun biz pedallarni belgilangan qarshilik darajasiga burish uchun zarur bo'lgan kuchni hisoblashimiz mumkin. Hamma narsa chiziqli bog'liq bo'lgani uchun, biz buning uchun nisbatlardan foydalanishimiz mumkin.

Bu, asosan, dasturiy ta'minotni kalibrlash paytida va bizga murakkab kompozitsion, lekin qarshilik darajasiga tegishli chiziqli funktsiyani olish uchun aylanma yo'l yordamida hisoblash uchun kerak bo'lgan narsa edi. Men hamma narsani qog'ozga yozdim, oxirgi tenglamani hisoblab chiqdim va barcha doimiylar uchta koeffitsientga aylandi.

Bu texnik jihatdan 3D funktsiyasidir, bu tekislikni (menimcha) dalil sifatida baho va vites nisbatini oladi va bu uchta koeffitsient tekislikni aniqlash uchun zarur bo'lganlar bilan bog'liq, lekin viteslar alohida raqamlar bo'lgani uchun bu osonroq edi. proektsiyalar va shunga o'xshash narsalar bilan shug'ullanish o'rniga uni parametr qilish. 1-chi va 3-koeffitsientlarni bitta chiziq bilan aniqlash mumkin va (-1)* 2-koeffitsient-bu nuqtaning X koordinatasi, bu erda tishli uzatishda chiziq "aylanadi".

Bu vizualizatsiyada argumentlar vertikal chiziq va qiymatlar gorizontal bilan ifodalanadi va men bilaman, bu zerikarli bo'lishi mumkin, lekin bu men uchun intuitivroq va GUIga yaxshiroq mos keladi. Iqtisodchilar o'z grafiklarini shunday chizishining sababi ham shunda.

5 -qadam: tugating

Endi sizga yangi murabbiyga minish uchun ba'zi ilovalar kerak bo'ladi (bu sizni 900 dollar atrofida tejab qo'ydi:)). Mana, ulardan ba'zilari haqidagi fikrlarim.

  • RGT Cycling - mening fikrimcha, eng yaxshisi - bu mutlaqo bepul variant, lekin bir nechta trekka ega. Ulanish qismi bilan eng yaxshi shug'ullanadi, chunki telefoningiz bluetooth orqali ulanadi va kompyuter trekni ko'rsatadi. Velosipedchi AR bilan haqiqiy videodan foydalanadi
  • Rouvy - ko'plab treklar, faqat pulli obuna, negadir kompyuter ilovasi bu bilan ishlamaydi, siz telefondan foydalanishingiz kerak. Agar tizza kompyuteringiz bluetooth va WiFi uchun bir xil kartadan foydalansa, u tez -tez orqada qoladi va yuklashni xohlamaydi
  • Zwift - animatsion o'yin, faqat pullik, murabbiy bilan juda yaxshi ishlaydi, lekin foydalanuvchi interfeysi juda oddiy - ishga tushirgich menyuni ko'rsatish uchun Internet Explorer -dan foydalanadi.

Agar sizga qurilish yoqqan bo'lsa (yoki yoqmasa), iltimos, izohlarda menga ayting va agar sizda biron bir savol bo'lsa, bu erda so'rashingiz yoki github -ga muammo yuborishingiz mumkin. Men hamma narsani mamnuniyat bilan tushuntiraman, chunki bu juda murakkab.

Tavsiya: