Mundarija:

[WIP] Myo armband tomonidan boshqariladigan chizma chizig'ini yaratish: 11 qadam
[WIP] Myo armband tomonidan boshqariladigan chizma chizig'ini yaratish: 11 qadam

Video: [WIP] Myo armband tomonidan boshqariladigan chizma chizig'ini yaratish: 11 qadam

Video: [WIP] Myo armband tomonidan boshqariladigan chizma chizig'ini yaratish: 11 qadam
Video: РАМНЫЙ ВНЕДОРОЖНИК за 400 тыс - Mitsubishi PAJERO 2 (1991-1997) 2024, Noyabr
Anonim
[WIP] Myo Armband tasmasi tomonidan boshqariladigan Drawbot yaratish
[WIP] Myo Armband tasmasi tomonidan boshqariladigan Drawbot yaratish

Hammaga salom!

Bir necha oy oldin, biz uni boshqarish uchun faqat Myo guruhidan foydalangan holda, ochiq ramkali chizgich yaratish g'oyasini hal qilishga harakat qildik. Loyihani birinchi marta boshlaganimizda, biz uni bir necha bosqichlarga bo'lish kerakligini bilardik. Bizning birinchi asosiy bosqichimiz-tortishish botimiz uchun boshimizni ochiq ramka bilan o'rash. Bu standart bo'lmagan o'rnatish va biz ushbu dizaynning afzalliklari nimada ekanligini bilmoqchi edik.

Ikkinchidan, biz bu prototipni yaratish faqat o'zimiz uchun foydali bo'lishini bilardik. Bizning dizaynimiz va rejamiz oxirgi ramkamizni metallga aylantirish va arduino yordamida o'z pozitsiyamizni Myo bandiga o'rnatilgan akselerometr va giroskopdan olish edi. Keyin bu ma'lumotlar motorlarga yuboriladi va foydalanuvchining harakatini takrorlaydi. Biz bilardikki, bu bizning ikkinchi bosqichimizni uchta asosiy jihatga ajratadi:

  1. Myodan motorlarga Arduino orqali dasturlash
  2. ma'lumotlarimizni harakatga o'tkazish uchun elektr dizayni
  3. mexanik dizayn, bizning harakatimizni osonlashtiradigan o'rtacha o'lchamli ramka yaratish

Bizning jamoamizning har bir a'zosi dizayn jarayonining o'ziga xos qismi bilan o'zlarini eng qulay his qildilar, shuning uchun biz har bir kishi o'rtasida o'z ishimizni buzishga qaror qildik. Biz, shuningdek, butun dizayn jarayonida o'zimizni kundalik fikrlashimizni kuzatib borish uchun, global ko'rinishdan farqli o'laroq, blog yuritdik.

1 -qadam: Biz nima qilishni rejalashtirganmiz

Image
Image

Bizning maqsadimiz bu ikkita mahsulotni biz ilgari ko'rmagan tarzda birlashtirish edi. Biz "Myo" tasmasi va Evil Mad Scientist AxiDraw -dan ilhomlangan dizaynning o'z versiyasi o'rtasida jonli estafeta o'tkazishga kirishdik.

2 -qadam: Prototipli ingredientlar ro'yxati

2 2 x 4 yog'och taxta 1 Kamar yoki zanjir o'lchovi> = 65 "4 Yog'och mixlar 3 Kamarga yoki zanjirga mos keladigan tishli tishli 4 3 x 8 vexli teshilgan plastinkalar 30" dyuymli rezina ajratgichlar 8 1 "diametrli yuvish mashinalari 1 1" diametrli yog'och dublon 1 'uzun 8 Vex vintlari 1”8 ½” Vex vintlari 8 2”Vex vintlari 8 ¼” Kauchuk ajratgichlar 48 Vex somunlari 1 Kichik fermuar galstuk

3 -qadam: [Prototip] Yog'ochni qo'limiz va aravamizning ichki qismi

[Prototip] Yog'ochga ishlov berish bizning qo'llarimiz va aravamizning ichki qismi
[Prototip] Yog'ochga ishlov berish bizning qo'llarimiz va aravamizning ichki qismi

Biz ikkita 2x4 o'lchamdagi o'lchamdagi o'lchamdagi o'lchamlarni oldik va ularni teng uzunlikdagi (33 dyuymli) kesib oldik.

