Bu içeirğimizde ATtiny makine öğrenimi konusuna dalıyoruz. Diğer mikroişlemcilerde makine öğrenimi yapabildiğimizi gördük; bu konu hakkındaki yazımıza buradan bakabilirsiniz. Şimdi ölçeği daha da küçültüp ATtiny85 üzerinde makine öğrenimi çalıştırıyoruz.
ATtiny Nedir?
ATtiny (TinyAVR), Microchip tarafından üretilen, küçük boyutlu, düşük maliyetli ve az güç tüketen 8-bitlik bir mikrodenetleyici ailesidir. Vikipedi, devreyakan Arduino Uno’daki ATmega çiplere göre daha az pin ve belleğe sahiptir, bu nedenle basit gömülü sistemler, sensör okuma ve motor kontrolü gibi küçük ölçekli projeler için idealdir. Arduino IDE ile programlanabilirler.
ATtiny Mikrodenetleyicilerin Temel Özellikleri
- Kompakt Yapı: Küçük fiziksel boyutları (örneğin 8-pinli DIP kılıflar) sayesinde dar alanlarda kolayca kullanılabilir.
- Düşük Güç Tüketimi: Pil ömrünün kritik olduğu portatif uygulamalar için optimize edilmiştir.
- 8-Bit İşlemci: Temel veri işleme ve kontrol görevleri için yeterli performansı sunar.
- Sınırlı Kaynaklar: ATmega serisine (Arduino Uno gibi) göre daha az program belleği (Flash), RAM ve G/Ç pini içerir.
- Programlanabilirlik: Arduino IDE kullanılarak, ek kartlar veya programlayıcılar (USBasp gibi) aracılığıyla kolayca kodlanabilir.

Kullanıma hazır çok sayıda mikrodenetleyici göz önüne alındığında, yeni bir ölçekte gömülü bir makine öğrenimine giden yolu zaten microML açtı. Ama bu bizim için yeterli değildi: sonuçta MicroML oluşturucu, yalnızca Arduino kartlarında değil, herhangi bir gömülü sistemde çalışması gereken düz C’yi dışa aktarır.
Bu nedenle bir adım daha küçülüp bu yaklaşımı en küçük sınıftaki yongalardan biri üzerinde test etmek için ATtiny85 kurulumunu yaptık.
ATtiny85 kütüphanelerini ve derleyicisini daha önce Arduino IDE’ye kurmuştuk; yeniden kurulum için bu bağlantıyı takip edebilirsiniz. Bu kurulumdan sonra her makine öğrenimi yaklaşımı doğrudan ATtiny85’e taşınamaz; bu nedenle daha yalın bir yöntem izlemek gerekir. Bu içerik, Arduino Nano ile yaptığımız renk algılama projesinin ATtiny85’e uyarlanmış halidir; bu yüzden önce ilgili içeriği okumanızı öneririz.
ATtiny Makine Öğrenimi için Özelliklerin Tanımı
Hangi nesneye işaret ettiğimizi anlamak için bir renk sensörünün(TCS3200) RGB bileşenlerini kullanacağız. Bu, özelliklerimizin 3 boyutlu olacağı anlamına gelir ve bu da çok yüksek doğrulukla gerçekten basit bir modele yol açar.
Hatırlatma
Attiny85, 8 Kb flash ve 512 bayt RAM’e sahiptir, bu nedenle birkaç özellikten fazlasını (muhtemelen 10’dan az) kullanan herhangi bir modeli yükleyemezsiniz.
Örnek Verileri Kaydetmek
Bu adımı Arduino Uno / Nano / Pro Mini gibi seri arayüze sahip bir geliştirme kartında ya da mikroişlemcide yapmalısınız. Bu adımın kodu için daha önceden hazırladığımız bu öğreticiye bakın.
SVM Sınıflandırıcısını Eğitip, Dışa Aktarmak
Bu bölüm, tek bir parametre dışında orijinaliyle tamamen aynıdır: platform=attiny’yi port işlevine geçireceksiniz.
ATtiny kodları, micromlgen’in 0.8 sürümünde uygulanmıştır: daha önceki bir sürümü yüklediyseniz, öncelikle bu sürüme uygun güncelleme yapın.
Bu noktada, yazdırılan kodu kopyalamanız ve projenizin çalışma klasöründe model.h adlı bir dosyaya aktarmanız gerekir.
Çıkarımı Çalıştırmak
Bir seri bağlantı olmadığı için tahmin sonucunu LED’in yanıp sönme sayısıyla göstereceğiz.
Sensörün önüne renkli bir nesne koyun ve LED’in yanıp söndüğünü görün.
ATtiny programı 3434 bayt (% 41) program alanı ve 21 bayt (% 4) RAM gerektirir. Bu, makine öğrenimini Attiny85’in sağladığından daha az alanda çalıştırabileceğiniz anlamına gelir.
Özellikle bu model o kadar küçük ki, sadece 4 Kb flash ve 256 bayt RAM’e sahip bir Attiny45’te bile çalışabilirsiniz.
RAM kullanımına dikkat edin: yalnızca 21 bayt. Bu, mikrodenetleyicide çok düşük bellek bütçesiyle makine öğrenimi çıkarımı yapmanın mümkün olduğunu gösterir. Elde edilen sonuç, seçtiğimiz model yapısının oldukça hafif olmasından kaynaklanır.
ATtiny Üzerinde Model Tasarlarken İpuçları
- Özellik sayısını düşük tutun; gereksiz her özellik flash ve RAM maliyetini artırır.
- Karar sınırı basit modellerle başlayın, karmaşıklığı yalnızca gerektiğinde artırın.
- Sensör verisini normalize ederek modelin sınıflar arası ayrımını daha kararlı hale getirin.
Kaynak kısıtlı cihazlarda TinyML yaklaşımları için TensorFlow Lite for Microcontrollers dokümantasyonu da karşılaştırmalı fikir verebilir.
TensorFlow Lite Görev Kitaplığı’nda, güçlü ve kullanımı kolay bir dizi uygulama geliştiricilerin TFLite ile makine öğrenimi deneyimleri oluşturmaları için göreve özgü kitaplıklar. Popüler makine öğrenimi için optimize edilmiş kullanıma hazır model arayüzleri sunar.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.

