İçindekiler:

Proje 3: SonarDuino: 9 Adım
Proje 3: SonarDuino: 9 Adım

Video: Proje 3: SonarDuino: 9 Adım

Video: Proje 3: SonarDuino: 9 Adım
Video: Sound Sensor Potentiometer Adjustment 2024, Eylül
Anonim
Image
Image

Sevgili hobici dostum, Bu projede, nesne tespiti için 360 derecelik bir radar sistemine sahip olma olasılığını araştıracağız. Bu modülün ayrı olarak ayarlanması, hareket robotunuzun çevresinin sınırlarını algılamasını sağlayacaktır. Ayrıca karanlıkta bir yön bulma aracı olarak da hizmet edebilir, ancak yalnızca yeterince yavaş yürüdüğünüzde;p

Adım 1: Neye İhtiyacınız Olacak?

Ultrasonik Sensör Desteğini Hazırlayın
Ultrasonik Sensör Desteğini Hazırlayın

Bu yapıyı yapmak için aşağıdakileri satın almanız gerekir:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0:rk:2:pf:0

Prototipleme Panoları: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSwN ~Zbl232:rk:13:pf:0

Servo Motorlar: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk:16:pf:0&var

Ultrasonik Sensörler: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~IAAOSw--xbD5Fp:rk:2:pf:0

2. Adım: Belgeler

Bazılarınız bunu zaten biliyor olabilir, bu proje Dejan tarafından "How to Mechatronics"den yapılan "Arduino Radar Project" adlı başka bir açık kaynaklı projeden esinlenilmiştir @ aşağıdaki bağlantı: https://howtomechatronics.com/projects/arduino -radar-projesi/

Belgeleme gerektiren bir diğer nokta da geliştirme ortamınıza aşağıdaki iki kitaplığı indirmektir:

Adafruit-GFX-Library:

Adafruit_SSD1306:

Bununla birlikte, C kodunu gerçekten anlamak için yukarıdaki kitaplıkların her ikisinin de bazı belgelerini yapmanız gerekecektir. Bunun dışında, kodumda kullandığım işlevlerin, yaptıklarını anlatan adları var.

Adım 3: Ultrasonik Sensör Desteğini Hazırlayın

Ultrasonik Sensör Desteğini Hazırlayın
Ultrasonik Sensör Desteğini Hazırlayın
Ultrasonik Sensör Desteğini Hazırlayın
Ultrasonik Sensör Desteğini Hazırlayın
Ultrasonik Sensör Desteğini Hazırlayın
Ultrasonik Sensör Desteğini Hazırlayın

Herhangi bir karton parçası alın ve ilk resimde gösterildiği gibi sensöre bağlı bağlantı kablolarının boyutuna göre kesin. Daha sonra bunu en son katlayın ve servo motor desteğine yapıştırın. Bu yapıldıktan sonra, iki ultrasonik sensörü son resme göre yapıştırın. Sensörlerin başlığının, kabloların sensörün önünden dışarı çıkmasına izin verecek şekilde lehimlenmesi gerektiğini unutmayın. Bu, 360 derece dönüş uygulandığında sensör kablolarının birbirine karışmamasını sağlayacaktır.

Adım 4: Her Şeyi Bir Prototipleme Panosuna Monte Edin

Her Şeyi Bir Prototipleme Panosuna Monte Edin
Her Şeyi Bir Prototipleme Panosuna Monte Edin
Her Şeyi Bir Prototipleme Panosuna Monte Edin
Her Şeyi Bir Prototipleme Panosuna Monte Edin
Her Şeyi Bir Prototipleme Panosuna Monte Edin
Her Şeyi Bir Prototipleme Panosuna Monte Edin

Bu adımda, bir önceki adımda hazırlanan başlığı ilgili servo motoruna monte ederek başlayacaksınız. Servo motor dikkatli bir şekilde alıştıktan sonra, her şeyi bir prototip panosuna monte edeceksiniz. Arduino Nano'yu lehimleyerek ve ardından servoyu hemen yanına yapıştırarak başlayacaksınız. Sonunda küçük OLED ekranı kartın diğer kenarında lehimleyeceksiniz.

Adım 5: Son Bağlantıların Yapılması