Stolli arra yordamida biz taxtalarning tor qismini "chuqur" va "kengligi" o'rtasida o'rtada kesma qildik.

Dübelni 4 2 dyuymli bo'laklarga kesib oling va matkap yordamida diametri taxminan ¼ dyuym bo'lgan o'rtada teshik oching.

4 -qadam: [Prototip] Bizning aravani yasash

[Prototip] Bizning aravani yasash
[Prototip] Bizning aravani yasash
[Prototip] Bizning aravani yasash
[Prototip] Bizning aravani yasash
[Prototip] Bizning aravani yasash
[Prototip] Bizning aravani yasash

Ideal holda, biz 7x7 o'lchamdagi ikkita teshilgan po'latdan foydalanardik, lekin bizda faqat 2x7 chiziqlar bor edi, shuning uchun biz ularni "X" konfiguratsiyasida mahkamladik.

5 dyuymli kauchuk bo'shliqlarni joylashtiring va plastinkalarning burchaklarini bir -biriga mahkamlang

1 -rasmda ko'rsatilgandek yog'och dublonlarni mahkam bog'lab qo'ying, shunda ular orasidagi masofa taxminan 2 dyuymni tashkil qiladi va biz vintlarni qayerda joylashtirish kerakligini ko'rish uchun rasmni ishlatamiz, lekin biz yuvgichlardan foydalanganmiz..

"Veks vintlardek, ¼" rezina ajratgichlar va diametri 1 dyuymli yuvish moslamalarini ishlatib, kir yuvish mashinalarini 1 -rasmda ko'rsatilgandek ko'tarilgan holatda mahkamlang (biz yashil plastmassa tishli tishli oynalarni ishlatdik, chunki biz to'g'ri yuvish mashinalarini topa olmadik). oson aylanishi va taxtaning tirqishlariga mos kelishi.

5 -qadam: [Prototip] Hammasini bir joyga to'plash

