Kod Ara

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, Raspberry Pi Pico Akıllı Araba kursunun yedinci dersinde, gri tonlamalı sensör modülünü kullanarak çizgi takibi ve uçurum algılamanın kritik işlevlerini inceliyoruz. Bu modül, arabanızın "gözleri" gibi davranarak önceden belirlenmiş bir yolu otonom olarak takip etmesini ve tehlikeli düşüşlerden kaçınmasını sağlar. Proje, sensörün doğru okumalar için nasıl kalibre edileceğini ve arabayı yolda tutan mantığın nasıl uygulanacağını gösterir; ayrıca uçurum algılamayı simüle eden eğlenceli bir "Beni İtme" özelliği içerir. Bu kılavuz, temel uzaktan kumandanın ötesine geçip sensör güdümlü robotik dünyasına dalmak isteyen herkes için mükemmeldir.

Bu teknolojinin eğlenceli bir DIY projesinin ötesinde sayısız pratik uygulaması vardır. Burada öğreneceğiniz ilkeler, gerçek dünya otonom sistemleri oluşturmak için temeldir. İşte size ilham verecek birkaç fikir:

  • Otomatik Teslimat Robotları: Bir depoda veya ofis katında işaretli çizgileri takip ederek öğeleri teslim edebilen küçük bir robot inşa edin.
  • Masa Üstü Labirent Çözücü: Siyah elektrik bandıyla çizilmiş karmaşık bir labirentte gezinebilen bir robot oluşturun.
  • Güvenlik ve Emniyet Robotu: Belirlenmiş bir yolu takip eden ve merdivenlerden veya yüksek yüzeylerden düşmeyi önlemek için uçurum algılamayı kullanan bir devriye botu uygulayın.
  • Eğitim Platformu: Arabayı PID kontrolü, sensör füzyonu ve otonom navigasyonun temellerini öğretmek için kullanın.

Donanım ve Bileşenler

Bu proje, SunFounder Raspberry Pi Pico 4WD araba kiti üzerine inşa edilmiştir. Bu ders için ana bileşen, hem çizgi takibi hem de uçurum algılama için gerekli olan gri tonlamalı sensör modülüdür. Modül, alttaki yüzeyden yansıyan ışık miktarını ölçen üç bağımsız sensöre sahiptir. Bu veriler, siyah bir çizgiyi, beyaz bir yüzeyi ve bir "uçurumu" veya açık alanı ayırt etmek için kullanılır. Tam kit ayrıca Pico araba şasisini, motorları ve sistemi güçlendirmek için bir pil paketini içerir.

Bağlantı Kılavuzu

Doğru bağlantı, sensörünüzün çalışmasını sağlamanın ilk adımıdır. Gri tonlamalı modül, Raspberry Pi Pico'ya dört kablo kullanılarak bağlanır. Bağlantı basittir ve videoda açıkça gösterilmiştir.

Videoda gösterilen bağlantı yapılandırması şu şekildedir (videoda 03:01'de):

  • Siyah Kablo: Pico üzerindeki bir GND pinine bağlayın.
  • Kırmızı Kablo: Pico üzerindeki 3.3V pinine bağlayın.
  • Sarı Kablo (Sağ Sensör): GPIO pinine 28 bağlayın.
  • Kahverengi Kablo (Orta Sensör): GPIO pinine 27 bağlayın.
  • Beyaz/Gri Kablo (Sol Sensör): GPIO pinine 26 bağlayın.

Gri Tonlamalı Sensörü Kalibre Etme

Araba bir çizgiyi güvenilir bir şekilde takip edebilmeden önce, sensörü beyaz, siyah ve boş alan için farklı okumaları anlayacak şekilde kalibre etmelisiniz. Bu, arabanızın doğru kararlar vermesini sağlamak için kritik bir adımdır. Sensörün hassasiyeti, modül üzerindeki küçük bir potansiyometre ile ayarlanabilir.

Video, kalibrasyon sürecini gösterir (videoda 04:39'da). Sensör, net okumalar almak için yerden yaklaşık 11 milimetre veya bir santimetre gibi optimum bir yüksekliğe yerleştirilmelidir. Potansiyometreyi ayarlayarak ve değerleri gözlemleyerek en uygun noktayı bulabilirsiniz. Amaç, çok fazla ışık yansıtan beyaz bir yüzey ile çok az ışık yansıtan siyah bir çizgi arasındaki okumalarda önemli bir fark olmasını sağlamaktır.

İşte okumaların ne anlama geldiğine dair bir özet:

  • Beyaz Yüzey: Yüksek yansıma, yüksek sensör değerleriyle sonuçlanır (örneğin, yaklaşık 20.000).
  • Siyah Çizgi: Düşük yansıma, düşük sensör değerleriyle sonuçlanır (örneğin, yaklaşık 3.000).
  • Uçurum (Boşluk): Yansıma yok, en düşük sensör değerleriyle sonuçlanır (örneğin, yaklaşık 1.200).

Kod Açıklaması

Bu ders için kod sağlanmadığından, kavramsal mantığa ve arabayı çalıştırmak için kullanılan Robojax kütüphanesindeki anahtar işlevlere odaklanacağız. Video, sağlanan kütüphaneden kullanacağınız iki ana işlevi açıklar.

Sensörü Test Etme

İlk adım, sensörünüzü basit bir komut dosyasıyla test etmektir. Bu komut dosyası, üç sensörden ham değerleri okumak için get_grayscale_value() adlı bir işlev kullanır. Bu değerleri seri monitöre yazdırarak sensör farklı yüzeylerin üzerindeyken nasıl değiştiklerini görebilirsiniz. Bu, bağlantınızı doğrulamak ve kalibrasyon adımını gerçekleştirmek için kullanışlıdır.


# Bu, test işlevinin kavramsal bir örneğidir
from machine import Pin, ADC
import time

# Gri tonlamalı sensörler için ADC pinlerini tanımlayın
grayscale_pins = [26, 27, 28]
sensors = [ADC(Pin(pin)) for pin in grayscale_pins]

while True:
    # Sensörlerden ham 16 bitlik değerleri okuyun
    values = [sensor.read_u16() for sensor in sensors]
    print("Sol: {} Orta: {} Sağ: {}".format(values[0], values[1], values[2]))
    time.sleep_ms(100)

Çizgi Takip Mantığı

Çizgi takibi için kod, ham analog değerleri kullanmaz. Bunun yerine, bunları basit bir dijital duruma dönüştürür: sensör siyah çizginin üzerindeyse 1 ve beyaz yüzeyin üzerindeyse 0. Bu, üç değerden oluşan bir liste döndüren bir işlev tarafından ele alınır (örneğin, [0, 1, 0]). Ana kontrol döngüsü daha sonra arabanın eylemlerini belirlemek için bu listeyi kullanır.

Mantık, sensör durumunun önceden tanımlanmış koşullarla karşılaştırılmasına dayanır. Örneğin, durum [0, 1, 0] ise, araç çizginin tam üzerindedir ve ileri gitmelidir. Durum [1, 0, 0] ise, araç sola kaymıştır ve yolunu sağa doğru düzeltmesi gerekir. Video bu koşulları ayrıntılı olarak açıklar (videoda 13:05'te), sensör okumalarının farklı kombinasyonlarının sola dönme, sağa dönme veya keskin düzeltme yapma gibi farklı motor komutlarına nasıl karşılık geldiğini gösterir.


# Bu, çizgi takip mantığının kavramsal bir örneğidir
# 'status' öğesinin gri tonlamalı sensörden [0, 1, 0] gibi bir liste olduğunu varsayalım

if status == [0, 1, 0]:  # Merkez sensör çizgide
    # İleri git
    pass
elif status == [1, 0, 0]:  # Sol sensör çizgide
    # Sağa dön
    pass
elif status == [0, 0, 1]:  # Sağ sensör çizgide
    # Sola dön
    pass
# ... daha keskin dönüşler için diğer koşullar

Canlı Proje Gösterimi

Videodaki gösterimde, araç kalın siyah bir çizgiye sahip basılı bir parkur üzerine yerleştirilir. Araç, yol boyunca ilerlerken dönüşler ve düzeltmeler yaparak çizgiyi başarıyla takip eder. Video, keskin dönüşler sırasında tekerleklerin gevşeyebileceği yaygın bir sorunu vurgular ve tekerlek miline daha sıkı bir oturma için küçük bir bant parçası ekleme gibi basit bir çözümü gösterir. Bu düzeltildikten sonra, araç tüm parkuru sorunsuz bir şekilde geçerek kalibrasyonun ve çizgi takip mantığının etkinliğini gösterir.

Video Bölümleri

  • [00:00] Çizgi Takibi ve Uçurum Algılamaya Giriş
  • [03:01] Gri Tonlamalı Sensör Modülünün Bağlanması
  • [04:39] Gri Tonlamalı Sensörün Kalibre Edilmesi
  • [13:05] Çizgi Takip Mantığını Anlama
  • [19:43] Çizgi Takip Kodunun Test Edilmesi
  • [24:50] Test Parkurunda Canlı Gösterim
Kod eklenmemiş.

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Dosya mevcut değil.