1. Giriş
Oluşturacaklarınız
Bu codelab'de, Arduino Nano 33 BLE üzerinde bir derin öğrenme modeli çalıştırmak için Mikrodenetleyiciler İçin TensorFlow Lite'ı kullanmayı öğreneceğiz. Mikrodenetleyici, dijital "sihirli değnek"e dönüştürülüyor kullanıcının el sallayıp çeşitli büyüler yapmasını sağlar. Kullanıcı çubuğu hareket ettirdikçe, insanların ayırt edemeyeceği bu karmaşık, çok boyutlu sensör verileri modele girdi olarak aktarılır. Bu da, birkaç hareketten biri gerçekleşirse bizi uyaran basit bir sınıflandırma sonucunu verir.
Mikrodenetleyicilerde Makine Öğrenimi
Makine öğrenimi, kullanıcıların işlerini kolaylaştıran akıllı araçlar Google Asistan gibi özelliklerle hayatınızı kolaylaştırır. Ancak çoğu zaman bu deneyimler, çok fazla hesaplama işlemi veya güçlü bir bulut sunucusu ya da masaüstü gibi kaynaklar gerektirir. Ancak artık mikrodenetleyiciler gibi küçük ve düşük güçlü donanımlarda makine öğrenimi çıkarımı yapmak mümkündür.
Mikrodenetleyiciler son derece yaygındır, ucuzdur, çok az enerji gerektirir ve son derece güvenilirdir. Bunlar her türlü ev cihazının bir parçasıdır: aletler, arabalar ve oyuncaklar. Öyle ki, her yıl mikrodenetleyiciyle çalışan yaklaşık 30 milyar cihaz üretiliyor.
Makine öğrenimini küçük mikrodenetleyicilerin kullanımına sunarak pahalı donanımlara veya güvenilir internet bağlantılarına gerek kalmadan hayatımızda kullandığımız milyarlarca cihazın zekasını artırabiliriz. Günlük rutininize uyum sağlayabilen akıllı cihazlar, sorunlar ile normal işleyiş arasındaki farkı anlayan akıllı endüstriyel sensörler ve çocukların eğlenceli ve keyifli şekilde öğrenmesine yardımcı olabilecek sihirli oyuncaklar hayal edin.
Mikrodenetleyiciler İçin TensorFlow Lite (Yazılım)
TensorFlow, Google'ın modelleri eğitmeye ve çalıştırmaya yönelik açık kaynak makine öğrenimi çerçevesidir. TensorFlow Lite, TensorFlow'un optimize edilmiş bir sürümü olan ve cep telefonları gibi küçük, nispeten düşük güçlü cihazlarda tensorflow modellerini çalıştırmayı hedefleyen bir yazılım çerçevesidir.
Mikrodenetleyiciler İçin TensorFlow Lite, TensorFlow'un optimize edilmiş bir sürümü olan bir yazılım çerçevesidir. Mikrodenetleyiciler gibi küçük, düşük güçlü donanımlarda tensorflow modelleri çalıştırmayı hedefler. Bu yerleşik ortamlarda gerekli olan kısıtlamalara uyar.Örneğin, küçük bir ikili program boyutuna sahiptir, işletim sistemi desteği, standart C veya C++ kitaplıkları ya da dinamik bellek ayırması gerektirmez.
Arduino Nano 33 BLE (Donanım)
Arduino, elektronik projeler oluşturmak için kullanılan popüler bir açık kaynak platformudur. Şunlardan oluşur:
- Bu codelab'de kullanılan Arduino Nano 33 BLE gibi fiziksel bir programlanabilir devre kartı (genellikle bir mikrodenetleyici).
- Bilgisayar kodu yazıp fiziksel karta yüklemek için kullanılan Arduino IDE (Entegre Geliştirme Ortamı) yazılımı.
Arduino Nano 33 BLE, mikrodenetleyici tabanlı bir platformdur: tek bir devre kartı üzerinde küçük bir bilgisayar. Diğer cihazlara dijital sinyaller gönderip almasına olanak tanıyan bir işlemci, bellek ve G/Ç donanımına sahiptir. Bilgisayardan farklı olarak mikrodenetleyiciler güçlü değildir ve genellikle bir işletim sistemi çalıştırmaz. Bunun yerine küçük işlemcileri vardır, fazla belleğe sahip değildir ve yazdığınız programlar doğrudan donanımda çalışır. Ancak mümkün olduğunca basit olacak şekilde tasarlandıkları için mikrodenetleyici çok az enerji kullanabilir.
Yapacaklarınız
- Arduino Nano 33 BLE mikrodenetleyiciyi kurup dijital "sihirli değnek"e dönüştürün
- Arduino IDE'yi kurun ve gerekli kitaplıkları yükleyin
- Programı cihaza dağıtın
- Sihirli değneği sallayarak çeşitli büyüler yapın ve tahminleri görün
Gerekenler
- Linux, MacOS veya Windows dizüstü bilgisayar
- Arduino Nano BLE Sense 33 (başlıksız)
- Mikro USB kablosu (USB-C dizüstü bilgisayar kullanıyorsanız bunun yerine USB-C - Mikro USB kablosu satın alın)
- (isteğe bağlı) Çubuk, yaklaşık 30 cm (12 inç)
- (isteğe bağlı) Yapışkan bant
2. Arduino Mikrodenetleyiciyi Kurma
Arduino'nuzu açın
Parçayı kutudan çıkarıp paketleme köpüğünden çıkarın. iletken olduğundan başka türlü sorunlara yol açabilir.
Dizüstü bilgisayarınıza takın
- MicroUSB kablosunu çipteki yuvaya takın.
- Kablonun diğer ucunu dizüstü bilgisayarınızdaki bir USB soketine takın.
- Arduino'nun sol alttaki LED ışığı (aşağıdaki resimde sol üstte) yanar.
İş akışı hakkında bilgi edinme
Yukarıdaki şemada gösterildiği gibi, Arduino'daki TFLite yorumlayıcısı düzenli olarak model üzerinde çıkarım çalıştırır. Model, işlenmiş ivme ölçer verilerini giriş olarak kullanır ve gerçekleşme olasılığı en yüksek olan hareketi öneren bir tahmin sunar. Ayrıca, istenen bir çıkış yazdırılır ve doğru LED'ler yanar.
3. Arduino IDE'yi kurun
1. Arduino IDE'yi indirin
Programı Arduino Mikrodenetleyiciye dağıtmak için Arduino IDE'yi kullanıyoruz.
İndirdikten sonra, simgesi şu şekilde görünen uygulamayı tıklayarak Arduino IDE'yi yükleyip açın:
İlk açılış sayfası şu şekilde açılır:
2. Yönetim Kurulu Yöneticisi'ni ayarlama
- Arduino menüsünden
Tools -> Board: "Arduino .." —> Boards Manager
öğesini seçin "Arduino Nano 33 BLE"
araması yapıpArduino nRF528x Boards (Mbed OS)
uygulamasını yükleyin. Bu sayede Arduino Nano 33 BLE Mikrodenetleyicimiz, Arduino IDE tarafından desteklenir. .
- Arduino menüsünden
Tools -> Board: "Arduino .." -> "Arduino Nano 33 BLE"
öğesini seçin
- Son olarak, seçtiğiniz panonun "Arduino Nano 33 BLE" olduğunu doğrulayın IDE'nin sağ alt tarafındadır.
3. Bağlantı noktasını kurun
Arduino menüsünden Tools -> Port: "/.../" -> /dev/... (Arduino Nano 33 BLE)
öğesini seçin. Şuna benzer bir kod görürsünüz:
4. Jamboard bağlantısını kontrol edin
Arduino menüsünden Tools -> Get Board Info
öğesini seçin. Şuna benzer bir kod görürsünüz:
4. Kitaplıkları yükleme
1. TensorFlow Arduino Kitaplığı
Kitaplıkta, bu codelab'de gerekli olan sihirli değnek kaynak kodu da dahil olmak üzere Mikrodenetleyici için tüm TensorFlow Lite örnekleri yer almaktadır.
- Arduino menüsünden
Sketch -> Include Library -> Add .ZIP Library...
öğesini seçin - İndirdiğiniz TensorFlow Arduino Kitaplığı'nı
.zip
ekleyin.
2. LSM9DS1 Arduino Kütüphanesi
Bu kitaplık, Arduino Nano 33 BLE Sense cihazınızdaki LSM9DS1 IMU'daki ivme ölçer, manyetometre ve jiroskop değerlerini okumanıza olanak tanır.
- Arduino menüsünden
Sketch -> Include -> Manage Libraries...
öğesini seçin "Arduino_LSM9DS1"
Uygulamasını Arayın ve Yükleyin.
5. Örneği yükleyin ve derleyin
1. Örneği yükleyin
Arduino menüsünden File -> Examples -> Arduino_TensorFlowLite -> magic_wand
öğesini seçerek örnek kodu yükleyin.
Bu işlem sihirli değnek kaynak kodunu yükler.
2. Örneği oluşturun
Çizim penceresindeki Upload
düğmesini tıklayın.
Birkaç dakika sonra, yanıp sönmenin tamamlandığını belirten kırmızı bir metin görürsünüz. Yükleme sırasında sağ LED yanıp sönmeli ve sonunda sönmelidir.
6. Demo
Sihirli değnek şu anda aşağıda gösterildiği gibi 3 hareketi algılayabilir:
- Kanat: Sol üst köşeden başlayın ve "W" harfini dikkatle çizin iki saniyeliğine.
- Çaldırma: Dik başlayın, değneği saat yönünde bir saniye boyunca hareket ettirin.
- Eğim: Asayı yukarı doğru, LED'ler size bakacak şekilde yukarı doğru tutarak başlayın. Asayı sola doğru eğimli bir şekilde aşağı ve ardından bir saniye boyunca yatay olarak sağa doğru hareket ettirin.
Aşağıdaki resimde iki hareket gösterilmektedir. Önce bir Eğim, ardından bir Kanat (bunu demonuz için referans olarak kullanın).
Demoyu çalıştırmak için aşağıdaki talimatları uygulayın:
- USB takılıyken Arduino menüsünden
Tools -> Serial Monitor
öğesini seçin. Başlangıçta herhangi bir çıkış içermeyen boş bir ekran açılır.
- Yukarıdaki şekillerin her birini dikkatlice izlemek için Arduino mikrodenetleyiciyi hareket ettirin ve seri monitörün hareketi algılayıp algılamadığına bakın.
- Seri monitördeki çıkışa baktığımızda sihirli değnekin tüm şekilleri algıladığını görüyoruz. Ayrıca sağ LED'in yandığını da görürsünüz.
7. Sonraki Adımlar
Tebrikler, hareketi tanımaya yarayan ilk "sihirli değnek"inizi başarıyla oluşturdunuz ilk adımı oldu.
Mikrodenetleyiciler için TensorFlow Lite ile uygulama geliştirme konusundaki bu kısa tanıtımdan memnun kaldığınızı umuyoruz. Mikrodenetleyicilerle ilgili derin öğrenme fikri yeni ve heyecan verici. Bu nedenle sizi deneyerek denemenizi öneririz.
Referans belgeler
- Temel programla çalışma konusunda deneyim kazandığınıza göre kendi modelinizi eğitin.
- Mikrodenetleyiciler için TensorFlow Lite ( Web sitesi, GitHub) hakkında daha fazla bilgi edinin.
- Diğer örnekleri deneyin ve destekleniyorsa bunları Arduino'da çalıştırmayı deneyin.
- Diğer codelab'i deneyin: TensorFlow Lite ve SparkFun Edge ile mikrodenetleyici üzerinde yapay zeka
- O'Reilly'nin TinyML: Arduino ve Ultra Düşük Güçlü Mikro Denetleyiciler'de TensorFlow ile Makine Öğrenimi adlı kitabına göz atın. Bu kitapta, küçük cihazlarda makine öğrenimi tanıtılır ve eğlenceli projelerden bahsedilir. Bu codelab, bu kitabın 11. bölümüne dayanmaktadır.
Teşekkürler, geliştirmenin keyfini çıkarın!