- Gerekli malzemeler
- Çizgi İzleyici Kavramları
- Devre Açıklaması
- MSP430 kullanarak Çizgi İzleyen Robotun Çalışması
- Devre şeması
- Programlama Açıklaması
Çizgi izleyen robot, basitliği nedeniyle öğrenciler ve yeni başlayanlar arasında popüler robotik projelerinden biridir. Mikrodenetleyicinizi nasıl programladığınıza bağlı olarak siyah veya beyaz bir çizgi izler. Burada Texas Instruments'ın MSP430 fırlatma rampasını kullanarak siyah çizgiyi takip eden bir çizgi izleyen robot yapıyoruz. MSP430 başlatma çubuğunda yeniyseniz, lütfen MSP430 ile Başlarken Eğitimimizi okuyun.
Gerekli malzemeler
- Texas Instruments'tan MSP430G2 LaunchPad
- L298D motor sürücü modülü
- Bağlantı telleri
- IR sensör Modülleri
- Şase, tekerlek, hız treni
- Energia IDE
- Güç kaynağı (3.3v) ve 5v-12v
Çizgi İzleyici Kavramları
Çizgi takipçisi kavramı ışıkla ilgilidir. Siyah beyaz yüzeyde ışığın davranışını kullandık. Işık beyaz bir yüzeye düştüğünde neredeyse tamamen yansır ve siyah yüzey olması durumunda ışık siyah yüzey tarafından emilir. Bu açıklanan ışık davranışı, bu çizgi izleyen robotta kullanılmaktadır.
Bu MSP430 tabanlı çizgi izleyen robotta, foto diyot olarak da adlandırılan IR Vericileri ve IR alıcılarını kullandık. Işık göndermek ve almak için kullanılırlar. IR, kızılötesi ışıkları iletir. Kızılötesi ışınlar beyaz yüzeye düştüğünde, geri yansıtılır ve bazı voltaj değişiklikleri oluşturan fotodiyotlar tarafından yakalanır. IR ışığı siyah bir yüzeye düştüğünde, ışık siyah yüzey tarafından emilir ve hiçbir ışın geri yansıtılmaz, bu nedenle foto diyot ışık veya ışın almaz. IR sensörleri hakkında daha fazla bilgi edinmek için bağlantıyı takip edin.
Burada, MSP430 tabanlı bu çizgi izleyen robotta sensör beyaz yüzeyi algıladığında MSP girdi olarak 1 alır ve siyah çizgi algıladığında MSP girdi olarak 0 alır.
Devre Açıklaması
Tüm çizgi izleyen robotu sensör bölümü, kontrol bölümü ve sürücü bölümü gibi çeşitli bölümlere ayırabiliriz.
Sensör bölümü: Bu bölüm IR diyotları, potansiyometre, Karşılaştırıcı (Op-Amp) ve LED'leri içerir. Potansiyometre, karşılaştırıcının bir terminalinde referans voltajı ayarlamak için kullanılır ve IR sensörleri hattı algılar ve karşılaştırıcının ikinci terminalindeki voltajda bir değişiklik sağlar. Daha sonra karşılaştırıcı, her iki gerilimi karşılaştırır ve çıkışta bir dijital sinyal üretir. Burada bu devrede iki sensör için iki karşılaştırıcı kullandık. LM358, karşılaştırıcı olarak kullanılır. LM358 dahili iki düşük gürültülü Op-amp içerir.
Kontrol Bölümü: MSP430 Launchpad, çizgi izleyen robotun tüm sürecini kontrol etmek için kullanılır. Karşılaştırıcıların çıkışları, MPS430 Launchpad'in dijital pinleri P1_3 ve P1_4'e bağlanır. MSP430 Başlatma Çubuğu bu sinyalleri okur ve sürücü devresine sürücü hattı takipçisine komutlar gönderir.
Sürücü bölümü: Sürücü bölümü motor sürücü ve iki DC motordan oluşur. Motor sürücüsü motorları çalıştırmak için kullanılır çünkü MSP430 Launchpad motora yeterli voltaj ve akım sağlamaz. Bu yüzden motor için yeterli voltaj ve akımı elde etmek için bir motor sürücü devresi ekledik. Burada DC Motorları sürmek için L298d sürücüsünü kullandık. MSP430 Başlatma Panosu bu motor sürücüsüne komutlar gönderir ve ardından motorları çalıştırır.
Farklı Mikrodenetleyici kullanarak Çizgi İzleyen Robotlar geliştirdik:
- 8051 Mikrodenetleyiciyi kullanan Çizgi İzleyen Robot
- Arduino kullanan Çizgi İzleyen Robot
- Raspberry Pi kullanan Çizgi İzleyen Robot
- PIC Mikrodenetleyiciyi kullanan Çizgi İzleyen Robot
MSP430 kullanarak Çizgi İzleyen Robotun Çalışması
Hat takipçisinin çalışması çok ilginç. Çizgi izleyen robot, sensörü kullanarak siyah çizgiyi algılar ve ardından sinyali MSP430 Başlatma Çubuğuna gönderir. Ardından MSP430 Launchpad, motoru sensörlerin çıkışına göre çalıştırır.
Burada bu projede sol sensör ve sağ sensör olmak üzere iki IR sensör modülü kullanıyoruz. Hem sol hem de sağ sensör beyazı algıladığında robot ileri doğru hareket eder.
Sol sensör siyah çizgi üzerinde gelirse robot sola döner.
Sağ sensör siyah çizgiyi algılarsa, robot her iki sensör de beyaz yüzeye gelene kadar sağa döner. Beyaz yüzey geldiğinde robot tekrar ilerlemeye başlar.
Her iki sensör de siyah çizgi üzerinde gelirse robot durur.
Devre şeması
Bu MSP430 Çizgi İzleyen Robotun devresi çok basittir. Karşılaştırıcıların çıkışı doğrudan MSP430 Launchpad'in dijital pin numarası p1_3 ve P1_4'e bağlıdır. Ve motor sürücüsünün giriş pini IN1, IN2, IN3 ve IN4, sırasıyla MSP430 Launchpad'in dijital pini P1_5, P2_0, P2_1, P2_2'ye bağlanır. Bir motor, motor sürücüsü OUT1 ve OUT2'nin çıkış pinine bağlanır ve diğer motor OUT3 ve OUT4'e bağlanır. Burada Motor Sürücü modülü hariç tüm devreye güç sağlamak için 3.3v besleme kullandık. Motor sürücü modülüne 8v verdik. Kullanıcı 5v-12v kullanabilir.
Perf Board üzerinde yaptığım gibi kendi IR modülünüzü de oluşturabilirsiniz. IR Modülü için devre aşağıdadır:
Programlama Açıklaması
Tam Program ve Video bu Makalenin sonunda bulunabilir.
Bir programda öncelikle sensör ve motorlar için giriş ve çıkış pinlerini tanımlarız. Ardından, çizgi izleyicinin yönü için bazı makrolar tanımlayın ve ardından sensör çıkışını seçmek için bir yönerge yazın
Not: Sensör aktif düşük veya aktif yüksek olabilir, bu nedenle önce sensörün çıktısının ne olduğunu kontrol edin, ardından activeLowMode'a yorum ekleyerek veya yorumunu kaldırarak yönergeyi seçin. Etkin YÜKSEK için, activeLowMode makrosunu yorumlayın .
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {ileri, sol, sağ, durdur}; #else int res = {stop, right, left, forward}; #endif
Bundan sonra kurulum fonksiyonunda sensör ve motor pinine yön veriyoruz. Ve sonra döngü fonksiyonunda, girişleri kontrol ediyoruz ve motorları çalıştırmak için motor sürücü modülüne çıkış gönderiyoruz.
void setup () { for (int i = 0; i <4; i ++) pinMode (pinler, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } void döngü () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); for (int i = 0; i <4; i ++) digitalWrite (pinler, (res >> i) & 0x01); }
Bu satır takipçisinde MSP430 Launchpad kullanarak okuduğumuz dört koşul var. Sol sensör ve sağ sensör olmak üzere iki sensör kullandık.
Koşullar: Aktif YÜKSEK çıkış
Giriş |
Çıktı |
Hareket Robotun |
||||
Sol Sensör |
Sağ Sensör |
Sol Motor |
Sağ Motor |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
Dur |
0 |
1 |
1 |
0 |
0 |
0 |
Sağa dönün |
1 |
0 |
0 |
0 |
1 |
0 |
Sola çevirin |
1 |
1 |
1 |
0 |
1 |
0 |
İleri |
Program, yukarıdaki tablo koşullarına göre yazılır. Aşağıdaki Kod ve Gösteri Videosunun tamamını kontrol edin.