Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, Semih Şahin tarafından sunulan Gömülü Sistemler dersi için hazırlanmış kapsamlı bir eğitim içeriğidir. Eğitmen, kablolu haberleşme protokolleri konusunu detaylı olarak anlatmaktadır.
- Video, seri ve paralel haberleşme yöntemlerini, RS232, RS422, RS485, UART, I2C ve SPI gibi farklı protokolleri karşılaştırmalı olarak ele almaktadır. Her protokolün temel özellikleri, avantajları, dezavantajları ve kullanım alanları açıklanırken, Arduino kullanılarak joystick veya potansiyometre ile servo motor ve DC motor kontrolü, LED göstergeleri ve iki mikrodenetleyici arasında haberleşme uygulamaları gösterilmektedir.
- Eğitim içeriği, teorik bilgilerin yanı sıra Proteus ve Tinkercad gibi simülasyon programlarında uygulamalı örnekler sunmaktadır. Ayrıca, farklı protokollerin mesafe kapasitesi, veri aktarım hızı, parazitlenme seviyeleri ve sinyal gönderim teknikleri açısından karşılaştırması yapılarak, hangi durumlarda hangi protokolün tercih edilmesi gerektiği açıklanmaktadır.
- 00:01Gömülü Sistemler Dersi Ödevi Tanımı
- Ödev, kablolu haberleşme protokolleri konusunu detaylıca anlatıp uygulamayla birlikte gerçekleştirmeyi gerektiriyor.
- Uygulamada joystick veya potansiyometre, iki buton, servo motor, DC motor, iki LED ve iki mikrodenetleyici (Arduino Uno) kullanılacak.
- Joystick veya potansiyometre ile servo motorun hareket etme yönü belirlenecek, DC motorun yönü joystick veya butonlarla, hızı ise potansiyometre ile kontrol edilecek.
- 03:06Haberleşme Protokolleri
- Bilgisayarlar, mikrodenetleyiciler ve entegre devreler kablolu iletişim kurarken sinyallerin gönderimi ve alımı yapar.
- Seri haberleşme ve paralel haberleşme olmak üzere iki farklı bit gönderim şekli vardır.
- Paralel haberleşmede her bir data için ayrı bir hat vardır ve tüm bitler aynı anda gönderilir, seri haberleşmede ise tek bir data hattı vardır ve bitler sırayla tek tek gönderilir.
- 04:13Paralel ve Seri Haberleşmenin Karşılaştırılması
- Paralel haberleşme seri haberleşmeye göre daha hızlıdır, ancak uzun mesafelerde daha maliyetli ve sağlıksızdır.
- Uzun mesafelerde veri kayıpları paralel haberleşmede seri haberleşmeye göre daha kompleks problemler ortaya çıkarır.
- Ödev boyunca seri iletişimin daha sağlıklı olması ve Tinkercad'de pin sayısı düşük olan Arduino serisi mikrodenetleyicilerin olması sebebiyle uygulamalar seri haberleşme üzerinden anlatılacaktır.
- 05:30Seri İletişim İçin Standart Kısımlar
- Neredeyse tüm mikrodenetleyicilerde, geliştirme kartlarında ve singleboard computerlarda seri iletişim için standart olarak üretilen kısımlar vardır.
- Arduino'da TX ve RX pinleri UART iletişim protokolünün pinleridir.
- Hangi haberleşme protokolünün kullanılacağı, cihaz sayısı, sistem hızı, veri alışveriş hızı ve bileşenler arasındaki mesafe gibi faktörlere bağlıdır.
- 07:31Senkron ve Asenkron Seri İletişim
- Senkron seri iletişim, veriyi gönderen ile alan bileşenlerin uyumlu sinyal darbe frekanslarında eş zamanlı çalışması ile sağlanan iletişim biçimidir.
- Senkron iletişim için data kablosunun yanında saat sinyali kablosu bulunur ve başlangıç-bitiş bitlerine ihtiyaç yoktur.
- Senkron seri iletişim asenkron seri iletişime göre daha hızlıdır fakat daha kompleks ve maliyetli elektronik devreler içerir.
- 09:28Asenkron Seri İletişim
- Asenkron seri iletişimde sadece data kablosu vardır, saat sinyaline gerek yoktur.
- Veriyi alan ile gönderen bileşenler eş zamanlı çalışmazlar, başlangıç, bitiş ve eşlik biti vardır.
- Başlangıç biti verinin gönderilmeye başlandığını, bitiş biti verinin sonlandığını, eşlik biti ise verinin düzgün gidip gitmediğini kontrol etmek için gönderilir.
- 10:53Asenkron Seri İletişimde Veri Gönderimi
- Asenkron seri iletişimde karakterlerin ASCII tablosundaki binary karşılıkları bitler halinde gönderilir.
- Start biti her zaman lojik bir olmalıdır, stop bitleri ise bir veya iki adet olabilir.
- Maksimum olabilecek veri dizisi, start biti (1), data bitleri (7-8), parity biti (0-1) ve stop biti (1-2) olmak üzere toplamda on iki bitlik bir veri dizisidir.
- 14:18RS-232 Protokolü
- RS-232, monitör gibi çevre donanımlarını bağlamakta yaygın olarak kullanılan bir protokoldür.
- RS-232, 9600 baud rate ile saniyede 15 metreye kadar kayıpsız iletişim sağlayabilir.
- RS-232'nin voltaj taşıma kapasitesi +12 volt ile -12 volt arasındadır; +12 volt lojik 0, -12 volt ise lojik 1 olarak ifade edilir.
- 16:34RS-422 Protokolü
- RS-422 donanımı seri haberleşme hattında sadece bir verici cihaz ve maksimum on tane alıcı cihaz bulunabilir.
- RS-422, 10 metre mesafede 10 megabit/s, 1 km mesafede ise 10 kb/s'ye kadar veri aktarım hızına sahiptir.
- RS-422 veriyi dört kablo ile iletir ve bir tane toprak kablosu bulunur, toplam beş tel ile iletişim sağlar.
- 18:28RS-422'nin Teknik Özellikleri
- RS-422'nin voltaj taşıma kapasitesi +6 ile -6 volt arasındadır.
- RS-422'de parazitlenme ve dalgalanma olarak 0,20 voltta -0,20 volt aralığı kabul edilir.
- RS-422'de eksi değerler lojik 1, pozitif değerler ise lojik 0 olarak karşılık gelir.
- 19:18RS-422 ve RS-485 Protokollerinin Özellikleri
- RS-422 kart standardı belirli bir konnektör türü ile kullanılması şart değildir, terminal bloğu veya DB9 konnektörü ile de kullanılabilir.
- RS-485 çoklu düğüm mantığı ile çalışan bir protokoldür ve RS-423 ile neredeyse tüm özellikleri aynıdır, sadece yalıtım ve dayanıklılık açısından farklılıklar vardır.
- RS-485 protokolü endüstriyel uygulamalarda tercih edilir, 32 tane master-slave ve 256 tane normal cihazı aynı sistemde haberleştirebilir.
- 21:55RS-422 ve RS-485 Arasındaki Farklar
- RS-232 ve RS-485 ikisi de asenkron seri haberleşme protokolleridir, ancak RS-232 daha kısa mesafe ve düşük veri aktarım hızı için kullanılırken, RS-485 daha uzun mesafe ve yüksek veri aktarım hızı için kullanılır.
- RS-232 küçük çaplı hobi tarzı projelerde kullanılırken, RS-485 endüstriyel uygulamalarda tercih edilir.
- RS-232'de gürültü ve parazitlenme düşüktür, RS-485'de ise özellikle uzun mesafelerde ve dört kontaklı versiyonunda daha fazladır.
- 23:38RS-232 ve RS-485'ın Teknik Özellikleri
- RS-232 sadece iki cihaz arasında kullanılabilirken, RS-485 çoklu düğüm yapısını kullanan bir topolojiye sahiptir ve birden fazla cihaz arasında haberleşme sağlar.
- RS-232'de sinyal gönderimi dengesizdir ve tek uçlu hatlar vardır, RS-485'de ise sinyal dengelemek için diferansiyel sinyalleme tekniği kullanılır.
- RS-232 maksimum 16 metre kablo uzunluğu ve 20 kb/s hız sunarken, RS-485 1,30 km kablo uzunluğu ile 100 kbyte/s hız sunmaktadır.
- 26:15TTL Sinyal Seviyesi ve RS Protokolleri
- RS-232 ve RS-485 donanımlarının sunduğu veri aktarım hattıyla RS protokolleri ile TTL sinyal seviyeleri taşınamaz.
- TTL, 5V sinyallerini barındıran ve lojik değerleri ifade eden bir sinyal seviyesidir.
- TTL sinyal seviyesi bilgisayar anakartı gibi dahili sistemlerde tercih edilir, ancak harici sistemlerde kullanılamaz çünkü veri kayıpları ve parazitlenme problemleri fazladır.
- 28:00TTL Sinyal Seviyesinin Avantajları
- TTL sinyal seviyesinin avantajları arasında güç tasarrufu, az ısı yayması ve doğrudan bağlantı bulunur.
- TTL sinyal seviyesi transistör donanımlarıyla belirlenmiş olup daha yüksek hız sağlar.
- TTL sinyal seviyesi düşük gerilimlerle çalıştığı için veri kayıpları ve parazitlenme problemleri fazladır, en ufak manyetik alan bile etkisini gösterir.
- 30:11TTL ve Elektronik Güvenlik
- Elektronik tamir sırasında anakarta dokunmadan önce kendimizi topraklamamız gerekir çünkü TTL sinyalleri en ufak manyetik alandan bile etkilenebilir.
- 30:38UART ve Asenkron Seri Haberleşme
- UART (Universal Asynchronous Receiver Transmitter), bir mikrodenetleyicide veya entegre elektronik devre olarak kullanılan bir donandır ve sadece iki kablo ile haberleşme yapabilir.
- UART, RS-232'in temelindeki sistemle aynıdır ve dataframe boyutu dokuz bit olabilir.
- UART, veri aktarım hızının maksimum %10'luk kapasitesinde hız belirlenebilir ve RS-232 ile aynı düzen içerisinde haberleşir.
- 33:49UART Özellikleri
- UART donanımlarında RS-232'nin bütün kuralları geçerlidir, UART asenkron çalışırken, USART senkron şekilde çalışır.
- UART clock sinyaline ihtiyacı yoktur ancak veri gönderen ile alan cihazların çalışma frekanslarının eşit olması gerekir.
- Mikrodenetleyici ve single board computer'lar (Arduino, Raspberry Pi, Orange Pi) UART giriş çıkışlarıyla RS-232 giriş çıkışını birbirine bağlayabilir.
- 34:41UART ve RS-232 Haberleşmesi
- Arduino serisi mikrodenetleyicilerde UART çıkışı bulunur ancak RS-232 ile doğrudan UART donanımıyla haberleştirmek mümkün değildir.
- Mikrodenetleyici ve RS-232 arasında haberleşme için arada bit çevirme işlemlerini yapabilecek bir entegre devre (Max 232 gibi) kullanmak gerekir.
- 36:08Proteus Uygulaması
- Proteus uygulamasında Arduino ve Max 232 kartları kullanılarak UART bağlantısı yapılmıştır.
- Dört adet 10 mikrofarad kapasitör kullanılarak devre tamamlanmıştır.
- Arduino'da 9600 baud rate hızında seri haberleşme başlatılarak sürekli "A" karakteri gönderilmektedir.
- 38:36UART Seri Haberleşme Örneği
- Tinkercad'de ve Pratius'ta UART seri haberleşme örneği gösterilmiştir.
- Örnekte DC motor ve servo motor kullanılarak ileri-geri hareket ve hız kontrolü yapılmıştır.
- İleri geri butonlarına basıldığında motorun yönü değişir, potansiyometre ile hız kontrol edilir ve LED'ler hareket yönünü gösterir.
- 44:09Kod Açıklaması
- Kodda master ve slave cihazlar bulunmaktadır.
- Potansiyometre, yön, hız, ileri geri butonlarının pin numaraları ve değişkenleri tanımlanmıştır.
- Seri haberleşme 9600 baud rate hızında başlatılmış ve potansiyometreden hız ve yön değerleri okunmaktadır.
- 45:28Master Cihaz Kodu
- Master cihazda butonların basılıp basılmadığı kontrol ediliyor ve basılırsa ileri hareket için "f" karakteri, geri hareket için "b" karakteri gönderiliyor.
- Potansiyometreden okunan 0 ile 1023 arası analog değer hız değerini belirliyor ve bu değer karakter karakter seri porttan gönderiliyor.
- Potansiyometreden gelen değer yarısından fazlaysa sağa, yarısından azsa sola hareket için "right" veya "left" değerleri gönderiliyor.
- 47:35Slave Cihaz Kodu
- Slave cihazda servo kütüphanesi kullanılarak motor ve LED kontrolü yapılıyor.
- Serial.available() fonksiyonu ile gelen veri kontrol ediliyor ve "f" karakteri geldiğinde DC motor ileri, "b" karakteri geldiğinde geri hareket ediyor.
- Rakam gelen durumda hız değeri temp değişkenine ekleniyor ve sonunda "right" veya "left" geldiğinde temp değeri integer'a çevrilerek motor hızı ayarlanıyor.
- 51:00Seri Haberleşme Protokolleri
- USART, UART'ı kapsayan bir terimdir ve hem senkron hem asenkron çalışabilir.
- I2C protokolü çok popülerdir çünkü birden fazla master ve slave cihazları birbiriyle iletişime geçirebilir.
- I2C'de 7-bit adresler kullanıldığında 128 farklı cihaz, 10-bit adresler kullanıldığında 1024 farklı cihaz haberleştirebilir.
- 53:02I2C Protokolü Detayları
- Her cihazın birbirinden farklı MAC adresleri bulunmaktadır ve bu adresler tespit edilerek sisteme entegre edilir.
- Veriler 8 bit şeklinde aktarılır ve gönderim başladığında önce cihaz adresi, adresleme bitleri ve sonra data gönderilir.
- Her bit dizisi arasında bir acknowledge bit gönderilerek verilerin birbirine karışmaması sağlanır.
- 55:05Simülasyon Testi
- Tinkercad uygulamasında I2C protokolü ile motor kontrolü simülasyonu yapılmaktadır.
- İleri butonuna basıldığında DC motor ileri doğru dönmekte, potansiyometre değerine göre hız ayarlanmaktadır.
- Servo motorun yönü potansiyometre değerine göre 0 veya 180 dereceye dönmekte, ileri harekette yeşil LED yanarken geri harekette kırmızı LED yanmaktadır.
- 59:02I2C Protokolü Uygulaması
- I2C protokolü kullanılarak motorların ileri-geri hareketi ve hızı kontrol ediliyor.
- Potansiyometrenin konumu değiştirildiğinde servo motorun yönü artı veya eksi şeklinde değişiyor.
- Program sırasında veri gönderme sorunları yaşanıyor ve simülasyon bazen hataya düşüyor.
- 1:01:39I2C Kodlarının Açıklanması
- I2C protokolünde Wire kütüphanesi kullanılıyor ve her cihazın farklı bir sanal adresi bulunuyor.
- Slave device adresi 9 olarak tanımlanıyor ve pin bağlantıları hız ve yön değerleri için ayarlanıyor.
- Programda karakter gönderme fonksiyonu ve hız değerini gönderme fonksiyonu bulunuyor.
- 1:05:09Slave Kodu ve İşlevleri
- Slave kodunda da Wire kütüphanesi kullanılıyor ve device adresi binary olarak 01001 olarak tanımlanıyor.
- ReceiveEvent fonksiyonu her veri gelişinde çalışmakta ve integer parametreli olmak zorunda.
- Gelen verilere göre motorlara hareket veriliyor: 'f' karakteri motoru ileri, 'b' karakteri geri hareket ettiriyor.
- 1:09:19SPI Protokolü Tanıtımı
- SPI (Serial Peripheral Interface) protokolü, I2C'den daha yavaş çalışan ancak daha basit ve kaynak tüketimi daha az olan bir protokol.
- SD kartlar, RF sensörler, RFID kart okuyucuları ve kablosuz klavye gibi donanımlarda sıkça kullanılıyor.
- SPI protokolünün dezavantajları: veri aktarım hızının çok yavaş olması, dört kablo gerektirmesi ve bitlerin okunması için belli bir frekansta süre ayırmak gerekliliği.
- 1:11:38SPI Protokolünün Özellikleri
- SPI protokolünde eşlik biti yoktur ve hata kontrolü yapılamaz.
- SPI'de sadece bir master cihaz olabilir, bu büyük bir dezavantajdır.
- SPI senkron olarak çalışır ve SCLK (clock sinyali) pini ile saat sinyalini gönderir.
- 1:12:20SPI Veri İletim Mekanizması
- Her saat darbesi bir bite tekabül eder ve veri gönderim hızı saat darbesi ile ölçülebilir.
- SPI'de veri iletim dört aşamalıdır: saat darbesi iletilir, master cihaz SS (selection) pini lojik olarak atarak slave cihazı aktifleştirir.
- Master'dan slave cihaza veri gönderimi için MOSI kullanılır, slave'den master'a veri gönderimi için ise farklı bir pin kullanılır.
- 1:14:09SPI'nin Dezavantajları ve Avantajları
- SPI'nin olumsuz yönleri arasında kablo sayısı fazla, kontrol biti yok, eşlik biti yok ve verilerin sağlam gittiği bilinemezlik bulunmaktadır.
- Veri aktarım hızı çok yavaştır, ancak küçük sistemler için kullanılabilir.
- SPI dört kablo ile haberleşme konusunda avantajlıdır ve veri kesintisiz konusunda avantaj sağlar.
- 1:15:11SPI Simülasyonu
- SPI çok yavaş çalıştığı için, veri ulaşma hızı I2C'den çok beş-altı kat daha yavaştır.
- Simülasyonda ileri butonuna basıldığında "f" verisi gönderilir ve motor dönmeye başlar.
- Yön parametresi değiştirildiğinde "r" harfi karşıya gönderilir ve servo motorun yönü değişir.
- 1:20:38SPI'nin Çalışma Süresi ve Dilekler
- SPI'nin bu kadar yavaş çalışmasının sebebi çok fazla komponent olması ve protokolün kullanıma uygun olmamasıdır.
- Üç basamaklı bir veri gönderilmesi gerektiğinde, tek bir verinin gönderilmesi kadar geçen sürenin üç katı beklemek gerekecektir.
- Dijital pinler olduğu için manuel olarak kontrol edilmesi gerekiyor ve aradaki geçen süreyi belirlemek gerekiyor.
- 1:22:38Proteus'ta SPI Simülasyonu
- Proteus'ta aynı projeyi açarak SPI simülasyonu gerçekleştirilebilir.
- Proteus'ta da veri gönderim ve aktarım hızı benzer sürelerde gerçekleşir.
- Program en son veriyi algılayarak çalışır, çünkü süresi yetmiyor ve yetişemiyor.