Son Bağlantıların Yapılması
Son Bağlantıların Yapılması
Son Bağlantıların Yapılması
Son Bağlantıların Yapılması
Son Bağlantıların Yapılması
Son Bağlantıların Yapılması

Bu adım, bu projenin donanım tarafını tamamlayacaktır. Gerekli tüm bağlantıları kurmak için sağlanan şemaları izlemeniz gerekecektir.

Adım 6: Programın Önyüklenmesi

Programın Önyüklenmesi
Programın Önyüklenmesi

Önyüklemeniz gereken iki kod var

Arduino (C):

İşleme (java):https://github.com/ReconaissantL/RadarDuino/blob/master/radarduino_java.pde

Kodu çalıştırırken, seçim yapabileceğiniz iki seçeneğiniz olacaktır:

Seçenek 1: OLED Ekranı kullanarak, bunun için C kodundaki MODE değişkenini 0 olarak ayarlamanız gerekecektir.

Seçenek 2: Monitörünüzü Kullanarak, bunun için C kodundaki MODE değişkenini 1 olarak ayarlamanız gerekecektir. Ek olarak, Processing geliştirme ortamını indirip kurmanız ve radar yazı tipini şu bağlantıdan indirmeniz gerekecektir: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Ve bu dosyayı işleme kodu dosyanıza ekleyin, böylece Java kodunuz çağrıldığında yazı tipini tanıyacaktır.

7. Adım: C Kodunu Anlamak

C Kodunu Anlamak
C Kodunu Anlamak

Kod esas olarak iki 'for' döngüsünden oluşur. Biri ileri geçişle, diğeri ise geri geçişle ilişkilidir. Her ikisinin içinde, radarın çizgilerini ekrana çizecek olan draw_scanner() ana işlevi birçok kez çağrılır. Birden fazla konfigürasyonu test ettikten sonra, silmek için t zamanındaki beyaz radar hatlarının üzerine t+1 zamanında siyah olan aynı radar hatlarının üzerine yazmamız gerektiği sonucuna vardım. Aksi takdirde, yeni piksel ızgarasına basmadan önce "clearDisplay()" işlevini kullanarak ekranı her temizlediğinizde titreme meydana gelir. 7 satırla uğraşırken - tasarım amacıyla - her bir elemanın radarın merkezi ile tespit edilen nesne arasındaki yarıçapı temsil ettiği 7 elemanlı tamsayı dizisini kaydetmeye ve aktarmaya devam etmem gerekiyordu. Bunu akılda tutarak, kodun geri kalanı anlamak için basit olmalıdır.

8. Adım: Java Kodunu Anlamak

İşleme sırasında, yalnızca COM adlı seri bağlantı noktalarıyla çalışan serialEvent() işlev çağrısını atlamam gerekiyordu. Mac üzerinde çalışırken seri bağlantı noktalarım farklı bir adla geldi. Bununla birlikte, “draw()” işleminde bu işlevi ana işleve açtım. Diğer her şeyle ilgili olarak, uygulamayı tam devrim tasarımını karşılayacak şekilde güncelledim. Son olarak, çizilen tüm şekilleri ve metinleri ekranın genişliğine göre güncelledim, böylece nihai ürün farklı ekran çözünürlüklerine sığacak. Hem 1000X1000 hem de 500X500 çözünürlükleri için şahsen test ettim ve iyi çalıştı:).

9. Adım: Sonuç

Bu çalışma, her biri 120 görüş açısını kapsayan 3 Ultrasonik sensöre veya hatta 4 sensöre (90 derece*4) -> 360 derece daha hızlı olacak şekilde yükseltilebilir. tarama.

Ayrıca radarın menzilini 40 cm'den 60 cm'ye hatta 80 cm'ye kadar uzatabilirsiniz. pulseIn işlevini kişisel olarak test ettim ve TIMEOUT değişkenini 40 cm'ye göre ayarladım. Bu değişken, gönderilen darbenin uzunluğu ve darbenin yansıtıldığı nesnenin yüzeyi gibi birçok faktöre bağlıdır.

Son olarak, daha önce belirtildiği gibi, bir sonraki adım, çevreyi taramak için radarDuino'yu bir hareket robotu ile birleştirmek.

Önerilen: