Mündəricat:

DIY Təhsil Mikro: bit Robotu: 8 addım (şəkillərlə)
DIY Təhsil Mikro: bit Robotu: 8 addım (şəkillərlə)

Video: DIY Təhsil Mikro: bit Robotu: 8 addım (şəkillərlə)

Video: DIY Təhsil Mikro: bit Robotu: 8 addım (şəkillərlə)
Video: Kim nə başa düşdü ❓ 2024, Iyul
Anonim
DIY Təhsil Mikro: bit Robotu
DIY Təhsil Mikro: bit Robotu
DIY Təhsil Mikro: bit Robotu
DIY Təhsil Mikro: bit Robotu

Bu təlimat sizə nisbətən əlçatan, qabiliyyətli və ucuz bir robotun necə qurulacağını göstərəcək. Bu robotu hazırlamaqda məqsədim, kompüter elmlərini cəlbedici şəkildə öyrətmək və ya öyrənmək üçün insanların çoxunun ödəyə biləcəyi bir şey təklif etmək idi.

Bu robotu qurduqdan sonra, qurduğunuz versiyadan asılı olaraq əsas, həm də olduqca inkişaf etmiş işlər görmək üçün müxtəlif sensor və aktuatorlardan zövq ala bilərsiniz (iki versiya verəcəyəm). Bu robotla mikro: bitə gözlər (180 ° görünüş!) Və ayaqları (dəqiq hərəkət etməklə!) Verirsiniz, mikro: bit sizə LED matris, radio rabitəsi, bluetooth rabitəsi, akselerometr kimi əla xüsusiyyətlər təqdim edir., kompaslar, həm də MicroPython ilə və ya sıfıra bənzər bir vizual proqramlaşdırma dili ilə hər şeyə daxil olmaq (əslində C ++ və javascriptdə də, amma təhsil üçün daha az uyğun olanları tapıram).

Oxuculara və istehsalçılara mobil robototexnika, elektronika, dizayn və ağac kəsmə haqqında daha çox məlumat əldə etməyi öyrətmək üçün bu təlimat üzərində də çalışacağam. Bunu etmək üçün hər şeyi mümkün qədər modul olaraq dizayn etdim. Məsələn, sərbəst şəkildə yığmağa və sökməyə icazə vermək üçün heç bir yapışqan istifadə etməyəcəyəm. Mən də addımları bacardığım qədər addım -addım atacağam ki, nələrin baş verdiyini tədricən başa düşəsən, işlərin lazım olduğu kimi işlədiyini yoxlayasan və işləyən bir robotla sona çatsın.

Addım 1: Parçaları toplayın

Parçaların toplanması
Parçaların toplanması

Bu layihə üçün sizə lazım olan minimum minimum:

  • 5 mm qalınlığında MDF ağacı və skelet üçün lazer kəsici
  • 1x18650 lityum batareya, enerji üçün 1x batareya qalxanı və kəsici
  • 1xMicro: Bit kartı və 1xMicro: beyin üçün bit uzatma lövhəsi (hər ikisi də asanlıqla Arduino ilə əvəz edilə bilər)
  • 2x28BYJ-5V pilləli mühərriklər, 2xA4988 pilləli motor sürücüləri və ayaqları üçün sürücüləri bağlamaq üçün 2x inkişaf etdirmə lövhəsi
  • Gözlər üçün 1x TOF10120 və 1x Mini 9g Servo motorBəzi kabellər və vintlər
  • 1x universal təkər, hündürlüyü = 15 mm

Bunlardan yalnız üç hissəsi standart deyil, buna görə də onları tapmaq üçün bağlantılar var: burada istifadə etdiyim uzantı lövhəsini tapın (amma robotun səliqəli versiyası üçün bunun əvəzinə istifadə etməyinizi məsləhət görürəm. dizaynda demək olar ki, heç nə dəyişməyəcək və bu, əyilmə qadın-qadın başlıqları ilə), batareya qalxanı və buradakı universal təkər ilə naqilləri daha asanlaşdıracaq.

İdeal olaraq sizin ixtiyarınızdadır:

  • Bir multimetr
  • Çörək taxtası
  • Bir lehimləmə dəmiri

Lazer kəsici ilə yanaşı, yerinizdə hər hansı bir hazır məhsulun olub olmadığını yoxlayın! Bəzi ilham verən istehsalçılarla tanış olmaq üçün əla yerlərdir!

Addım 2: Ayaqları hazırlayın

Ayaqları Hazırlamaq
Ayaqları Hazırlamaq
Ayaqları Hazırlamaq
Ayaqları Hazırlamaq
Ayaqları Hazırlamaq
Ayaqları Hazırlamaq
Ayaqları Hazırlamaq
Ayaqları Hazırlamaq

İlk missiyanız, bunu qəbul etsəniz, step motorumuzun nəzarətçi olaraq micro: bit istifadə edərək dönməsini təmin etmək olacaq! Niyə pilləli motor? Redüktörlü DC motora gedə bilərdim, amma onları sınadım və ucuz mühərriklərin aşağı sürətlə işləməsini çətinləşdirirəm. Təkərlərimin hansı sürətlə döndüyünü dəqiq bilmək yaxşı olardı. Bu səbəbdən step motorları ən yaxşı seçim idi.

İndi 4988 sürücüsündən istifadə edərək 28BYJ motorunu necə idarə etmək olar? Cavab bir az uzundur. Bu təlimatçılığa səliqəli şəkildə sığdıra bilmədim, buna görə də burada tapa biləcəyiniz başqa bir şey hazırladım. Sizi yuxarıdakı şəkildə göstərildiyi kimi yanlara montaj etmək üçün 2x2mm delikli 17 mm ölçülü 26x22mm böyüklükdə kiçik bir prototip lövhəsi yaradaraq bu addımları sona qədər izləməyə dəvət edirəm (istinad olunan məqalədə qeyd edildiyi kimi sarı tel solda yapışmaq, SLP və RST -ni birlikdə lehimləməyi xatırlatmaq üçündür).

Prototip lövhəsi olan bir motorla işlədikdən sonra hər şeyi bir az daha səliqəli etmək üçün öz PCB -ni hazırladım. Müvafiq easyEDA faylını əlavə etdim. Bu bir txt faylıdır, ancaq onu hələ də asanEDA pulsuz onlayn redaktə platforması ilə aça bilərsiniz.

Addım 3: İşığı görürəm !! (İsteğe bağlı)

İşığı görürəm !! (İsteğe bağlı)
İşığı görürəm !! (İsteğe bağlı)
İşığı görürəm !! (İsteğe bağlı)
İşığı görürəm !! (İsteğe bağlı)
İşığı görürəm !! (İsteğe bağlı)
İşığı görürəm !! (İsteğe bağlı)

Yalnız qurmaq və başqa bir şey etmək istəmirsinizsə, TOF10120 -ni micro: bit -ə necə bağlayacağınızı görmək üçün bu addımın sonuncu abzasından əvvəl olana keçin. Əgər yoxsa.

Micro: bit -in heç bir kamera və ya yaxınlıq sensoru olmadığı üçün onu hər hansı bir mobil robototexnika tətbiqi üçün kor edir. Əlimizdə olanların üzərində skelet qurmağa və uzaqdan idarə olunan bir robot əldə etməyə imkan verən bir radio yayıcı və reseptorla birlikdə gəlir. Amma robotumuzu avtonom etmək əla olmazmı? Bəli olardı! Beləliklə, ora necə çatacağımızı görək.

İndi maraqlandığımız şey robotumuzun sensorlar ilə təchiz edilməsi, robotumuzun ətraf mühiti haqqında bəzi məlumatlar əldə etməsidir. Bir çox növ sensor mövcuddur, amma burada yaxınlıq sensoru üzərində dayanacağıq. Bu robotu tərtib edərkən məqsədim robotun heç bir şeyə düşməməsi idi, buna görə də maneələri hiss etməsini istəyirdim. Bunun üçün də bir neçə variant var. Birincisi, çox sadə, bamperlərdən istifadə etmək ola bilər, amma ətraf mühit haqqında məlumatları bir qədər məhdud hesab edirəm. Digər tərəfdən, bir kamera (və ya bir Lidar və ya kinekt!) Əlavə etməyi düşünə bilərsiniz. Kameraları, kompüter görmə qabiliyyətini və bütün bunları sevirəm, amma təəssüf ki, Micro: bit bunları dəstəkləmir (bu cür cihazları dəstəkləmək üçün bir moruq Pi istifadə etməliyik, mikro: bit və ya Arduino).

Bəs kamera və bamperlər arasında olan mikro: bit dəstəyi nə edir? Ətrafa işıq göndərən və dünya haqqında bəzi məlumatlar əldə etmək üçün alınanları yoxlayan kiçik aktiv sensorlar var. Daha əvvəl bildiyim maneələrə olan məsafəni qiymətləndirmək üçün üçbucaqlama metodundan istifadə edən GP2Y0A41SK0F idi. Ancaq daha yaxşı bir şey tapa biləcəyimi düşündüm, buna görə də bir az araşdırma apardım və TOF10120 (və GY-VL53L0XV2-ni kəşf etdim, amma hələ almamışam:(). Burada kəşf etməyiniz üçün gözəl bir məqalə var. Əsasən bu sensor maneələri əks etdirən infraqırmızı bir siqnal yayır və sonra əks olunan işığı qəbul edir. İşıqın irəli və irəli getmə müddətindən asılı olaraq sensor maneənin məsafəsini (bu səbəbdən TOF = uçuş vaxtı) adlandıra bilər. Kiçik ölçüsü, məsafə aralığı və güc tələbi üçün TOF10120 istifadə etmək qərarına gəldim.

İlk fikrim bunlardan üçünü robotun üstünə qoymaq idi (biri öndə və ikisi yan tərəfdə), Çin yeni ili və COVID-19 pandemiyası, göndərilmələrdə problem yaradan kimi görünməsini istəmədi. Yanlarda görmək istədiyim və ətrafımda bir neçə servo mühərrikim olduğuna görə bir TOF10120 ilə məhdudlaşdığım üçün sensorumuzu servoya bağlamağa qərar verdim. İndi iki şey çatışmır: TOF10120 -ni micro: bit ilə necə istifadə edim? Və servo ilə eyni sual.

Xoşbəxtlikdən micro: bit, I2C rabitə protokolu ilə təchiz olunmuşdur və həyatımızı çox asanlaşdırır: qırmızı teli 3.3V -ə, qara -yerə, yaşıl -SCL -ə, mavi -SDA -ya bağlayın və bu da aparat hissəsidir. Proqram üçün I2C ünsiyyəti haqqında bir az oxumağı və micro: bit -ə əlavə etdiyim python kodunu sınamağı məsləhət görürəm. Bu proqram, REPL üzərindəki sensorun ölçdüyü məsafəni çap etməlidir (Oxu Evaluate Print Loop). Bu belədir. Sadəcə mikro: bit -ə baxdıq.

Heyvan anatomiyası ilə bənzətmələrimi davam etdirməyimə icazə verərsənsə, boynunu döndərək. Bunun üçün ehtiyac duyacağımız yeganə fikir, mikro: bit ilə bir servo motor idarə etməkdir. Bu hissə uzanır, buna görə sizə lazım olan bütün məlumatları və sınamaq üçün istifadə etdiyim kodu olan bu linki verəcəyəm. İstəyirsinizsə, pin0 istifadə edərək servoya nəzarət etmək üçün sadə bir kod da əlavə etdim. Servinizi 3.3V deyil, 5V ilə gücləndirməyi unutmayın.

Addım 4: Batareya Qalxanının Hack edilməsi

Batareya Qalxanının Hacking
Batareya Qalxanının Hacking
Batareya Qalxanının Hacking
Batareya Qalxanının Hacking
Batareya Qalxanının Hacking
Batareya Qalxanının Hacking

Aktuatorlarımızı və sensorlarımızı hazırladıqdan sonra, batareya idarəetmə sisteminə nəzər salmağın vaxtı gəldi. Seçdiyim batareya qalxanı haqqında daha çox məlumat əldə etməyiniz üçün bu yazını oxumağı məsləhət görürəm. Mən bunu çox aydın və əlçatan hesab edirəm. Bu məqalədən bu batareya qalxanının bir çox üstünlüklərini görə bilərik, amma qəbul etmək istəmədiyim bir əhəmiyyətli çatışmazlıq var: ON/OFF açarı yalnız USB çıxışına təsir edir. Bu o deməkdir ki, açarı söndürsəniz, bütün digər 3.3V və 5V pimlərə enerji veriləcək. Nəticədə, bu pinləri robotumuz üçün istifadə edərkən, keçid heç bir şey etməyəcək …

Batareyamı boş yerə boşaltmamaq üçün robotumu söndürə bilmək istəyirəm, buna görə də batareya qalxanını sındırmalı oldum. Gözəl olmayacaq, amma işləyir və heç bir xərc tələb etmir. Buna görə bir açarın dövrə açmasını və ya bağlamasını istəyirəm ki, batareya hüceyrəmi batareya qalxanından təcrid etsin. PCB -yə toxunmaq üçün avadanlıqım yoxdur, amma ətrafımda plastik parçalar var. İndi təsəvvür edin ki, bir plastik parçası kəsdim ki, yuxarıdakı ilk şəkildəki kimi batareyamın hücrəsinin bir ucuna qalxana sığsın. Dövrə artıq açıqdır və batareyam etibarlı şəkildə saxlanılır.

Bəli, amma bu plastik parçanı qoymaq və çıxarmaq üçün batareyanı qorumaq üçün robotu açmaq istəmirəm! Asan: bir keçid alın və açara qoşulmuş tellərin hər birinə iki kiçik kvadrat alüminium yapışdırın. İndi alüminiumun iki hissəsini bir -birindən təcrid etmək və alüminiumun sisteminizin kənarına məruz qalması üçün plastik parçaya yapışdırın. Normalda bunu etməlidir. Yeni yaradıcılığınızı hüceyrənin yanındakı batareya qalxanına daxil edin və keçid hüceyrəyə bağlı olan dövrə açmağa və ya bağlamağa imkan verməlidir.

Son bir şey: robotun yığılmasını və sökülməsini asanlaşdırmaq üçün qadın başlıqlarını batareya qalxanına lehimləməyi məsləhət görürəm. Bu yolla, mühərrikləri və sürücüləri ilə qurduqlarınızı asanlıqla bağlaya və ayıra bilərsiniz.

Addım 5: 3D Dizayn və Kəsmə

3D dizayn və kəsmə
3D dizayn və kəsmə
3D dizayn və kəsmə
3D dizayn və kəsmə

İndi çatışmayan yeganə şey, bütün komponentlərimizi bir yerdə saxlayacaq bir quruluş yaratmaqdır. Bunu etmək üçün tinkercad onlayn platformasından istifadə etdim. Bu, lazer kəsici üçün hər şeyi hazırlamaq üçün kifayət qədər olan əsas CAD etmək üçün həqiqətən gözəl bir mühitdir.

Bir müddət düşündükdən sonra düşünmək vaxtı gəldi. Bunu etmək üçün sahib olduğum müxtəlif hissələrin 3D modellərini bir araya gətirməyə başladım (əvvəlcə servo və TOF -u tənlikdən kənarda saxlayaraq). Buraya batareya və qalxan, step motorları və motor sürücüləri və əlbəttə ki, uzadma lövhəsi olan mikro: bit daxildir. Bütün uyğun 3D modelləri stl faylları olaraq əlavə etdim. Prosesi asanlaşdırmaq üçün robotumu simmetrik etmək qərarına gəldim. Nəticədə robotun yalnız yarısı ilə məşğul oldum və yuxarıdakı şəkildə göstərilən dizayna çatdım.

Buradan bir neçə versiya canlandı, bunlardan ikisini seçdim:

  • Tellərin görünməməsinə imkan verən yaxınlıq sensoru olmadan olduqca səliqəli. Muxtar olmasa da, bu versiya, məsələn, iPad vasitəsilə bluetooth vasitəsilə proqramlaşdırıla bilər və ya yuxarıdakı videoda göstərildiyi kimi başqa bir mikro: bit tərəfindən göndərilə bilən radio siqnallarından istifadə etməklə idarə oluna bilər.
  • Mobil robot texnikasına daha çox getməyə imkan verən daha az səliqəli, servo mühərrik üzərində qurulmuş yaxınlıq sensoru sayəsində maneənin məsafəsini 180 ° mənzərə ilə tutmağa imkan verir.

Bunu qurmaq üçün ən sevdiyiniz Fablab -a gedin və seçim etdiyiniz modeli kəsmək üçün tapdığınız lazer kəsicidən istifadə edin: 5mm MDF -də kəsiləcək hissələrə uyğun gələn design1_5mmMDF.svg və design1_3mmMDF fayllarına uyğun gələn birincisi. ağac və 3 mm -dən kəsiləcəklər; ikincisi design2_5mmMDF.svg faylına uyğundur. Qara konturların kəsiləcəyini və qırmızı rənglərin həkk olunacağını təyin edin.

Yan qeyd: Qırmızı naxışa onu sancmaq üçün əlavə etdim. Əlavə edilmiş python kodunu istifadə edərək hazırladığım Hilbert doldurma funksiyasıdır.

Addım 6: Canavarı quraşdırın

Canavarın Montajı
Canavarın Montajı
Canavarın Montajı
Canavarın Montajı
Canavarın Montajı
Canavarın Montajı

Robotun ilk versiyasını quraşdırmaq üçün atdığım addımlar aşağıdakılardır (şəkillər normal qaydada olmalıdır):

  1. Motorun mavi qapağını çıxarın və kabelin motorun arxasından yapışmasını təmin etmək üçün bir qədər kəsin.
  2. M2 vintlər və boltlar istifadə edərək motorları hər tərəfə quraşdırın.
  3. Prototip lövhəsini 2x2 mm diametrli deliklər və bəzi vintlər və boltlar istifadə edərək yanlara quraşdırın.
  4. A4988 sürücülərini qoyun və səliqəli olması üçün motor kabellərini yapışdırın.
  5. Universal çarxı alt hissənin altına qoyun və tərəfləri əlavə edin.
  6. Micro: bitin uzantı lövhəsini yuxarı hissəyə quraşdırın.
  7. Çevik ön qapağın altına montaj edin.
  8. Batareya qalxanını qoyun və hər şeyi bağlayın (bunu etmək üçün hələ də istədiyim uzatma lövhəsinin verilməsini gözləyirdim və yalnız qadın başlıqları çıxarıldığı üçün bir köhnə kompüterdən IDE kabelini geri qaytardım. Bütün bunları qatlanan ön qapaqla örtmək üçün kabellərim taxtaya yapışmır). Təqdim etdiyim kodu uyğunlaşdırmaq çox asan olsa da, birbaşa istifadə etmək üçün sol STEP -i 2 -ci pinlə, sağa ADIM -ı 8 -ci pinlə, sol DIR -ı 12 -ci pinlə, sağ DIR -ı 1 -ci pinlə birləşdirməlisiniz.
  9. Mikro: biti uzantıya qoyun.
  10. Daha irəli getmədən əvvəl hər şeyin MoveTest.py ilə işlədiyini yoxlayın.
  11. Açarı yuxarı hissəyə quraşdırın və plastik ucunu lityum hüceyrənin yanına qoyun.
  12. Ön qapağın yuxarı hissəsini vidalayın.
  13. Arxanı bağlayın və işiniz bitdi! Vay! Bu qədər addım gözləmirdim! Bu barədə düşünmək və bunu etmək, sözlə izah etməkdən daha asandır! (Və əminəm ki, hələ də çatışmayan məlumatlar olacaq!)

İkinci versiyanı yaxınlıq sensoru ilə qurursanız, onda:

  1. Yuxarıdakı təlimatları izləyin. Yeganə fərq, 7 -ci addımda bir neçə M2 ayırıcı əlavə etməli olacaqsınız (baxmayaraq ki, mənim etdiyim budur, lakin tələb olunmur), 8 -ci və 13 -cü addımı görməyin (ön qapaq olmadığı üçün)
  2. Servo motoru M2 vintləri ilə bağlayın və servonun VCC və GND -ni birbaşa batareya qalxanının 5V -ə qoşun və nəzarət girişini mikro: bitin 0 pininə bağlayın.
  3. Servanın üstünə çıxacaq iki taxta parçasını vida ilə bağlayın, TOF sensörünü və servo ilə gələn ağ plastik parçanı vidalayın.
  4. Bu son qurğunu servoya quraşdırın və sensoru 3 -cü addımda göstərildiyi kimi micro: bit I2C istifadə edərək bağlayın.

Addım 7: Proqram

Bu belədir ! Mikro: python və ya makecode proqramlaşdıra biləcəyiniz bir robotunuz var. Yuxarıdakı videoları etmək üçün istifadə etdiyim bir nümunə kodu bura əlavə etdim:

  • Nümunə 1: Robotun mikro: bitinə radioControl.py və digər micro: bitə meyl edərək robotu idarə etmək üçün başqa bir micro: bit üzərinə ReadAccelero.py qoyun.
  • Nümunə 2: Autonom.py -ni ətraf mühiti araşdıracaq robotun 2 -ci versiyasına qoyun.

Bunlar daha çox irəli getmək üçün istifadə edə biləcəyiniz əsas nümunələrdir. Məsələn, eyni vaxtda lokalizasiya və xəritələşməni çox sevirəm və bunu etmək üçün bu robotun 2 -ci versiyasında lazım olan hər şey var! Mənim belə bir layihə etməyim üçün böyük bir çatışmazlıq, mikro: bit PWM sürücüsünün bütün kanallar üçün eyni taymeri istifadə edən bir proqram sürücüsü olmasıdır, yəni qurduğumuz bütün PWM -lərin eyni tezliyə malik olmasıdır (bu mənim etdiyim bir işdir) Autonom.py yazanda qəribə bir şey aşkar etsəm də nümunə kodları nə vaxt yazdığımı bilmirəm).

Addım 8: İrəli gedin

Dizaynı təkmilləşdirməkdən, görmədiyim bəzi problemləri həll etməkdən çəkinməyin. Məsələn, sonda istəyirəm:

  • Zəminin qara və ya ağ olduğunu və ya masamın sonuna çatdığını müəyyən etmək üçün robotun altına bir IR sensoru əlavə edin.
  • Batareya idarəetmə sistemini dəyişdirin, çünki bundan hələ razı deyiləm. Həqiqətən, hazırda batareyanı doldurmaq üçün hüceyrəni və ya batareya qalxanını çıxarmaq üçün robotu sökmək lazımdır … Buna görə də planlaşdırıram: 1. robotun arxasına mini USB konnektoru əlavə edin. Batareya qalxanına qoşulacağam ki, onu doldurum; 2. Şarjın bitdiyini görmək üçün batareya qalxanındakı LEDləri görmək üçün aşağıdan bir delik kəsin.
  • Fərqli tezliklərdə PWM çıxarmağın məqbul bir yolunun olub olmadığını yoxlayın.
  • TOF10120 -ni əvəz etmək üçün VL53L0XV2 -ni sınayın, çünki daha çox insan üçün əlçatan edəcək daha ucuz bir seçim ola bilər. Bu sensor haqqında daha çox oxusam da, görünür ki, bu ucuz istehsal edən şirkət bunu qəsdən başa salmaqda çətinlik çəkdi …
  • Təkərləri daha dayanıqlı etmək üçün fərqli dizaynları sınayın (Hal -hazırda təkərləri dəfələrlə götürüb çıxarsam ağacın tədricən zədələnəcəyini gözləyirdim. Ağacı dizaynını dəyişdirərək daha elastik etsəm. daha uzun saxlaya bilsin)

Elektronika və mexanika haqqında biliklərimi genişləndirməyimə kömək edən EPFL -in Mobil robototexnika qrupundan (indi Biorobotics laboratoriyasının bir hissəsi) insanlara böyük təşəkkürlər!

Tövsiyə: