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”

STM32 Cube IDE – INTERRUPT IRQ ve CALL BACK FONKSİYONLARI

Herhangi bir kesinti oluştuğunda mikro denetleyicimiz, o kesintiye ilişkin bir IRQ – Interrupt Handler fonksiyonunu çağırır. Oluşan kesinti ile ne yapacak isek bu handler fonksiyonlarını ona göre hazırlayarak main.c dosyası içine koymamız gerekiyor.

Bu durumda bu fonksiyonun adı, tipi ve argümanları, sistem kütüphanelerinde tanımlanmış olanlarla uyumlu olmak zorunda.

Bu yayında, STM32 cube IDE ile çalışırken hazırlayacağımız IRQ intterupt handler fonksiyonunlarına ait bu bilgilere nasıl ulaşılacağını -TIM3 zamanlayıcısı örneği üzerinde- anlatacağım.

Continue reading “STM32 Cube IDE – INTERRUPT IRQ ve CALL BACK FONKSİYONLARI”

STM32 printf() FONKSİYONUNUN UART’a YÖNLENDİRİLMESİ

Standard C kütüphanelerinin printf() fonksiyonu, yazılım geliştirirken çok kullandığımız bir araç. Bu fonksiyon varsayılan hali ile çıktılarını sistem konsoluna gönderiyor. Ansak mikro denetleyicilerle çalışırken bu çıktıyı seçtiğimiz herhangi bir USART porta yönlendirmek isteriz. Bunun için yazılımımıza 8-10 satırlık bir kod eklememiz gerekiyor.

Bu yayında bu işin nasıl yapılacağını anlatıyorum.

Continue reading “STM32 printf() FONKSİYONUNUN UART’a YÖNLENDİRİLMESİ”

STM32 – LCD ÜZERİNDE printf() TARZINDA FORMATLANMIŞ TEXT GÖRÜNTÜLEMEK

Gerek TFT gerekse popüler 4×20 benzeri ekranlara text ve sayısal değerleri, pritf() kullanır gibi tek bir komutla yazmayı hep istemişimdir.

Geçenlerde you cube üzerinde Eddie Amaya’nın buna bir çözüm önerdiğini görünce çok sevindim. Bu güne kadar haberdar olmadığım bazı standard C fonksiyonlarını kullanarak bunu yapmak mümkünmüş. Ondan aldığım ilham ile kendi LCD ve TFT kütüphanelerime böyle bir fonksiyon ekledim.

I2C arayüzlü 20×4 LCD örneği üzerinden bunu nasıl yaptığımı anlatacağım.

Continue reading “STM32 – LCD ÜZERİNDE printf() TARZINDA FORMATLANMIŞ TEXT GÖRÜNTÜLEMEK”

STM32 cubeIDE-SWV İLE HATA AYIKLAMA-3

STM32 SWV – printf() KULLANARAK KONSOLA MESAJ GÖNDERMEK

Gömülü uygulama geliştiricileri yazılımlarında hata ayıklamak için, UART üzerinden PC ye mesaj gönderme yöntemini daha ilk “Hello world !” mesajını gönderdikleri gün kullanmaya başlarlar. Genelde, sonrasında da bu böyle devam eder. Bunu C dilinin standard kütüphane fonksiyonu olan printf() i kullanarak yaparız.

Şimdi, SWV araçlarını kullanarak UART bağlantısını devre dışı bıraktığımıza göre, artık printf() mesajlarını da SWV konsollarından birine göndersek iyi olmaz mı?

Bu bölümde printf() çıktılarının SWV ITM Data konsoluna yönlendirilmesini göreceğiz.

Continue reading “STM32 cubeIDE-SWV İLE HATA AYIKLAMA-3”

STM32 cubeIDE- SWV İLE HATA AYIKLAMA-2

STM32 SWV – DEĞİŞKEN DEĞERLERİNİN İZLENMESİ

SWV serimizin birinci bölümünde bir kod parçacığının çalışma süresini ölçmeyi anlatmıştım. Bunun için süresini ölçeceğimiz sürecin başında ve sonunda ST Link’e birer karakterlik işaret gönderip SWV trace log konsolu üzerinde bunların zamanları arasındaki farkı hesaplıyorduk. Zaman ölçümü böyle.

Bu bölümde yine SWV araçlarını kullanarak program değişkenlerinin değerlerindeki değişiklikleri izlemeye çalışacağız. Bunların değerlerinin zaman eksenindeki değişimini osiloskop benzeri bir grafik pencere üzerinde görüntüleyeceğiz.

Continue reading “STM32 cubeIDE- SWV İLE HATA AYIKLAMA-2”

STM32 CubeIDE – PROJEYE LINK VEREREK HARİCİ DOSYA EKLEMEK

Oluşturduğumuz yeni projelere daha önceki projelerimizden aldığımız dosyaları kopyala-yapıştır tekniği ile eklemeyi önceki yayınlarımda anlatmıştım. “Programa kaynak kodu eklemek” başlıklı yazım için burayı tıklayabilirsiniz. Aslında burada da, yazının amacı bu olmamakla birlikte, aynı işi kopyala yapıştır yöntemi ile değil de Import fonksiyonu ile yapmayı anlatmış oluyorum.

Bir süre sonra aynı kaynak kodlarını bir çok programımızda kullanır duruma geliyoruz. Ancak bu durumda karşımıza ciddi bir sorun çıkıyor. Türlü çeşitli yerlere kopyaladığımız bu kod bloklarında zaman zaman değişiklikler, iyileştirmeler yapmamız gerekiyor. Bu da aynı adı taşıyan kaynak kodların çeşit çeşit versiyonları ile ortalığa saçılmasına yol açıyor. Hangisi en son sürüm, hangisinde hangi hatalar hala duruyor bilemez hale geliyoruz.

Continue reading “STM32 CubeIDE – PROJEYE LINK VEREREK HARİCİ DOSYA EKLEMEK”