[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash
[Prototip] Hammasini bir joyga to'plash

Taxtani sirtga qo'ying va aravani o'rtasiga siljiting, shunda kir yuvish mashinasi aravani taxtaning tepasida ushlab turadi va taxtaning har ikki tomonida tishli vintlardek erkin aylanadi. O'rnatilganligiga ishonch hosil qilib, ikkinchi taxtaning bir uchiga tishli mix bilan mahkamlang va uni birinchi taxtaga perpendikulyar vagonga siljiting.

Endi kamar ko'rsatilgandek, tizim bo'ylab halqa bilan o'ralgan bo'lishi kerak, dublonlar kamarning tashqarisida qanday joylashganligiga va shassining markazida kamar harakatlanayotganda unga xalaqit beradigan hech narsa yo'qligiga e'tibor bering.

Endi kamarni tishli bo'lmagan taxtaning yon tomoniga mahkamlash kerak. Biznikini mahkamlash uchun qo'shimcha mix va fermuar taqilgan. Ammo kamar o'sha joyga mahkamlanganda, qo'llaniladigan usul muhim emas

6 -qadam: [Prototip] Bajarildi va ko'chmoqda

Image
Image

Shunday bo'lishi kerak, kamarni har xil kombinatsiyalarda torting va uning qo'lidagi turli ta'sirini ko'ring!

7 -qadam: Modelimizni tayyor dizaynimizga tarjima qilish

Bizning modelimizni tayyor dizaynimizga tarjima qilish
Bizning modelimizni tayyor dizaynimizga tarjima qilish
Bizning modelimizni tayyor dizaynimizga tarjima qilish
Bizning modelimizni tayyor dizaynimizga tarjima qilish

Biz prototipimizni tayyorlaganimizdan so'ng, biz juda xursand bo'ldik. Hech birimiz tizimni yig'ishdan oldin qanday ishlashini bilmas edik. Ammo, bizning qismlarimiz birlashganda, biz tezda nimani yoqtirganimizni va yakuniy dizaynni yaratishda uni qanday yaxshilashni bilib oldik. Tizim bilan bog'liq asosiy shikoyatlarimiz quyidagilar edi:

  1. Tarozi

    1. Bizning prototipimiz juda katta va beparvo edi, shuning uchun uni qo'llarimiz chetiga ag'darishga moyil qildik
    2. Vagon zarur bo'lganidan ancha katta edi va unda juda ko'p bo'sh joy bor edi
    3. Bizning belbog'imiz (tank tepasi) kerak bo'lgandan ko'ra kattaroq edi, bu qo'llar orasidagi bo'shliqni bo'shatdi
  2. Ishqalanish

    1. Bizning bezovtalanish qadamlarimiz yog'och dublon rulolaridan osonlikcha o'tmagan
    2. Yog'och ustidagi plastmassa vagonni ko'p hollarda harakat qilmaslikka olib keldi
  3. Avtotransport

    Biz tizimni kuchga ega qilishimiz kerak edi

Shuni yodda tutgan holda, biz oxirgi dizayn uchun rejalarimizni chizdik. Biz tortma chizig'ini arduino orqali Myo yordamida boshqarishni xohladik va biz ramkani alyuminiy va kichikroq qilib yasashni xohladik.

Buning uchun biz asl prototipimizning foizini oldik va shu o'lchamdan ishlashga kirishdik. Qoplamali rulman o'tishi uchun kanallari etarlicha keng bo'lishi uchun ishlov beriladigan metall plitalardan foydalangan holda, biz engilroq, ammo mustahkam dizaynga ega bo'lamiz, bu esa yuqori bardoshlikka ega bo'ladi.

Bizning prototipimiz, shuningdek, bir necha daqiqada dvigatelning aylanish chizig'ining boshiga qanday ta'sir qilganini aniqlashga imkon berdi. Bu bizni boshqarish dizaynimiz biz kutganimizdan ko'ra sodda bo'lishini tushunishga olib keladi. Yaxshilab tekshirgandan so'ng, biz motor harakatining qo'shimchali ekanligini aniqladik! Bu shuni anglatadiki, har bir dvigatel bizning harakatimizga mustaqil ravishda kerakli ta'sir ko'rsatadi, lekin biz ularni birlashtirganimizda ular o'chishni boshlaydilar.

Masalan, agar koordinatali tekislik sifatida qaralsa, manfiy x chekkasida joylashgan vosita har doim tortmasimizni ikkinchi va to'rtinchi kvadrantlarga tortadi. Aksincha, dvigatel musbat x ekstremitaga yotqizilgan bo'lsa, tortmachani har doim birinchi va uchinchi chorakka tortadi. Agar biz dvigatellarning harakatini birlashtirsak, bu nizoni boshqaradigan qismlarni bekor qiladi va rozi bo'ladigan qismlarni kuchaytiradi.

8 -qadam: kodlash

Bir necha yil oldin men C da juda ko'p ishlagan bo'lsam -da, lua yoki C ++ bilan hech qanday tajribaga ega emas edim, shuning uchun men hujjatlarni ko'rib chiqish uchun ko'p vaqt sarflashim kerak edi. Men bilardimki, men bajarmoqchi bo'lgan umumiy vazifa - bu foydalanuvchi pozitsiyasini vaqt oralig'ida olish va keyin uni motorlarga o'tkazish. Men o'zimga kerak bo'laklarni yaxshiroq hazm qilish uchun vazifani ajratishga qaror qildim.

1. Myo (lua) dan ma'lumotlarni oling

Men Myodan ma'lumot to'plash yo'lini topishim kerakligini bilardim. Bu men yaqinlashmoqchi bo'lgan qiyinchilikning birinchi qismi edi. Buni amalga oshirish uchun men chizishni boshlashdan oldin foydalanuvchining tuval hajmini sozlashni xohlardim. Bu menga ishlash chegarasini olishimga imkon beradi. Ma'lumotlar o'tishi uchun men maksimal tuvalning foizini olish orqali dasturni turli foydalanuvchilar o'rtasida normalizatsiya qilishim mumkin edi. Men har yarim soniyada getOrientation tekshiruvini o'tkazadigan skriptli hodisani o'tkazishga qaror qildim, chunki bu tekshiruvlar hech qachon siz taxmin qilishingiz kerak bo'lgan yovvoyi sakrashni amalga oshirmaslikka imkon beradi (masalan, agar foydalanuvchi dovdirab orqaga qaytsa va oldinga).

Bu men urgan birinchi yo'l to'sig'iga aylandi. Men luaning juda katta chegarasini topdim va bu ssenariyni davom ettirishdan oldin kutishga ruxsat bermasligini. Bu harakatni amalga oshirishning yagona yo'li - protsessorni to'xtatib turish (butun dunyo bo'ylab, hatto tizim soati ushlab turganda ham) yoki OSning maxsus buyruqlaridan foydalanish. Mening namunaviy kodimda men bajargan operatsion tizim tekshiruvini qoldirdim (izoh berdim). Bu lua hujjatlarida katta hajmdagi tadqiqotlar olib borilgandan so'ng va tizim yo'lini formatlashni tekshirish orqali amalga oshirildi. Bu men ilgari e'lon qilingan loyihalar hujjatlarini ko'rib chiqishim kerak deb qaror qilganimda edi. Men qancha vaqt sarflaganimni darhol angladim va darhol platforma o'zgaruvchisiga aylandim. Shu bilan men oldingi echimni birlashtirishim kerak bo'lgan kunlardan farqli o'laroq, OSning kutish buyruqlarini deyarli darhol bajara oldim.

