STM32 İLE AÇIK ÇEVRİMDE BLDC SERVO MOTOR SÜRMEK

Daha önce fırçasız servo motor -BLDC- kontrolu konusunda iki yayınım oldu. O yayınlarda temel bilgiler verdikten sonra ST Microelectronics firmasının Nucleo64 kitini, IHM07M1 motor sürücüsünü ve STSPN7 paket yazılımını kullandığım bir uygulamayı anlatmıştım.

Bu defa, kendi MOSFET sürücümü, IR2103 MOSFET sürücü tümleşik devresini kullanarak, ama kendi geliştirdiğim kodlarla BLDC sürmeye girişiyorum. Bunun da ilk adımı burada anlatacağım gibi, motoru “açık çevrim” kontrolu altında çalıştırmak olacak.

Continue reading “STM32 İLE AÇIK ÇEVRİMDE BLDC SERVO MOTOR SÜRMEK”

STM32F103 ve SPI DOKUNMATİK PANEL KULLANIMI

STM32F103 ile rezistif dokunmatik panelli TFT kullanılışını daha önce anlatmıştım. O yayında koordinat belirlemek için dokunmatik panelin sensör dirençlerinin uçlarından analog gerilim değerlerini ölçüyorduk. Bunun için de STM32F103 ADC lerini kullanıyorduk.

O yayına ulaşmak için burayı tıklayabilirsiniz : STM32F103 İLE DOKUNMATİK PANEL KULLANIMI.

Bazı ekranlarda ise koordinat bilgileri bir dokunmatik panel kontrol işlemcisi -Touch controller- ile SPI arayüz üzerinden alınabiliyor. Bu durumda mikro denetleyicinin ADC lerini kullanmadan kalem koordinatlarını okuyabiliyoruz. Bu öncekine göre daha esnek, farklı seçenekler sunan bir yöntem oluyor.

Continue reading “STM32F103 ve SPI DOKUNMATİK PANEL KULLANIMI”

STM32 İLE OV7670 KAMERA KULLANIMI

OV7670 amatör uygulamalar için kullanılabilecek yaygın ve ucuz bir kamera. STM32F103 ile kullanmak üzere yaptığım çalışmaları paylaşacağım.

Bilindiği gibi STM32F103 ün 20kB lık RAM kapasitesi en mütevazi boyutlarda bir fotoğrafı saklamaya dahi yetmiyor. Ben ise desen tanıyan bir kod geliştirmek istiyorum, bir şekilde boyut problemini aşabilir miyim bakacağım.

Bu ilk yayında kameranın SCCB protokolu ile kontrolunu ele alacağız.

Continue reading “STM32 İLE OV7670 KAMERA KULLANIMI”

STM32F103 ve DS18B20 SICAKLIK SENSÖRÜ

DS18B20 gömülü sistemler ile kullanılan en popüler sıcaklık sensörlerinden birisi. BU sadece sıcaklık ölçüyor, aynı zamanda nem de ölçebilen DHT11 ve DHT22 ile bunların üzerine bir de basınç ölçen BM280 diğer seçenekleri oluşturuyor.

Bu yayında DS18B20 bin STM32F103 ile kullanılışını anlatacağım. İnternette bu konuda istemediğiniz kadar örnek uygulama var, başvurulacak kaynak seçenekleri bol. Benim vereceğim bilgiler ve kodlar da eşi benzeri görülmemiş şeyler değil.

Continue reading “STM32F103 ve DS18B20 SICAKLIK SENSÖRÜ”

STM32-UART HABERLEŞMEDE RING BUFFER KULLANIMI

STM32 ile UART haberleşmesi için yoklama (polling) ya da kesme (interrupt) tekniklerini kullanabiliyoruz. Gelen ve giden verileri “halka tampon” (ring buffer) adını verdiğimiz, sonuna ulaşılınca başa dönüp oradan kayda devam ettiğimiz türden tampon dizilere yerleştirmek verimli bir yöntem. Burada UART işlemleri için HAL kütüphanesini kullanmıyorum.

Bu yayında sürekli olarak kullanmakta olduğum bu tekniği anlatacağım.

HAL Kütüphaneleri kullanarak geliştirdiğim daha güncel bir yayınıma burayı tıklayarak ulaşabilirsiniz.

Continue reading “STM32-UART HABERLEŞMEDE RING BUFFER KULLANIMI”

STM32 CUBE IDE – KUSURLAR (BUG)

STM32 çalışmalarımda STM32 Cube IDE platformunu kullanıyorum. ST Microelectronics bunu geçtiğimiz yıllarda bünyesine kattığı Atollic True Studio ile CubeMX yapılandırıcısını birleştirerek oluşturdu. Müşterilerinin kullanımına ücretsiz olarak sunuyor.

Fakat yeni bir ürün, zaman zaman, hatta bazıları ile çok sıklıkla, sorunlarla karşılaşıyorum. Bunların kendimden kaynaklanmadığını anlayana kadar epey ter döküyorum. Zira çoğu ilk defa benim başıma gelmiş oluyor. Forumlarda paylaşıyoruz ve ST den yeni sürümlerde çözüm bekliyoruz.

Bu arada hayat devam ettiğinden kendi çözümlerimizi üretmek zorunda kalıyoruz. Bu yayında karşılaştığım ve henüz çözüm getirilmemiş olan kusurları, bunları aşmak için yaptıklarımı anlatacağım.

Bunları değerlendirirken Mac OS kullandığımı (Ekim 2020 itibariyle Catalina Version 10.15.6) dikkate alınız. Cube IDE sürümü de : 1.4.2 Build: 7643_20200813_1322 (UTC). Windows’ta da durum farklı olabilir.

Continue reading “STM32 CUBE IDE – KUSURLAR (BUG)”

STM32 TABANLI MASAÜSTÜ CNC-2 (Yeni model)

İlk yayında anlattığım (STM32 Tabanlı Masaüstü CNC – 1) masa üstü CNC yi güncelliyorum. Mekanik yapıda bir değişiklik yok. Ana değişiklik elektronik donanımdaki motor sürücüler. Buna ilaveten yazılımda, motor sürüm algoritmasında epeyi değişiklik var. Bunlardan bazılarını daha CNC ye uygulamadan önce aşağıdaki yayınlarda anlatmıştım.

Aslında diğer yayınlarımın neredeyse hepsinde CNC de kullandığım yazılım tekniklerinden bir şeyler var. Daha önce de belirttiğim gibi, bu CNC, öğrendiğim şeyleri hayata geçirdiğim bir test platformu haline geldi.

Continue reading “STM32 TABANLI MASAÜSTÜ CNC-2 (Yeni model)”

UART İLETİŞİMDE VERİ DOĞRULAMA – CHECK SUM

Mikro denetleyiciler ile diğer cihazlar arasında veri alışverişi için sıklıkla asenkron haberleşme protokoluna -UART- başvuruyoruz. Genelde parazitsiz ve kısa mesafelerde sorun yaşanmasa da, yakın çevrede çalışan motorlar gibi parazit kaynakları var ise arada bir hatalı alınan karakterler olabiliyor. Benim CNC uygulamam da bunlardan birisi. Mikro denetleyicinin burnunun dibinde çalışan 500W lık bir fırçalı DC spindle motorundan, 3 tane güçlü adım motorunun kablolarından yayılan parazitler ortamı dolduruyor.

Bu durumlarda fiziksel seviyedeki önlemler, UART haberleşmeyi RS232, ya da daha iyisi RS485 üzerinden yürütmek. Buna ilaveten protokol seviyesinde de veri doğrulama yöntemlerine başvurmak gerekiyor.

Sadece kullanıcı ile text mesaj alışverişi gibi, arada bir gelen hatalı bir karakterin felakete yol açmadığı bir durumda bütün bunlara gerek görülmeyebilir. Ama, CNC ye giden bir hatalı koordinat bilgisi ortalığı bir anda savaş meydanına çevirebilir. Bu benim başıma geldiğinden dersimi aldım ve CNC-PC haberleşmesi sırasında veri doğrulama işlemlerine erken aşamalardan itibaren yer verdim.

CNC için kullandığım iki farklı yöntemi anlatacağım.

Continue reading “UART İLETİŞİMDE VERİ DOĞRULAMA – CHECK SUM”

STM32 TABANLI MASAÜSTÜ CNC-1

Masaüstü CNC geliştirme projem yeni bir şey değil. Adım motorlarla oynamaya başladığım günlerden beri -10 yıldan daha fazla bir süredir- sürekli olarak gündemimde olan bir konu. İlk masaüstü CNC mi çalıştırdığımdan bu yana kaç defa değişiklik yaptığımı bilemiyorum. Ama yazılımının güncel sürüm numarasının 20 olduğunu, her bir sürümde de a,b,c,d,e … şeklinde ilerleyen ara sürümler olduğunu belirtirsem bir fikir verir sanırım.

Sonuçta son 2-3 yıldır çok işime yarayan bir alet olarak atölyemin baş köşesinde duruyor. Sürekli olarak gelişmeye de devam ediyor.

Bugünlerde kontrol biriminde önemli bir değişiklik yaparak L298 motor sürücülerinden A4988 sürücülere geçiyorum. Bununla birikte yazılımda da hatırı sayılır geliştirmeleri uygulamaya koyuyorum.

Bu aşamada, buraya CNC nin mevcut durumuna ve yukarıda sözünü ettiğim değişikliklerden sonraki haline yönelik bilgiler koymaya karar verdim. Aslında CNC konusundaki ilk yayınım değil, üç yıl önce de kapsamlı bir yayın yapmıştım. Ama Blog Press bir platform değişikliği yaptı, o geçiş esnasında yayının bütün görsel öğeleri silindi. O zaman yazıyı onarmaya üşendiğimden yayından kaldırdım. Şimdi yeni baştan …

Continue reading “STM32 TABANLI MASAÜSTÜ CNC-1”

STM32F103 İLE WEB SUNUCUSU

ESP8266 ile ev otomasyon sistemleri geliştirmek çok kolaylaştı. Ücretsiz olarak sunulan bol miktarda görsel malzeme ile çok alımlı WEB sayfaları hazırlanabiliyor. STM32 serisinin de WiFi yetenekleri olan tipleri, bunlarla kullanılabilecek zengin kütüphaneleri var.

Ben elimdeki basit malzemeleri kullanarak, STM32F103 ile ESP8266-01 i birlikte çalıştırarak ev otomasyonunda kullanılabilecek bir WEB sunucusu yapmaya karar verdim. Öyle olağanüstü bir şey değil, ESP zaten işin büyük kısmını yapıyor. Bana sadece bunu STM32 ile UART üzerinden konuşturmak ve WEB sayfalarını hazırlamak kalıyor.

Continue reading “STM32F103 İLE WEB SUNUCUSU”