Mündəricat:

Q -Bot - Açıq Mənbə Rubik Cube Solver: 7 Addım (Şəkillərlə)
Q -Bot - Açıq Mənbə Rubik Cube Solver: 7 Addım (Şəkillərlə)

Video: Q -Bot - Açıq Mənbə Rubik Cube Solver: 7 Addım (Şəkillərlə)

Video: Q -Bot - Açıq Mənbə Rubik Cube Solver: 7 Addım (Şəkillərlə)
Video: The mind behind Linux | Linus Torvalds | TED 2024, Noyabr
Anonim
Image
Image
Şəkil
Şəkil

Pişmiş bir Rubik Küpünüz olduğunu təsəvvür edin, 80 -ci illərdən bəri hər kəsin tapdığını, amma heç kimin necə həll etməyi bilmədiyini bilirsiniz və onu orijinal naxışına qaytarmaq istəyirsiniz. Xoşbəxtlikdən bu günlərdə həll təlimatlarını tapmaq çox asandır. Beləliklə, İnternetə girin və bir videoya baxın, sevinc gətirmək üçün tərəfləri necə çevirməyi öyrənin. Bunu bir neçə dəfə etdikdən sonra əskik bir şey olduğunu anlayacaqsınız. İçərisində doldurula bilməyən bir çuxur. İçinizdəki mühəndislər/istehsalçı/hacker bu qədər heyrətamiz bir şeyi bu qədər sadə bir şəkildə həll etməklə kifayətlənə bilməz. Sizin üçün hər şeyi həll edən bir maşınınız olsaydı, daha poetik olmazdımı? Bir şey qursaydınız, bütün dostlarınız heyran olardı? Sizə zəmanət verə bilərəm ki, yaradıcılığınızın möcüzələr yaratmasını və Rubik Küpünü həll etməsini görməkdən daha yaxşı bir şey olmayacaq. Beləliklə, gəlin və heç bir dünya rekordu vurmayacaq, ancaq sizə saatlarla sevinc bəxş edəcək (əlbəttə ki, bütün məyusluqları keçdikdən sonra) açıq mənbə Rubik Cube Solver Q-Bot qurmağın möhtəşəm səyahətinə qoşulun. tikinti zamanı).

Addım 1: Avadanlıq Dizaynı

Tam həll edən, CATİ ilə Catia'da hazırlanmışdır. Bu şəkildə, dizayn səhvlərinin əksəriyyəti hər hansı bir fiziki komponent istehsal etməzdən əvvəl tapıla və düzəldilə bilər. Həll edənlərin əksəriyyəti prusa MK3 printerindən istifadə edərək PLA formatında 3D çap olunmuşdu. Bundan əlavə, aşağıdakı avadanlıqlardan istifadə edilmişdir:

  • 8 ədəd 8 mm alüminium çubuq (uzunluğu 10 sm)
  • 8 xətti rulman (LM8UU)
  • 2 m -dən bir qədər az GT2 6mm zamanlama kəməri + bəzi kasnaqlar
  • 6 NEMA 17 bipolyar pilləli mühərrik
  • 6 Polulu 4988 step sürücü
  • layihənin nəzarətçisi olaraq bir Arudino Mega
  • 12 V 3A enerji təchizatı
  • Arduino -nu etibarlı şəkildə gücləndirmək üçün bir addım aşağı çevirici
  • bəzi vintlər və bağlayıcılar
  • baza üçün bəzi kontrplak

Avadanlıq təsviri

Bu hissə Q-Bot-un hətta necə işlədiyini və yuxarıda göstərilən komponentlərin harada istifadə edildiyini qısaca əhatə edir. Aşağıda tam yığılmış CAD modelinin göstərilməsini görə bilərsiniz.

Q-bot, 3D çaplı tutacaqlarla birlikdə Rubik Küpünə dörd motorun bağlanması ilə işləyir. Bu o deməkdir ki, sol, sağ, ön və arxa birbaşa dönə bilər. Üst və ya alt tərəfi çevirmək lazımdırsa, bütün küpü çevirmək lazımdır və buna görə də iki mühərriki uzaqlaşdırmaq lazımdır. Bu, tutma mühərriklərinin hər birini başqa bir pilləli mühərriklə idarə olunan çarxlara və xətti bir dəmir yolu sistemi boyunca zamanlama kəmərinə bağlamaqla edilir. Dəmir yolu sistemi, qızıldakı boşluqlara quraşdırılmış iki 8 bilyalı rulmandan ibarətdir və bütün qızıl iki 8 mm alüminium şaft üzərində gəzir. Aşağıda həlledicinin bir oxunun alt quruluşunu görə bilərsiniz.

X və y oxları əsasən eynidır, yalnız kəmərin montaj nöqtəsinin hündürlüyü ilə fərqlənir, buna görə də tam qurulduqda iki kəmər arasında toqquşma olmur.

Şəkil
Şəkil

Addım 2: Doğru Motorları Seçin

Əlbəttə ki, burada düzgün mühərriklərin seçilməsi çox vacibdir. Əsas hissəsi, Rubik kubunu çevirə biləcək qədər güclü olmalarıdır. Buradakı yeganə problem Rubik kublarının heç bir istehsalçısının tork dərəcəsi verməməsidir. Beləliklə, doğaçlama aparmalı və öz ölçülərimi etməli idim.

Ümumiyyətlə, fırlanma nöqtəsi r məsafəsindəki fırlanma nöqtəsinin mövqeyinə dik olaraq yönəldilən qüvvə ilə müəyyən edilir:

Şəkil
Şəkil
Şəkil
Şəkil

Beləliklə, kubun gücünü birtəhər ölçə bilsəm, fırlanma anını hesablaya bilərdim. Həqiqətən etdiyim budur. Kubumu yalnız bir tərəfin hərəkət edə biləcəyi şəkildə rəfə bağladım. Küpə bir ip bağlandı və altına bir çanta bağlandı. İndi yalnız kub çevrilənə qədər çantadakı ağırlığı yavaş -yavaş artırmaq qalırdı. Düzgün çəkilərin olmaması üçün kartofdan istifadə etdim və sonra ölçdüm. Ən elmi metod deyil, amma minimum torku tapmağa çalışmadığım üçün bu kifayətdir.

Şəkil
Şəkil

Ölçmələri üç dəfə etdim və təhlükəsiz olmaq üçün ən yüksək dəyəri götürdüm. Nəticədə çəki 0,52 kq idi. İndi Sir Isaac Newton sayəsində gücün kütləvi sürətlənməyə bərabər olduğunu bilirik.

Şəkil
Şəkil

Bu vəziyyətdə sürətlənmə cazibə sürətidir. Beləliklə, tələb olunan fırlanma anı verilir

Şəkil
Şəkil

Rubik küpünün diaqonalının yarısı da daxil olmaqla bütün dəyərləri bağlamaq nəhayət lazım olan torku ortaya qoyur.

Şəkil
Şəkil

0.4Nm -ə qədər tətbiq edə bilən stepper mühərrikləri ilə getdim, bu, ehtimal ki, həddindən artıqdır, amma təhlükəsiz olmaq istədim.

Addım 3: Baza qurulması

Baza çox sadə bir taxta qutudan ibarətdir və bütün lazımi elektronikaya malikdir. Maşını açmaq və söndürmək üçün bir fiş, açıldığını göstərmək üçün bir LED, USB B portu və elektrik təchizatı üçün bir yuva var. 15 mm kontrplak, bəzi vintlər və bir az yapışqan istifadə edərək inşa edilmişdir.

Şəkil
Şəkil
Şəkil
Şəkil
Şəkil
Şəkil
Şəkil
Şəkil

Addım 4: Avadanlıqların yığılması

İndi baza daxil olmaqla bütün lazımi hissələrlə Q-bot yığmağa hazır idi. Xüsusi hissələr 3D çap edildi və lazım olduqda düzəldildi. Bu kitabın sonunda bütün CAD fayllarını yükləyə bilərsiniz. Quraşdırma, 3D çap edilmiş bütün hissələrin satın alınan hissələrə uyğunlaşdırılmasını, motor kabellərinin uzanmasını və bütün hissələrin bazaya vidalanmasını ehtiva edirdi. Əlavə olaraq, bir az səliqəli görünmək üçün motor kabellərinin ətrafına manşonlar taxdım və uclarına JST bağlayıcıları əlavə etdim.

Qurduğum bazanın əhəmiyyətini vurğulamaq üçün, montajın necə göründüyünün əvvəl və sonrakı çəkilişidir. Hər şeyi bir az düzəltmək böyük fərq yarada bilər.

Şəkil
Şəkil
Şəkil
Şəkil

Addım 5: Elektronika

Elektronikaya gəldikdə, layihə olduqca sadədir. Mühərrikləri gücləndirən 3A -a qədər cərəyan verə bilən əsas 12V enerji təchizatı var. Arduino-nu etibarlı şəkildə gücləndirmək üçün aşağı salınan bir modul istifadə olunur və bütün step motor sürücülərinin yerləşdiyi Arduino üçün xüsusi bir qalxan hazırlanmışdır. Sürücülər mühərrikləri idarə etməyi xeyli asanlaşdırır. Bir step motoru idarə etmək xüsusi bir idarəetmə ardıcıllığı tələb edir, ancaq motor sürücülərindən istifadə edərək, motorun dönəcəyi hər addım üçün yüksək bir nəbz yaratmaq lazımdır. Bundan əlavə, mühərriklərin bağlanmasını asanlaşdırmaq üçün bəzi jst konnektorları qalxana əlavə edildi. Arduino üçün qalxan möhkəm bir parça taxta üzərində quruldu və hər şeyin lazım olduğu kimi işlədiyinə əmin olduqdan sonra jlc pcb tərəfindən istehsal edildi.

İşdə prototipin və istehsal edilən pcb -nin əvvəl və sonrası.

Şəkil
Şəkil
Şəkil
Şəkil

Addım 6: Proqram təminatı və Serial İnterfeysi

Q-Bot iki hissəyə bölünür. Bir tərəfdən Arduino tərəfindən idarə olunan aparat, digər tərəfdən cari qarışıqlığa əsaslanaraq kubun həll yolunu hesablayan bir proqram parçası var. Arduino -da işləyən proqram təminatı özüm tərəfindən yazılmışdı, amma bu təlimatı qısa saxlamaq üçün burada bununla bağlı heç bir detala girməyəcəyəm. Baxmaq və onunla oynamaq istəyirsinizsə, bu sənədin sonunda git deposuma keçid veriləcəkdir. Həllini hesablayan proqram bir Windows maşınında işləyir və bir iş yoldaşım tərəfindən yazılmışdır, yenə də mənbə koduna bağlantılar bu kitabın sonunda tapıla bilər. İki hissə sadə bir serial interfeysi ilə əlaqə qurur. Həllini Kociemba'nın iki fazalı alqoritmi əsasında hesablayır. Çözüm proqramı, həll edənə iki baytdan ibarət bir əmr göndərir və 'ACK' qaytarmasını gözləyir. Bu yolla həll edici sadə bir seriyalı monitordan istifadə edərək yoxlanıla və düzəldilə bilər. Tam təlimat dəstini aşağıda tapa bilərsiniz.

Şəkil
Şəkil

Hər bir mühərriki bir addım çevirmək əmrləri, bəzi stepperlərin təsadüfi olaraq açıldıqda kiçik sıçrayışlar edə biləcəyi bir problemin həllidir. Bunu kompensasiya etmək üçün mühərriklər həll prosesindən əvvəl ilkin vəziyyətinə uyğunlaşdırıla bilər.

Addım 7: Nəticə

Səkkiz aylıq inkişafdan sonra söyüş söymək, klaviaturaya vurmaq və Q-botu rəqs etmək nəhayət ilk Rubik Küpünü uğurla həll etdiyi bir nöqtəyə gəldi. Küpün qarışması nəzarət proqramına əl ilə daxil edilməli idi, amma hər şey yaxşı işləyirdi.

Bir neçə həftə sonra bir veb kamera üçün bir əlavə əlavə etdim və kollecim, alınan şəkillərdən kubu avtomatik olaraq oxumaq üçün proqramı tənzimlədi. Ancaq bu hələ yaxşı sınaqdan keçirilməyib və hələ də bəzi təkmilləşdirmələrə ehtiyac var.

Şəkil
Şəkil

Bu təlimat marağınıza səbəb olarsa, tərəddüd etməyin və Q-botun öz versiyasını yaratmağa başlayın. İlk baxışdan çətin görünə bilər, amma buna çox dəyər verərəm və bunu edə bilsəm sən də edə bilərsən.

Resurslar:

Firmware Mənbə Kodu:

github.com/Axodarap/QBot_firmware

Nəzarət proqramının mənbə kodu

github.com/waldhube16/Qbot_SW

Tövsiyə: