İçindekiler:

Kendin Yap Eğitici Mikro:bit Robot: 8 Adım (Resimlerle)
Kendin Yap Eğitici Mikro:bit Robot: 8 Adım (Resimlerle)

Video: Kendin Yap Eğitici Mikro:bit Robot: 8 Adım (Resimlerle)

Video: Kendin Yap Eğitici Mikro:bit Robot: 8 Adım (Resimlerle)
Video: Dünyanın en zor zeka oyunu daha çözebilen yok 😳😳 2024, Temmuz
Anonim
DIY Eğitim Mikro: bit Robot
DIY Eğitim Mikro: bit Robot
DIY Eğitim Mikro: bit Robot
DIY Eğitim Mikro: bit Robot

Bu talimat size nispeten erişilebilir, yetenekli ve ucuz bir robotun nasıl oluşturulacağını gösterecektir. Bu robotu tasarlamadaki amacım, çoğu insanın karşılayabileceği bir şey önermek, onlara bilgisayar bilimlerini ilgi çekici bir şekilde öğretmek veya onun hakkında bilgi edinmekti.

Bu robotu yaptıktan sonra, oluşturduğunuz sürüme bağlı olarak basit ama aynı zamanda oldukça gelişmiş şeyler yapmak için çeşitli sensör ve aktüatörlerinin keyfini çıkarabilirsiniz (iki sürüm sağlayacağım). Bu robot ile micro:bit'e göz (180° görünüm !) ve bacaklar (hassas hareket mümkün!) veriyorsunuz, micro:bit ise LED matrix, radyo iletişimi, bluetooth iletişimi, ivmeölçer gibi harika özellikler sunuyor., compas, aynı zamanda MicroPython veya sıfırdan benzer bir görsel programlama dili ile tüm bu şeylere erişim (aslında C++ ve javascript'te de, ancak bunları eğitim için daha az uygun buluyorum).

Okuyucuları ve yapımcıları mobil robotik, elektronik, tasarım ve ahşap kesme hakkında daha fazla şey keşfetmeye yönlendirebilmek için bu talimat üzerinde de çalışacağım. Bunu yapmak için her şeyi mümkün olduğunca modüler olacak şekilde tasarladım. Örneğin, özgürce bir araya getirip sökmeye izin vermek için herhangi bir yapıştırıcı kullanmayacağım, bu da yükseltmelerin yanı sıra hata ayıklamayı da kolaylaştırıyor. Ayrıca, neler olup bittiğini aşamalı olarak anlayabilmeniz, işlerin olması gerektiği gibi çalışıp çalışmadığını kontrol edebilmeniz ve çalışan bir robotla sonuca varabilmeniz için adımları elimden geldiğince kademeli yapacağım.

Adım 1: Parçaları Toplama

Parçaları Toplama
Parçaları Toplama

Bu proje için ihtiyacınız olan minimum ayı:

  • 5 mm kalınlığında MDF ahşap ve iskelet için lazer kesici
  • 1x18650 lityum pil, enerji için 1x pil kalkanı ve bir kesici
  • Beyin için 1xMicro:Bit kart ve 1xMicro:bit genişletme kartı (her ikisi de bir Arduino ile kolayca değiştirilebilir olsa da)
  • 2x28BYJ-5V step motorlar, 2xA4988 step motor sürücüleri ve bacakların sürücülerini monte etmek için 2x geliştirme kartı
  • Gözler için 1x TOF10120 ve 1x Mini 9g Servo motorBazı kablolar ve vidalar
  • 1x evrensel tekerlek, yükseklik = 15 mm

Bunlar arasında sadece üç parça standart değildir, bu yüzden onları bulmak için linkler burada: burada kullandığım genişletme kartını bulun (ancak bunun yerine robotun temiz versiyonu için bunu kullanmanızı tavsiye ederim. tasarımda neredeyse hiçbir şeyi değiştirmez ve virajlı dişi-dişi başlıklarla kablolamayı çok daha basit hale getirir), buradaki pil kalkanı ve buradaki evrensel tekerlek.

İdeal olarak, emrinizde de olacak:

  • bir multimetre
  • bir ekmek tahtası
  • bir havya

Lazer kesicinin yanı sıra onlar için, yerinizde herhangi bir fablab olup olmadığını kontrol edin! Bunlar ilham verici bazı yaratıcılarla tanışmak için harika yerler!

Adım 2: Bacakları Hazırlamak

Bacakları Hazırlamak
Bacakları Hazırlamak
Bacakları Hazırlamak
Bacakları Hazırlamak
Bacakları Hazırlamak
Bacakları Hazırlamak
Bacakları Hazırlamak
Bacakları Hazırlamak

İlk göreviniz, kabul ederseniz, mikro:bit'i kontrolör olarak kullanarak step motorumuzu döndürmek olacak! Neden step motor? Redüktörlü DC motora gidebilirdim ama onları denedim ve ucuz motorları düşük hızda çalıştırmak için zor buluyorum. Ayrıca tekerleklerimin hangi hızda döndüğünü tam olarak bilmenin iyi olacağını düşündüm. Bu nedenlerden dolayı step motorlar en iyi seçenekti.

Peki şimdi, 4988 sürücü kullanarak 28BYJ motor nasıl kontrol edilir? Cevap… biraz uzun. Bu talimata tam olarak sığdırmayı başaramadım, bu yüzden burada bulacağınız bu amaç için bir tane daha yaptım. Yukarıdaki resimde gösterildiği gibi yanlara monte etmek için 26x22mm büyüklüğünde, 2x2mm delikli 17 mm'lik küçük bir prototip tahtası oluşturarak bu adımları sonuna kadar takip etmeye davet ediyorum (Başvurulan makalede belirtildiği gibi sarı tel soldaki çıkıntı, SLP ve RST'yi birlikte lehimlemenizi hatırlatmak için oradadır).

Prototipleme kartına sahip bir motorla bunu çalıştırdıktan sonra, işleri biraz daha düzenli hale getirmek için kendi PCB'mi de tasarladım. İlgili easyEDA dosyasını ekledim. Bu bir txt dosyasıdır ancak yine de easyEDA ücretsiz çevrimiçi düzenleme platformuyla açabilirsiniz.

Adım 3: Işığı Görüyorum !! (İsteğe bağlı)

Işığı görüyorum !! (İsteğe bağlı)
Işığı görüyorum !! (İsteğe bağlı)
Işığı görüyorum !! (İsteğe bağlı)
Işığı görüyorum !! (İsteğe bağlı)
Işığı görüyorum !! (İsteğe bağlı)
Işığı görüyorum !! (İsteğe bağlı)

Sadece inşa etmek ve daha fazlasını yapmak istemiyorsanız, bir TOF10120'yi micro:bit'e nasıl bağlayacağınızı görmek için bu adımın son paragrafından bir öncekine atlayın. Eğer takip etmezseniz.

Micro:bit'imiz herhangi bir kamera veya yakınlık sensörü ile gelmediğinden, herhangi bir mobil robotik uygulaması için onu bir nevi kör yapar. Bir radyo vericisi ve alıcısı ile birlikte geliyor, ancak bu, zaten sahip olduğumuz şeyin üzerine iskeleti inşa etmemize ve uzaktan kumandalı bir robot almamıza izin verecek. Ama robotumuzu otonom hale getirmek harika olmaz mıydı? Evet olabilirdi ! Öyleyse oraya nasıl ulaşacağımızı görelim.

Şimdi ilgilendiğimiz şey, robotumuzun çevresi hakkında bilgi edinmesi için robotumuzu sensörlerle donatmak. Mevcut birçok sensör türü vardır, ancak burada yakınlık sensörüne odaklanacağız. Bu robotu tasarlarken amacım çoğunlukla robotun hiçbir şeye çarpmamasıydı, bu yüzden engelleri algılamasını istedim. Bunun için de birkaç seçenek var. İlki, çok basit, tampon kullanmak olabilir, ancak çevreyle ilgili bilgileri biraz sınırlı buluyorum. Diğer uçta, bir kamera (veya bir Lidar veya bir kinect!) eklemeyi düşünebilirsiniz. Kameraları, bilgisayar görüşünü ve tüm bu şeyleri seviyorum ama ne yazık ki Micro:bit bunları desteklemiyor (bu tür cihazları desteklemek için bir ahududu Pi kullanmamız gerekir, mikro:bit veya Arduino değil).

Peki kamera ve tamponlar arasındaki micro:bit neleri destekliyor? Çevreye ışık gönderen ve dünya hakkında bazı bilgiler almak için alınanları kontrol eden küçük aktif sensörler vardır. Zaten bildiğim, engellere olan mesafeyi tahmin etmek için bir üçgenleme yöntemi kullanan GP2Y0A41SK0F idi. Ancak daha iyisini bulabilir miyim diye merak ettim, biraz araştırma yaptım ve sonunda TOF10120'yi (ve GY-VL53L0XV2'yi ama henüz almadım:() keşfettim. İşte onu keşfetmeniz için güzel bir makale. Temel olarak bu sensör, engellere yansıyan bir kızılötesi sinyal yayar ve daha sonra yansıyan ışığı alır. Işığın ileri geri gitme süresine bağlı olarak, sensör engelin mesafesini tahmin edebilir (dolayısıyla TOF adı=uçuş süresi)) Küçük boyutu, mesafe aralığı ve güç gereksinimi nedeniyle TOF10120'yi kullanmaya karar verdim.

İlk fikrim bunlardan üçünü robota (biri önde, ikisi yanlarda) koymak iken, Çin yeni yılı ve COVID-19 pandemisi, sevkiyatlarda sorunlara neden olduğu için böyle istemedi. Bir TOF10120 ile sınırlı kaldığım için, yanlarda da görmek istediğim ve etrafta bazı servo motorlarım olduğu için sensörümü bir servo üzerine monte etmeye karar verdim. Şimdi iki şey eksik: TOF10120'yi micro:bit ile nasıl kullanırım? Ve servo ile aynı soru.

Neyse ki micro:bit, I2C iletişim protokolü ile donatılmıştır ve hayatımızı gerçekten kolaylaştırır: kırmızı kabloyu 3.3V'a, siyahı toprağa, yeşili SCL'ye ve maviyi SDA'ya takın ve donanım kısmı için bu kadar. Yazılım için I2C iletişimi hakkında biraz okumanızı ve micro:bit'e eklediğim python kodunu denemenizi tavsiye ederim. Bu program size sensör tarafından ölçülen mesafeyi REPL'de yazdırmalıdır (Okuma Baskı Döngüsünü Değerlendirin). Bu kadar. Biz sadece mikro: bit'imize görüş verdik.

Şimdi hayvan anatomisi ile benzetmeme devam etmeme izin verirseniz, boynunu döndürelim. Buna ihtiyaç duyacağımız tek düşünce, micro:bit ile bir servo motor sürmek. Bu kısım uzuyor, bu yüzden size ihtiyacınız olan tüm bilgileri ve test etmek için kullandığım kodu içeren bu bağlantıyı vereceğim. Dilerseniz servoyu pin0 kullanarak kontrol etmek için basit bir kod da ekledim. Servonuzu 3,3V değil 5V ile çalıştırmayı unutmayın.

Adım 4: Pil Kalkanını Hackleme

Pil Kalkanını Hacklemek
Pil Kalkanını Hacklemek
Pil Kalkanını Hacklemek
Pil Kalkanını Hacklemek
Pil Kalkanını Hacklemek
Pil Kalkanını Hacklemek

Aktüatörlerimizi ve sensörlerimizi hazırladığımıza göre, pil yönetim sistemine bakmanın zamanı geldi. Seçtiğim pil kalkanı hakkında daha fazla bilgi edinmen için bu makaleyi okumanı tavsiye ederim. Bunu çok açık ve erişilebilir buluyorum. Bu makaleden bu pil kalkanının birçok avantajını görebiliyoruz, ancak kabul etmek istemediğim önemli bir dezavantaj var: ON/OFF anahtarı sadece USB çıkışını etkiliyor. Bu, anahtarı kapatırsanız, diğer tüm 3.3V ve 5V pinlerine güç sağlanacağı anlamına gelir. Sonuç olarak, robotumuz için bu pinleri kullandığımızdan, switch hiçbir şey yapmayacak…

Ama pilimi boşuna boşaltmamak için robotumu kapatabilmek istiyorum, bu yüzden pil kalkanını kırmak zorunda kaldım. Güzel olmayacak, ama işe yarıyor ve hiçbir maliyeti yok. Bu nedenle, pil hücremi pil kalkanından izole etmesi için devreyi açıp kapatmak için bir anahtar istiyorum. PCB'ye dokunacak ekipmanım yok ama her yerde plastik parçalarım var. Şimdi, yukarıdaki ilk resimde olduğu gibi, pil hücremin bir ucuna kalkanın içine sığabilmesi için bir plastik parçası kestiğimi hayal edin. Devre şimdi açık ve pilim güvenli bir şekilde saklanıyor.

Evet ama bu plastik parçayı koymak ve çıkarmak için pil kalkanına erişmek için robotu açmak zorunda kalmak istemiyorum! Kolay: bir anahtar alın ve anahtara bağlı kabloların her birine iki küçük kare alüminyum bantlayın. Şimdi iki alüminyum parçayı birbirinden izole etmek ve alüminyumun sisteminizin dışına maruz kalmasını sağlamak için bu iki alüminyum parçasını plastik parçaya bantlayın. Normalde böyle yapması gerekir. Yeni tasarımınızı hücrenin yanındaki pil kalkanına yerleştirin ve anahtar, hücreye bağlı devreyi açmanıza veya kapatmanıza izin vermelidir.

Son bir şey: Robotu monte etmeyi ve sökmeyi kolaylaştırmak için, pil kalkanına dişi başlıkları lehimlemenizi tavsiye ederim. Bu şekilde, motorlar ve sürücüleri ile oluşturduğunuz şeyi kolayca takıp çıkarabilirsiniz.

Adım 5: 3D Tasarım ve Kesim

3D Tasarım ve Kesim
3D Tasarım ve Kesim
3D Tasarım ve Kesim
3D Tasarım ve Kesim

Eksik olan tek şey, tüm bileşenlerimizi bir arada tutacak yapıyı oluşturmak. Bunu yapmak için çevrimiçi platform tinkercad'i kullandım. Bu, lazer kesici için bir şeyler tasarlamak için genellikle yeterli olan bazı temel CAD'leri yapmak için gerçekten güzel bir ortamdır.

Bir süre düşündükten sonra, tamir etme zamanı gelmişti. Bunu yapmak için sahip olduğum farklı parçaların 3D modellerini bir araya getirmeye başladım (önce servo ve TOF'u denklemin dışında tutarak). Buna pil ve kalkan, step motorlar ve motor sürücüleri ve tabii ki uzatma kartıyla birlikte micro:bit dahildir. İlgili tüm 3D modelleri stl dosyaları olarak ekledim. Süreci kolaylaştırmak için robotumu simetrik yapmaya karar verdim. Sonuç olarak robotun sadece yarısı ile uğraştım ve yukarıdaki resimde gösterilen tasarıma ulaştım.

Bundan iki tane seçtiğim birkaç versiyon hayata geçti:

  • Yakınlık sensörü olmadan oldukça düzenli, bu da hiçbir kablonun görünmemesine izin veriyor. Bu sürüm otonom olmasa da örneğin bir iPad aracılığıyla bluetooth aracılığıyla programlanabilir veya yukarıdaki videoda gösterildiği gibi örneğin başka bir mikro:bit tarafından gönderilebilen radyo sinyalleri kullanılarak kontrol edilecek şekilde programlanabilir.
  • Bir servo motor üzerine kurulu yakınlık sensörü sayesinde 180°'lik bir görüşle engelin mesafesini yakalamaya izin verdiği için mobil robotikte çok daha fazla ilerlemeye izin veren çok daha az düzenli.

Bunu oluşturmak için favori Fablab'ınıza gidin ve tercih ettiğiniz modeli kesmek için bulduğunuz lazer kesiciyi kullanın: ilki sırasıyla 5mm MDF'de kesilecek parçalara karşılık gelen design1_5mmMDF.svg ve design1_3mmMDF dosyalarına karşılık gelir. ahşap ve 3mm olandan kesilecek olanlar; ikincisi design2_5mmMDF.svg dosyasına karşılık gelir. Kesilecek siyah konturları ve kazınacak kırmızı konturları ayarlayın.

Yan not: Kırmızı deseni sadece pezevenk etmek için ekledim. Bu, ekli python kodunu kullanarak oluşturduğum bir Hilbert doldurma işlevidir.

Adım 6: Canavarı Monte Etme

Canavarı Monte Etme
Canavarı Monte Etme
Canavarı Monte Etme
Canavarı Monte Etme
Canavarı Monte Etme
Canavarı Monte Etme

Robotun ilk versiyonunu monte etmek için takip ettiğim adımlar şu şekildedir (resimler normalde doğru sırada olmalıdır):

  1. Motorların mavi kapağını çıkarın ve kablonun motorun arkasından dışarı çıkması için biraz kesin.
  2. M2 vidaları ve cıvataları kullanarak motorları her iki tarafa monte edin.
  3. 2x2mm delikler ve bazı vida ve cıvataları kullanarak prototip panosunu yanlara monte edin.
  4. A4988 sürücülerini yerleştirin ve düzenli tutmak için motor kablolarını bantlayın.
  5. Üniversal tekerleği alt parçanın altına monte edin ve yanları ekleyin.
  6. micro:bit'in uzatma kartını üst kısma monte edin.
  7. Esnek ön kapağın altını monte edin.
  8. Pil kalkanını yerleştirin ve her şeyi bağlayın (bunu yapmak için, hala istediğim genişletme kartının teslim edilmesini beklediğimden ve yalnızca dişi başlıklar dışarı çıkmış bir tane olduğu için, yönetmek için eski bir bilgisayardan bir IDE kablosunu geri dönüştürdüm. tüm bunları katlanabilir ön kapakla kapatmak için kablolarımı tahtaya yapıştırmayın). Verdiğim kodun uyarlanması çok kolay olmasına rağmen, doğrudan kullanmak için, sol STEP'i pin 2'ye, sağ STEP'i pin 8'e, sol DIR'yi pin 12'ye, sağ DIR'yi pin 1'e bağlamanız gerekecek.
  9. Uzantıya micro:bit'i koyun.
  10. Daha ileri gitmeden önce her şeyin MoveTest.py ile çalıştığını test edin.
  11. Anahtarı üst kısma monte edin ve plastik ucu lityum hücrenin yanına koyun.
  12. Ön kapağın üst kısmını vidalayın.
  13. Arkaya monte edin ve işiniz bitti! Vay! Bu kadar adım beklemiyordum! Bunu düşünmek ve yapmak, kelimelerle açıklamaktan çok daha kolay! (Ve eminim hala eksik bilgiler olacaktır!)

Yakınlık sensörlü ikinci versiyonu oluşturuyorsanız:

  1. Yukarıdaki talimatı izleyin. Tek fark, 7. adımda bazı M2 ayırıcılar eklemeniz gerekecek (gerçi ben öyle yaptım ama gerekli değil), 8. ve 13. adımları (ön kapak olmadığı için) yoksayın.
  2. Servo motoru M2 vidalarla monte edin ve servonun VCC ve GND'sini doğrudan pil kalkanının 5V'sine bağlayın ve kontrol girişini micro:bit'in 0 pinine bağlayın.
  3. Servonun üstüne çıkacak iki parça tahtayı bir vida ile monte edin, bunun üzerine TOF sensörünü ve servo ile birlikte gelen beyaz plastik parçayı vidalayın.
  4. Bu son üniteyi servoya monte edin ve sensörü, 3. adımda açıklandığı gibi mikro:bit'in I2C'sini kullanarak bağlayın.

Adım 7: Program

Bu kadar ! Mikro:python veya makecode olarak programlayabileceğiniz bir robotunuz var. Yukarıdaki videoları yapmak için kullandığım bazı örnek kodları buraya ekledim:

  • Örnek 1: Robotu ikinci micro:bit'in eğimini kullanarak kontrol etmek için radioControl.py'yi robotun micro:bit'ine ve ReadAccelero.py'yi başka bir micro:bit'e koyun.
  • Örnek 2: Autonomous.py'yi, çevreyi keşfedeceği robotun 2. sürümüne koyun.

Bunlar çok, çok daha ileri gitmek için kullanabileceğiniz temel örneklerdir. Örneğin, eşzamanlı yerelleştirme ve haritalamayı oldukça seviyorum ve normalde bunu yapmak için bu robotun 2. sürümünde ihtiyacınız olan her şey var! Böyle bir proje yapmamın benim için büyük bir dezavantajı olmasına rağmen, micro:bit PWM sürücüsünün tüm kanallar için aynı zamanlayıcıyı kullanan bir yazılım sürücüsü olması, yani ayarladığımız tüm PWM'lerin aynı frekansa sahip olması gerektiğidir (ki bu benim yaptığım bir şeydi). Autonomous.py yazarken garip bir şey tespit etsem de örnek kodları ne zaman yazdığımı bilmiyorum).

Adım 8: Daha İleri Gitmek

Tasarımı geliştirmekten çekinmeyin, görmediğim bazı sorunları çözün. Örneğin, sonunda yapmak istiyorum:

  • Zeminin siyah mı beyaz mı olduğunu veya masamın sonuna ulaşıp ulaşmadığını algılaması için robotun altına bir IR sensörü ekleyin.
  • Henüz memnun olmadığım için pil yönetim sistemini değiştirin. Aslında şu anda pili şarj etmek için, pili veya pil kalkanını çıkarmak için robotu sökmek gerekiyor… Bu nedenle şunları planlıyorum: 1. Robotun arkasına bir mini USB konektörü eklemek, ben şarj edebilmem için pil kalkanına bağlanacağım; 2. Şarjın ne zaman bittiğini görmek için pil kalkanındaki LED'leri görmek için altta bir delik açın.
  • PWM'leri farklı frekanslarda çıkarmanın kabul edilebilir bir yolu olup olmadığını kontrol edin.
  • TOF10120'yi değiştirmek için VL53L0XV2'yi deneyin, çünkü daha ucuz bir seçenek olabilir ve bu da daha fazla insanın erişebilmesini sağlar. Her ne kadar bu sensör hakkında daha fazla şey okumuş olsam da ve bunu ucuza yapan şirket bilerek uğraşmayı çok zorlaştırmış gibi görünüyor…
  • Tekerlekleri daha dayanıklı hale getirmek için farklı tasarımları test edin (Şu anda, tekerlekleri birçok kez içeri ve dışarı çıkarırsam, ahşabın giderek zarar göreceğini beklerdim. Ahşabı daha esnek hale getirirsem, tasarımı değiştirerek yapabilirim. daha uzun süre dayanabilir)

EPFL'nin Mobil robotik ekibinden (şimdi Biorobotics laboratuvarının bir parçası) elektronik ve mekanik bilgimi genişletmeme çok yardımcı olan insanlara çok teşekkürler!

Önerilen: