Orodha ya maudhui:

Mkufunzi Mkubwa wa Baiskeli ya Ndani ya DIY: Hatua 5
Mkufunzi Mkubwa wa Baiskeli ya Ndani ya DIY: Hatua 5

Video: Mkufunzi Mkubwa wa Baiskeli ya Ndani ya DIY: Hatua 5

Video: Mkufunzi Mkubwa wa Baiskeli ya Ndani ya DIY: Hatua 5
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Mkufunzi wa Smart wa Baiskeli ya Ndani
Mkufunzi wa Smart wa Baiskeli ya Ndani
Mkufunzi wa Smart wa Baiskeli ya Ndani
Mkufunzi wa Smart wa Baiskeli ya Ndani
Mkufunzi wa Smart wa Baiskeli ya Ndani
Mkufunzi wa Smart wa Baiskeli ya Ndani

Utangulizi

Mradi huu ulianza kama muundo rahisi kwa baiskeli ya ndani ya Schwinn IC ambayo hutumia screw rahisi na pedi za kujisikia kwa mipangilio ya upinzani. Shida ambayo nilitaka kutatua ni kwamba lami ya screw ilikuwa kubwa, kwa hivyo anuwai ya kutokuwa na uwezo wa kukanyaga hadi gurudumu inayozunguka bure ilikuwa tu digrii kadhaa kwenye kitovu cha upinzani. Mwanzoni nilibadilisha screw kuwa M6, lakini basi ningelazimika kutengeneza kitasa, kwa nini usitumie tu kushoto juu ya NEMA 17 stepper mottor kubadilisha upinzani? Ikiwa tayari kuna vifaa vya elektroniki, kwanini usiongeze mita ya nguvu ya dhana na unganisho la bluetooth kwenye kompyuta ili kufanya mkufunzi mahiri?

Hii ilionekana kuwa kubwa kuliko ilivyotarajiwa, kwa sababu hakukuwa na mifano ya jinsi ya kuiga mita ya nguvu na arduino na bluetooth. Niliishia kutumia karibu 20h kwenye programu na kutafsiri maelezo ya BLE GATT. Natumai kuwa kwa kutoa mfano naweza kumsaidia mtu asipoteze wakati mwingi kujaribu kuelewa ni nini hasa "Sehemu ya Huduma ya Takwimu ya AD" inamaanisha…

Programu

Mradi wote uko kwenye GitHub:

github.com/kswiorek/ble-ftms

Ninapendekeza sana kutumia Studio ya Visual na programu-jalizi ya VisualGDB ikiwa una mpango wa kufanya kitu kibaya zaidi kuliko kunakili nambari yangu.

Ikiwa una maswali juu ya programu hiyo, tafadhali uliza, najua kwamba maoni yangu madogo hayatasaidia sana.

Mikopo

Shukrani kwa stoppi71 kwa mwongozo wake juu ya jinsi ya kutengeneza mita ya umeme. Nilifanya ujinga kulingana na muundo wake.

Ugavi:

Vifaa vya mradi huu vinategemea sana baiskeli unayobadilisha, lakini kuna sehemu zingine.

Crank:

  1. Moduli ya ESP32
  2. HX711 sensa ya uzito ADC
  3. Vipimo vya shida
  4. MPU - gyroscope
  5. Betri ndogo ya Li-Po (karibu 750mAh)
  6. Sleeve ya kupungua joto
  7. Dereva wa Stepper A4988
  8. Mdhibiti wa 5V
  9. Pipa la arduino
  10. Usambazaji wa umeme wa 12V arduino

Dashibodi:

  1. NEMA 17 stepper (inahitaji kuwa na nguvu kabisa,> 0.4Nm)
  2. Fimbo ya M6
  3. 12864 lcd
  4. 32. WeMos LOLIN32
  5. Swichi za busara

Vifaa

Kwa kufanya hivyo labda unaweza kuondoka na kutumia printa ya 3D tu, hata hivyo unaweza kuokoa muda mwingi kwa kukata laser, na pia unaweza kutengeneza PCB. Faili za DXF na gerber ziko kwenye GitHub, kwa hivyo unaweza kuagiza zile za ndani. Coupler kutoka kwa fimbo iliyofungwa kwa motor iliwashwa kwa lathe na hii inaweza kuwa shida tu, kwani sehemu hiyo inahitaji kuwa na nguvu kabisa kuvuta pedi, lakini hakuna nafasi nyingi katika baiskeli hii.

Tangu kutengeneza baiskeli ya kwanza, nilipata mashine ya kusaga ambayo inaniruhusu kutengeneza nafasi kwa sensorer kwenye crank. Inafanya kuwaunganisha kwa urahisi kidogo na pia inawalinda ikiwa kitu kingepigwa. (Nimekuwa na sensorer hizi mara kadhaa kwa hivyo nilitaka kuwa salama.)

Hatua ya 1: Crank:

Crank
Crank
Crank
Crank
Crank
Crank

Ni bora kufuata tu mafunzo haya:

Kwa kweli unahitaji gundi sensorer kwenye crank katika maeneo manne na unganisha hizo kwa pande za bodi.

Uunganisho sahihi uko tayari kwa hivyo inabidi uunganishe waya moja kwa moja kwa pedi hizi nane kwenye ubao.

Ili kuungana na sensorer tumia waya mwembamba iwezekanavyo - pedi ni rahisi sana kuinua. Unahitaji gundi sensorer kwanza na kuziacha za kutosha nje kwa solder, kisha funika zingine na epoxy. Ikiwa unajaribu kutengenezea kabla ya gluing, hupindana na kuvunjika.

Kukusanya PCB:

  1. Ingiza pini za dhahabu kutoka chini (upande na athari) kwenye mashimo yote isipokuwa yale wima karibu na chini.
  2. Weka bodi tatu (ESP32 juu, halafu MPU, HX711 chini) ili pini za dhahabu zishike kwenye mashimo yote mawili.
  3. Solder vichwa kwenye bodi zilizo juu
  4. Kata pini za dhahabu kutoka chini. (Jaribu kuzikata kwanza kabla ya kusanyiko, kwa hivyo unajua "pini zako za dhahabu" sio chuma ndani - inazifanya iwe ngumu kukatwa na unahitaji kuziweka au kuzisaga)
  5. solder pini za dhahabu zilizobaki chini ya ubao.
  6. Pakia firmware kwa crank

Hatua ya mwisho ni kupakia crank nzima na sleeve ya kupungua joto.

Njia hii ya kutengeneza bodi sio bora, kwani bodi zinachukua nafasi nyingi ambayo unaweza kutoshea vitu vingine. Bora itakuwa kuuza vifaa vyote kwenye bodi moja kwa moja, lakini sina ufundi wa kuziunganisha SMD hizi ndogo mwenyewe. Ningehitaji kuamuru imekusanyika, na labda ningefanya makosa na kuishia kuagiza mara tatu na kusubiri mwaka kabla ya kufika.

Ikiwa mtu angeweza kubuni bodi hiyo, itakuwa nzuri ikiwa ingekuwa na mzunguko wa ulinzi wa betri na sensorer ambayo ingewasha ESP ikiwa crank itaanza kusonga.

MUHIMU

Sensor ya HX711 kwa msingi imewekwa kwa 10Hz - ni polepole kwa kipimo cha nguvu. Unahitaji kuinua pini 15 kutoka kwenye ubao na kuiunganisha na kubandika 16. Hii inasukuma pini HIGH na kuwezesha hali ya 80Hz. Hii 80Hz, kwa njia, inaweka kiwango cha kitanzi chote cha arduino.

Matumizi

ESP32 imewekwa kwenda kulala baada ya miaka 30 bila kifaa chochote cha bluetooth kilichounganishwa. Ili kuiwasha tena bonyeza kitufe cha kuweka upya. Sensorer pia hutolewa kutoka kwa pini ya dijiti, ambayo inageuka chini katika hali ya kulala. Ikiwa unataka kujaribu sensorer na nambari ya mfano kutoka kwa maktaba unahitaji kuendesha pini HIGH na usubiri kidogo kabla ya sensorer kuwasha.

Baada ya kukusanyika sensorer zinahitaji kupimwa kwa kusoma thamani bila nguvu yoyote na kwa uzito uliowekwa (nilitumia kettlebell ya 12kg au 16kg iliyotundikwa kwenye kanyagio). Maadili haya yanahitaji kuwekwa kwenye nambari ya PowerCrank.

Ni bora kuangusha kiporo kabla ya kila safari - haipaswi kujichanganya wakati mtu anapiga makofi, lakini salama salama kuliko pole na inawezekana kuivunja mara moja tu kwa kuwasha. Ukiona viwango vya nguvu vya ajabu unahitaji kurudia mchakato huu:

  1. Weka crank moja kwa moja chini hadi taa itaanza kupepesa.
  2. Baada ya sekunde kadhaa taa itakaa - usiguse basi
  3. Wakati taa inazimwa huweka nguvu ya sasa iliyogunduliwa kama 0 mpya.

Ikiwa unataka kutumia tupu, bila koni, nambari iko hapa kwenye github. Kila kitu kingine hufanya kazi sawa.

Hatua ya 2: Dashibodi

Dashibodi
Dashibodi
Dashibodi
Dashibodi
Dashibodi
Dashibodi

Kesi hiyo imekatwa kutoka kwa akriliki ya 3mm, vifungo vimechapishwa kwa 3D na kuna spacers za LCD, iliyokatwa kutoka kwa akriliki ya 5mm. Ni glued na gundi moto (ni fimbo vizuri kabisa kwa akriliki) na kuna 3D "bracket" iliyochapishwa kushikilia PCB kwa LCD. Pini za LCD zinauzwa kutoka upande wa chini kwa hivyo haiingilii ESP.

ESP imeuzwa chini-chini, kwa hivyo bandari ya USB inafaa katika kesi hiyo

Kitufe tofauti cha PCB kimefungwa na gundi ya moto, kwa hivyo vifungo vinakamatwa kwenye mashimo yao, lakini bado wanabonyeza swichi. Vifungo vimeunganishwa kwenye bodi na viunganisho vya JST PH 2.0 na mpangilio wa pini ni rahisi kukatwa kutoka kwa mpango

Ni muhimu sana kuweka dereva wa stepper katika mwelekeo sahihi (potentiometer karibu na ESP)

Sehemu nzima ya kadi ya SD imezimwa, kwani hakuna mtu aliyeitumia katika toleo la kwanza. Nambari inahitaji kusasishwa na mipangilio kadhaa ya UI kama uzani wa mpanda farasi na mpangilio wa shida.

Console imewekwa kwa kutumia "mikono" ya lasercut na ziti. Meno madogo humba ndani ya vipini na kushikilia kiweko.

Hatua ya 3: Pikipiki

Pikipiki
Pikipiki
Pikipiki
Pikipiki
Pikipiki
Pikipiki

Magari hujishikilia mahali pa kitovu cha kurekebisha na bracket iliyochapishwa ya 3D. Kwa shimoni yake imewekwa coupler - upande mmoja una shimo la 5mm na visu zilizowekwa kushikilia shimoni, nyingine ina uzi wa M6 na visu zilizowekwa ili kuifunga. Ikiwa unataka, pengine unaweza kuifanya kwenye mashine ya kuchimba visima kutoka kwa hisa kadhaa ya 10mm. Haihitaji kuwa sahihi sana kwani motor haijawekwa vizuri sana.

Kipande cha fimbo iliyoshonwa ya M6 imevuniwa kwenye kiboreshaji na inavuta kwenye nati ya shaba ya M6. Niliitengeneza, lakini inaweza kutengenezwa kwa urahisi kutoka kwa kipande cha shaba na faili. Unaweza hata kulehemu vipande kadhaa kwa karanga ya kawaida, kwa hivyo haingezunguka. Karanga iliyochapishwa ya 3D pia inaweza kuwa suluhisho.

Uzi unahitaji kuwa laini kuliko screw ya hisa. Lami yake ni karibu 1.3mm, na kwa M6 ni 0.8mm. Pikipiki haina torque ya kutosha kugeuza screw ya hisa.

Nati inahitaji kupakwa mafuta vizuri, kwani motor inaweza kugeuza screw kwenye mipangilio ya juu

Hatua ya 4: Usanidi

Usanidi
Usanidi
Usanidi
Usanidi

Ili kupakia nambari kwa ESP32 kutoka Arduino IDE unahitaji kufuata mafunzo haya:

Bodi ni "WeMos LOLIN32", lakini "moduli ya Dev" pia inafanya kazi

Ninashauri kutumia Studio ya Visual, lakini mara nyingi inaweza kuvunjika.

Kabla ya matumizi ya kwanza

Crank inahitaji kusanidiwa kulingana na hatua ya "Crank"

Kutumia programu ya "nRF Connect" unahitaji kuangalia anwani ya MAC ya crank ESP32 na kuiweka kwenye faili ya BLE.h.

Katika mstari wa 19 wa baiskeli ya ndani.ino unahitaji kuweka, ni ngapi mzunguko wa screw unahitajika kuweka upinzani kutoka huru kabisa hadi kiwango cha juu. ("Upeo" ni wa kibinafsi kwa kusudi, unarekebisha ugumu na mpangilio huu.)

Mkufunzi mwenye akili ana "gia halisi" kuziweka kwa usahihi, unahitaji kuiweka sawa kwenye mistari ya 28 na 29. Unahitaji kukanyaga na hali mbaya mara kwa mara kwenye mpangilio wa upinzani, kisha soma nguvu na uweke kwenye faili. Rudia hii tena na mpangilio mwingine.

Kitufe cha kushoto kushoto kutoka kwa hali ya ERG (upinzani kabisa) hadi hali ya kuiga (gia halisi). Njia ya kuiga bila muunganisho wa kompyuta haifanyi chochote kwani hakuna data ya kuiga.

Mstari wa 36. huweka gia halisi - nambari na uwiano. Unawahesabu kwa kugawanya idadi ya meno kwenye gia la mbele na idadi ya meno kwenye gia la nyuma.

Katika foleni ya 12. unaweka uzito wa mpanda farasi na baiskeli (Katika [newtons], mara za kuongeza kasi ya mvuto!)

Sehemu nzima ya fizikia hii labda ni ngumu sana na hata sikumbuki inafanya nini haswa, lakini ninahesabu mwendo unaohitajika kuvuta mwendesha baiskeli au kitu kama hicho (ndiyo sababu upimaji).

Vigezo hivi ni vya busara sana, unahitaji kuziweka baada ya safari kadhaa ili zifanye kazi kwa usahihi.

Bandari ya utatuzi ya COM hutuma data ya moja kwa moja ya kibinadamu iliyopokelewa na bluetooth katika nukuu ( ) na data ya kuiga.

Kisanidi

Kwa sababu usanidi wa fizikia inayodhaniwa kuwa ya kweli uliibuka kuwa shida kubwa kuifanya iwe kweli, niliunda kisanidi cha GUI ambacho kinapaswa kuruhusu watumiaji kufafanua kazi ambayo inabadilika kutoka daraja la kilima hadi kiwango cha upinzani kabisa. Bado haijamalizika kabisa na sikuwa na nafasi ya kuipima, lakini katika mwezi ujao nitabadilisha baiskeli nyingine, kwa hivyo nitaipaka basi.

Kwenye kichupo cha "Gia" unaweza kuweka uwiano wa kila gia kwa kusonga vigelegele. Unahitaji kunakili kidogo cha nambari kuchukua nafasi ya gia zilizoainishwa kwenye nambari.

Kwenye kichupo cha "Daraja" unapewa grafu ya kazi ya laini (ndio, inageuka kuwa mada inayochukiwa zaidi katika hesabu ni muhimu sana) ambayo inachukua daraja (mhimili wima) na kutoa hatua za upinzani kabisa (mhimili usawa). Nitaingia kwenye hesabu baadaye baadaye kwa wale wanaopenda.

Mtumiaji anaweza kufafanua kazi hii kwa kutumia alama mbili zilizowekwa juu yake. Kwenye upande wa kulia kuna mahali pa kubadilisha gia za sasa. Gia iliyochaguliwa, kama unavyofikiria, inabadilisha njia, jinsi ramani za daraja kwa upinzani - kwenye gia za chini ni rahisi kupiga kando kupanda. Kuhamisha kitelezi hubadilisha mgawo wa 2, ambayo inathiri jinsi gia iliyochaguliwa inabadilisha kazi. Ni rahisi kucheza nayo kwa muda kuona jinsi inavyotenda. Unaweza pia kuhitaji kujaribu mipangilio kadhaa tofauti ili kupata kile kinachokufaa zaidi.

Iliandikwa katika Python 3 na inapaswa kufanya kazi na maktaba chaguomsingi. Ili kuitumia unahitaji kutenganisha mistari mara baada ya "ondoa mistari hii ili utumie kichungi". Kama nilivyosema, haikujaribiwa, kwa hivyo kunaweza kuwa na makosa, lakini ikiwa chochote kitatokea, tafadhali andika maoni au ufungue suala, ili nisahihishe.

Hisabati (na fizikia)

Njia pekee ambayo mtawala anaweza kuifanya ijisikie kama unapanda ni kwa kugeuza screw ya upinzani. Tunahitaji kubadilisha daraja kuwa idadi ya mizunguko. Ili iwe rahisi kusanidi, safu yote kutoka kwa huru kabisa hadi kutoweza kugeuza crank imegawanywa katika hatua 40, sawa zinazotumiwa katika hali ya ERG, lakini wakati huu inatumia nambari halisi badala ya nambari. Hii imefanywa na kazi rahisi ya ramani - unaweza kuiangalia kwenye nambari. Sasa sisi ni hatua moja ya juu - badala ya kushughulika na mapinduzi ya screw, tunashughulikia hatua za kufikiria.