Taxminan shu dizayn vaqtida elektr jihatlari ustida ish boshlandi va men kodning bu tomoni ustida ishlashni to'xtatdim. Bizning maqsadimiz dvigatellarning arduino bilan qanday aloqasi borligini bilishdir.

2. Arduino atrofida ishlash (C ++)

Bizning non paneli bilan ishlash tobora murakkablashib borar ekan, men bildimki, arduino ko'p ishlov berishga qodir emas. Bu mening asl kod dizaynimdagi katta kalit edi va nazoratchimiz taqdim etgan cheklovlar haqida ko'proq o'qiganimdan so'ng, men arduino ikkalasi o'rtasida qanday o'zgarishini dasturlashim kerakligini bilib oldim. Vaqtimiz yaqinlashganda, bu mening sa'y -harakatlarimning markaziga aylandi. Men asl skriptning katta qismini olib tashlashga majbur bo'ldim, chunki ular faylni o'quvchi vosita boshqaruvchisi bilan bir vaqtda faylga ma'lumotlarni yozish uchun mo'ljallangan edi. Bu navbat funktsiyasi, agar foydalanuvchi bizning tortmasidan oldinda bo'lsa ham, bu loyihani buzmasligiga ishonch hosil qilish uchun ruxsat berish edi.

Men navbat funktsiyasini saqlab qolish kerak deb qaror qildim, agar u avvalgidek bajarilmasa. Buning uchun men massivlar vektorini yaratdim. Bu menga nafaqat oldingi dizaynim ruhini saqlab qolishga, balki o'qish yoki yozish uchun fayldagi o'rnimni kuzatib borishim shart emasligini ham ko'rsatdi. Buning o'rniga, agar men harakat qilayotgan bo'lsam, mening vektorimga yangi qiymat kiritish kifoya edi (dastlabki test oxirgi yozilgan pozitsiyadagi x va y tuval o'lchamlari farqining 1% dan kamrog'ini tashkil etdi, natijada ma'lumotlar yozib olinmadi).. Men o'zimning vektorimdagi eng qadimgi qiymatni olishim mumkin edi va birdaniga uni motor boshqaruviga jo'natib, bizning faylga yozib, keyin vektordan olib tashlashim mumkin edi. Bu doimiy IO oqimining ishlashi haqidagi ko'p tashvishlarimni tozaladi.

9 -qadam: elektr

Image
Image
Elektr
Elektr

Men ilgari elektronika darsini olganman va arduinolar bilan adolatli ishlaganman. Men hech qachon arduino ma'lumotlarini tashqi manbadan (myo) qabul qilishga majburlamaganman, faqat arduino orqali ma'lumot chiqarish tajribam bor. Biroq, men dvigatellarni chizish chizig'iga o'tkazdim va ular myo kod bilan ishlashlari uchun kod ustida ishladim.

Men ishlatgan materiallar:

2 x qadamli motorlar

1 x non paneli

1 x Arduino (Uno)

2 x IC L293DE haydovchi

40 x o'tish simlari

2 x muxlislar

1. Stepper dvigatellari va ventilyatorni non paneliga ulash

O'chirish sxemasiga binoan, biz bir qadamli dvigatelni non panelidagi haydovchiga ulashimiz mumkin. Keyin, xuddi shu sxemaga muvofiq, ikkinchi haydovchi va dvigatel uchun ham amal qiladi, lekin o'tish simlarini arduino -dagi boshqa pinlar majmuasiga ulash kerak bo'ladi (chunki birinchi dvigatel 4 kishining joyini egallaydi).

Ogohlantirish/Maslahat:

Haydovchilar juda kichkina va pinlar bir -biriga juda yaqin. Simlar chalkashib ketmasligi uchun ikkita haydovchini ajratib qo'yish oqilona bo'lardi.

Keyingi - fanatlarga sim ulash. Bu juda oddiy, menda mavjud bo'lgan muxlislar kompyuter protsessorining asosiy fanatlari bo'lib, ular ijobiy va asosga ega. Bu ikkalasini non panelidagi tegishli +/- pinlariga ulang va har bir haydovchiga qarating. (Biz aniqladikki, qadam dvigatellari uzoq vaqt davomida ma'lumot va buyruqlar olayotgani sababli, haydovchilar haddan tashqari qizib ketadi va hidlaydi. Sovutish uchun ventilyator qo'shilishi bu muammoni hal qildi).

2. Arduino kodi

Bu oson qism!

Arduino IDE -ni oching, "Fayl" yorlig'iga o'ting, keyin "namuna" yorlig'iga o'ting, u yanada ochiladi va sizga "qadam" yorlig'ini ko'rsatadi, keyin "Stepper_OneStepAtATime" ni ochishni xohlaysiz.

Bu arduino/motor simlariga deyarli ulanadigan misol kodini yuklaydi. Biz kichik sozlashlarni amalga oshirishimiz kerak bo'ladi, chunki biz ikkita dvigatelni ishga tushiramiz, men quyida ko'rsataman. Qaysi pimlardan foydalanishga qaror qilganingizga qarab, siz ozgina o'zgartirishlar kiritishingiz kerak bo'lishi mumkin, chunki Arduino IDE standarti 8-11-pinlarga o'rnatiladi.

Men ikkita dvigatelni "sinxronlashtirish" rejimida harakat qilish uchun ishlatgan kodim quyida:

//#o'z ichiga oladi

const int stepsPerRevolution = 200;

StepStepper1 (StepPerRevolution, 9, 10, 11, 12);

StepStepper2 (StepPerRevolution, 4, 5, 6, 7);

int stepCount = 0;

