Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
3D printerimi əldə edəndə onunla nə edə biləcəyimi düşünməyə başladım. Çox şey çap etdim, amma 3D çapdan istifadə edərək bütöv bir tikinti etmək istədim. Sonra robot heyvan hazırlamaq barədə düşündüm. İlk fikrim bir it və ya hörümçək etmək idi, amma bir çox insan artıq it və hörümçək düzəltmişdi. Fərqli bir şey düşündüm, sonra ilan haqqında düşündüm. Bütün ilanı fusion360 -da hazırladım və zəhmli göründü, buna görə lazım olan hissələri sifariş etdim və birini tikdim. Hesab edirəm ki, nəticə çox yaxşıdır. Yuxarıdakı videoda bunu necə düzəltdiyimi görə bilərsiniz və ya aşağıda bu barədə danışa bilərsiniz.
Addım 1: hissələr
İşdə bizə lazım olan budur:
- 8 mikro servo mühərrik
- Bəzi 3D çaplı hissələr
- Vintlər
- 3, 7V li-po batareya
- PCB etmək üçün bəzi hissələr (atmega328 SMD, kondansatör 100nF, kondansatör 470μF, rezistor 1, 2k, bəzi qızıl pinlər). Bu layihə üçün PCB etmək çox vacibdir, çünki hər şeyi çörək taxtasına bağladığınız zaman ilanınız hərəkət edə bilməyəcək.
Addım 2: 3D Modellər
Yuxarıda bu ilanın görüntüsünü görə bilərsiniz. Faylları (.stl) buradan və ya başqa bir şeydən yükləyə bilərsiniz. Çap üçün parametrlər haqqında bəzi məlumatlar:
Segmentləri və başı çap etmək üçün sal əlavə etməyi məsləhət görürəm. Bütün obyektlər üçün dəstək lazım deyil. Doldurma o qədər də vacib deyil, çünki bütün modellər çox incədir və demək olar ki, yalnız ətraflar var, amma 20%-dən istifadə edirəm.
Ehtiyacınız var:
8x ilan seqmenti
1x ilan başı
1x ilan geri
Addım 3: PCB
Aşağıda qartal fayllarını (.sch və.brd) tapa bilərsiniz, sadəcə onları kartalda açaraq lövhə görünüşünə keçin ctrl + p düyməsini basın və çap edin. PCB -ni necə edəcəyinizi bilmirsinizsə, bu barədə burada məlumat əldə edə bilərsiniz:
www.instructables.com/id/PCB-making-guide/
Şemada mikrokontrolörün atmega8 olduğu yazılıb, amma atmega328 -də eyni pinout var, amma kartalda atmega328 yoxdur.
Addım 4: Montaj
Bütün hissələri çap etdikdən sonra birlikdə yığa bilərsiniz. Servanı seqmentlərdən birinə yerləşdirin, M2 vida ilə bölün və sonra növbəti seqmenti servo qoluna vidalayın. Bunu necə yığacağınızı bilmirsinizsə, videoya baxa bilərsiniz.
Addım 5: Bağlantı
Yuxarıdakı fotoşəkildə haraya və nəyə qoşulacağınızı görə bilərsiniz. Yükləyicini yandırmaq üçün bu pinə ehtiyacınız olan MISO, MOSI və SCK pininin harada olduğunu da qeyd etdim. Bootloader -ı yandırmaq haqqında daha çox məlumatı rəsmi arduino səhifəsindən əldə edə bilərsiniz:
www.arduino.cc/en/Tutorial/ArduinoToBreadboard
Yandırmaq üçün proqramçı və ya başqa bir arduino lazımdır. Yandırdıqdan sonra onu USB-UART çeviricisindən və ya bootloader yazmaq üçün istifadə etdiyiniz proqramçıdan istifadə edərək proqramlaşdıra bilərsiniz.
Proqramı yüklədikdən sonra servoya lövhəyə qoşula bilərsiniz. Son servo (ilanın sonunda) servo 1 və servo 8 ilanın başına ən yaxındır.
Lövhədə heç bir stabilizator yoxdur ki, ona qoşula biləcəyiniz maksimum gərginlik 5V olsun.
Atmega və servo mühərriklər 3, 7V Li-Po ilə işləyəcək və çox kiçik və çox güclü olduğu üçün bu layihə üçün istifadə etməyi məsləhət görürəm. Köhnə RC oyuncağında tapa bilərsiniz (köhnə RC vertolyotunda tapdım).
RX və TX lövhələrini proqramlaşdırmaq üçün əlavə etdim, həm də gələcəkdə genişləndirmək üçün buraya sensorlar bağlaya bilərsiniz və ya məsələn. bluetooth modulu.
Addım 6: Proqram
Proqram bir anda 8 servo idarə etmək üçün proqram servo kitabxanasından istifadə edir. Sadəcə dalğanı təqlid etmək üçün kiçik bir dəyişmə ilə servo mövqeyini artırmaq və azaltmaqdır. Bu hərəkət sayəsində qurd kimi görünür, həm də daha səmərəli hərəkət edir.
İstəsəniz, döngənin sonunda gecikməni dəyişə bilərsiniz. Bu gecikmə ilanın sürətini idarə edir. Kiçik bir dəyər versəniz daha sürətli, daha yüksək dəyər = daha yavaş hərəkət edəcək. 6 verdim, çünki bu, ilanın yuvarlanmadığı ən yüksək sürətdir. Ancaq bununla təcrübə edə bilərsiniz.
Hərəkətləri daha böyük etmək üçün maksimum və minimum dəyəri də dəyişə bilərsiniz.
#daxil edin
Proqram təminatı Servo servo1, servo2, servo3, servo4, servo5, servo6, servo7, servo8;
int b_pos, c_pos, d_pos, e_pos; String əmri; int fərqi = 30; int açısı1 = 90; int bucağı2 = 150;
int ser1 = 30;
int ser2 = 70; int ser3 = 110; int ser4 = 150;
int minimum = 40;
int maksimum = 170;
bool increment_ser1 = doğru;
bool increment_ser2 = doğru; bool increment_ser3 = doğru; bool increment_ser4 = doğru;
bool increment_ser5 = doğru;
int ser5 = 90;
bool increment_ser6 = doğru;
int ser6 = 90;
boş quraşdırma () {
Serial.begin (9600); servo1. əlavə (3); servo2. əlavə (5); servo3. əlavə (6); servo4.tach (9); servo5. əlavə (10); servo6. əlavə (11); servo7. əlavə (12); servo8. əlavə (13);
servo1.write (90);
servo2.write (130); servo3.write (90); servo4.write (100); servo5.write (90); servo6.write (90); servo7.write (90); servo8.write (90);
}
boşluq döngəsi () {
irəli (); SoftwareServo:: yeniləmə (); }
irəli boş () {
əgər (increment_ser1) {
ser1 ++; } başqa {ser1--; }
if (ser1 maksimum) {
increment_ser1 = yalan; }
servo1.write (ser1);
əgər (increment_ser2) {
ser2 ++; } başqa {ser2--; }
if (ser2 maksimum) {
increment_ser2 = yalan; }
servo3.write (ser2);
əgər (increment_ser3) {
ser3 ++; } başqa {ser3--; }
if (ser3 maksimum) {
increment_ser3 = yalan; }
servo5.write (ser3);
əgər (increment_ser4) {
ser4 ++; } başqa {ser4--; }
if (ser4 maksimum) {
increment_ser4 = yalan; }
servo7.write (ser4);
gecikmə (6);
}
Addım 7: Nəticə
Düşünürəm ki, bu robot çox yaxşı görünür. Bir ilan robotu etmək istəyirdim, amma sonda qurdlara bənzəyən bir şey hazırladım. Amma çox gözəl işləyir. Hər hansı bir sualınız varsa, şərh yazın və ya mənə yazın: [email protected]
Bu robot haqqında veb saytımda da oxuya bilərsiniz (Polşa dilində):
nikodembartnik.pl/post.php?id=3
Bu robot Chorzowda keçirilən Robotlar Festivalında sərbəst stil kateqoriyasında birinci mükafatı qazandı.
2016 -cı ildə Robototexnika Yarışmasında İkinci Mükafat