- Arduino Nano 33 BLE Sense
- Ikhtisar Perangkat Keras Arduino Nano 33 BLE Sense
- Peningkatan software dengan Arduino Nano 33 BLE sense
- Mempersiapkan Arduino IDE Anda untuk Arduino Nano 33 BLE sense
- Program untuk membaca data sensor dan ditampilkan di Serial Monitor
- Arduino Nano 33 BLE- Mengunggah kode
Arduino telah menjadi platform pengembangan untuk pembuatan prototipe cepat dan validasi ide. Banyak dari kita akan mulai dengan papan pengembangan Arduino UNO, tetapi hari ini seiring kemajuan kita menuju Internet of things, Computer Vision, Artificial Intelligence, Machine learning, dan teknologi futuristik lainnya, Arduino UNO yang sederhana tidak dapat lagi mengatasi 8-nya. -bit Mikrokontroler. Ini menyerukan peluncuran papan baru dengan prosesor yang lebih kuat yang memiliki built-in Wi-Fi, Bluetooth, GSM dan kemampuan nirkabel lainnya, seperti MKR1000 atau MKR GSM 1400 yang populer. Dalam konteks ini, Arduino baru-baru ini meluncurkan versi baru Nano-nya yang disebut Arduino Nano 33.
Ada dua jenis board Arduino Nano 33, yaitu Arduino Nano 33 IoT dan Arduino Nano 33 BLE sense. Perbedaan utama antara kedua modul adalah bahwa modul sense Arduino Nano 33 BLE memiliki beberapa sensor bawaan (akan dijelaskan nanti) sedangkan Arduino Nano 33 IoT tidak memilikinya. Pada artikel ini kami akan meninjau papan rasa Arduino Nano 33 BLE, memperkenalkan Anda pada fitur dan fungsinya dan akhirnya menulis kode sampel untuk membaca nilai sensor dan tampilan pada monitor serial. Jadi ayo belajar….!
Arduino Nano 33 BLE Sense
Nama "Arduino Nano 33 BLE Sense" memang sangat menarik, tetapi namanya sendiri memberikan beberapa informasi penting. Disebut "Nano" karena dimensi, pinout, dan faktor bentuknya sangat mirip dengan Arduino Nano klasik, sebenarnya direncanakan untuk digunakan sebagai pengganti Arduino Nano dalam proyek Anda yang sudah ada, tetapi masalahnya adalah modul baru ini beroperasi pada 3,3V sedangkan Nano klasik beroperasi pada 5V. Jadi saya pikir di sinilah nama "33" masuk, untuk menunjukkan bahwa papan beroperasi pada 3.3V. Kemudian nama "BLE" menunjukkan bahwa modul tersebut mendukung Bluetooth Hemat Energi (BLE5 5.0)dan nama "sense" menunjukkan bahwa ia memiliki sensor terpasang seperti akselerometer, giroskop, magnetometer, sensor suhu dan kelembapan, Sensor tekanan, Sensor jarak, Sensor warna, Sensor gerakan, dan bahkan mikrofon internal. Kami akan membahas detail BLE dan sensor lainnya nanti, tetapi untuk sekarang ini adalah bagaimana papan sensor Arduino Nano 33 BLE terlihat langsung dari un-boxing.
Ikhtisar Perangkat Keras Arduino Nano 33 BLE Sense
Pada tampilan pertama boardnya Anda bisa menemukan banyak sekali komponen yang berjejal di bagian atas, yang sebagian besar adalah sensor yang saya ceritakan sebelumnya. Namun otak utamanya tersembunyi di balik casing metal di sisi kanan. Casing ini menampung prosesor Nordic nRF52840 yang berisi Cortex M4F yang kuat dan modul NINA B306 untuk komunikasi BLE dan Bluetooth 5. Hal ini memungkinkan papan untuk beroperasi dengan daya yang sangat rendah dan berkomunikasi menggunakan Bluetooth 5 sehingga ideal untuk aplikasi jaringan jala daya rendah dalam otomatisasi rumah dan proyek terhubung lainnya. Juga karena prosesor nRF mendukung ARM Mbed OSitu juga menyediakan beberapa perbaikan perangkat lunak yang akan kita bahas nanti. Sensor, LED, tombol tekan dan hal-hal penting lainnya yang harus Anda ketahui di papan Anda ditandai pada gambar di bawah ini.
Seperti yang Anda lihat dari gambar di atas, papan ini penuh daya dengan sensor yang dapat membantu Anda membangun bagian kanan kotak tanpa harus menghubungkan papan ke sensor eksternal. Papan ini ditujukan untuk digunakan pada perangkat yang dapat dikenakan dan perangkat portabel pintar lainnya seperti gelang kebugaran, pemantauan glukosa, Pedometer, jam tangan pintar, stasiun cuaca, keamanan rumah dll di mana Anda akan menggunakan sebagian besar sensor ini. Dan seperti biasa, semua sensor ini memiliki pustaka bawaan untuk Arduino yang dapat Anda gunakan dengan mudah. Di akhir artikel ini kita akan membaca nilai dari semua sensor ini dan menampilkannya di monitor serial. Detail sensor pada papan sensor Arduino Nano 33 BLE bersama dengan pustaka yang diperlukan ditabulasikan di bawah ini
Nama Sensor |
Parameter |
Tautan |
LSM9DSI - ST Mikroelektronika |
Akselerometer, Giroskop, Magnetometer |
Lembar Data LSMDSI Perpustakaan Arduino_LSM9DS1 |
LPS22HB - ST Mikroelektronika |
Tekanan |
Lembar Data LPS22HB Perpustakaan Arduino_LPS22HB |
HTS221 - ST Mikroelektronika |
Suhu dan Kelembaban |
Lembar Data LPS22HB Perpustakaan Arduino_HTS221 |
APDS9960 - Avago Tech. |
Kedekatan, Cahaya, Warna, Gestur |
Lembar Data LPS22HB Arduino_APDS9960 Library |
MP34DT05 - ST Mikroelektronika |
Mikropon |
Lembar Data MP34DT05 Pustaka PDM bawaan |
Sebagian besar sensor ini berasal dari ST Microelectronics dan mendukung pengoperasian dengan daya rendah sehingga ideal untuk desain yang dioperasikan dengan baterai. Beberapa orang mungkin sudah familiar dengan sensor APDS9960 karena sudah tersedia sebagai modul spate dan sebelumnya kami juga pernah menggunakan sensor APDS9960 dengan Arduino. Untuk informasi lebih lanjut tentang sensor ini, Anda dapat mengunjungi lembar data masing-masing dan juga memastikan Anda telah menambahkan seluruh pustaka yang disediakan ke Arduino IDE Anda untuk mulai menggunakannya dengan papan sense Arduino Nano 33 BLE Anda. Untuk menambahkan perpustakaan Anda dapat menggunakan tautan yang diberikan untuk masuk ke halaman GitHub masing-masing dan mengunduh file ZIP, kemudian gunakan Sketch -> Include Library -> Add.ZIP Library atau Anda juga dapat menggunakan pengelola perpustakaan di Arduino IDE dan menambahkan ini perpustakaan.
Spesifikasi Teknis Arduino Nano 33 BLE sense Board:
Didukung oleh Prosesor Nordic nRF52840, papan Arduino Nano 44 BLE memiliki spesifikasi teknis sebagai berikut
- Tegangan Operasi: 3.3V
- Tegangan Input USB: 5V
- Tegangan Input-pin: 4.5V hingga 21V
- Chip: NINA-B3 - RF52840
- Jam: 64MHz
- Flash: 1MB
- SRAM: 256 KB
- Konektivitas Nirkabel: Bluetooth 5.0 / BLE
- Antarmuka: USB, I2C, SPI, I2S, UART
- Pin I / O Digital: 14
- Pin PWM: 6 (resolusi 8-bit)
- Pin Analog: 8 (10-bit atau 12-bit dapat dikonfigurasi)
Peningkatan software dengan Arduino Nano 33 BLE sense
Sama seperti semua papan Arduino di luar sana, rasa Arduino Nano 33 BLE dapat diprogram dengan Arduino IDE. Tapi, Anda harus menggunakan pengelola papan dan menambahkan detail papan ke IDE Anda sebelum Anda bisa mulai. Seperti yang kita ketahui nRF 52840 dapat diprogram menggunakan ARM Mbed OS, ini berarti papan Arduino Nano 33 kami mendukung Sistem Operasi Real-Time (RTOS). Dengan pemrograman Mbed OS kita dapat menjalankan beberapa thread sekaligus dalam program untuk melakukan multi tasking. Selain itu, konsumsi daya papan akan sangat berkurang, setiap kali kita memanggil fungsi penundaan, papan akan masuk ke mode menggelitik selama waktu tunda untuk menghemat daya dan akan kembali beroperasi setelah penundaan selesai. Dilaporkan bahwa operasi ini akan mengkonsumsi 4.5uA kurang dari operasi penundaan Arduino normal.
Karena itu, integrasi Mbed OS dengan Arduino IDE relatif baru dan akan membutuhkan waktu sebelum kita dapat sepenuhnya memanfaatkan kekuatan penuh Mbed OS dengan Arduino IDE. Jadi untuk permulaan cepat, kami akan menulis program untuk membaca semua nilai sensor dan menampilkannya di monitor serial.
Mempersiapkan Arduino IDE Anda untuk Arduino Nano 33 BLE sense
Luncurkan Arduino IDE Anda dan buka Tools -> Boards -> Board Manger untuk meluncurkan manajer Arduino Board Anda. Sekarang cari "Mbed OS" dan instal paketnya. Perlu waktu beberapa saat hingga penginstalan selesai.
Setelah instalasi selesai, tutup kotak dialog dan hubungkan papan Arduino 33 Anda menggunakan kabel micro USB dengan laptop Anda. Segera setelah Anda menghubungkan, jendela papan akan secara otomatis mulai menginstal driver yang diperlukan untuk papan tersebut. Kemudian buka Arduino IDE Anda dan pilih Tools -> Board -> Arduino Nano 33. Kemudian pilih juga COM port yang tepat dengan mencentang Tools -> Port, saya terhubung ke port COM3 tetapi milik Anda mungkin berbeda. Setelah port dipilih, sudut kanan bawah IDE Anda akan terlihat seperti ini
Sekarang untuk segera memeriksa apakah semuanya berfungsi, kita dapat menggunakan program contoh, mari kita coba yang disediakan di File -> Contoh -> PDM -> PDMSerialPlotter. Program ini akan menggunakan mikrofon on-board untuk mendengarkan audio dan memplotnya pada plotter serial. Anda dapat mengunggah program dan memeriksa apakah papan dan IDE berfungsi.
Sekarang jika Anda mengalami kompilasi yang sangat lambat maka Anda tidak sendiri, banyak orang termasuk saya menghadapi masalah ini dan pada saat menulis artikel ini, sepertinya tidak ada solusi. Saya membutuhkan waktu sekitar 2-3 menit untuk mengkompilasi dan mengunggah program sederhana dan ketika saya mencoba beberapa program BLE atau mencoba bekerja dengan OS Mbed, waktu kompilasi meningkat menjadi lebih dari 10 menit yang tidak mendorong saya untuk mencoba lebih jauh. Ini karena integrasi Mbed OS dengan Arduino IDE, semoga seseorang dari Komunitas Arduino yang luar biasa datang dengan solusi untuk ini.
Program untuk membaca data sensor dan ditampilkan di Serial Monitor
Jika kami tidak menggunakan fungsi BLE atau OS Mbed inti dari papan, waktu kompilasi adalah wajar. Jadi saya menulis sketsa sederhana untuk membaca semua nilai sensor dan menampilkannya di monitor serial seperti yang ditunjukkan di bawah ini
Kode lengkap untuk melakukan hal yang sama diberikan di bagian bawah halaman ini, tetapi pastikan Anda telah menginstal semua pustaka yang disebutkan di atas. Penjelasan kode tersebut adalah sebagai berikut.
Mulai program dengan memasukkan semua file header yang diperlukan. Di sini kita akan menggunakan keempat sensor kecuali mikrofon
#include // Sertakan perpustakaan untuk 9-sumbu IMU #include // Sertakan perpustakaan untuk membaca Tekanan #include // Sertakan perpustakaan untuk membaca Suhu dan Kelembaban #include // Sertakan perpustakaan untuk pengenalan warna, kedekatan, dan gerakan
Di dalam fungsi pengaturan kami menginisialisasi monitor serial pada 9600 baud rate untuk menampilkan semua nilai sensor dan juga menginisialisasi semua perpustakaan yang diperlukan. Kode di dalam pengaturan ditampilkan di bawah ini
void setup () {Serial.begin (9600); // Monitor serial untuk menampilkan semua nilai sensor if (! IMU.begin ()) // Inisialisasi sensor IMU {Serial.println ("Gagal menginisialisasi IMU!"); while (1);} if (! BARO.begin ()) // Inisialisasi Sensor tekanan {Serial.println ("Gagal menginisialisasi Sensor Tekanan!"); while (1);} if (! HTS.begin ()) // Inisialisasi sensor Suhu dan Kelembaban {Serial.println ("Gagal menginisialisasi Sensor Suhu dan Kelembaban!"); while (1);} if (! APDS.begin ()) // Inisialisasi Sensor Warna, Kedekatan, dan Gerakan {Serial.println ("Gagal menginisialisasi Sensor Warna, Kedekatan, dan Gerakan!"); sementara (1);}}
Di dalam fungsi loop, kita membaca nilai sensor yang diperlukan dari perpustakaan dan kemudian mencetaknya pada monitor serial. Sintaksnya dapat dirujuk dari program contoh masing-masing perpustakaan, kita telah membaca nilai akselerometer, giroskop, magnetometer, tekanan, suhu, kelembaban, dan sensor jarak dan menampilkannya pada monitor serial. Kode untuk mengukur nilai akselerometer ditunjukkan di bawah ini, demikian juga kita dapat mengukur untuk semua sensor.
// Nilai akselerometer 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); } penundaan (200);
Arduino Nano 33 BLE- Mengunggah kode
Mengunggah kode ke Nano 33 serupa dengan papan lainnya, tetapi perhatikan bahwa papan memiliki dua port COM. Ketika Anda mengklik tombol unggah, Arduino IDE mengkompilasi kode dan kemudian mengatur ulang papan secara otomatis melalui perintah perangkat lunak, ini akan menempatkan papan dalam mode boot loader dan mengunggah kode Anda. Karena itu, setelah pengunggahan selesai Anda mungkin memperhatikan bahwa Arduino IDE telah secara otomatis mengubah port COM-nya ke nomor yang berbeda dan Anda mungkin ingin mengubahnya kembali sebelum Anda membuka monitor serial Anda.
Jadi ini adalah pengalaman saya dengan papan Arduino Nano 33 sejauh ini, saya akan mencoba membangun sesuatu dengan sensor dan fitur BLEnya beberapa saat kemudian. Bagaimana pengalaman Anda dengan dewan? Apa yang Anda ingin saya bangun dengannya? Tinggalkan jawabannya di bagian komentar dan kami akan membahas lebih lanjut.