- Gerekli malzemeler:
- Çizgi İzleyici Kavramları
- Raspberry Pi Çizgi İzleyen Robot Devre Şeması ve Açıklaması:
- Raspberry PI'nizi programlama:
- Raspberry Pi Hat İzleyicisi İş Başında:
Hepimizin bildiği gibi Raspberry Pi, ARM mikroişlemciye dayalı harika bir Geliştirme platformudur. Yüksek hesaplama gücü ve geliştirme seçenekleri ile elektronik meraklılarının veya öğrencilerin elinde harikalar yaratabilir. Raspberry Pi ve nasıl çalıştığı hakkında daha fazla bilgi edinmek için Raspberry Pi kullanarak bir Çizgi İzleyen Robot oluşturmayı deneyelim.
Robotik ile ilgileniyorsanız, “ Çizgi İzleyen Robot ” ismine çok aşina olmalısınız. Bu robot, sadece bir çift sensör ve motor kullanarak bir çizgiyi takip edebilir. Basit bir robot oluşturmak için Raspberry Pi gibi güçlü bir mikroişlemci kullanmak kulağa verimli gelmeyebilir. Ancak, bu robot size sonsuz geliştirme için yer sağlar ve Kiva (Amazon depo robotu) gibi robotlar buna bir örnektir. Diğer Çizgi İzleyen Robotlarımızı da inceleyebilirsiniz:
- 8051 Mikrodenetleyiciyi kullanan Çizgi İzleyen Robot
- Arduino kullanan Çizgi İzleyen Robot
Gerekli malzemeler:
- Raspberry Pi 3 (herhangi bir model çalışmalıdır)
- IR Sensörü (2Nos)
- DC Dişli Motor (2Nos)
- L293D Motor Sürücüsü
- Şezlonglar (Kartonları kullanarak kendi şezlonglarınızı da oluşturabilirsiniz)
- Güç bankası (Mevcut herhangi bir güç kaynağı)
Çizgi İzleyici Kavramları
Çizgi İzleyen Robot, bir IR sensörü yardımıyla bir çizgiyi takip edebilmektedir. Bu sensör bir IR Vericisine ve IR alıcısına sahiptir. IR vericisi (IR LED) ışığı iletir ve Alıcı (Fotodiyot) gönderilen ışığın geri dönmesini bekler. Bir IR ışığı, yalnızca bir yüzey tarafından yansıtılırsa geri döner. Oysa tüm yüzeyler kızılötesi ışığı yansıtmaz, yalnızca beyaz renkli yüzey onları tamamen yansıtabilir ve siyah renkli yüzey bunları aşağıdaki şekilde gösterildiği gibi tamamen gözlemleyecektir. Kızılötesi sensör modülü hakkında buradan daha fazla bilgi edinin.
Şimdi robotun hat ile yolda olup olmadığını kontrol etmek için iki IR sensörü ve ray dışına çıkarsa robotu düzeltmek için iki motor kullanacağız. Bu motorlar yüksek akım gerektirir ve çift yönlü olmalıdır; bu nedenle L293D gibi bir motor sürücü modülü kullanıyoruz. IR sensöründen gelen değerlere göre motorlara talimat vermek için Raspberry Pi gibi bir hesaplama cihazına da ihtiyacımız olacak. Aynı şeyin basitleştirilmiş bir blok diyagramı aşağıda gösterilmiştir.
Bu iki IR sensörü, hattın her iki tarafına da yerleştirilecektir. Sensörlerden hiçbiri siyah bir çizgi algılamıyorsa, PI motorlara aşağıda gösterildiği gibi ilerlemelerini söyler.
Sol sensör siyah çizgi üzerinde gelirse, PI robota yalnızca sağ tekerleği döndürerek sola dönmesini söyler.
Sağ sensör siyah çizgi üzerinde gelirse, PI robota sol tekerleği tek başına döndürerek sağa dönmesini söyler.
Her iki sensör de siyah çizgi üzerinde gelirse robot durur.
Bu şekilde Robot, parkurun dışına çıkmadan çizgiyi takip edebilecektir. Şimdi devrenin ve Kodun nasıl göründüğüne bakalım.
Raspberry Pi Çizgi İzleyen Robot Devre Şeması ve Açıklaması:
Bu Raspberry Pi Line Follower Robot için tam devre şeması aşağıda gösterilmiştir.
Gördüğünüz gibi devre, iki IR sensörü ve Raspberry pi'ye bağlı bir çift motor içeriyor. Devrenin tamamı bir Mobil Güç bankası tarafından çalıştırılır (yukarıdaki devrede AAA pil ile temsil edilir).
Raspberry Pi üzerinde pin detaylarından bahsedilmediği için aşağıdaki resmi kullanarak pinleri doğrulamamız gerekmektedir.
Resimde gösterildiği gibi, PI'nin sol üst köşe pini + 5V pini, bu + 5V pini, devre şemasında gösterildiği gibi (kırmızı kablolu) IR sensörlerine güç sağlamak için kullanıyoruz. Daha sonra topraklama pinlerini siyah kablo kullanarak IR sensörünün ve Motor Sürücü modülünün topraklamasına bağlarız. Sarı teli, sırasıyla sensörü 1 ve 2 GPIO pim ve 3 arasında bir çıkış pini bağlamak için kullanılır.
Motorları sürmek için dört pime (A, B, A, B) ihtiyacımız var. Bu dört pim sırasıyla GPIO14,4,17 ve 18'den bağlanır. Turuncu ve beyaz tel birlikte bir motor için bağlantı oluşturur. Yani iki motor için böyle iki çiftimiz var.
Motorlar, resimde gösterildiği gibi L293D Motor Sürücüsü modülüne bağlanır ve sürücü modülü bir güç bankası tarafından beslenir. Güç bankasının topraklamasının Raspberry Pi'nin zeminine bağlı olduğundan emin olun, ancak o zaman bağlantınız çalışacaktır.
Raspberry PI'nizi programlama:
Montajınızı ve bağlantılarınızı tamamladığınızda, robotunuz buna benzer bir görünüme sahip olmalıdır.
Şimdi, botumuzu programlama ve çalıştırma zamanı. Bu bot için kodun tamamı bu eğitimin altında bulunabilir. Raspberry Pi'de Programlama hakkında daha fazla bilgi edinin ve kodu çalıştırın. Önemli satırlar aşağıda açıklanmıştır
Kütüphaneden GPIO dosyasını içe aktaracağız, aşağıdaki fonksiyon PI'nın GPIO pinlerini programlamamızı sağlar. Ayrıca "GPIO" yu "IO" olarak yeniden adlandırıyoruz, bu nedenle programda GPIO pinlerine başvurmak istediğimizde "IO" kelimesini kullanacağız.
RPi.GPIO'yu IO olarak içe aktar
Bazen kullanmaya çalıştığımız GPIO pinleri başka işlevler yapıyor olabilir. Bu durumda programı çalıştırırken uyarılar alacağız. Aşağıdaki komut PI'ya uyarıları dikkate almamasını ve programa devam etmesini söyler.
IO.setwarnings (False)
PI'nın GPIO pinlerini, kart üzerindeki pin numarasına veya fonksiyon numaralarına göre yönlendirebiliriz. Tahtadaki 'PIN 29' gibi 'GPIO5'. Yani burada ya buradaki pimi '29' veya '5' ile temsil edeceğimizi söylüyoruz.
IO.setmode (IO.BCM)
Giriş / çıkış pinleri olarak 6 pin ayarlıyoruz. İlk iki pin, IR sensörünü okumak için giriş pinleridir. Sonraki dördü, ilk ikisi sağ motoru ve sonraki ikisi de sol motoru kontrol etmek için kullanılan çıkış pinleridir.
IO.setup (2, IO.IN) #GPIO 2 -> Sol IR çıkışı IO. Kurulumu (3, IO.IN) #GPIO 3 -> Sağ IR çıkışı IO. Kurulumu (4, IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 terminal B IO.setup (17, IO.OUT) #GPIO 17 -> Motor Sol terminal A IO.setup (18, IO.OUT) #GPIO 18 -> Motor Sol terminali B
IR sensörü, beyaz bir yüzeyin üzerindeyse "True" çıkışı verir. Her iki sensör de True söylediği sürece ilerleyebiliriz.
eğer (IO.input (2) == True ve IO.input (3) == True): #her ikisi de beyaz ileri git IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Biz gereken doğru bir dönüş yapmak ilk kızılötesi algılayıcı siyah çizgi üzerinden gelirse. Bu, IR sensörünü okuyarak yapılır ve koşul yerine getirilirse, aşağıdaki kodda gösterildiği gibi sağ motoru durdurur ve sol motoru tek başına döndürürüz.
elif (IO.input (2) == False ve IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, Doğru) # 2A + IO. çıkışı (18, Yanlış) # 2B-
Biz zorundayız sola dönün ikinci kızılötesi algılayıcı siyah çizgi üzerinden gelirse. Bu, IR sensörünü okuyarak yapılır ve koşul yerine getirilirse, aşağıdaki kodda gösterildiği gibi sol motoru durdurur ve sağ motoru tek başına döndürürüz.
elif (IO.input (2) == True ve IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Doğru) # 2A + IO. çıktı (18, Doğru) # 2B-
Her iki sensör de siyah bir çizginin üzerine gelirse, bu robotun durması gerektiği anlamına gelir. Bu, aşağıdaki kodda gösterildiği gibi motorun her iki terminalini de doğru yaparak yapılabilir.
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Raspberry Pi Hat İzleyicisi İş Başında:
Raspberry Pi'nize satır takipçisi için python kodunu yükleyin ve çalıştırın. Taşınabilir bir güç kaynağına ihtiyacımız var, bu durumda bir güç bankası kullanışlı oluyor, dolayısıyla ben de aynısını kullandım. Kullandığım iki USB bağlantı noktasıyla birlikte geliyor, bu nedenle aşağıdaki resimde gösterildiği gibi PI ve diğerini Güç Motor Sürücüsüne beslemek için kullandım.
Artık tek yapmanız gereken, kendi siyah renkli parçanızı kurmak ve botunuzu bunun üzerine bırakmak. Herhangi bir siyah renkli malzemeyi kullanabileceğiniz parkuru oluşturmak için siyah renkli İzolasyon bandı kullandım, ancak zemin renginizin koyu olmadığından emin olun.
Botun tam çalışması aşağıda verilen videoda bulunabilir. Umarım projeyi anladınız ve bir tane oluşturmaktan zevk almışsınızdır. Herhangi bir sorunuz varsa, bunları aşağıdaki yorum bölümüne gönderin.