Search Code

Ders 7/10: Çizgi Takibi, Uçurum Algılama Gri Tonlamalı Sensörü Kalibre Et Raspberry Pi Pico Araba

Bu ders, bir parçasıdır: Raspberry Pi Pico 4WD Akıllı Araba

Ders 7/10: Çizgi Takibi, Uçurum Algılama Gri Tonlamalı Sensörü Kalibre Et Raspberry Pi Pico Araba

Bu derste, Raspberry Pi Pico Akıllı Araba kursundan yola çıkarak, bir servo motor, ultrasonik sensör ve motor kontrolünü birleştirerek aracın engelleri algılayıp kaçınmasını sağlayan otonom navigasyonun büyüleyici dünyasını keşfediyoruz. Bu proje, temel bir dört tekerlekten çekiş kitini, dinamik ortamlarda gezinebilen akıllı bir robota dönüştürür ve sensör füzyonu ile reaktif kontrol algoritmalarını öğrenmek için mükemmel bir temel oluşturur. Bu projenin gerçek dünyadaki değeri sınıfın çok ötesine uzanır; mobilyaların etrafında gezinerek çalışan bir robot süpürge inşa etmek, güvenli bölgeleri haritalayan bir güvenlik devriye robotu oluşturmak veya kalabalık alanlarda gezinebilen otonom bir teslimat aracı için prototip geliştirmek gibi pratik uygulamalar için bir platform sunar.

Bu projenin özü, ultrasonik sensörü döndürmek için bir servo motor kullanarak basit bir radar sistemi oluşturmaktır. Araç, çevreyi 0 ila 180 derece arasında tarayarak engellere olan mesafeleri ölçebilir ve ilerideki en açık yolu belirleyebilir. Bu ders, bu sensör verilerini yorumlayarak akıllı sürüş kararları alan mantığın uygulanmasına yönelik adım adım bir kılavuz sağlar.

Donanım/Bileşenler

Bu proje, SunFounder Raspberry Pi Pico dört tekerlekten çekişli araba kitine dayanmaktadır. Tam model değişebilse de, gereken temel bileşenler şunlardır:

  • Raspberry Pi Pico mikrodenetleyici kartı
  • SunFounder 4WD Akıllı Araba şasi kiti (veya benzeri)
  • Ultrasonik mesafe sensörü (örn., HC-SR04)
  • Servo motor (ultrasonik sensörü döndürmek için)
  • Motor sürücü kartı (araba kitine entegre)
  • Güç kaynağı (piller)

Bağlantı Kılavuzu

Bu projenin bağlantıları genellikle SunFounder araba kitinin genişletme kartında önceden yapılandırılmıştır. Ultrasonik sensörün tetikleme ve yankı pinleri ile servo motorun sinyal pini, Raspberry Pi Pico üzerindeki belirli GPIO pinlerine bağlanır. Motor sürücüsü ayrıca dört motorun yönünü ve hızını kontrol etmek için Pico'ya bağlanır.

Kitinize özel ayrıntılı bir bağlantı şeması için lütfen SunFounder tarafından sağlanan belgelere bakın. Genel bir şema genellikle kitin kılavuzunda veya üreticinin web sitesinde bulunur.

Kod Açıklaması

Bu ders, engel kaçınma programındaki mantığa ve kullanıcı tarafından yapılandırılabilir parametrelere odaklanır. Kod, aracın davranışını ultrasonik sensörden gelen girdiye göre kontrol edecek şekilde yapılandırılmıştır. Aracın performansını ince ayarlamak için ayarlayabileceğiniz temel değişkenler genellikle betiğin en üstünde tanımlanır.

Kodda bulacağınız birincil kullanıcı tarafından yapılandırılabilir ayarlar şunlardır:

  • Radar Referans Mesafesi: Bu, bir engelin "tehlike" olarak kabul edilip edilmediğini belirleyen eşik mesafesidir (örn., 20 cm). Sensör bu değerden daha az bir mesafe okursa, araç bir kaçınma manevrası başlatır.
  • Adım Açısı: Bu, servo motorun çevreyi tararken döndüğü artış miktarıdır (örn., 10 derece). Daha küçük bir adım açısı daha ayrıntılı bir tarama sağlar ancak daha uzun sürer.
  • İleri Hız: Bu değişken (örn., 30), araç ileri hareket ederken motorlar için güç seviyesini ayarlar.
  • Dönüş Hızı: Bu değişken (örn., 50), araç dönerken motorlar için güç seviyesini ayarlar; bu genellikle kesin bir dönüş sağlamak için ileri hızdan daha yüksektir.
  • İleri Tarama Açısı: Bu değer (örn., 50 derece), araç ileri hareket ederken servo tarafından taranacak açı aralığını ayarlar. Daha dar bir tarama daha hızlıdır ve doğrudan yoldaki engelleri algılamak için yeterlidir.

Bu değişkenlerin nasıl kullanılacağını anlamak için, aracın daha temkinli olmasını istediğinizi hayal edin. RADAR_REFERENCE değerini 25 cm'ye çıkararak engelleri daha uzak bir mesafeden algılayıp kaçınmasını sağlayabilirsiniz. Tersine, daha hızlı ve daha agresif bir araç için bu değeri 15 cm'ye düşürebilirsiniz.

Ana mantık, sensör verilerini analiz etmek için bir get_direction() işlevi kullanır. Bu işlev, mesafe okumaları dizisini '1' (boş alan) ve '0' (engel) dizisine dönüştürür. Ardından, en geniş sürekli yolu bulmak için bu diziyi sıfırlarda böler. Bu en geniş yolun konumuna bağlı olarak işlev bir yön döndürür: 'sol', 'sağ' veya 'ileri'. Ana döngü daha sonra ilgili manevrayı yürütür.

Canlı Proje/Gösterim

(videoda 02:47'de) Eğitmen, engel kaçınma özelliğini göstererek başlar. Araç, ultrasonik sensörü döndürmek için servoyu kullanır ve bir radar gibi çalışır. Araç hareket ederken, boş bir yol bulmak için çevresini tarar.

(videoda 03:34'te) Kod çalıştırılır ve araç açık bir alanda test edilir. Eğitmen, sonar modülündeki get_distance() işlevinin mesafeleri ölçmek için nasıl kullanıldığını göstererek kod yapısını açıklar. Sensörün okumaları kabukta görüntülenir ve doğruluğu ile sınırlamaları gösterilir.

(videoda 07:45'te) Eğitmen daha sonra "obstacle_avoid" örneğini açar ve akış şemasını adım adım anlatır. Bu görsel yardım, karar verme sürecini açıklar: araç tarar, tehlikeyi kontrol eder ve bir yol tıkalıysa, en geniş açık yola dayanarak dönmek için en iyi yönü belirler.

(videoda 16:02'de) Canlı bir test yapılır. Araç bir engeli (bir kutu) başarıyla algılar ve etrafında manevra yaparak net bir yol bulmak için sola döner. Eğitmen, kabuğa yazdırılan gerçek zamanlı verileri açıklar; engel için '0' ve boş alan için '1' gösterir.

(videoda 22:53'te) Birden fazla engel içeren daha karmaşık bir gösterim hazırlanır. Araç, çarpışmalardan kaçınmak ve temiz bir rota bulmak için sola veya sağa dönme kararları alarak parkuru geçer; bu, algoritmanın daha zorlu bir ortamda etkinliğini sergiler.

Bölümler

  • [00:00] Derse Giriş
  • [01:31] Kurs ve Kit Genel Bakışı
  • [02:47] Engel Kaçınma Özelliği Gösterimi
  • [03:34] Ultrasonik Sensörün Test Edilmesi
  • [07:45] Engel Kaçınma Algoritmasını Anlama
  • [12:49] Kod İncelemesi: Ana Döngü ve Mantık
  • [16:02] Canlı Test ve Veri Analizi
  • [22:53] Karmaşık Engel Parkuru Gösterimi
Kod eklenmemiş.

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Dosya mevcut değil.