Sasa inafanyaje kazi wakati unapanda kupanda baiskeli (ukidhani kasi ya mara kwa mara)? Kwa kweli kuna haja ya kuwa na nguvu inayokusukuma juu, au sivyo ungeshuka chini. Kikosi hiki, kama sheria ya kwanza ya mwendo inatuambia, lazima iwe sawa kwa ukubwa lakini kinyume na mwelekeo wa nguvu inayokuvuta, ili uwe katika mwendo sare. Inatoka kwa msuguano kati ya gurudumu na ardhi na ikiwa unachora mchoro wa vikosi hivi, inahitaji kuwa sawa na uzito wa baiskeli na mpanda farasi mara daraja:

F = Fg * G

Sasa ni nini hufanya gurudumu kutumia nguvu hii? Tunaposhughulika na gia na magurudumu, ni rahisi kufikiria kulingana na torque, ambayo ni nguvu tu mara radius:

t = F * R

Kwa kuwa kuna gia zinazohusika, unatoa torque kwenye crank, ambayo inavuta mnyororo na kugeuza gurudumu. Wakati unaohitajika kugeuza gurudumu huzidishwa na uwiano wa gia:

tp = tw * gr

na kurudi kutoka kwa fomula ya wakati tunapata nguvu inayohitajika kugeuza kanyagio

Fp = tp / r

Hili ni jambo ambalo tunaweza kupima kwa kutumia mita ya nguvu kwenye crank. Kwa kuwa msuguano wenye nguvu unahusiana sana na nguvu na kama baiskeli hii hutumia chemchem kupeana nguvu hii, ni sawa na harakati ya screw.

Nguvu ni nguvu mara ya kasi (kuchukua mwelekeo sawa wa vectors)

P = F * V

na kasi ya laini ya kanyagio inahusiana na kasi ya angular:

V = ω * r

na kwa hivyo tunaweza kuhesabu nguvu inayohitajika kugeuza kanyagio kwa kiwango cha upinzani. Kwa kuwa kila kitu kinahusiana na laini, tunaweza kutumia idadi kufanya hivyo.

Hii ilikuwa haswa kile programu inahitajika kuhesabu wakati wa usawazishaji na kutumia njia ya kuzunguka ili kutupatia mchanganyiko tata, lakini kazi ya mstari inayohusiana na daraja la upinzani. Niliandika kila kitu kwenye karatasi nilihesabu hesabu ya mwisho na vipindi vyote vilikuwa mgawo tatu.

Hii ni kazi ya kiufundi ya 3D inayowakilisha ndege (nadhani) ambayo huchukua kiwango na kiwango cha gia kama hoja, na hizi coefficients tatu zinahusiana na zile zinazohitajika kufafanua ndege, lakini kwa kuwa gia ni nambari tofauti, ilikuwa rahisi kuifanya kuwa parameter badala ya kushughulika na makadirio na vile. Coefficients ya 1 na ya tatu inaweza kuelezewa na laini moja na (-1) * mgawo wa pili ni uratibu wa X wa uhakika, ambapo laini "huzunguka" kuzunguka wakati wa kubadilisha gia.

Katika taswira hii hoja zinawakilishwa na laini ya wima na maadili na ile ya usawa, na najua kuwa hii inaweza kuwa ya kukasirisha, lakini ilikuwa ya busara zaidi kwangu na ilitoshea GUI vizuri. Hiyo labda ndio sababu wachumi kuchora grafu zao hivi.

Hatua ya 5: Maliza

Sasa unahitaji programu zingine za kuendesha na mkufunzi wako mpya (ambayo imekuokoa karibu $ 900:)). Hapa kuna maoni yangu juu ya baadhi yao.

  • Baiskeli ya RGT - kwa maoni yangu bora - ina chaguo la bure kabisa, lakini ina nyimbo chache. Mikataba na sehemu ya unganisho ni bora, kwa sababu simu yako inaunganisha kupitia Bluetooth na PC inaonyesha wimbo. Inatumia video halisi na baiskeli wa AR
  • Rouvy - nyimbo nyingi, usajili uliolipwa tu, kwa sababu fulani programu ya PC haifanyi kazi na hii, unahitaji kutumia simu yako. Kunaweza kuwa na shida wakati kompyuta yako ndogo inatumia kadi sawa kwa Bluetooth na WiFi, mara nyingi hukaa na haitaki kupakia
  • Zwift - mchezo wa uhuishaji, uliolipwa tu, hufanya kazi vizuri na mkufunzi, lakini UI ni ya zamani kabisa - kizinduzi hutumia Internet Explorer kuonyesha menyu.

Ikiwa ulifurahiya ujenzi (au la), tafadhali niambie katika maoni na ikiwa una maswali yoyote unaweza kuuliza hapa au uwasilishe suala kwa github. Nitaelezea kila kitu kwa furaha kwani ni ngumu sana.

Ilipendekeza: