Mündəricat:

OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE): 5 addım (şəkillərlə)
OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE): 5 addım (şəkillərlə)

Video: OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE): 5 addım (şəkillərlə)

Video: OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE): 5 addım (şəkillərlə)
Video: Arduino Devre Tasarımı | 0 Dan Siparişe | MCU SERISI 2024, Iyun
Anonim
Image
Image
OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE)
OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE)
OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE)
OAREE - 3D Çaplı - Arduino ilə Mühəndislik təhsili üçün maneələrdən qaçan robot (OAREE)

OAREE (Mühəndislik təhsili üçün maneələrdən qaçan robot)

Dizayn: Bu təlimatın məqsədi sadə/kompakt, 3D çap edilə bilən, yığılması asan, hərəkəti üçün davamlı fırlanma servolarından istifadə edən və mümkün qədər az satın alınan hissəyə malik olan OAR (Maneələrdən Qaçan Robot) robotu dizayn etmək idi. İnanıram ki, bu möhtəşəm robotu yaratmağa müvəffəq oldum və ona OAREE (Mühəndislik təhsili üçün maneə törədən robot) adını verdim. Bu robot maneələri hiss edəcək, dayanacaq, sola və sağa baxacaq, sonra maneəsiz istiqamətə dönəcək və irəli davam edəcək.

Ümumi məlumat: İnternetdə robotların qarşısını almaq üçün çoxsaylı maneələr var, lakin əksəriyyəti həcmli, yığılması çətin və bahalıdır. Bu robotların çoxunda Arduino kodu verilir, amma yaxşı düşünülmüş, işləyən bir nümunə tapmaq çətindi. Hələ edilməmiş təkərlər üçün (DC mühərrikləri əvəzinə) davamlı fırlanma servolarından istifadə etmək istədim. Beləliklə, dünya ilə bölüşmək üçün yığcam, ixtiraçı OAR robotu hazırlamaq missiyasına başladım.

Əlavə İnkişaf: Bu robot daha yaxşı pinq dəqiqliyi, xətt izləmə qabiliyyəti üçün IR sensorlar, maneə məsafəsini göstərmək üçün LCD ekran və daha çox şeylər üçün daha da inkişaf etdirilə bilər.

Təchizat

  • 1x Arduino Uno -
  • 1x V5 Sensor Qalxanı -
  • Açma/Dəyişdirmə ilə 1x 4xAA Batareya Tutacağı -
  • 1x SG90 Servo -
  • 2x Davamlı Dönmə Servosu -
  • Arduino üçün 1x 9V Batareya Güc Kabeli (İSTEĞE BAĞLI) -
  • 1x HC -SR04 Ultrasonik Sensor -
  • 4x Qadın-Qadın Jumper Telləri-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x rezin bantlar
  • 1x 9V Batareya (İSTEĞE BAĞLI)
  • 4x AA Batareyalar
  • 4x Kiçik Vidalar (4 x 1/2 və ya buna bənzər bir şey)
  • Phillips tornavida
  • Rezin bantları təkərlərə bağlamaq üçün yapışqan

Addım 1: 3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6 mm Bolt/qoz və Ultrasonik Sensor Dağı

3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6mm Bolt/Fındıq və Ultrasonik Sensor Dağı
3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6mm Bolt/Fındıq və Ultrasonik Sensor Dağı
3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6mm Bolt/Fındıq və Ultrasonik Sensor Dağı
3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6mm Bolt/Fındıq və Ultrasonik Sensor Dağı
3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6mm Bolt/Fındıq və Ultrasonik Sensor Dağı
3D Çap: Bədən, Təkərlər, Mərmər Döküm, 6mm Bolt/Fındıq və Ultrasonik Sensor Dağı

3D çap üçün 5 hissə var.

  1. Bədən
  2. Təkərlər
  3. Mərmər tökmə
  4. 6 mm Bolt/Somun (isteğe bağlı olaraq, metal qoz/boltla əvəz edilə bilər)
  5. Ultrasonik Sensor Dağı

Bütün tələb olunan. STL faylları bu təlimatlandırıcıya və Sketchup fayllarına daxil edilir. 40% doldurmaq məsləhətdir.

Addım 2: Arduino proqramlaşdırın

Image
Image
Robotu yığın
Robotu yığın

Arduino UNO -ya Kod Göndərin: Arduino IDE -dən istifadə edərək kodu (əlavə edilmiş faylda) Arduino modulunuza göndərin. Bu eskizlə servo.h və newping.h kitabxanalarını yükləməli və daxil etməlisiniz.

Kod hərtərəfli şərh olunur, buna görə hər bir əmrin nə etdiyini görə bilərsiniz. İstəsəniz Ultrasonik Sensor məsafəsini daha böyük və ya daha kiçik bir dəyərə dəyişə bilərsiniz. Bu ilkin koddur və genişləndirilməli və layihənin daha da inkişafı üçün istifadə edilməlidir.

// ROBOTDAN KAÇINMAYAN MƏNCİLƏLƏR // [email protected], [email protected], Chattanooga TN Universiteti, Elektrik Mühəndisliyi, GÜZ 2019 // Lazım olan materiallar: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ultrasonik Sensor, 4) FS90 Servo (Ultrasonik Sensor üçün) // 5 və 6) 2x Təkərlər üçün 2X SÜREKLİ DÖNDÜRMƏ SERVOLARI // 7) Arxa təkər döngəsi üçün 16 mm Mərmər, 8 və 9) Təkərlər üçün 2 rezin bant // 10- 15) 1x (4xAA) Açma/söndürmə açarı olan batareya tutacağı, 16 və 17) Arduino UNO -ya qoşulan 9V batareya // 3D PRINT: // 18) ROBOT Korpusu, 19 və 20) 2x Təkərlər, 21) Mərmər Döküm, 22) Ultrasonik Sensor Montaj və 6 mm vida (əlavə edilmiş fayllara baxın) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #daxil edin // Servo Kitabxanasını daxil edin #daxil edin // Newping Kitabxanasını daxil edin // ------------------------------------------- -------------------------------------------------- ------------------------------------ #tetikleyici_pini təyin edin 1 2 // ABŞ tetikleyicisi Arduino'da 12 pin təyin edəcək #define ECHO_PIN 13 // US Echo, Arduino'da 13 pin təyin etmək üçün #define MAX_DISTANCE 250 // Pingə qədər olan məsafə (maksimum 250) int məsafə = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonik Sensor Servo Servo Left_Servo; // Sol Təkər Servo Servo Sağ_Servo; // Sağ Təkər Servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Sancaqlar və maksimum məsafənin NewPing qurulması. // ------------------------------------------------ -------------------------------------------------- ------------------------------- void quraşdırma () // GİRİŞ/ÇIKIŞLAR, HARA ATAKSINIZ, İLK MÖVQE/HƏRƏKƏT {pinMode (12, ÇIXIŞ); // Tətik pin pinMode (13, INPUT) olaraq təyin edildi; // US_Servo.attach (11) girişi olaraq təyin olunan yankı pin; // US Servo 11 US_Servo.write (90) sancağına təyin edildi; // US SERVO İLƏ BAXIR

Left_Servo.attach (9); // Sol təkər servosu pin 9 -a

Left_Servo.write (90); // LEFT WHEEL SERVO DURDUR

Right_Servo.attach (10); // Sağ Təkər servosu pin 10 -a təyin edildi

Right_Servo.write (90); // RIGHT WHEEL SERVO STOP gecikməsini təyin etdi (2000); // 2 saniyə gözləyin məsafə = readPing (); // Düz irəli mövqe gecikməsində Ping Məsafəsi alın (100); // 100 ms MoveForward () gözləyin; // ROBOT İLƏ HƏRƏK EDİR} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // 0 məsafədə ABŞ məsafəsini sağa başlayınLift: 0; // 0 -dan sola ABŞ məsafəsini başladın //US_Servo.write(90); // Center US servo // delay (50); // US_Servo.write (70); // Biraz Sağa Bax // gecikmə (250); // US_Servo.write (110); // Biraz Sola Bax // gecikmə (250); // US_Servo.write (90); // Mərkəzə baxın

if (məsafə <= 20) // Robot HAREKETLİDİR {moveStop (); // Robot məsafədə dayanır = məsafəSol) // Hansı istiqamətə dönəcəyinizə qərar verin {turnRight (); // Sağ tərəf ən böyük məsafəyə malikdir, ROBOT 0.3 saniyə gecikmə üçün sağa dönür (500); // Bu Gecikmə növbənin uzunluğunu müəyyən edir moveStop (); // Robot STOPS} başqa {turnLeft (); // Sol tərəfdəki ən böyük məsafə, ROBOT 0.3s gecikmə üçün SOLU AÇIR (500); // Bu Gecikmə növbənin uzunluğunu müəyyən edir moveStop (); // Robot STOPS}} başqa {moveForward (); // Robot İLƏ HƏRƏKAT edir} məsafə = readPing (); // ABŞ yeni səyahət istiqaməti üçün YENİ PING oxuyur} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrasonik Sensor SAĞ FUNKSİYA BAXIN {US_Servo.write (30); // ABŞ servosu bucaq gecikməsinə doğru hərəkət edir (500); int məsafəsi = readPing (); // Sağ gecikmə üçün ping dəyərini təyin edin (100); US_Servo.write (90); // ABŞ servosu MƏRKƏZƏ QAYDARMA məsafəsi; // Məsafə təyin edildi} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Ultrasonik Sensor SOL FUNKSİYASINA GÖRÜN {US_Servo. yazın (150); // ABŞ servo bucağı gecikdirmək üçün sola hərəkət edir (500); int məsafəsi = readPing (); // Sol gecikmə üçün ping dəyərini təyin edin (100); US_Servo.write (90); // ABŞ servosu MƏRKƏZƏ QAYDARMA məsafəsi; // Məsafə təyin edildi} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Ultrasonik Sensor üçün Ping Function oxuyun. {gecikmə (100); // pinglər arasında 100 ms (min ping vaxtı = 0,29 ms) int cm = sonar.ping_cm (); // PING məsafəsi toplanır və sm ilə təyin olunur, əgər (cm == 0) {cm = 250; } sm qaytar; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 irəli, 0 tərs Sağ_Servo.write (90); // RightServo 0 irəli, 180 tərs} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // İLƏ ROBOT {Sol_Servo.yaz (180); // LeftServo 180 irəli, 0 tərs Sağ_Servo.write (0); // RightServo 0 irəli, 180 tərs} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Sol_Servo. yaz (0); // LeftServo 180 irəli, 0 tərs Sağ_Servo.write (180); // RightServo 0 irəli, 180 tərs} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Sol_Servo.yaz (180); // LeftServo 180 irəli, 0 tərs Sağ_Servo.write (90); // RightServo 0 irəli, 180 tərs} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT SOL {Sola_Servo.yaz (90); // LeftServo 180 irəli, 0 tərs Sağ_Servo.write (0); // RightServo 0 irəli, 180 tərs} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Addım 3: Robotu yığın

Image
Image
Robotu yığın
Robotu yığın
Robotu yığın
Robotu yığın

Robotunuzu bir yerə yığmağın vaxtı gəldi. Addımlar aşağıda verilmişdir.

1) Təkərlərə Dairəvi Servo Disk və Kauçuk Bantlar bağlayın: Bütün servolar plastik montaj aparatları və vintlər ilə gəlir. Dəyirmi diskləri tapın və təkərlərin düz tərəfindəki iki çuxura vidalayın. Rezin bantlar tutuşu təmin etmək üçün təkərin ətrafına oturur. Kauçuk bantları yerində saxlamaq üçün bir az yapışqan əlavə etmək istəyə bilərsiniz.

2) Mərmər Döküm Əlavəsi: Mərmər tökəni arxadakı iki üçbucağa bağlamaq üçün iki kiçik vida istifadə edin. Mərmər tökmə arxa təkər üçün sadə bir əvəzdir və arxa dönmə nöqtəsi təmin edir.

3) Servoları yuvalara daxil edin (vintlərə ehtiyac yoxdur): FS90 Servo (Ultrasonik Sensor üçün) gövdənin ön yuvasına yerləşdirin. İki davamlı fırlanma servosu sola və sağa sürüşür. Yuvalar möhkəm oturmaq üçün nəzərdə tutulmuşdur, belə ki, servoları yerində saxlamaq üçün heç bir vida tələb olunmur. Servo tellərin gövdənin arxasına baxacaq şəkildə yuvaların yivlərindən keçdiyinə əmin olun.

4) 9V Batareyanın Yerləşdirilməsi (İSTEĞE BAĞLI): 9V batareya + Arduino güc konnektorunu ön servonun arxasına yerləşdirin.

5) Ultrasonik Sensor Montajı Qurğusu: Daxili ağ plastik servo əlavələrdən birini Ultrasonik Sensor montaj lövhəsinin altına bağlamaq üçün iki kiçik vida istifadə edin. Sonra, Ultrasonik Sensor korpusunu montaj lövhəsinə bağlamaq üçün 3D çaplı 6 mm bolt/qozdan (və ya metal bolt/qozla əvəz edin) istifadə edin. Nəhayət, sancaqları yuxarıya doğru baxaraq kassaya yerləşdirin və qutunun arxasına yapışdırın.

6) 4x AA Batareya Çantası: AA batareya qutusunu açma/söndürmə açarı arxaya baxaraq böyük düzbucaqlı bir yerə qoyun.

7) Arduino Uno + V5 Sensor Shield: Qalxanı Arduinoya bağlayın və batareya korpusunun üstündəki dayaqlara yerləşdirin. Güc konnektoru sola baxmalıdır.

Robotunuz quruldu! Nə qaldı? Arduino və Bağlayıcı Jumper Tellərinin Proqramlaşdırılması: Servolar, Ultrasonik Sensor və Güc Təchizatı.

Addım 4: Sensor tellərini bağlayın

Image
Image
Bitdi !!! 9V Arduino Güc Təchizatına qoşun, Batareya Paketini yandırın və OAREE ilə maneələrdən qaçmağa başlayın
Bitdi !!! 9V Arduino Güc Təchizatına qoşun, Batareya Paketini yandırın və OAREE ilə maneələrdən qaçmağa başlayın

Servo tellərini V5 Shield -ə qoşun:

  1. Sol Davamlı Dönmə Servo PİN 9 -a bağlanır
  2. Sağ Davamlı Dönmə Servo PİN 10 -a bağlanır
  3. Ön FS90 Servo PİN 11 -ə qoşulur

Ultrasonik Sensor Pimlərini (4x Dişi ilə Dişi Jumper Telləri vasitəsilə) V5 Shield -ə qoşun:

  1. PIN 12 -ni işə salın
  2. PIN 13 -ə təkrarlayın
  3. 'V' ilə işarələnmiş hər hansı bir pin üçün VCC
  4. 'G' ilə işarələnmiş hər hansı bir pin üçün əsas

AA Batareya Kassasını V5 Qalxanına qoşun:

  1. Müsbət, qırmızı teli VCC bağlayıcısına bağlayın
  2. Zəmin bağlantısına mənfi, qara teli bağlayın

Addım 5: Bitdi !!! 9V Arduino Güc Təchizatına qoşun, Batareya Paketini yandırın və OAREE ilə maneələrdən qaçmağa başlayın

Image
Image
Bitdi !!! 9V Arduino Güc Təchizatına qoşun, Batareya Paketini yandırın və OAREE ilə maneələrdən qaçmağa başlayın
Bitdi !!! 9V Arduino Güc Təchizatına qoşun, Batareya Paketini yandırın və OAREE ilə maneələrdən qaçmağa başlayın

Bitdi !

1) 9V Arduino enerji təchizatını qoşun (İsteğe bağlı)

2) Batareya paketini yandırın

3) OAREE ilə maneələrdən qaçmağa başlayın !!!

Əminəm ki, yeni bir dostunuz olan OAREE -ni, bir maneə hiss etdiyini, geri çəkiləcəyini və istiqamətini dəyişdiyini izlədikdən sonra onu sevəcəksiniz. OAREE, Ultrasonik Sensorun (divarlar kimi) çıxa biləcəyi böyük obyektlərlə ən yaxşı işləyir. Kiçik səth sahəsi və küncləri səbəbindən kürsü ayaqları kimi xırda əşyaları sıxmaqda çətinlik çəkir. Zəhmət olmasa paylaşın, daha da inkişaf etdirin və lazım olan düzəlişlər və ya səhvlər barədə mənə bildirin. Bu böyük bir öyrənmə təcrübəsi oldu və ümid edirəm ki, bu layihəni mənim etdiyim qədər çox əylənəcəksiniz!

Robot Yarışması
Robot Yarışması
Robot Yarışması
Robot Yarışması

Robototexnika Yarışmasında 2 -ci yer

Tövsiyə: