Haberler

Bir Raspberry Pi Çizgi Takip Robotu Yapın!

Bugün, Raspberry Pi SBC ve Grove ile popüler bir çizgi takip eden robot projesine adım adım nasıl başlayacağınızı göstereceğiz, özellikle de yeni başlayanlar için!

Bir çizgi takip eden robot, yerdeki bir çizgi ile önceden tanımlanmış bir yolu takip edebilen bir robottur. Robotlarda çizgi takibi sağlamak için birçok yol olsa da, en temel yöntemler, robotun çizgiyi takip etmesine yardımcı olmak için kızılötesi (IR) sensörler kullanır.

Neden Çizgi Takip Eden Robotlar Yapmalıyız?

Bu proje yeni başlayanlar için olsa da, kendi kendine yön bulabilen bir robotun yeteneklerini küçümsemeyin. Bugün, bu robotlar mağazalarda, depolarda ve sanayilerde lojistik amaçlar için yaygın olarak kullanılmaktadır. Amazon gibi büyük şirketler bile depolarında robotlar kullanarak maliyetleri düşürmekte ve daha güvenli çalışma ortamları yaratmaktadır!

Sektör standartlarındaki robotlar kesinlikle bugün oluşturduğumuzdan daha gelişmiş, ama yanılmayın – bu harika bir başlangıç noktası!

Çizgi Takip Eden Robot Projeleri

Çizgi takip eden robotlar yapma konusunda bu kadar çok öğretici olması, bu projenin ne kadar ilginç ve eğitici olduğunun bir kanıtıdır! Örneğin, Circuit Digest tarafından oluşturulan bu çizgi takip eden robota bir göz atın.

Kaynak: CircuitDigest

Aarav G tarafından Instructables’ta oluşturulan bu projeye ne dersiniz?

Kaynak: Instructables

Yine de, bir şey kesin – bu, bir başlangıç projesi için oldukça fazla kablolama! Kendi çizgi takip eden robotunuzu inşa etmek istiyorsanız ama donanım sizi geri tutuyorsa, bugün sizin için doğru çözümü sunuyoruz.

Grove Ekosistemi ile İnşa Etmek

Raspberry Pi ile Grove Base Hat’ini kullanırsak, donanım inşa sürecini büyük ölçüde basitleştirebiliriz!

Grove, modüler ve kullanımı kolay bir elektronik bağlantı arayüzüdür. Tak ve çalıştır özellikleri ve kapsamlı belgeleri ile Grove, yeni başlayanlar için elektronik projelere başlamak için kolay bir yoldur! Grove hakkında daha fazla bilgi almak için buraya göz atabilirsiniz.

Öğreticimize devam etmek için aşağıdaki parçaları öneriyoruz:

Son olarak, robotun ‘vücudu’ olarak hizmet edecek ve elektrik bileşenlerini barındıracak bir şasi edinmek isteyeceksiniz!

Not: Eğer bu, Raspberry Pi SBC ile çalıştığınız ilk kez ise, önce bu Seeed Wiki sayfası ile başlamanızı öneririz. Bu, sizi kurulum sürecinden geçirerek, bu öğreticinin geri kalanını takip etmeye hazır hale getirecektir!

Bir IR Çizgi Takip Eden Robot nasıl çalışır?

Robotumuzu çalıştıracak parçaları ve kavramları, IR sensörlerinden başlayarak inceleyelim.

IR Sensörüne Giriş

Bir IR sensörü, bir IR verici (IR LED) ve bir IR alıcıdan (bir fotodiyot) oluşur. Verici, kızılötesi ışık üretirken, alıcı, ışığın bir yüzey tarafından yansıtılıp yansıtılmadığını bekler.

Beyaz yüzeyler IR ışığı iyi bir şekilde yansıtır. Ancak, siyah yüzeyler IR ışığını emeceğinden, alıcı yansımayı almayacaktır. Bu, IR sensörünü beyaz ve siyah yüzeyler arasında ayırt etmek için kullanmamıza olanak tanır – sensör bir çizgideyken veya çizgiden çıktığında. Harika!

2 IR Sensörü ile Yolları Takip Etmek

Çizgimizi takip etmek için, her iki tarafında birer IR sensörü yerleştirmemiz gerekecek. Her iki IR sensörü de çizgide değilse, robotumuz düz bir şekilde ilerleyecektir.

Bir sensör çizgideyken diğeri değilse, robotu ilk sensörün yönüne döndürmemiz gerekecek. Örneğin, sol IR sensörü çizgiyi algılarken sağ olan algılamıyorsa, robotun sola dönmesini isteyeceğiz, böylece çizgide kalacağız; tam tersi durumda da aynı şekilde.

Şematik ve Taslak

Robotun çizgisini nasıl takip edeceğini bildiğimize göre, sensör verileri ile robotun hareketi arasındaki boşlukları doldurmamız gerekiyor. Öncelikle aşağıdaki şemaya bakalım.

Robotumuzun merkezinde, esasen ‘beyin’ olarak hizmet edecek olan Raspberry Pi bulunmaktadır. İki sensörden gelen verileri alacak ve ardından istenen hareketi sağlamak için iki motora motor sürücüsü aracılığıyla kontrol sinyalleri gönderecektir.

Bir motor sürücüsü gereklidir çünkü Raspberry Pi’nin GPIO pinleri yalnızca maksimum 5V çıkış verebilir. Robotumuzun daha ağır yükler taşıyabilmesi için motorlarımızda daha fazla tork istiyorsak, daha fazla güce ihtiyacımız olacak.

Kısacası, motor sürücüsü, Raspberry Pi’den kontrol sinyalleri alırken motorlarımızı başka daha güçlü bir güç kaynağından beslememizi sağlar. Ayrıca motorlarımızın iki yönlü çalışmasını sağlar – yani tek bir tekerlek hem ileri hem de geri hareket edebilir – bu da yön değiştirmek için ihtiyacımız olan şeydir!

Motor Kontrolü ve Hareket

Robotumuzu sola veya sağa hareket ettirmek için, her bir motora bir dizi komut göndermemiz gerekiyor. Bireysel tekerlek yönlerinin ve bunların sonuçlanan hareketlerinin kombinasyonu aşağıda gösterilmiştir – bunu kendiniz deneyebilir ve doğrulayabilirsiniz!

Sol Sağ Sonuçlanan Hareket
İleri Geri Sağa Dön
Geri İleri Sola Dön
İleri İleri Dümdüz Git
Geri Geri Geri Dön

Robotumuzu Bağlayalım!

Tüm teoriyi geçtik, şimdi çizgi takip eden robotumuzu inşa etmeye başlayalım! Önerdiğimiz tüm malzemeleri topladıysanız, aşağıdaki şemayı doğrudan takip edebilirsiniz.

Not alın!

  • Grove taban şapkası Raspberry Pi’nin üstüne oturacak ve grove aksesuarlarımıza bağlanmamızı sağlayacak.
  • Kullanılan pillerin motorlarımızı çalıştırmak için yeterli voltaja sahip olduğundan emin olun. Tam bir rehber için Rehber: Gömülü Cihazlar için Piller sayfasını ziyaret edin.
  • Şapka ile Grove bağlantılarına dikkat edin! Yukarıdaki şemada, IR sensörleri D16 ve D18 dijital bağlantılarımıza bağlanırken, motor sürücümüz I2C bağlantısına bağlıdır.
  • İki IR sensörünün yere doğru baktığından emin olun! Ayrıca, çizginizin genişliğini karşılayacak kadar aralarında boşluk bıraktığınızdan emin olun.
  • Raspberry Pi’niz için de güç gereksinimlerini göz önünde bulundurun! Tipik bir USB güç bankası işinizi görecektir.

Ne tür bir çizgi takip eden robot yaratacağınızı görmek için sabırsızlanıyoruz, bu yüzden robotunuzun form faktörü ile eğlenerek inşa edin!

Peki ya Yazılım?

Elbette, robotumuz sadece donanımla sihirli bir şekilde çalışmayacak – Şimdi Raspberry Pi’mizle çalışmanın zamanı geldi!

Robotumuzun davranışını programlamak için Python kullanacağız. Neyse ki, Grove ekosistemini kullandığımız için, üzerinde çalışmak için uygun Grove Python kütüphanesi de var.

Öncelikle, Grove kütüphanesini Raspberry Pi’nize komut satırı arayüzü (CLI) üzerinden kurun:

git clone https://github.com/Seeed-Studio/grove.py
cd grove.py
sudo ./install.sh

Ardından, ana program için kodumuz aşağıdaki gibidir. Favori metin veya kod editörünüzle bir python dosyası (.py uzantılı) oluşturabilirsiniz.

Programlamaya yeniyseniz, kodumuzda olan her şey, şimdiye kadar teoride tartıştığımız şeylerdir – IR sensör verilerimizi okumak ve motorları buna göre kontrol etmek!

from grove.gpio.gpio_rpi import GPIO
from grove.grove_i2c_motor_driver import MotorDriver
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
 
Left_IR = GPIO(16, direction = GPIO.IN) #GPIO 16 -> Sol IR çıkışı
Right_IR = GPIO(18,direction = GPIO.IN) #GPIO 18 -> Sağ IR çıkışı
 
# Motor sürücü kontrollerimizi başlat
motor = MotorDriver()
 
while 1:
   if(GPIO.read(16)==True and GPIO.read(18)==True): #her ikisi de ileri
       MotorDriver.set_dir(clock_wise1 = True, clock_wise2 = True)
       MotorDriver.set_speed(speed1 = 80, speed2 = 80)
 
   elif(GPIO.read(16)==False and GPIO.read(18)==True): #sola dön
       MotorDriver.set_dir(clock_wise1 = False, clock_wise2 = True)
       MotorDriver.set_speed(speed1 = 50, speed2 = 50)
 
   elif(GPIO.read(2)==True and GPIO.read(3)==False): #sağa dön
       MotorDriver.set_dir(clock_wise1 = True, clock_wise2 = False)
       MotorDriver.set_speed(speed1 = 50, speed2 = 50)
 
   else:  #dur
       MotorDriver.set_speed(speed1 = 0, speed2 = 0)

Not: IR sensörlerinizi nasıl bağladığınıza göre GPIO pin numaralarını değiştirdiğinizden emin olun. Robotunuzu nasıl bağladığınıza bağlı olarak motor yönleriyle de oynamanız gerekebilir.

Artık programımız çalışmaya hazır, sadece python dosyanızı kendi dosya yolunuzla aşağıdaki komutla çalıştırın. Ben python dosyama linefollower.py adını verdim, ancak istediğiniz ismi seçebilir ve aşağıdaki gibi çalıştırabilirsiniz.

python <file_path>/linefollower.py

Programı klavyenizde Control + C ile durdurabilirsiniz.

Raspberry Pi’mizi Uzaktan Kontrol Etme

Bu noktada, Raspberry Pi’niz muhtemelen robotunuza zaten kurulmuştur. Bu, bir monitör, fare ve klavye ile bağlanmayı zorlaştırabilir. Raspberry Pi’nizde kodunuzu gidip gelerek sorun gidermeniz gerekiyorsa, programınızı kontrol etmek için WiFi üzerinden bir SSH bağlantısı kullanmak çok daha pratik olabilir.

SSH ile, nano gibi bir CLI metin editörü kullanarak python kodumuzu bile düzenleyebiliriz:

sudo nano <path>/<filename>.py

Daha fazla bilgi için Raspberry Pi’de WiFi’yi Yapılandırmanın 3 Yolu başlıklı makalemizi ziyaret edin.

Çizgi Takip Eden Robotumuzu Test Etme

Beklediğiniz an geldi! Yerde siyah bantla kendi parkurunuzu kurun ve robotunuzun hareketini izleyin!

İlk denemede çalışmazsa endişelenmeyin – sorun giderme ve problemleri çözme, kendi robotunuzu yapmanın en önemli deneyimlerinden biridir!

Robotunuzun çizgi takip etme yeteneklerini geliştirmek için motor çıkış değerlerinizi ayarlamak gibi diğer yolları da keşfedebilirsiniz.

Ne yazık ki robotu inşa etmek için malzemelerim yok, ancak CircuitDigest tarafından son ürünün nasıl görünmesi gerektiğine dair harika bir gösterim var.

Özet

Bu makalede, kendi çizgi takip eden robotunuzu nasıl inşa edeceğinizi, kavramlardan ve şemalardan donanım ve yazılım uygulamalarına kadar her şeyi ele aldık. Umarız rehberimizi takip ederken eğlenmişsinizdir!

Raspberry Pi ve diğer robotik projeler hakkında daha fazla bilgi edinmek isteyen başlangıç seviyesindeki kullanıcılar için lütfen ziyaret edin:

Gelişmiş Robotik Navigasyon – LiDAR ve SLAM

Bir çizgi takip eden robot bazı durumlar için mükemmel çalışsa da, gelişmiş robotik tasarımlar bu tasarımdan uzaklaşır çünkü çizgi yolları inşa etmek maliyetli olabilir, özellikle büyük fabrikalarda.

Bu durumlarda, SLAM (ya da Eşzamanlı Konumlandırma ve Haritalama) olarak bilinen bir teknik kullanabiliriz. LiDAR (Işık Tespiti ve Mesafe Ölçümü) sensörü kullanarak, robotumuz çevresindeki dünyanın 3D haritasını oluşturacak, konumunu belirleyecek ve varış noktasına giden bir yol tanımlayacaktır.

Bu sizin için heyecan verici geliyorsa, LiDAR ve SLAM ile ilgili bazı makalelerimizi mutlaka kontrol edin!

Arka plan bilgisi için, aşağıdakileri okumanız ilginizi çekebilir:

Leave a Reply

Your email address will not be published. Required fields are marked *