• Buradasın

    Gömülü Sistemler ve Python ile Grafik Arayüz Geliştirme Eğitimi

    youtube.com/watch?v=PK7AWmdowQE

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan ETP serisinin bir bölümü olan teknik bir eğitim içeriğidir.
    • Video, iki ana bölümden oluşmaktadır: İlk bölümde gömülü sistem cihazlarına bağlanma ve veri alma konusu Arduino kullanılarak ele alınırken, ikinci bölümde Python programlama dili ve Qt kütüphanesi kullanılarak grafik arayüz geliştirme anlatılmaktadır. Eğitmen, hem gömülü sistem firmware kodlarını hem de bilgisayarda çalışan arayüz programını adım adım göstermektedir.
    • Eğitim içeriğinde haberleşme protokolleri, paket yapısı, komut-cevap mekanizması, byte boyutları, checksum ve CRC gibi teknik detaylar açıklanırken, aynı zamanda Qt kütüphanesi ile grup kutuları, etiketler, grid düzeni ve spinbox gibi arayüz bileşenlerinin kullanımı da gösterilmektedir. Video, donanım ile etkileşim ve veri okuma işlemleri ile grafik güncelleme konularını kapsamlı bir şekilde ele almaktadır.
    00:12Gömülü Sistem Cihazlarına Bağlanma ve Veri Alma
    • ETP'nin bu bölümünde gömülü sistem cihazlarına bağlanıp veri alma ve grafik çizdirme konuları ele alınacak.
    • Örnek kodlar EDA KRON'un GitHub hesabında bulunuyor ve sadece bir Arduino ile çalıştırılabiliyor.
    • Sensör veya potansiyometre kullanılmadan, sadece Arduino ile deneme yapılabilecek bir sistem geliştirilmiş.
    01:09Programın Çalışma Prensibi
    • Program üç test değeri (test değeri 1 ve test değeri 2) alarak cihazdan sürekli olarak veri alıp ekrana gerçek zamanlı grafik çizdiriyor.
    • Veriler 32-bit işaretsiz sayılar olup 0'dan 4 milyara kadar artıp overflow yapıp tekrar sıfıra dönüyor.
    • Verilerin artma hızı ayarlanabiliyor; örneğin değer 100'den 500'e çıkarıldığında sayılar daha hızlı artıyor.
    02:01Programın Özellikleri
    • Program sadece cihaza komut gönderme ve grafiksel olarak gözlemlenebilme amacıyla tasarlanmış.
    • Grafikler ölçeklenebiliyor, büyütülebiliyor ve tam ekran moduna alınabiliyor.
    • Program Mac, Windows ve Linux'ta aynı şekilde çalışıyor ve "Reset Graphic" komutuyla grafikler sıfırlanabiliyor.
    03:04Haberleşme Protokolü
    • Gömülü sistem cihazı ile bilgisayar arasında belirli bir protokolle haberleşme yapılıyor.
    • İki farklı haberleşme yöntemi var: verilerin sürekli akış halinde gönderilmesi veya soru-cevap şeklinde iletişim kurulması.
    • Bu örnekte soru-cevap yöntemi kullanılıyor; Arduino sadece sorulduğunda cevap veriyor.
    04:42Veri Paketi Yapısı
    • Veri paketinin başında iki bayt daha gönderiliyor: biri paketin boyutunu, diğeri komut argümanını belirtiyor.
    • Status request gibi bir soru sorulduğunda cihaz reply olarak cevap veriyor.
    • Paket yapısında veri önce iki bayt daha gönderiliyor ve sonra gerçek veri geliyor.
    05:53Arduino Kodu Analizi
    • Arduino kodunda setup kısmında timer ayarlanıyor ve test değerlerini otomatik olarak artırmak için kullanılıyor.
    • Loop kodunda dışarıdan gelen paketin mantıklı olup olmadığı kontrol ediliyor.
    • Timer içinde test değerleri increment değerleriyle arttırılıyor ve overflow yapabilmek için büyük rakamlarla çarpılıp toplanıyor.
    07:44Paket Timeout Mekanizması
    • Paket timeout mekanizması, bilgisayardan beklenen paketin tam olarak gelmediğinde sistem kilitlenmesini önlemek için kullanılıyor.
    • Her mesajdan sonra timeout süresi (yaklaşık 250 milisaniye) başlatılıyor.
    • Timeout süresi dolduğunda paket okuma state'i tekrar başa getiriliyor, böylece kaybedilen byte'lar için sistem kilitlenmiyor.
    09:34UART ve Veri Gönderimi
    • Arduino'da UART açıldıktan sonra serial event fonksiyonu kullanılarak UART receive interrupt'e bağlanıyor.
    • Paket yapısında ilk bayt ignore ediliyor çünkü uzunluk bilgisi için kullanılıyor.
    • Veri gönderiminde little-endian ve big-endian gibi farklı konseptler kullanılabiliyor, veriler row binary formatında paketlenebiliyor.
    12:34Grafik ve Arayüz Tasarımı
    • Grafikte rakamları girdiğiniz veya okuduğunuz kısım sabit kalırken, grafiği istediğiniz gibi büyütebilirsiniz.
    • Linux'de iş yapmak için mono ve cross platform desteği sunan kutular kullanabilirsiniz.
    • Yuva kutusunun içerisinde yukarıdan aşağı şekilde komponentler koyulabilir.
    13:04Arayüz Tasarımı Detayları
    • Logo box içerisinde logoyu koyabilir, general info kısmında üç değer ve altı label oluşturabilirsiniz.
    • Arayüzde solda label'ların olduğu bir grid, sağ tarafta spinbox kullanılmıştır.
    • Grafik programlamada event tabanlı çalışır ve grup box'ların title'ları ve label'ları ayarlanabilir.
    14:20Grafik Güncelleme ve Performans
    • Her pilot çağırdıktan sonra grafikler belli data ereğlileri ile güncellenir.
    • FPS değeri, arayüzün ne kadar sıklıkla güncelleneceğini belirler, çok yüksek değerlerde performans sorunu yaşanabilir.
    • Kodun içeriğinde get reed out ve get arrays adlı iki metod bulunur, get reed out son okunan değerleri döndürür.
    15:25Donanım ve Veri İşleme
    • Hardware objesi oluşturulduğunda py serial kütüphanesinin sunmuş olduğu buffer lock objesi kullanılır.
    • Ereğlileri okurken önce bir kilit değeri alınmaya çalışılır.
    • Gelen datalar parçalanarak bilgisayar tarafında işlenir.
    16:29Program Kullanımı ve Avantajları
    • Programda saniye, değerlerin ilk, ikinci ve üçüncü halleri görüntülenebilir.
    • Arduino reset atıldığında program bekler.
    • Qt ile ilgili destekler sayesinde arayüz programı öğrenmek avantajlıdır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor