- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense Donanımına Genel Bakış
- Arduino Nano 33 BLE sense ile yazılım iyileştirmeleri
- Arduino IDE'nizi Arduino Nano 33 BLE sense için hazırlama
- Sensör verilerini okumak ve Seri Monitörde görüntülemek için program
- Arduino Nano 33 BLE - Kodu yükleme
Arduino, hızlı prototip oluşturma ve fikir doğrulama için başvurulan bir geliştirme platformu olmuştur. Çoğumuz Arduino UNO geliştirme kurulu ile başlayabilirdik, ancak bugün nesnelerin interneti, Bilgisayarla Görme, Yapay Zeka, Makine öğrenimi ve diğer fütüristik teknolojilere doğru ilerlerken, mütevazı Arduino UNO artık 8 ile başa çıkamıyordu. -bit Mikrodenetleyici. Bu, yerleşik Wi-Fi, Bluetooth, GSM ve popüler MKR1000 veya MKR GSM 1400 gibi diğer kablosuz yeteneklere sahip daha güçlü işlemcilere sahip yeni kartların piyasaya sürülmesini gerektiriyordu. Bu bağlamda Arduino, yakın zamanda Nano'nun Arduino Nano 33 adlı yeni bir sürümünü piyasaya sürdü.
Arduino Nano 33 IoT ve Arduino Nano 33 BLE sense olmak üzere toplam iki tür Arduino Nano 33 kartı vardır. Her iki modül arasındaki temel fark, Arduino Nano 33 BLE sense modülünün bazı yerleşik sensörlere sahip olması (daha sonra ayrıntılara girecek), Arduino Nano 33 IoT'nin bunlara sahip olmamasıdır. Bu yazıda Arduino Nano 33 BLE algılama kartını inceleyeceğiz, size özelliklerini ve işlevlerini tanıtacağız ve son olarak sensör değerlerini okumak ve seri monitörde görüntülemek için örnek bir kod yazacağız. Öyleyse öğrenmeye başlayalım….!
Arduino Nano 33 BLE Sense
“Arduino Nano 33 BLE Sense” adı ağız doludur, ancak adın kendisi bazı önemli bilgileri ortaya koymaktadır. Boyutları, pin çıkışı ve form faktörü klasik Arduino Nano'ya çok benzediği için “Nano” olarak adlandırılır, aslında mevcut projelerinizde Arduino Nano'nun yerine kullanılması planlanmıştır, ancak asıl mesele bu yeni modülün üzerinde çalıştığıdır. Klasik Nano 5V ile çalışırken 3,3V. Bu yüzden, panonun 3.3V'de çalıştığını belirtmek için “33” adının geldiği yer burasıdır. Ardından "BLE" adı, modülün Bluetooth Düşük Enerjiyi (BLE5 5.0) desteklediğini gösterir.ve "sense" adı ivmeölçer, jiroskop, manyetometre, sıcaklık ve nem sensörü, Basınç sensörü, Yakınlık sensörü, Renk sensörü, Hareket sensörü ve hatta yerleşik bir mikrofon gibi yerleşik sensörlere sahip olduğunu gösterir. BLE ve diğer sensörlerin ayrıntılarına daha sonra gireceğiz, ancak şimdilik bir Arduino Nano 33 BLE algılama kartı, doğrudan kutudan çıkmış gibi görünüyor.
Arduino Nano 33 BLE Sense Donanımına Genel Bakış
Anakartın ilk bakışında, üstte kalabalık bir çok bileşen görebilirsiniz, bunların çoğu daha önce söylediğim sensörler. Ancak ana beyin, sağ taraftaki metal kasanın arkasında gizlidir. Bu kasa, güçlü bir Cortex M4F ve BLE ve Bluetooth 5 iletişimi için NINA B306 modülünü içeren Nordic nRF52840 işlemcisini barındırır. Bu, kartın çok düşük güçte çalışmasına ve ev otomasyonunda ve diğer bağlı projelerde düşük güçlü ağ uygulamaları için ideal olan Bluetooth 5 kullanarak iletişim kurmasına olanak tanır. Ayrıca nRF işlemci ARM Mbed işletim sistemini desteklediğindenayrıca daha sonra tartışacağımız bazı yazılım iyileştirmeleri de sağlar. Panonuzda bilmeniz gereken sensörler, LED'ler, butonlar ve diğer önemli şeyler aşağıdaki resimde işaretlenmiştir.
Yukarıdaki görüntüden de görebileceğiniz gibi, kart, panoyu herhangi bir harici sensöre bağlamanıza gerek kalmadan kutunun sağını oluşturmanıza yardımcı olabilecek sensörlerle dolu. Kartın giyilebilir cihazlarda ve bu sensörlerin çoğunu kullanacağınız Fitness bantları, Glikoz izleme, Pedometreler, akıllı saat, hava durumu istasyonu, Ev güvenliği gibi diğer akıllı taşınabilir cihazlarda kullanılması amaçlanmıştır. Ve her zaman olduğu gibi, tüm bu sensörler, kolayca kullanabileceğiniz Arduino için önceden oluşturulmuş kitaplıklara sahiptir. Bu makalenin sonunda tüm bu sensörlerden değerleri okuyup seri monitörde göstereceğiz. Arduino Nano 33 BLE algılama kartındaki sensör detayları ve gerekli kitaplıkları aşağıda tablo halinde verilmiştir.
Sensör Adı |
Parametreler |
Bağlantılar |
LSM9DSI - ST Mikroelektronik |
İvmeölçer, Jiroskop, Manyetometre |
LSMDSI Veri Sayfası Arduino_LSM9DS1 Kütüphanesi |
LPS22HB - ST Mikroelektronik |
Basınç |
LPS22HB Veri Sayfası Arduino_LPS22HB Kütüphanesi |
HTS221 - ST Mikroelektronik |
Sıcaklık ve Nem |
LPS22HB Veri Sayfası Arduino_HTS221 Kütüphanesi |
APDS9960 - Avago Tech. |
Yakınlık, Işık, Renk, Hareket |
LPS22HB Veri Sayfası Arduino_APDS9960 Kütüphanesi |
MP34DT05 - ST Mikroelektronik |
Mikrofon |
MP34DT05 Veri Sayfası Dahili PDM Kitaplığı |
Bu sensörlerin çoğu ST Microelectronics'tendir ve düşük güçle çalışmayı desteklerler, bu da onu pille çalışan tasarımlar için ideal hale getirir. Halihazırda bir spate modülü olarak mevcut olduğundan ve APDS9960 sensörünü daha önce Arduino ile kullandık çünkü APDS9960 sensörüne zaten çok az kişi aşina olabilir. Bu sensörler hakkında daha fazla bilgi için, ilgili veri sayfasını ziyaret edebilir ve ayrıca Arduino Nano 33 BLE algılama kartınızla kullanmaya başlamak için sağlanan kitaplığın tamamını Arduino IDE'nize eklediğinizden emin olabilirsiniz. Bir kütüphane eklemek için, ilgili GitHub sayfasına gitmek ve ZIP dosyasını indirmek için verilen bağlantıyı kullanabilir, ardından Sketch -> Include Library -> Add.ZIP Library'yi kullanabilir veya ayrıca Arduino IDE'deki kütüphane yöneticisini kullanabilir ve bunları ekleyebilirsiniz kütüphaneler.
Arduino Nano 33 BLE sense Board Teknik Özellikleri:
Nordic nRF52840 İşlemci ile güçlendirilmiş Arduino Nano 44 BLE kartı aşağıdaki teknik özelliklere sahiptir
- Çalışma Gerilimi: 3.3V
- USB Giriş Voltajı: 5V
- Giriş-pin Voltajı: 4.5V - 21V
- Çip: NINA-B3 - RF52840
- Saat: 64MHz
- Flaş: 1MB
- SRAM: 256 KB
- Kablosuz Bağlantı: Bluetooth 5.0 / BLE
- Arayüzler: USB, I2C, SPI, I2S, UART
- Dijital I / O Pinleri: 14
- PWM Pinleri: 6 (8 bit çözünürlük)
- Analog Pinler: 8 (10-bit veya 12-bit yapılandırılabilir)
Arduino Nano 33 BLE sense ile yazılım iyileştirmeleri
Dışarıdaki tüm Arduino kartları gibi, Arduino Nano 33 BLE sense Arduino IDE ile programlanabilir. Ancak, başlamadan önce yönetim kurulu yöneticisini kullanmanız ve pano ayrıntılarını IDE'nize eklemeniz gerekir. NRF 52840'ın ARM Mbed OS kullanılarak programlanabileceğini bildiğimiz gibi, bu, Arduino Nano 33 kartımızın Gerçek Zamanlı İşletim Sistemini (RTOS) desteklediği anlamına gelir. Mbed OS programlama ile, çoklu görev gerçekleştirmek için programda aynı anda birden fazla iş parçacığı çalıştırabiliriz. Ayrıca, kartın güç tüketimi büyük ölçüde azalacak, gecikme fonksiyonunu her çağırdığımızda, kart güç tasarrufu için gecikme süresi boyunca gıdıklama moduna girecek ve gecikme bittiğinde tekrar çalışmaya başlayacaktır. Bu işlemin normal bir Arduino gecikme işleminden 4,5uA daha az tüketeceği bildirildi.
Bununla birlikte, Arduino IDE ile Mbed OS entegrasyonu nispeten yenidir ve Mbed OS'nin tüm gücünü Arduino IDE ile tam olarak kullanabilmemiz biraz zaman alacaktır. Bu nedenle hızlı bir başlangıç için, tüm sensör değerlerini okuyan ve seri monitörlerde görüntüleyen bir program yazacağız.
Arduino IDE'nizi Arduino Nano 33 BLE sense için hazırlama
Arduino IDE'nizi başlatın ve Arduino Board yöneticinizi başlatmak için Tools -> Boards -> Board Manager'a gidin. Şimdi "Mbed OS" yi arayın ve paketi kurun. Kurulumun tamamlanması biraz zaman alacaktır.
Kurulum tamamlandıktan sonra, iletişim kutusunu kapatın ve Arduino 33 kartınızı dizüstü bilgisayarınızla bir mikro USB kablosu kullanarak bağlayın. Pano pencerelerini bağladığınız anda otomatik olarak kart için gerekli sürücüleri yüklemeye başlayacaktır. Ardından Arduino IDE'nizi açın ve Araçlar -> Kart -> Arduino Nano 33'ü seçin. Ardından Araçlar -> Bağlantı Noktası'nı işaretleyerek doğru COM bağlantı noktasını seçin, benimki COM3 bağlantı noktasına bağlı, ancak sizinki değişebilir. Bağlantı noktası seçildikten sonra IDE sağ alt köşeniz şöyle görünmelidir
Şimdi her şeyin çalışıp çalışmadığını hızlı bir şekilde kontrol etmek için örnek bir program kullanabiliriz, hadi Dosya -> Örnekler -> PDM -> PDMSerialPlotter'da verileni deneyelim. Bu program, sesi dinlemek ve bunu bir seri çizici üzerinde çizmek için yerleşik mikrofonu kullanır. Programı yükleyebilir ve panonun ve IDE'nin çalışıp çalışmadığını kontrol edebilirsiniz.
Şimdi eğer gülünç derecede yavaş bir derleme yaşarsanız, o zaman yalnız değilsiniz, ben dahil birçok kişi bu sorunla karşı karşıya ve bu makaleyi yazarken çözüm yok gibi görünüyor. Basit programları derlemem ve yüklemem yaklaşık 2-3 dakika sürüyor ve bazı BLE programlarını denediğimde veya Mbed OS ile çalışmayı denediğimde derleme süresi 10 dakikadan fazla arttı ve bu da beni başka bir şey denemeye teşvik etmedi. Bunun nedeni, Arduino IDE ile Mbed OS entegrasyonudur, harika Arduino Topluluğundan birinin bunun için bir çözüm bulmasını umalım.
Sensör verilerini okumak ve Seri Monitörde görüntülemek için program
Kartın BLE veya çekirdek Mbed OS işlevlerini kullanmazsak, derleme süresi makul olur. Bu yüzden tüm sensör değerlerini okumak ve aşağıdaki gibi seri monitörde görüntülemek için basit bir taslak yazdım
Aynısını yapmak için tam kod bu sayfanın altında verilmiştir, ancak yukarıda bahsedilen tüm kitaplıkları yüklediğinizden emin olun. Kodun açıklaması aşağıdaki gibidir.
Programı gerekli tüm başlık dosyalarını ekleyerek başlatın. Burada mikrofon dışındaki dört sensörü de kullanacağız.
#include // 9 eksenli IMU için kitaplığı dahil et #include // Basınç okumak için kitaplığı dahil et #include // Sıcaklık ve Nem okumak için kitaplığı dahil et #include // Renk, yakınlık ve hareket tanıma için kitaplığı dahil et
Kurulum işlevinin içinde, tüm sensör değerlerini görüntülemek ve ayrıca gerekli tüm kitaplıkları başlatmak için seri monitörü 9600 baud hızında başlatıyoruz. Kurulum içindeki kod aşağıda gösterilmiştir
geçersiz kurulum () {Serial.begin (9600); // Tüm sensör değerlerini görüntülemek için seri monitör if (! IMU.begin ()) // IMU sensörünü başlatın {Serial.println ("IMU başlatılamadı!"); while (1);} if (! BARO.begin ()) // Basınç sensörünü başlat {Serial.println ("Basınç Sensörü başlatılamadı!"); while (1);} if (! HTS.begin ()) // Sıcaklık ve Nem sensörünü başlat {Serial.println ("Sıcaklık ve Nem Sensörü başlatılamadı!"); while (1);} if (! APDS.begin ()) // Renk, Yakınlık ve Hareket sensörünü başlat {Serial.println ("Renk, Yakınlık ve Hareket Sensörü başlatılamadı!"); while (1);}}
Döngü işlevinin içinde, gerekli sensör değerlerini kitaplıktan okur ve ardından bunları seri monitörde yazdırırız. Sözdizimi her kitaplığın örnek programından alınabilir, ivmeölçer, jiroskop, manyetometre, basınç, sıcaklık, nem ve yakınlık sensörü değerlerini okuduk ve seri monitörde görüntüledik. İvmeölçer değerini ölçmek için kullanılan kod aşağıda gösterilmiştir, aynı şekilde tüm sensörler için ölçüm yapabiliriz.
// İvme ölçer değerleri if (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Accelerometer ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } gecikme (200);
Arduino Nano 33 BLE - Kodu yükleme
Kodun Nano 33'e yüklenmesi diğer kartlara benzer, ancak kartın iki COM bağlantı noktası olduğunu unutmayın. Yükleme düğmesine tıkladığınızda, Arduino IDE kodu derler ve ardından yazılım komutuyla kartı otomatik olarak sıfırlar, bu, kartı önyükleyici moduna geçirir ve kodunuzu yükler. Bu nedenle, yükleme tamamlandıktan sonra, Arduino IDE'nin COM bağlantı noktasını otomatik olarak farklı bir numaraya değiştirdiğini fark edebilir ve seri monitörünüzü açmadan önce tekrar değiştirmek isteyebilirsiniz.
Bu, Arduino Nano 33 kartı ile şimdiye kadarki deneyimime oldukça benziyor, gelecekte bir süre sonra sensörleri ve BLE özellikleriyle bir şeyler oluşturmaya çalışacağım. Yönetim kurulu ile deneyiminiz nasıldı? Onunla ne inşa etmemi isterdin? Cevapları yorum bölümünde bırakın, daha fazlasını tartışalım.