- Arduino Nano 33 BLE Sense
- Gambaran Keseluruhan Perkakasan Arduino Nano 33 BLE
- Penambahbaikan perisian dengan Arduino Nano 33 BLE sense
- Menyiapkan Arduino IDE anda untuk Arduino Nano 33 BLE sense
- Program untuk membaca data sensor dan paparan di Serial Monitor
- Arduino Nano 33 BLE- Memuat naik kod
Arduino telah menjadi platform pengembangan untuk prototaip cepat dan pengesahan idea. Ramai di antara kita akan bermula dengan lembaga pengembangan Arduino UNO, tetapi hari ini ketika kita maju ke arah Internet mengenai hal-hal, Visi Komputer, Kecerdasan Buatan, pembelajaran mesin, dan teknologi futuristik lain, Arduino UNO yang rendah hati tidak dapat lagi mengatasi -bit Mikrokontroler. Ini memerlukan pelancaran papan baru dengan pemproses yang lebih kuat yang mempunyai keupayaan Wi-Fi, Bluetooth, GSM dan keupayaan tanpa wayar lain, seperti MKR1000 atau MKR GSM 1400 yang popular. Dalam konteks ini, Arduino baru-baru ini melancarkan versi baru Nano-nya yang disebut Arduino Nano 33.
Terdapat dua jenis papan Arduino Nano 33, iaitu Arduino Nano 33 IoT dan Arduino Nano 33 BLE sense. Perbezaan utama antara kedua modul ini adalah bahawa modul Arduino Nano 33 BLE mempunyai beberapa sensor terbina dalam (akan diperincikan kemudian) sementara Arduino Nano 33 IoT tidak memilikinya. Dalam artikel ini, kami akan mengkaji papan indra Arduino Nano 33 BLE, memperkenalkan anda kepada ciri dan fungsinya dan akhirnya menulis contoh kod untuk membaca nilai sensor dan dipaparkan pada monitor bersiri. Jadi mari kita belajar….!
Arduino Nano 33 BLE Sense
Nama "Arduino Nano 33 BLE Sense" memang sedap, tetapi namanya sendiri mengeluarkan beberapa maklumat penting. Ia disebut "Nano" kerana dimensi, pinout dan faktor bentuknya sangat mirip dengan Arduino Nano klasik, sebenarnya dirancang untuk digunakan sebagai pengganti Arduino Nano dalam projek-projek anda yang ada, tetapi yang penting ialah modul baru ini beroperasi pada 3.3V sementara Nano klasik beroperasi pada 5V. Jadi saya rasa di sinilah nama "33" masuk, untuk menunjukkan bahawa papan beroperasi pada 3.3V. Kemudian nama "BLE" menunjukkan bahawa modul tersebut menyokong Bluetooth Low Energy (BLE5 5.0)dan nama "sense" menunjukkan bahwa ia memiliki sensor onboard seperti accelerometer, giroskop, magnetometer, sensor suhu dan kelembapan, Sensor tekanan, sensor jarak, sensor warna, sensor Gerakan, dan bahkan mikrofon terpasang. Kami akan mengetahui perincian BLE dan sensor lain kemudian tetapi buat masa ini adalah bagaimana papan indra Arduino Nano 33 BLE kelihatan seperti kotak-kotak.
Gambaran Keseluruhan Perkakasan Arduino Nano 33 BLE
Pada pandangan pertama papan, anda dapat menemui banyak komponen yang padat di bahagian atas, yang kebanyakannya adalah sensor yang saya ceritakan sebelumnya. Tetapi otak utama tersembunyi di sebalik selongsong logam di sebelah kanan. Sarung ini memegang pemproses Nordic nRF52840 yang mengandungi Cortex M4F dan modul NINA B306 yang kuat untuk komunikasi BLE dan Bluetooth 5. Ini membolehkan papan untuk beroperasi dengan kuasa yang sangat rendah dan berkomunikasi menggunakan Bluetooth 5 menjadikannya sesuai untuk aplikasi rangkaian kuasa rendah dalam automasi rumah dan projek lain yang berkaitan. Juga kerana pemproses nRF menyokong OS ARM Mbedia juga memberikan beberapa peningkatan perisian yang akan kita bincangkan kemudian. Sensor, LED, butang tekan dan perkara penting lain yang mesti anda ketahui di papan anda ditandakan pada gambar di bawah.
Seperti yang anda lihat dari gambar di atas, papan ini dilengkapi dengan sensor yang dapat membantu anda membina sebelah kanan kotak tanpa perlu menyambungkan papan ke sensor luaran. Papan ini bertujuan untuk digunakan dalam peranti yang boleh dipakai dan peranti mudah alih yang lain seperti Jalur kecergasan, pemantauan Glukosa, Pedometer, jam pintar, stesen cuaca, Keselamatan rumah dll di mana anda akan menggunakan sebahagian besar sensor ini. Dan seperti biasa, semua sensor ini mempunyai perpustakaan pra-bina untuk Arduino yang boleh anda gunakan dengan mudah. Pada akhir artikel ini kita akan membaca nilai dari semua sensor ini dan memaparkannya pada monitor bersiri. Perincian sensor pada papan indra Arduino Nano 33 BLE beserta perpustakaan yang diperlukan dibentangkan di bawah
Nama Sensor |
Parameter |
Pautan |
LSM9DSI - ST Mikroelektronik |
Accelerometer, Giroskop, Magnetometer |
Lembaran Data LSMDSI Perpustakaan Arduino_LSM9DS1 |
LPS22HB - ST Mikroelektronik |
Tekanan |
Lembaran Data LPS22HB Perpustakaan Arduino_LPS22HB |
HTS221 - ST Mikroelektronik |
Suhu dan Kelembapan |
Lembaran Data LPS22HB Perpustakaan Arduino_HTS221 |
APDS9960 - Avago Tech. |
Kedekatan, Cahaya, Warna, Gerak isyarat |
Lembaran Data LPS22HB Perpustakaan Arduino_APDS9960 |
MP34DT05 - ST Mikroelektronik |
Mikrofon |
Lembaran Data MP34DT05 Perpustakaan PDM terbina dalam |
Sebilangan besar sensor ini berasal dari ST Microelectronics dan mereka menyokong operasi kuasa rendah menjadikannya sesuai untuk reka bentuk yang dikendalikan oleh bateri. Beberapa orang mungkin sudah biasa dengan sensor APDS9960 kerana ia sudah tersedia sebagai modul spate dan kami juga telah menggunakan sensor APDS9960 dengan Arduino sebelumnya. Untuk maklumat lebih lanjut mengenai sensor ini, anda boleh mengunjungi lembar data masing-masing dan juga memastikan anda telah menambahkan keseluruhan perpustakaan yang disediakan ke Arduino IDE anda untuk mula menggunakannya dengan papan indra Arduino Nano 33 BLE anda. Untuk menambahkan perpustakaan, anda boleh menggunakan pautan yang diberikan untuk pergi ke halaman GitHub masing-masing dan memuat turun fail ZIP, kemudian gunakan Sketsa -> Sertakan Perpustakaan -> Tambah.ZIP Perpustakaan atau anda juga boleh menggunakan pengurus perpustakaan di Arduino IDE dan menambahkannya perpustakaan.
Arduino Nano 33 BLE sense Board Spesifikasi Teknikal:
Dikuasakan oleh Pemproses Nordic nRF52840, papan Arduino Nano 44 BLE mempunyai spesifikasi teknikal berikut
- Voltan Operasi: 3.3V
- Voltan Input USB: 5V
- Voltan pin input: 4.5V hingga 21V
- Cip: NINA-B3 - RF52840
- Jam: 64MHz
- Kilat: 1MB
- SRAM: 256 KB
- Kesambungan Tanpa Wayar: Bluetooth 5.0 / BLE
- Antara muka: USB, I2C, SPI, I2S, UART
- Pin I / O Digital: 14
- PWM Pin: 6 (resolusi 8-bit)
- Pin Analog: 8 (10-bit atau 12-bit boleh dikonfigurasi)
Penambahbaikan perisian dengan Arduino Nano 33 BLE sense
Sama seperti semua papan Arduino di luar sana, Arduino Nano 33 BLE sense dapat diprogramkan dengan Arduino IDE. Tetapi, anda harus menggunakan pengurus dewan dan menambahkan butiran dewan ke IDE anda sebelum anda dapat memulakannya. Seperti yang kita tahu nRF 52840 dapat diprogramkan menggunakan ARM Mbed OS, ini bermaksud papan Arduino Nano 33 kami menyokong Sistem Operasi Masa Nyata (RTOS). Dengan pengaturcaraan Mbed OS, kita dapat menjalankan banyak utas pada masa yang sama dalam program untuk melakukan pelbagai tugas. Juga, penggunaan kuasa papan akan sangat berkurang, setiap kali kita memanggil fungsi kelewatan, papan akan memasuki mod gelitik semasa waktu tunda untuk menjimatkan kuasa dan akan kembali beroperasi setelah penundaan selesai. Dilaporkan bahawa operasi ini akan memakan 4.5uA kurang daripada operasi penundaan Arduino biasa.
Yang dikatakan, integrasi Mbed OS dengan Arduino IDE agak baru dan akan memakan masa sebelum kita dapat menggunakan sepenuhnya kekuatan Mbed OS dengan Arduino IDE. Jadi untuk permulaan yang cepat, kami akan menulis program untuk membaca semua nilai sensor dan memaparkannya pada monitor bersiri.
Menyiapkan Arduino IDE anda untuk Arduino Nano 33 BLE sense
Lancarkan Arduino IDE anda dan pergi ke Tools -> Boards -> Board Manger untuk melancarkan pengurus Arduino Board anda. Sekarang cari "Mbed OS" dan pasang pakejnya. Memerlukan masa untuk pemasangan selesai.
Setelah pemasangan selesai, tutup kotak dialog dan sambungkan papan Arduino 33 anda menggunakan kabel USB mikro dengan komputer riba anda. Sebaik sahaja anda menyambungkan tetingkap papan secara automatik akan mula memasang pemacu yang diperlukan untuk papan. Kemudian buka Arduino IDE anda dan pilih Tools -> Board -> Arduino Nano 33. Kemudian pilih juga port COM yang betul dengan memeriksa Tools -> Port, saya disambungkan ke port COM3 tetapi milik anda mungkin berbeza. Setelah port dipilih, sudut kanan bawah IDE anda akan kelihatan seperti ini
Sekarang untuk memeriksa dengan cepat jika semuanya berfungsi, kita boleh menggunakan program contoh, mari cuba yang disediakan di Fail -> Contoh -> PDM -> PDMSerialPlotter. Program ini akan menggunakan mikrofon on-board untuk mendengar audio dan memplotnya pada plotter bersiri. Anda boleh memuat naik program dan memeriksa sama ada papan dan IDE berfungsi.
Sekiranya anda mengalami penyusunan yang sangat perlahan, maka anda tidak bersendirian, banyak orang termasuk saya menghadapi masalah ini dan semasa menulis artikel ini, sepertinya tidak ada jalan penyelesaian. Saya mengambil masa sekitar 2-3 minit untuk menyusun dan memuat naik program mudah dan ketika saya mencuba beberapa program BLE atau cuba bekerja dengan Mbed OS, waktu penyusunan meningkat menjadi lebih dari 10 minit yang tidak mendorong saya untuk mencuba apa-apa lagi. Ini kerana integrasi Mbed OS dengan Arduino IDE, mari kita berharap seseorang dari Komuniti Arduino yang hebat akan menghasilkan penyelesaian untuk ini.
Program untuk membaca data sensor dan paparan di Serial Monitor
Sekiranya kita tidak menggunakan fungsi BLE atau teras Mbed OS papan, masa penyusunan adalah wajar. Oleh itu, saya menulis lakaran ringkas untuk membaca semua nilai sensor dan memaparkannya pada monitor bersiri seperti paparan di bawah
Kod lengkap untuk melakukan perkara yang sama diberikan di bahagian bawah halaman ini, tetapi pastikan anda telah memasang semua perpustakaan yang disebutkan di atas. Penjelasan kodnya adalah seperti berikut.
Mulakan program dengan memasukkan semua fail tajuk yang diperlukan. Di sini kita akan menggunakan keempat-empat sensor kecuali mikrofon
#include // Sertakan perpustakaan untuk IMU 9-sumbu #include // Sertakan perpustakaan untuk membaca Tekanan #include // Sertakan perpustakaan untuk membaca Suhu dan Kelembapan #include // Sertakan perpustakaan untuk warna, jarak dan pengenalan isyarat
Di dalam fungsi setup, kami menginisialisasi monitor bersiri pada 9600 baud rate untuk menampilkan semua nilai sensor dan juga menginisialisasi semua perpustakaan yang diperlukan. Kod di dalam persediaan ditunjukkan di bawah
batal persediaan () {Serial.begin (9600); // Monitor bersiri untuk menampilkan semua nilai sensor jika (! IMU.begin ()) // Memulakan sensor IMU {Serial.println ("Gagal memulakan IMU!"); while (1);} if (! BARO.begin ()) // Memulakan Sensor tekanan {Serial.println ("Gagal memulakan Sensor Tekanan!"); sementara (1);} jika (! HTS.begin ()) // Memulakan sensor Suhu dan Kelembapan {Serial.println ("Gagal memulakan Sensor Suhu dan Kelembapan!"); sementara (1);} if (! APDS.begin ()) // Memulakan Sensor Warna, Kedekatan dan Gerakan {Serial.println ("Gagal memulakan Sensor Warna, Kedekatan dan Gerakan!"); sementara (1);}}
Di dalam fungsi gelung, kami membaca nilai sensor yang diperlukan dari perpustakaan dan kemudian mencetaknya pada monitor bersiri. Sintaksnya dapat dirujuk dari program contoh setiap perpustakaan, kami telah membaca akselerometer, giroskop, magnetometer, tekanan, suhu, kelembapan dan sensor jarak dan memaparkannya pada monitor bersiri. Kod untuk mengukur nilai pecutan ditunjukkan di bawah, begitu juga, kita dapat mengukur untuk semua sensor.
// Nilai pecutan jika (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); } kelewatan (200);
Arduino Nano 33 BLE- Memuat naik kod
Memuat naik kod ke Nano 33 adalah serupa dengan papan lain, tetapi perhatikan bahawa papan mempunyai dua port COM. Apabila anda mengklik pada butang muat naik, Arduino IDE menyusun kod dan kemudian mengatur semula papan secara automatik melalui perintah perisian, ini akan meletakkan papan dalam mod pemuat but dan memuat naik kod anda. Oleh kerana itu, setelah muat naik selesai, anda mungkin menyedari bahawa Arduino IDE secara automatik telah menukar port COMnya ke nombor yang lain dan anda mungkin ingin mengubahnya kembali sebelum anda membuka monitor bersiri anda.
Oleh itu, ini adalah pengalaman saya dengan papan Arduino Nano 33 setakat ini, saya akan berusaha membina sesuatu dengan sensornya dan ciri BLE suatu ketika nanti. Bagaimana pengalaman anda dengan dewan? Apa yang anda mahu saya bina dengannya? Tinggalkan jawapan di bahagian komen dan kami akan membincangkan lebih lanjut.