Kursun Amacı
Kursiyerlere (eclipse tabanlı STM32CubeIde derleyicisi ile) HAL kütüphanesi kullanılarak C++14/17 dil standarlarında (ETL – Embedded Templete Library ve bazı STL – Standart Templete Library kullanarak) programlama ve algoritma semantiğinin gösterilmesi. Elektronik komponent ve araçlar için örnek sınıf kütüphanesinin yazılarak RTOS (real time operating system) deneme çalışmasının yapılması, gömülü sistem programlamasında nesne tabanlı programlama mantığının öğretilmesi.
Hedeflenen Kazanımlar
Kurs sonunda kursiyerler aşağıdaki yetenekleri kazanacaklardır:
– STM32CubeIde derleyicisinde proje oluşturma, derleme, debug etme ve programlama,
– Templete Library kullanımı, static conteiner sınıf şablonu array ile algorithm ve bitset gibi sınıf şablonlarının kullanımı, lambda ifadeleri, functer sınıfların kullanımı,
– Mikrodenetleyicinin yardımcı birimlerini tanıma, bu kapsamda SPI, UART, I2C, CAN gibi protokollerin kullanımı,
– Mikrodenetleyici zaman uygulamaları, sistem zaman ayarlarını yapma,
– Kesmelerin kullanımı, RTOS ile görev oluşturma ve kullanma,
– Led yakma söndürme uygulaması için sınıf kütüphanesi oluşturma,
– Ekran ile haberleşme ve ekran çıkış akımına bilgi gönderme,
Kurs Süresi (Gün/Saat)
5 gün / 40 saat veya ileri seviye için 10 gün / 80 saat
Kurs Tipi
Yüz yüze / Online
Ön Koşullar
Temel C veya C++ programlama diline hakim olma, temel elektronik ve mikrodenetleyici programlama bilgisine sahip olma.
Hedef Kitle
Elektronik tasarım ve programlama ile sorumlu personel, elektronik veya bilgisayar mühendisleri.
Kurs İçeriği
İlk Hafta;
- STM32 ARM Cortex M4, M7 ve H7 serisi mikrodenetleyicilerin özellikleri
- STM32CubeIde derleyicisinin kullanımı, debug modunda hata ayıklama ve gözlemleme
- Mikrodenetleyici birimlerinin tanıtılması
- Mikrodenetleyicilerde güç yönetimi ve sistem zaman ayarları
- C++ dil kuralları, sınıf oluşturma
- Standart kütüphanedeki sınıf şablonlarının kullanımı
- Timer zamanlayıcıları tanıma ve zamanlayıcı uygulamaları
- Digital giriş çıkış ile ADC analog giriş işlemleri
- SPI, UART, I2C haberleşme protokolleri
- DMA (Direct Memory Access) kullanımı
- Temel seviyede RTOS kullanımı (freeRtos kütüphanesi)
- Elektronik bir komponent için sınıf kütüphanesi yazma
- I2C protokolü ile OLED ekran kütüphanesi oluşturma ve kullanma
İkinci Hafta;
- Hassas dijital girişleri işleme (enkoder vb. sayım sensörleri için)
- High-Side/Low-Side çıkışları işleme
- PWM işleme ve çıkış kontrolü
- ADC ve DAC işleme
- CAN ve UART haberleşme protokollerinin detaylı tanımı
- CAN Open haberleşme protokolü
- CAN Open haberleşme protokolü için OD(object dictionary) ve EDS dosyası oluşturma
- MODBUS protokolü
Üçüncü Hafta;
- DCMI ve CCB kullanarak kamera ile anlık görüntü işleme (3. hafta olarak planlanabilir)
- Görüntü işleme teknikleri
- ETL (Embedded Template Library) / STL (Standart Template Library) statik yapıdaki yardımcı sınıf şablonlarının kullanımı
- BAYER, RGB565, Grayscale format dönüşümleri, morfolojik işlemler
- Örüntü tanıma / OpenCV kütüphanesi (genel hatlarıyla)