İçindekiler:

OAREE - 3D Baskılı - Arduino İle Mühendislik Eğitimi için Engelden Kaçınan Robot (OAREE): 5 Adım (Resimlerle)
OAREE - 3D Baskılı - Arduino İle Mühendislik Eğitimi için Engelden Kaçınan Robot (OAREE): 5 Adım (Resimlerle)

Video: OAREE - 3D Baskılı - Arduino İle Mühendislik Eğitimi için Engelden Kaçınan Robot (OAREE): 5 Adım (Resimlerle)

Video: OAREE - 3D Baskılı - Arduino İle Mühendislik Eğitimi için Engelden Kaçınan Robot (OAREE): 5 Adım (Resimlerle)
Video: Sıfırdan EAGLE ile PCB tasarım yayınları başlıyor - ( Bölüm 0 ) 2024, Eylül
Anonim
Image
Image
OAREE - 3D Baskılı - Arduino ile Mühendislik Eğitimi (OAREE) için Engelden Kaçınan Robot
OAREE - 3D Baskılı - Arduino ile Mühendislik Eğitimi (OAREE) için Engelden Kaçınan Robot
OAREE - 3D Baskılı - Arduino ile Mühendislik Eğitimi (OAREE) için Engelden Kaçınan Robot
OAREE - 3D Baskılı - Arduino ile Mühendislik Eğitimi (OAREE) için Engelden Kaçınan Robot

OAREE (Mühendislik Eğitimi için Engelden Kaçınan Robot)

Tasarım: Bu talimatın amacı, basit/kompakt, 3D yazdırılabilir, montajı kolay, hareket için sürekli dönüş servoları kullanan ve mümkün olduğunca az satın alınan parçaya sahip bir OAR (Engelden Kaçınan Robot) robotu tasarlamaktı. Bu harika robotu yaratmayı başardığıma ve ona OAREE (Mühendislik Eğitimi için Engelden Kaçınan Robot) adını verdiğime inanıyorum. Bu robot engelleri algılayacak, duracak, sola ve sağa bakacak, ardından engelsiz yöne dönecek ve ilerlemeye devam edecektir.

Arka plan: İnternet, robotlardan kaçınan çok sayıda engele sahiptir, ancak çoğu hantal, montajı zor ve pahalıdır. Bu robotların birçoğunda Arduino kodu bulunur, ancak iyi düşünülmüş, çalışan bir örnek bulmak zordu. Ayrıca tekerlekler için (DC motorlar yerine) henüz yapılmamış sürekli dönüş servoları kullanmak istedim. Böylece, dünyayla paylaşmak için kompakt, yaratıcı bir OAR robotu geliştirme görevine başladım.

Daha Fazla Geliştirme: Bu robot, daha iyi ping doğruluğu için daha da geliştirilebilir, hat takip yeteneği için IR sensörleri, engel mesafesini görüntülemek için LCD ekran ve çok daha fazlası eklenebilir.

Gereçler

  • 1x Arduino Uno -
  • 1x V5 Sensör Kalkanı -
  • Açma/Kapama Anahtarlı 1x 4xAA Pil Tutucu -
  • 1x SG90 Servo -
  • 2x Sürekli Döndürme Servoları -
  • Arduino için 1x 9V Pil Güç Kablosu (İSTEĞE BAĞLI) -
  • 1x HC-SR04 Ultrasonik Sensör -
  • 4 Adet Dişi-Dişi Jumper Kablosu -
  • 2x Lastik Bantlar
  • 1x 9V Pil (OPSİYONEL)
  • 4x AA Pil
  • 4x Küçük Vida (4 x 1/2 veya benzeri bir şey)
  • Yıldız tornavida
  • Lastik bantları tekerleklere sabitlemek için yapıştırıcı

Adım 1: 3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı

3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı
3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı
3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı
3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı
3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı
3D Baskı: Gövde, Tekerlekler, Mermer Teker, 6mm Cıvata/somun ve Ultrasonik Sensör Montajı

3D baskı için 5 parça vardır.

  1. Vücut
  2. tekerlekler
  3. Mermer Teker
  4. 6mm Cıvata/Somun (isteğe bağlı, metal somun/cıvata değiştirilebilir)
  5. Ultrasonik Sensör Montajı

Gerekli tüm. STL dosyaları bu talimata ve Sketchup dosyalarına dahil edilmiştir. %40 dolgu önerilir.

Adım 2: Arduino'yu Programlayın

Image
Image
Robotu Birleştirin
Robotu Birleştirin

Arduino UNO'ya Kod Gönder: Arduino IDE'yi kullanarak kodu (ekli dosyada) Arduino modülünüze gönderin. Bu çizimle birlikte servo.h ve newping.h kitaplıklarını indirmeniz ve eklemeniz gerekecek.

Kod iyice yorumlanmıştır, böylece her komutun ne yaptığını görebilirsiniz. Ultrasonik Sensör mesafesini isterseniz daha büyük veya daha küçük bir değere kolayca değiştirebilirsiniz. Bu bir başlangıç kodudur ve genişletilmesi ve daha fazla proje geliştirme için kullanılması amaçlanmıştır.

// ENGELDEN KAÇINAN ROBOT// [email protected], [email protected], TN, Chattanooga, Elektrik Mühendisliği, GÜZ 2019 // Gerekli Malzemeler: // 1) Arduiino UNO, 2) Servo Sensör Kalkanı v5.0, 3)HCSR04 Ulrasonik Sensör, 4)FS90 Servo (Ultrasonik Sensör için) // 5&6) Tekerlekler için 2 adet SÜREKLİ DÖNME SERVİSİ // 7) Arka tekerlek pivotu için 16mm Mermer, 8&9) Tekerlekler için 2 lastik bant // 10- 15) 1x (4xAA) Açma/kapama anahtarlı pil tutucu, 16&17) Arduino UNO güç bağlantısına sahip 9V pil // 3D BASKI: // 18) ROBOT Gövdesi, 19&20) 2x Tekerlekler, 21) Mermer Teker, 22) Ultrasonik Sensör Montaj ve 6mm Vida (ekli dosyalara bakın) //-------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Servo Kitaplığını Dahil Et #include // Yenileme Kitaplığını Dahil Et //------------------------------------------- -------------------------------------------------- ------------------------------------ #tanımla TRIGGER_PIN 1 2 // Arduino'da 12 pinine US tetikleyici #define ECHO_PIN 13 // Arduino'da US Echo pin 13'e #define MAX_DISTANCE 250 // Ping'e uzaklık (maks 250) int uzaklık = 100; //------------------------------------------------ -------------------------------------------------- ---------------------------------- Servo US_Servo; // Ultrasonik Sensör Servo Servo Left_Servo; // Sol Teker Servo Servo Sağ_Servo; // Sağ Teker Servo NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Pinlerin ve maksimum mesafenin NewPing kurulumu. //------------------------------------------------ -------------------------------------------------- ---------------------------------- void setup() // GİRİŞ/ÇIKIŞLAR, NEREYE EKLENECEK, İLK KONUM/HAREKET AYARLA { pinMode(12, ÇIKIŞ); // Tetik pini çıkış pinMode(13, INPUT); // Echo pini giriş olarak US_Servo.attach(11); // US Servo, pin 11'e ayarlandı US_Servo.write(90); // US SERVO İLERİ BAKIYOR

Left_Servo.attach(9); // Pim 9'a sol tekerlek servosu

Left_Servo.write(90); // SOL TEKERLEK SERVO DUR olarak ayarlandı

Right_Servo.attach(10); // Sağ Tekerlek servosu pin 10'a ayarlandı

Right_Servo.write(90); // SAĞ TEKERLEK SERVİSİ STOP gecikmesine ayarlandı(2000); // 2 saniye bekle mesafe = readPing(); // Düz ileri konum gecikmesinde Ping Mesafesini Al(100); // 100 ms bekle moveForward(); // ROBOT İLERİ HAREKET EDER } //------------------------------------------ -------------------------------------------------- ------------------------------------- void döngü() { int mesafeSağ = 0; // ABD mesafesini 0'da sağa doğru başlat int DistanceLeft = 0; // ABD'nin sola olan mesafesini 0'dan başlat //US_Servo.write(90); // Merkezi ABD servosu //gecikme(50); // US_Servo.write(70); // Biraz Sağa Bak // delay(250); // US_Servo.write(110); // Biraz Sola Bak // delay(250); // US_Servo.write(90); // Merkeze Bak

if (mesafe <= 20) // Robot İLERİ HAREKET EDER { moveStop(); // Robot STOPS at Distance = DistanceLeft) // Hangi yöne döneceğine karar ver { turnRight(); // Sağ taraf en büyük mesafeye sahip, ROBOT 0,3 sn gecikme için SAĞA DÖNÜYOR(500); // Bu Gecikme dönüş uzunluğunu belirler moveStop(); // Robot STOPS } else { turnLeft(); // Sol taraf en büyük mesafe, ROBOT 0,3 sn gecikme için SOL DÖNÜYOR(500); // Bu Gecikme dönüş uzunluğunu belirler moveStop(); // Robot STOPS } } else { moveForward(); // Robot İLERİ HAREKET EDER } uzaklık = readPing(); // ABD, yeni seyahat yönü için YENİ PING OKUYOR } //-------------------------------------- -------------------------------------------------- -------------------------------------------- int görünümSağ() // Ultrasonik Sensör SAĞA BAKIŞ FONKSİYONU { US_Servo.write(30); // US servo SAĞA açı gecikmesine (500); int mesafe = readPing(); // Sağ gecikme için ping değerini ayarla(100); US_Servo.write(90); // US servo MERKEZE HAREKET EDER dönüş mesafesi; // Mesafe ayarlandı } //------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft() // Ultrasonik Sensör GÖRÜNÜM SOL FONKSİYON { US_Servo.write(150); // US servo SOL açı gecikmesine (500) HAREKET EDER; int mesafe = readPing(); // Sol gecikme için ping değerini ayarla(100); US_Servo.write(90); // US servo MERKEZE HAREKET EDER dönüş mesafesi; // Mesafe ayarlandı } //------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing() // Ultrasonik Sensör için Ping Fonksiyonunu Oku. { gecikme(100); // pingler arası 100ms (min ping süresi = 0.29ms) int cm = sonar.ping_cm(); // PING mesafesi toplanır ve cm cinsinden ayarlanır if (cm==0) { cm=250; } cm'yi döndür; } //------------------------------------------------ -------------------------------------------------- -------------------------------- void moveStop() // ROBOT STOP { Left_Servo.write(90); // LeftServo 180 ileri, 0 geri Right_Servo.write(90); // RightServo 0 ileri, 180 geri } //------------------------------------------ -------------------------------------------------- ------------------------------------------- void moveForward() // ROBOT FORWARD { Left_Servo.write(180); // LeftServo 180 ileri, 0 geri Right_Servo.write(0); // RightServo 0 ileri, 180 geri } //------------------------------------------ -------------------------------------------------- ------------------------------------------- void moveBackward() // ROBOT GERİ { Left_Servo.write(0); // LeftServo 180 ileri, 0 geri Right_Servo.write(180); // RightServo 0 ileri, 180 geri } //------------------------------------------ -------------------------------------------------- ------------------------------------------- void turnRight() // ROBOT RIGHT { Left_Servo.write(180); // LeftServo 180 ileri, 0 geri Right_Servo.write(90); // RightServo 0 ileri, 180 geri } //------------------------------------------ -------------------------------------------------- ------------------------------------------- void turnLeft() // ROBOT SOL { Left_Servo.write(90); // LeftServo 180 ileri, 0 geri Right_Servo.write(0); // RightServo 0 ileri, 180 geri } //------------------------------------------ -------------------------------------------------- -------------------------------------------

Adım 3: Robotu Birleştirin

Image
Image
Robotu Birleştirin
Robotu Birleştirin
Robotu Birleştirin
Robotu Birleştirin

Şimdi robotunuzu bir araya getirme zamanı. Adımlar aşağıda listelenmiştir.

1) Yuvarlak Servo Diski ve Lastik Bantları Tekerleklere Takın: Tüm servolar plastik montaj donanımı ve vidalarla birlikte gelir. Yuvarlak diskleri bulun ve tekerleklerin düz tarafındaki iki deliğe vidalayın. Lastik bantlar, kavrama sağlamak için tekerleğin etrafına oturur. Lastik bantları yerinde tutmak için biraz yapıştırıcı eklemek isteyebilirsiniz.

2) Mermer Teker Bağlantısı: Mermer tekerleği arkadaki iki üçgene tutturmak için iki küçük vida kullanın. Mermer tekerlek, bir arka tekerleğin basit bir yedeğidir ve bir arka pivot noktası sağlar.

3) Servoları Yuvalara Yerleştirin (vida gerekmez): FS90 Servo'yu (Ultrasonik Sensör için) gövdenin ön yuvasına yerleştirin. İki sürekli dönüş servosu, sol ve sağ yuvalara kayar. Yuvalar sıkı bir şekilde oturacak şekilde tasarlanmıştır, böylece servoları yerinde tutmak için vida gerekmez. Servo tellerinin, gövdenin arkasına bakacak şekilde yuvalardaki oluklardan geçtiğinden emin olun.

4) 9V Pil Yerleştirme (OPSİYONEL): 9V pil + Arduino güç konektörünü ön servonun arkasına yerleştirin.

5) Ultrasonik Sensör Montaj Düzeneği: Birlikte verilen beyaz plastik servo eklentilerden birini Ultrasonik Sensör montaj plakasının altına takmak için iki küçük vida kullanın. Ardından, Ultrasonik Sensör kasasını montaj plakasına takmak için 3D baskılı 6 mm cıvata/somun (veya metal cıvata/somun yerine) kullanın. Son olarak, sensörü pimleri yukarı bakacak şekilde kasaya yerleştirin ve kasanın arkasına oturtun.

6) 4x AA Pil Kutusu: AA pil kutusunu, açma/kapama düğmesi arkaya bakacak şekilde geniş dikdörtgen alana yerleştirin.

7) Arduino Uno + V5 Sensör Kalkanı: Kalkanı Arduino'ya takın ve pil kutusunun üzerindeki yuvalara yerleştirin. Güç konektörü sola bakmalıdır.

Robotunuz Yapıldı! Ne kaldı? Arduino'nun Programlanması ve Jumper Kablolarının Bağlanması: Servolar, Ultrasonik Sensör ve Güç Kaynağı.

Adım 4: Sensör Kablolarını Takın

Image
Image
Bitti!!! 9V Arduino Güç Kaynağını Bağlayın, Pil Paketini Açın ve OAREE ile Engellerden Kaçınmaya Başlayın
Bitti!!! 9V Arduino Güç Kaynağını Bağlayın, Pil Paketini Açın ve OAREE ile Engellerden Kaçınmaya Başlayın

Servo kablolarını V5 Shield'e bağlayın:

  1. Sol Sürekli Döndürme Servo PIN 9'a takılır
  2. Sağ Sürekli Döndürme Servo, PIN 10'a takılır
  3. Ön FS90 Servo, PIN 11'e bağlanır

Ultrasonik Sensör Pinlerini (4x Dişi - Dişi Jumper Telleri aracılığıyla) V5 Shield'e bağlayın:

  1. PIN 12'yi tetikleyin
  2. PIN 13'e yankı
  3. 'V' ile işaretlenmiş pinlerden herhangi birine VCC
  4. 'G' ile işaretlenmiş pinlerden herhangi birine topraklayın

AA Pil Kutusunu V5 Shield'e bağlayın:

  1. Pozitif, kırmızı kabloyu VCC konektörüne takın
  2. Negatif, siyah kabloyu Toprak bağlantısına takın

Adım 5: Bitti!!! 9V Arduino Güç Kaynağını Bağlayın, Pil Paketini Açın ve OAREE ile Engellerden Kaçınmaya Başlayın

Image
Image
Bitti!!! 9V Arduino Güç Kaynağını Bağlayın, Pil Paketini Açın ve OAREE ile Engellerden Kaçınmaya Başlayın
Bitti!!! 9V Arduino Güç Kaynağını Bağlayın, Pil Paketini Açın ve OAREE ile Engellerden Kaçınmaya Başlayın

Bitti!!

1) 9V Arduino güç kaynağını bağlayın (Opsiyonel)

2) Pil takımını açın

3) OAREE ile Engellerden Kaçınmaya Başlayın!!!

Yeni arkadaşın OAREE'nin bir engel algıladığını, geri çekilip yön değiştirdiğini izledikten sonra eminim çok seveceksin. OAREE, Ultrasonik Sensörün sinyal gönderebileceği (duvarlar gibi) büyük nesnelerle en iyi şekilde çalışır. Küçük yüzey alanları ve köşeleri nedeniyle sandalye ayakları gibi küçük nesneleri pinglemede zorlanır. Lütfen paylaşın, daha fazla geliştirin ve gerekli ayarlamaları veya hataları bana bildirin. Bu harika bir öğrenme deneyimi oldu ve umarım bu projeyi yaparken benim kadar eğlenirsiniz!

Robotik Yarışması
Robotik Yarışması
Robotik Yarışması
Robotik Yarışması

Robotik Yarışmasında İkincilik

Önerilen: