İçindekiler:
- Adım 1: Neye İhtiyacınız Olacak?
- 2. Adım: Belgeler
- Adım 3: Ultrasonik Sensör Desteğini Hazırlayın
- Adım 4: Her Şeyi Bir Prototipleme Panosuna Monte Edin
- Adım 5: Son Bağlantıların Yapılması
- Adım 6: Programın Önyüklenmesi
- 7. Adım: C Kodunu Anlamak
- 8. Adım: Java Kodunu Anlamak
- 9. Adım: Sonuç
Video: Proje 3: SonarDuino: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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?
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
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
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ı
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
Ö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
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:
CPE 133 Nihai Proje Ondalık Sayıdan İkiliye: 5 Adım
CPE 133 Final Projesi Ondalıktan İkiliye: İkili Sayılar, dijital mantık denilince akla gelen ilk şeylerden biridir. Ancak Binary Numbers, yeni başlayanlar için zor bir kavram olabilir. Bu proje, ikili sayılar konusunda hem yeni hem de deneyimli olanlara yardımcı olacaktır
Dopamin Kutusu - Mike Boyd'a Benzer Bir Proje - Mike Boyd'un Olmaması: 9 Adım
Dopamin Kutusu | Mike Boyd'a Benzer Bir Proje - Mike Boyd'un Olmaması: Bir tane istiyorum! Bitaneye ihtiyacım var! Ben bir erteleyiciyim! Pekala, bir dopamin kutusu istiyorum… Programlamaya gerek duymadan. Ses yok, sadece saf irade
Yan Proje: Su Saflığı Test Cihazı: 5 Adım
Yan Proje: Su Saflığı Test Cihazı: Bu proje, Bayan Berbawy ile Mühendislik İlkeleri dersimde müfredatımın bir parçasıydı. Makul bir proje önerisi bulmamız için her birimize 50 dolarlık bir bütçe ayırdı, bu hem ulaşılabilir hem de yeteneklerimizi zorlayacak bir şey
Hafta Sonu İçin Eğlenceli Bir Proje, FishCam!: 4 Adım
Hafta Sonu İçin Eğlenceli Bir Proje, FishCam!: Birkaç ay önce drone'umu düşürdüm ve yapabileceğim tek mantıklı şey onu parçalara ayırmak. Neler yapabileceğime dair bir sürü proje fikrim olduğu ortaya çıktı. Hiç gitmedim ama çiftliğimize gittiğimizde aklıma bir fikir geldi. Kameranın W
USB ile Çalışan Brülör! Bu Proje Plastik/Ahşap/Kağıdı Yakabilir(Eğlenceli Proje Ayrıca Çok İnce Ahşap Olmalıdır): 3 Adım
USB ile Çalışan Brülör! Bu Proje Plastik/Ahşap/Kağıdı Yakabilir(Eğlenceli Proje Aynı zamanda Çok İnce Ahşap Olmalıdır): BUNU USB KULLANARAK YAPMAYIN!!!! Tüm yorumlardan bilgisayarınıza zarar verebileceğini öğrendim. bilgisayarım iyi tho. 600ma 5v telefon şarj cihazı kullanın. Bunu kullandım ve iyi çalışıyor ve gücü durdurmak için bir güvenlik fişi kullanırsanız hiçbir şey zarar görmez