void setup () {// ketma -ket portni ishga tushirish: Serial.begin (9600); }

void loop () {

myStepper1.qadam (1);

Serial.print ("qadamlar:");

Serial.println (stepCount);

stepCount ++;

kechikish (0,5);

myStepper2.step (1); kechikish (0,5); }

3. Mumkin bo'lgan muammolar

Bu jarayonda men duch kelgan muammolar to'g'ri kod misolidan, noto'g'ri o'tish simidan, noto'g'ri haydovchi IC dan foydalanishdan iborat edi.

Sizning haydovchingiz dvigatelni boshqarishi mumkinligiga ishonch hosil qiling

Seriya raqamini va uning xususiyatlarini tekshiring

Men o'lik o'tish simiga ega bo'lish muammosiga duch keldim, bu mening motorlarim g'alati aylanishga olib keldi

Men har bir simni tekshirish uchun multimetrdan foydalanishim kerak edi

Va har doim kodingizni ";" tugashi yo'qligi kabi kichik xatolar uchun ikki marta tekshirib ko'ring. buyruq

10 -qadam: mexanik

Mexanik
Mexanik
Mexanik
Mexanik
Mexanik
Mexanik
Mexanik
Mexanik

1. Material

Qo'llarning to'liq ishlab chiqarish modeli uchun ular kuchli, ammo engil materialdan yasalgan bo'lishi tavsiya etiladi, biz alyuminiyning mukammal mosligini his qildik.

Biz 9125 x 17,5 dyuymgacha kesilgan 032 o'lchagichli alyuminiy varaqlardan foydalanganmiz va naqshni oldingi bosqichda ko'rsatilgan rasmdan kuzatganmiz.

2. Ishlab chiqarish

Gemmer (ko'k mashina) yordamida biz qarama -qarshi tomonga qaragan qirralarni qo'shdik, shunda bo'lak sindirilganda va o'ralganda, ikkita etak bir -biriga yopishib, bitta bo'lak hosil qiladi.

Katta burilishlar uchun biz tennismitdan foydalandik, chunki u yuqori aniqlikka ega.

Endi kichikroq burilishlar uchun siz kichikroq oyoqli mashinadan foydalanmoqchisiz, aynan shu erda roto-die kabi mashina keladi. Oyog'i kichik bo'lgani uchun, afsuski, kichikroq tanaffuslar qilish imkonini beradi., bizning qo'limizdagi roto-die hali ham bizning temir yo'l uchun juda katta edi va u deformatsiyalangan edi.

** Shu bilan bir qatorda, agar sizda tegishli asbob -uskunalar yoki asboblar bo'lmasa, ularni almashtirish mumkin. **

Bizning holatlarimizda, biz qo'llarimizni alyuminiy quyosh panelli relslardan plazma to'sar yordamida kesib, uchlarini silliq qilib silliqladik, so'ngra orqasiga murvat bilan ikki tomonlama temir yo'l tizimini yasadik. Ideal holda, biz relslarni bir -biriga payvandlashni xohlardik, lekin payvandlash stantsiyasiga kirmasdan, biz relslarni bir -biriga mahkamladik va burg'ulash orqali murvat bilan bog'ladik. Ammo, agar bu yo'l tanlangan bo'lsa, parchaning iloji boricha kamroq egiluvchan bo'lishini ta'minlash uchun qulf gaykani va yuvish vositasidan foydalanishga alohida e'tibor berilishi kerak.

3. Kamar

Kamarlar uchun biz qutqarishga qodir bo'lgan eski 3D printer tasmalaridan foydalanardik.

Kamarlarning uzunligi etarlicha uzun emas edi, shuning uchun issiqlik o'tkazmaydigan trubkadan foydalanib, biz ikkita bo'lakni birlashtirdik va ular etarlicha uzun bo'lardi.

Yashil tishli vintlardek va yog'och dublonlar o'rniga kamar joyidan chiqib ketmasligi uchun qo'shimcha keng yuvish moslamalari o'rnatilgan diskli podshipniklar almashtirildi.

4. Vagon

Va nihoyat, arava 5 dyuymli 5 o'lchamli 032 alyuminiy varaqdan qilingan bo'lib, burg'ulash mos vintlar va yuvish moslamalari uchun mo'ljallangan. Masofa sizning temir yo'lingiz qanchalik kengligi va kir yuvish mashinalarida qancha bo'sh joy borligiga qarab o'zgaradi.

11 -qadam: fikrlar

Afsuski, bizning loyihamizning har bir tomoni katta to'siqlarga duch keldi va biz o'z loyihamizni belgilangan sanaga qadar bajara olmadik. Bizning jamoamizning har bir a'zosi, bizning dizaynimizning boshqa jihatlari bo'yicha, hech bo'lmaganda, ma'lum darajada egri vaqt cho'kishiga olib keldi. Bu, iloji boricha kamroq tashqi manbalarga ega bo'lgan mahsulotni loyihalashtirish istagi bilan bir qatorda (biz hammamiz o'z qismlarimizni noldan yaratishni xohlagan edik), g'ildiraklarning ko'p miqdorda ixtiro qilinishiga olib keladi.

Loyihada ishlagan har bir kishi loyihaning boshqa jihatlari haqida ko'proq bilib oldi. Dasturiy ta'minotni aniq harakat qilish - bu boshqa narsa, keyin dasturiy ta'minotni apparat bilan birgalikda ishlash - bu boshqa narsa. Men aytmoqchimanki, kim ushbu loyihaning kodlash tomonida ishlayotgan bo'lsa, bizning loyiha koderimiz kabi tanish bo'lishi kerak.

Umuman olganda, biz xohlagan narsaga erisha olmadik. Ammo men o'zimni to'g'ri yo'ldan ketayotganimizni his qilyapman va biz hammamiz yangi loyihalarni kashf qildik va bilib oldik.

Tavsiya: