Mündəricat:

Arduino Nəzarətli Servo Robotu (SERB): 7 addım (şəkillərlə)
Arduino Nəzarətli Servo Robotu (SERB): 7 addım (şəkillərlə)

Video: Arduino Nəzarətli Servo Robotu (SERB): 7 addım (şəkillərlə)

Video: Arduino Nəzarətli Servo Robotu (SERB): 7 addım (şəkillərlə)
Video: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, Iyul
Anonim
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)
Arduino İdarə Edilən Servo Robotu (SERB)

Açıq mənbə mikro nəzarətçiləri (Arduino) ilə təcrübəyə başlamağın daha yaxşı yolu, öz şəxsi açıq mənbə robotunuzu (CC (SA -BY)) qurmaqla SERB ilə nə etməli?

  • (burada) - SERB -inizi internetə necə bağlamaq və onu Skype video zəngi ilə idarə etmək olar.
  • (burada) - Wii nunchuck sürətləndiricilərindən istifadə edərək SERB -ni necə idarə etmək olar
  • (burada) - Robotunuza Maneə Baxan Bığları Necə Əlavə Edə bilərsiniz
  • (burada) - 30 dəst necə hazırlanır (Açıq İstehsalat)

Xüsusiyyətləri:

  • Arduino Duemilanove mikro nəzarətçi (və ya seçdiyiniz başqa bir mikro nəzarətçi) istifadə edərək tam proqramlaşdırıla bilər.
  • Lehimləmək lazım deyil.
  • Akrilik parçalar üçün kəsmə variantlarının seçimi. (sürüşmə mişarı, lazer kəsiciyə giriş, əvvəlcədən kəsilmiş parçalar almaq)
  • Əlavə bolt delikləri və çörək taxtası ilə asanlıqla genişləndirilə və dəyişdirilə bilər.
  • İkili bilyalı arxa təkər.
  • 1-2 saat ərzində işə düşür. (dəstdən)
  • Açıq mənbə dizaynı (istədiyiniz qədər qurun)

(Utancsız Plug) İngiltərədə və Arduino məhsulları kimi? yeni açılmış veb mağazamıza baxın oomlout.co.uk Arduino ilə idarə olunan tamamlanmış servo robotun sürətli videosu - (SERB) daxil olan test proqramını işlədərək (6 -cı addım) Qeyd: Mənbə sənədləri paralel Təlimatla (Mənbə Dosyaları Üçün) mövcuddur - Arduino Nəzarətli Servo Robotu Necə Hazırlanır - (SERB)

Addım 1: Parçalar və Alətlər

Parçalar və Alətlər
Parçalar və Alətlər

Bütün cıvataları yerli Home Depotda tapa bilərsiniz. Digər hissələri onlayn olaraq tapa bilərsiniz (hər biri üçün ən çox sevdiyim mənbəyə bir keçid daxil etdim). Parçalar siyahısı: Bütün avadanlıqları ehtiva edən bir dəstəni oomlout.com mağazasından (burada) (120 dollar) Fındıq və Boltlardan almaq olar:

  • 3 mm x 15 mm bolt (x20)
  • 3 mm x 10 mm bolt (x12)
  • 3 mm qoz (x34)
  • 3 mm yuyucu (x12)
  • 8mm x 25mm bolt (x2)
  • 8 mm qoz (x2)
  • Skate Rulmanlar (x2) (VXB) (bunlar standart konki rulmanlarıdır, buna görə də bir cüt rulondan və ya skeytborddan xilas edilə bilər)

Təkərlər

  • Böyük O-ring (4.5 "ID 3/16" Bead Dash #349) (x2) (McMaster-Carr Product #9452K407)
  • Kiçik O-ring (3/4 "ID 3/16" Bead Dash #314) (x1) (McMaster-Carr Product #9452K387)

Elektronika

  • Arduino Duemilanove (x1) (Maker Tökmə)
  • Davamlı Dönmə Servo (x2) (Paralaks)
  • 400 Əlaqə Breadboard (x1) (Bütün Elektronik))
  • Dörd AA Batareya Qutu (x1) (Bütün Elektronika)
  • 9V Batareya Klipsi (x1) (Bütün Elektronik)
  • 2.1 mm Fiş (x1) (Bütün Elektronik)
  • 3 pin başlıq (x2) (Bütün elektronika)
  • A -B USB Kabeli - Printer Stili (x1) (Bütün Elektronika) (dəstə daxil deyil)

Batareyalar:

  • AA Batareya (x4) (dəstə daxil deyil)
  • 9v Batareya (x1) (dəstə daxil deyil)

Tel: (bütün tellər 22 AWG bərkdir, McMaster-Carr vasitəsilə mina alıram)

  • 15 sm Bənövşəyi (x2)
  • 15 sm Qara (x1)
  • 5 sm Qara (x2)
  • 5 sm Qırmızı (x2)

Alətlər

  • Tornavida (x1) (Philips)
  • İğne burun pensi (x1)

Addım 2: Parçaları kəsin

Parçaları kəsmək
Parçaları kəsmək
Parçaları kəsmək
Parçaları kəsmək
Parçaları kəsmək
Parçaları kəsmək
Parçaları kəsmək
Parçaları kəsmək

Zəhmət olmasa seçdiyiniz kəsmə seçiminə əsasən hansı addımların atılacağını seçin. Seçim 1 (Öncədən kəsilmiş hissələrin satın alınması)

Oomlout.com mağazasından əvvəlcədən kəsilmiş şassi alın (burada) (ABŞ və Kanadaya göndərmə daxil olmaqla 60 dollar)

Seçim 2 (Rəqəmsal İstehsalat (yəni. Ponoko) / Lazer kəsiciyə giriş)

  • Lazer kəsici planını yükləyin ("03 SERB Ponoko Cutting Layout P2.eps" və ya "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Faylları Ponoko istifadə edərək və ya öz Lazer Kesicinizlə kəsin (3 mm,.118 "akril (bəzən.125" olaraq satılır))

Seçim 3 (Kaydırma mişarı və qazma)

  • PDF naxışını yükləyin və çap edin (zəhmət olmasa kağız ölçüsünüzə uyğun olan faylı seçin) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (ölçüsünü ölçməmək vacibdir) çap edərkən rəsm)
  • Çapdakı hökmdarı etibar etdiyiniz bir hökmdarla ölçün, nümunəyə uyğun gəlmirsə ölçülüdür və yenidən çap etməzdən əvvəl printer parametrlərinizə baxmaq lazımdır. Əgər uyğun gəlsələr, irəli.
  • Nümunəni akril təbəqəyə yapışdırın (3mm,.118 "(bəzən.125" olaraq satılır).
  • Deliklər qazın.
  • Bir sürüşmə mişar istifadə edərək parçaları kəsin

Addım 3: Montaj

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Təbrik edirəm ki, bu prosesin 90% -i başa çatdı, yalnız bu addımdakı montaj təlimatlarını yükləyin (04- (SERB) -Assemble Guide.pdf) və bir az lego/mexano tərzi montajından sonra tel çəkməyə hazır olacaqsınız. Yolda sizi əyləndirmək üçün məclisimin bir müddət keçməsi:

Addım 4: Kabel çəkmə

Kablolama
Kablolama
Kablolama
Kablolama

Bütün böyük parçaları bir araya gətirərək robotumuzun idarə olunmasına imkan verəcək kiçik elektrik damarlarını əlavə etmə vaxtı gəldi. Bunu etmək üçün bağlama sxemini yükləyin və çap edin (05- (SERB) -Wiring Diagram.pdf). İlk baxışdan olduqca çətin görünə bilər, ancaq hər bir əlaqəni ardıcıl olaraq qurarsanız və vaxt ayırsanız, olduqca tez bir araya gəlir. Kablolama olduqca sadədir və siz batareyalar əlavə etməyincə dövrənizə heç bir zərər verə bilməz. Buna görə hər şeyi iki dəfə yoxlayın, sonra güc əlavə edin.

Addım 5: Test və Problem Giderme

Test və Problem Giderme
Test və Problem Giderme

Bir dəst sifariş etmisinizsə, Arduino bir test proqramı ilə əvvəlcədən yüklənmişdir. Yalnız 4 AA batareya qoyun və 9v batareyanı Arduinoya qoşun. Hər şey düzgün bir şəkildə edildiyində robotunuz hərəkət etməyə başlayacaq (1 ilə 2 saniyə arasında təsadüfi bir müddət irəli getməzdən əvvəl 0.1 ilə 1 saniyə arasında təsadüfi bir istiqamətə dönəcək və yenidən başlamazdan əvvəl 2 saniyə ara verin). Bir dəst satın almamısınızsa, əlavə bir addım tələb olunur. Əlavə edilmiş zip faylını yükləyin (07- (SERB)-SERB-Test Arduino Program.zip). Sonra Arduino eskiz kataloqunda açın (standart "Sənədlərim / Arduino \") və arduino lövhəsinə yükləyin. (Arduino ilə yeni tanışsınızsa, əla dərslərə başlamaq üçün bağlantıların olduğu bir addım qabağa gedin) Ümumi Problemlər: SERB dayandırıldıqda yavaş -yavaş hərəkət edir. Bu, servolarınızın kifayət qədər düzgün kalibr edilməməsinin nəticəsidir, servolarınızı kalibr etmək üçün proqramınızın servoları dayana qədər gözləyin, sonra kiçik bir tornavida ilə servonun içindəki potansiyometrini çevirin (tellərin olduğu yerin üstündəki servo korpusundakı kiçik açılış)). Servo həqiqətən dayandırılana qədər sola və ya sağa çevirin. İşlər kifayət qədər düzgün işləmir. Bizə simptomlarınız olan bir e-poçt göndərin və biz sizə kömək etməyə çalışacağıq, cavab gözləyərkən 4-cü addımdakı bütün tellərinizi iki dəfə yoxlayın. bu Təlimatlandırıcıya göndərin və ya [email protected] ünvanına bir e-poçt göndərin və SERB-in işləməsinə kömək etmək üçün əlimizdən gələni edəcəyik.

Addım 6: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma

Fiziki robot, beyin verməyə başlamağın vaxtıdır. Arduino İdarə Edilən Servo Robotunu (SERB) - İnternetdəki bəzi əla Arduino proqramlaşdırma mənbələrinə bir neçə proqramlaşdırma təfərrüatlarına girməzdən əvvəl. Arduino Başlanğıc Kılavuzu - Bələdçi Arduino ilə başlamağınıza kömək etmək üçün proqramlaşdırma mühitini yükləmədən ilk proqramınızı yazmağa qədər. - Arduino Servo kitabxanasının necə işlədiyi (servolarımızı necə idarə etdiyimiz). Yoxdan öyrənmə ilə proqramlaşdırma əldə etməyə imkan verir. Arduino İdarə Edilən Servo Robotunuzu (SERB) proqramlaşdırmağa başlamağın üç yolu var. Seçim 1: (SERB_Test.pde modifikasiyası) Bəzən proqramlaşdırarkən ən asan işçi proqramı götürmək və ona öz kodunuzu əlavə etməyə başlamaqdır. Bunu etmək üçün SERB_Test sıxılmış proqramını yükləyin (07- (SERB)-SERB-Test Arduino Program.zip). Bunu Arduino eskiz qovluğunda açmağa davam edin (standart "Sənədlərim / Arduino \"). Nəhayət Arduino proqramlaşdırma mühitini açın və Arduino -ya yükləyin. Kod yaxşı şərh edilmişdir. (Və ya bu addımdakı əlavədən kodu yeni bir Arduino Sketch-ə kopyalayıb yapışdırın) Seçim 2: (Proqramınıza SERB Rutinləri əlavə etmək) Əvvəlki proqramınıza (məsələn, goForward (), setSpeed (int) və s.). Bunu etmək üçün prosedurları mətn faylına yükləyin (07- (SERB)- Sadə Rutinlər Text.txt). 1. Giriş hissəsini kopyalayıb proqramınızın əvvəlinə yapışdırın.2. Rutin hissəni kopyalayıb proqramınızın gövdəsinə yapışdırın. SerbSetup () -ə zəng əlavə edin; Seçim 3: (sıfırdan öz proqramınızı yaratmaq) Bu çox çətin deyil. Lazım olan tək şey Arduino Servo Kitabxanası ilə tanış olmaqdır. Sonra sağ servo pin 9 -a, sol servo isə pin 10 -a bağlanır. Qeyd: Əlavə proqramlar inkişaf etdikcə bura əlavə olunacaq; və ya bir şey inkişaf etdirmək istəsəniz mənə xüsusi bir mesaj göndərin və əlavə oluna bilər. Əlavə: (SERB_Test.pde Kodu)

/ * * Arduino İdarə Edilən Servo Robotu (SERB) - Test Proqramı * Ətraflı məlumat üçün bura daxil olun: https://www.oomlout.com/serb * * Davranış: SERB * in təsadüfi olaraq sola və ya sağa dönməsinə səbəb olan sadə bir test proqramı. 0.1 ilə 1 saniyə arasında * təsadüfi bir müddət üçün. * SERB daha sonra 1 ilə 2 saniyə arasında təsadüfi bir müddət ərzində irəli hərəkət edəcək. Nəhayət * yenidən başlamazdan əvvəl 2 saniyə ara verin. * * Kablolama: Sağ Servo Siqnalı - pin 9 * Sol Servo Sinyali - pin 10 * * Lisenziya: Bu iş Creative Commons altında lisenziyalaşdırılmışdır * Attribution -Share Alike 3.0 Unported Lisenziyası. * Bu lisenziyanın surətini görmək üçün * https://creativecommons.org/licenses/by-sa/3.0/ * ünvanına daxil olun və ya Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * ABŞ. * */// --------------------------------------------- ----------------------------- // ARDUINO KONTROLLÜ SERVO ROBOTUNUN BAŞLANMASI (SERB) PREAMBLE #include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo solServo; Servo sağ Servo; int sürəti = 100; // robotun (hər iki servo) sürətini təyin edir // 0 ilə 100 arasında bir faiz // ARDUINO KONTROLLÜ SERVO ROBOTUNUN (SERB) PREAMBLE SONU // ---------------- -------------------------------------------------- --------/ * * pinləri uyğun vəziyyətlərə qoyur və servoları bağlayır. Sonra proqram başlamazdan əvvəl 1 saniyə * durdurun */ void setup () {serbSetup (); // bütün zəruri // sancaqların vəziyyətini təyin edir və eskizinizə servoları əlavə edir randomSeed (analogRead (0)); // təsadüfi ədəd toxumunu // ilə bir az təsadüfi gecikmə ilə təyin edir (1000);}/ * * robotu * 0.1 ilə 1 saniyə arasında sola və ya sağa (təsadüfi) çevirir. 1 ilə 4 saniyə arasında təsadüfi bir müddət * irəli getməzdən əvvəl. İki saniyə ara vermədən sonra yenidən * başladın. */Void loop () {turnRandom (100, 1000); //.1 saniyə // və bir saniyəlik goForwardRandom (1000, 2000) arasında // təsadüfi bir müddət üçün təsadüfi olaraq sola və ya sağa dönür; // Təsadüfi bir müddət üçün irəli gedir // // 1-2 saniyə arasında goStop (); // Robot gecikməsini dayandırır (2000); // 2 saniyə fasilə edir (dayanarkən)}/ * * robotu * minTime (milisaniyə) və maxTime (milisaniyə) */void turnRandom (int minTime, int maxTime) {int arasında təsadüfi bir müddət ərzində təsadüfi olaraq sola və ya sağa çevirir. seçim = təsadüfi (2); // Qərar vermək üçün təsadüfi ədəd // sol (1) və sağ (0) arasında int turnTime = təsadüfi (minTime, maxTime); // Fasilə üçün təsadüfi say // zaman (seçim == 1) {goLeft ();} // Təsadüfi ədəd = 1 olarsa // sola başqa istiqamətə dön {goRight ();} // Təsadüfi ədəd = 0 olarsa dönüş // sağ gecikmə (turnTime); // təsadüfi zaman üçün gecikmə}/ * * minTime (milisaniyə) * və maxTime (milisaniyə) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = təsadüfi (minTime, maxTime) arasında təsadüfi bir müddət ərzində irəli gedir; // təsadüfi bir zaman təyin etmək // irəli getmək goForward (); // SERB irəli gecikməsini təyin edir (forwardTime); // təsadüfi müddət üçün gecikmələr} // ---------------------------------------- -------------------------------- // ARDUINO KONTROLLÜ SERVO ROBOTUNUN BAŞLANMASI (SERB) ROUTINES/ * *, arduino, daxil edilmiş prosedurlardan istifadə edərək SERB -ə müraciət etmək üçün*/void serbSetup () {setSpeed (sürət); pinMode (LEFTSERVOPIN, ÇIXIŞ); // sol servo siqnal pinini təyin edir // çıxış pinMode (RIGHTSERVOPIN, ÇIXIŞ); // sağ servo siqnal pinini təyin edir // leftServo.attach (LEFTSERVOPIN) çıxışına; // sol servo sağa əlavə edirServo.attach (RIGHTSERVOPIN); // sağ servo qoşur goStop ();}/ * * robotun sürətini 0- (dayandı) ilə 100- (tam sürət) arasında təyin edir * QEYD: sürət cari sürəti dəyişməyəcək, sürəti dəyişdirməlisiniz * sonra zəng edin dəyişikliklər baş verməzdən əvvəl gediş üsulları.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // sürət 100 -dən çox olarsa // olarsa onu 100 -ə çevirin (newSpeed <= 0) {newSpeed = 0;} // əgər sürət 0 -dan azdırsa // olun 0 sürət = newSpeed * 0.9; // 0 -dan 90 -a qədər olan sürəti ölçür/ * * robotu irəli göndərir */void goForward () {leftServo.write (90 + sürət); rightServo.write (90 - sürət);}/ * * robotu geriyə göndərir */void goBackward () {leftServo.write (90 - sürət); rightServo.write (90 + sürət);} / * * robotu sağa göndərir * /void goRight () {leftServo.write (90 + sürət); rightServo.write (90 + sürət);}/ * * robotu sola göndərir */void goLeft () {leftServo.write (90 - sürət); rightServo.write (90 - sürət);}/ * * robotu dayandırır */void goStop () {leftServo.write (90); rightServo.write (90);} // ARDUINO KONTROLLÜ SERVO ROBOTU (SERB) RUTİNLƏRİNİN SONU // ---------------------------- -----------------------------------------------

Addım 7: Bitdi, Bitirdikləri Digərləri və Gələcək

Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək
Bitirdi, Başqaları Bitirdi və Gələcək

Bu yerə çatmağınız münasibətilə təbrik edirəm və ümid edirəm ki, Arduino Kontrollü Servo Robotunuzla (SERB) əylənirsiniz. Michael Beck -in SERB -Michael SERB planlarını Thingiverse.com saytında tapdı və sarı və qırmızı akrildən kəsdi. Düşünürəm ki, çox gözəl görünür. Maykın SERB - Mike (St. Louis Bölgəsi robot klubu ROBOMO) bir dostu lazerlə SERB şassisini kəsdi və onu işə salmaq üçün öz robot nou -haunu istifadə etdi. Məncə mavi rəngdə işlənmiş gözəl görünür. (bu və digər robotları haqqında ətraflı məlumat üçün veb saytına baxın (burada) Bu bölmədə gələcək inkişaflar və əlavələr haqqında detallar olacaq (düzgün sənədləşdirilməmişdən əvvəl burada göstəriləcək). Amma şəkilləri də göstərmək istərdim Başqa xalqlardan SERB -lər. Buna görə də bitirdinizsə, mənə bir şəkil və bir neçə sözlə şəxsi bir mesaj göndərin (təsviri və ya veb saytınıza keçid olsun) və bura əlavə edəcəyəm. Bu əyləncəli digər açıq mənbə layihələri üçün oomlout.com saytına baxın.

SANYO eneloop Battery Powered Yarışmasında birinci mükafat

Tövsiyə: