İçindekiler:

Magicbit'ten Basit Radar Sistemi: 6 Adım
Magicbit'ten Basit Radar Sistemi: 6 Adım

Video: Magicbit'ten Basit Radar Sistemi: 6 Adım

Video: Magicbit'ten Basit Radar Sistemi: 6 Adım
Video: 2024 CIGARETTE 52' THUNDER Быстроходная гоночная лодка для морских испытаний и полного тура 2024, Temmuz
Anonim

Bu eğitim, HC-SR04 sensörünü ve işlemeli Microbit geliştirme kartını ve Arduino IDE'lerini kullanarak basit bir radar sisteminin nasıl yapıldığını gösterir.

Gereçler:

  • SG90 Mikro servo motor
  • Atlama telleri (jenerik)
  • Breadboard (genel)
  • sihirli bit
  • USB-A - Mikro USB Kablosu
  • Ultrasonik Sensör - HC-SR04 (Genel)

1. Adım: Öykü

Bu derste, Magicbit çekirdek geliştirme kartını kullanarak basit bir radar sisteminin nasıl oluşturulacağını öğreneceğiz. Bu amaçla HC-SR04 ultrasonik sensör ve verileri görüntülemek için işleme ortamını kullanıyoruz. Hadi başlayalım.

Adım 2: Teori ve Metodoloji

İlk olarak, bunun nasıl çalıştığını tartışalım. İlke çok kolay. Önce sensörümüzü dikey eksende 180 derece aralıkta sürekli döndürüyoruz. Bu hareket sırasında her açıdan ultrasonik sensörden en yakın nesneye olan mesafe hakkındaki verileri alıyoruz. Bu işlem için Magicbit çekirdek kartı kullanıyoruz. Daha sonra verilerimizi göstermek için işlem ortamı ile bağlantı kurmamız gerekiyor. Bunun için uygun baud hızına sahip seri iletişim protokolü kullanıyoruz. Daha sonra işleme IDE'sini kullanarak radar sistemi arayüzümüzü tasarlıyoruz. Bu IDE'de seri iletişimimizi seri üzerinden gerçek zamanlı veri almak için yapılandırıyoruz. Böylece Magicbit ile gerçek zamanlı iletişim kuruyoruz ve Magicbit'ten işleme IDE'sine gönderilen verileri gösteriyoruz.

Adım 3: Donanım Kurulumu

Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu

Bu proje için temel olarak üç donanım bileşeni kullandık. Bunlar Magicbit, servo motor ve ultrasonik sensördür. Tüm bu parçalar arasındaki bağlantı yukarıdaki şekilde gösterilmiştir.

Güçlendirme için ultrasonik sensör 3.3 v kullandı. Bu nedenle, ultrasonik sensörü Magicbit'e bağlamak için Magicbit kartının sağ alt portunu kullandık. Ancak servo motor düzgün çalışması için 5V kullanılır, bu nedenle servo motoru Magicbit'e bağlamak için sol alt bağlantı noktasını kullandık. Bu durumda Magic bit servo konnektör modülünü kullanıyoruz. Ancak bu modüle sahip değilseniz, magicbit'te 5V'yi 5V'a, Gnd'yi Gnd'ye ve sinyal pinini 26 pin'e bağlamak için üç jumper kablosu kullanabilirsiniz.

Devreyi kurduktan sonra, inşa etmemiz gereken küçük bir mekanik parçamız var. küçük somun kullanarak servo motora tek taraflı servo konektörü ayarlayın. Ardından sensörü L şeklinde bir braket veya uygun bir şekilde bu konektöre sabitleyin. Tüm sistemden sonra breadboard'a sabitledik. Ancak servo ve Magicbit'i monte etmek için başka bir yüzey kullanabilirsiniz.

Adım 4: Yazılım Kurulumu

Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu
Yazılım Kurulumu

Yazılım tarafı biraz karmaşık. Doğru anlamak için bir sonraki bölüme geçmeden önce aşağıdaki bağlantılara başvurabilirsiniz.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Arduino IDE koduna ve bu kodun nasıl çalıştığına bakalım.

Servo sürmek için ESP32 servo kütüphanesini kullanıyoruz. Bu kütüphane, Arduino IDE'deki sihirli bit yönetim kurulu yöneticisine neredeyse dahildir. Ultrasonik sensörle başa çıkmak için newPing kütüphanesini kullanıyoruz. Bu, aşağıdaki bağlantıdan indirilebilir.

bitbucket.org/teckel12/arduino-new-ping/do…

Zip dosyasını indirin ve araçlar> kitaplığı dahil et> Arduino'da Zip kitaplığı ekleyin. şimdi yeni pin kitaplığının indirilen zip dosyasını seçin. İşleme ile iletişim için 115200 baud hızı ile seri iletişim kullandık. Bu, ESP32 için en uygun frekanstır. Her açıdan bu protokolü kullanarak verilerimizi bilgisayara gönderiyoruz. Sensörden en yakın ön nesneye olan mesafe, dönüş yönü ve dönüş açısı bu verilere dahildir. İki for döngüsü kullanarak servomuzu iki yönde döndürüyoruz. Bir derece dönüş yaparken 4 kez seri veri gönderdik. Bunun sebebini işleme parçası açıklamasında anlayabilirsiniz.

Şimdi işlem ortamına bakma zamanı. Java tabanlı bir programlama yazılımıdır. IDE işleminde bu krokide programımızın krokisini yazabiliriz. Programımızı çalıştırarak da görsel çıktılar üretebiliriz. Ayrıca 2B ve 3B nesneler olarak çıktı alabilirsiniz. Sadece bu değil, bu görüntü işleme ve daha birçok şey için kullanılabilir.

İşlem taslağında önce basit grafik fonksiyonları kullanarak veri görüntüleme arayüzünü tasarlıyoruz. Kodun başlangıcında seri kütüphaneleri dahil ederek seri iletişimimizi kuruyoruz. Kurulum işlevinde, Magicbit'i bilgisayara bağlamak için kullandığınız USB bağlantı noktasına göre bazı değişiklikler yapmanız gerekir. Arduino IDE'yi kodu yüklemek için kurduğunuzda, Arduino IDE'yi kullanarak bağlantı noktanızı kontrol edebilirsiniz. Ardından işlem krokisinde kurulum bölümünde com port adını değiştirin. seri veri mevcut olduğunda, Serialevent fonksiyonu otomatik olarak tetiklenir. Bu nedenle kodun ana mantığı, açıların ve verilerin kaybolmasını önlemek için seri olaya dahil edilmiştir. yeni veriler geldiğinde açımıza göre ekrana bir çizgi çiziyoruz. O zaman herhangi bir nesne algılama yoksa tam çizgi yeşil renklidir. Aksi takdirde, sensörden nesneye olan mesafeye göre çizginin bir kısmı kırmızı olacaktır. Ayrıca dönme yönüne göre o çizgiye yakın yeşil renk seviyesi azalan 200 çizgi daha çiziyoruz. her Ana arasında 0.25 derece farkımız var. Bu nedenle Magicbit'ten her bir derece döndürmede aynı anda 4 okuma alıyoruz. Bu nedenle, ekranda güzel arama eli oluşturabiliriz.

Kodun tamamını magic ve set donanım kısmına başarıyla yükledikten sonra, işleme IDE'sini başarıyla açın ve çalıştır düğmesine tıklayarak kodu çalıştırın. Artık çok basit bir radar sisteminiz var.

Kodları, görüntülemek istediklerinizi istediğiniz gibi özelleştirebilirsiniz.

Adım 5: Sorun Giderme

İşleme çizimi çalışmıyor.

  • Biraz bekleyin. Başlatma süresi nedeniyle PC ve GPU performansınıza bağlıdır.
  • İşleme çiziminde seri bağlantı noktası numarasının doğru olup olmadığını kontrol edin.
  • USB bağlantısının doğru şekilde sabitlendiğini kontrol edin.
  • Ultrasonik sensör ve Magicbit arasındaki bağlantıyı kontrol edin.
  • Seri monitörü açın ve verilerin Arduino'dan geldiğini kontrol edin. Değilse, sorun Arduino kodunuz veya USB bağlantınızdadır.

Servo çalışmıyor.

  • USB bağlantısının doğru şekilde sabitlendiğini kontrol edin.
  • Kablolamayı kontrol edin.
  • Servonun iyi durumda olduğunu kontrol edin.

Adım 6: Arduino Kodu

#Dahil etmek

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // servo kitaplığını dahil et int uzaklığı; Servo RadarServo; geçersiz kurulum() { Serial.begin(115200); RadarServo.attach(26); // Servo motora bağlı gecikmenin hangi pinde olduğunu tanımlar(3000); } void loop() { // servo motoru 15 dereceden 165 dereceye döndürür for(int i=0;i<=180;i++){ RadarServo.write(i); gecikme(50); Distance = sonar.ping_cm();// Ultrasonik sensör tarafından her derece için ölçülen mesafeyi hesaplamak için bir fonksiyon çağırır for(int j=0;j0){ break; } Seri.print(i); // Geçerli dereceyi Seri Bağlantı Noktasına gönderir Serial.print(", "); // Serial.print(j); // Geçerli dereceyi Seri Bağlantı Noktasına gönderir Serial.print("*"); Seri.baskı(1); // Uzaklık değerini Seri Bağlantı Noktasına gönderir Serial.print("/"); // Serial.print(mesafe); // Uzaklık değerini Seri Bağlantı Noktasına gönderir Serial.print("."); // İndeksleme için İşleme IDE'sinde daha sonra ihtiyaç duyulan önceki değerin hemen yanına ekleme karakteri gönderir } } // Önceki satırları 165 ila 15 derece arasında tekrarlar for(int i=180;i>=0;i--){ RadarServo.write(i); gecikme(50); mesafe = sonar.ping_cm(); for(int j=75;j>=0;j-=25){ if(i==180 && (j==75 ||j==50 ||j==25)){ devam; } Seri.print(i); // Geçerli dereceyi Seri Bağlantı Noktasına gönderir Serial.print(", "); // Serial.print(j); // Geçerli dereceyi Seri Bağlantı Noktasına gönderir Serial.print("*"); Seri.baskı(-1); // Uzaklık değerini Seri Bağlantı Noktasına gönderir Serial.print("/"); // Serial.print(mesafe); // Uzaklık değerini Seri Bağlantı Noktasına gönderir Serial.print("."); // İndeksleme için İşleme IDE'sinde daha sonra ihtiyaç duyulan önceki değerin hemen yanına ekleme karakteri gönderir } }

}

Önerilen: