- Arduino Nano 33 BLE Sense
- ภาพรวมฮาร์ดแวร์ Arduino Nano 33 BLE Sense
- การปรับปรุงซอฟต์แวร์ด้วย Arduino Nano 33 BLE sense
- เตรียม Arduino IDE ของคุณสำหรับ Arduino Nano 33 BLE sense
- โปรแกรมอ่านข้อมูลเซ็นเซอร์และแสดงผลบน Serial Monitor
- Arduino Nano 33 BLE- การอัปโหลดรหัส
Arduino เป็นแพลตฟอร์มการพัฒนาแบบ go-to สำหรับการสร้างต้นแบบที่รวดเร็วและการตรวจสอบความคิด พวกเราหลายคนคงเริ่มต้นด้วยบอร์ดพัฒนา Arduino UNO แต่วันนี้เมื่อเราก้าวไปสู่อินเทอร์เน็ตของสิ่งต่าง ๆ วิสัยทัศน์คอมพิวเตอร์ปัญญาประดิษฐ์การเรียนรู้ของเครื่องและเทคโนโลยีแห่งอนาคตอื่น ๆ Arduino UNO ที่ต่ำต้อยไม่สามารถรับมือกับ 8 ได้อีกต่อไป ไมโครคอนโทรลเลอร์ -bit นี้เรียกว่าสำหรับการเปิดตัวของบอร์ดใหม่ที่มีโปรเซสเซอร์ที่มีประสิทธิภาพมากขึ้นที่มี built-in Wi-Fi, Bluetooth, GSM และความสามารถไร้สายอื่น ๆ เช่นเป็นที่นิยมMKR1000 หรือ MKR GSM 1400 ในบริบทนี้ Arduino เพิ่งเปิดตัวรุ่นใหม่ของนาโนของมันเรียกว่าArduino Nano 33
บอร์ด Arduino Nano 33 มีทั้งหมด 2 ประเภท ได้แก่ Arduino Nano 33 IoT และ Arduino Nano 33 BLE sense ความแตกต่างที่สำคัญระหว่างโมดูลทั้งสองคือโมดูลArduino Nano 33 BLE senseมีเซ็นเซอร์ในตัว (จะดูรายละเอียดในภายหลัง) ในขณะที่ Arduino Nano 33 IoT ไม่มี ในบทความนี้เราจะตรวจสอบบอร์ดความรู้สึก Arduino Nano 33 BLE แนะนำคุณเกี่ยวกับคุณสมบัติและฟังก์ชันการทำงานและสุดท้ายเขียนโค้ดตัวอย่างเพื่ออ่านค่าเซ็นเซอร์และแสดงบนมอนิเตอร์แบบอนุกรม มาเรียนรู้กันเลย….!
Arduino Nano 33 BLE Sense
ชื่อ“ Arduino Nano 33 BLE Sense” นั้นฟังได้เต็มปาก แต่ชื่อนั้นให้ข้อมูลสำคัญบางอย่าง เรียกว่า“ นาโน” เนื่องจากขนาดพินเอาต์และฟอร์มแฟคเตอร์นั้นคล้ายคลึงกับ Arduino Nano แบบคลาสสิกมากจริงๆแล้วมีการวางแผนที่จะใช้แทน Arduino Nano ในโครงการที่มีอยู่ของคุณ แต่สิ่งที่น่าสังเกตคือโมดูลใหม่นี้ทำงานบน 3.3Vในขณะที่ Nano แบบคลาสสิกทำงานบน 5V ดังนั้นฉันคิดว่านี่คือที่มาของชื่อ "33" เพื่อระบุว่าบอร์ดทำงานที่ 3.3V จากนั้นชื่อ“ BLE” แสดงว่าโมดูลรองรับBluetooth Low Energy (BLE5 5.0)และชื่อ "ความรู้สึก" บ่งบอกว่ามีเซ็นเซอร์ในตัวเช่นมาตรวัดความเร่งไจโรสโคปเครื่องวัดสนามแม่เหล็กเซ็นเซอร์อุณหภูมิและความชื้นเซ็นเซอร์ความดันเซ็นเซอร์ความใกล้เคียงเซ็นเซอร์สีเซ็นเซอร์ท่าทางและแม้แต่ไมโครโฟนในตัว เราจะเข้าสู่รายละเอียดของ BLE และเซ็นเซอร์อื่น ๆ ในภายหลัง แต่สำหรับตอนนี้นี่คือลักษณะของบอร์ด Arduino Nano 33 BLE ที่ดูไม่เป็นมวย
ภาพรวมฮาร์ดแวร์ Arduino Nano 33 BLE Sense
ในรูปลักษณ์แรกของบอร์ดคุณจะพบส่วนประกอบมากมายที่อยู่ด้านบนซึ่งส่วนใหญ่เป็นเซ็นเซอร์ที่ฉันบอกไปก่อนหน้านี้ แต่สมองส่วนหลักซ่อนอยู่หลังปลอกโลหะทางด้านขวา ปลอกนี้เก็บโปรเซสเซอร์ Nordic nRF52840ที่มี Cortex M4F อันทรงพลังและโมดูลNINA B306สำหรับการสื่อสาร BLE และ Bluetooth 5 สิ่งนี้ช่วยให้บอร์ดทำงานโดยใช้พลังงานต่ำมากและสื่อสารโดยใช้ Bluetooth 5 ซึ่งเหมาะสำหรับการใช้งานเครือข่ายตาข่ายพลังงานต่ำในระบบอัตโนมัติภายในบ้านและโครงการที่เชื่อมต่ออื่น ๆ เนื่องจากโปรเซสเซอร์ nRF รองรับARM Mbed OSนอกจากนี้ยังมีการปรับปรุงซอฟต์แวร์บางอย่างซึ่งเราจะพูดถึงในภายหลัง เซ็นเซอร์ไฟ LED ปุ่มกดและสิ่งสำคัญอื่น ๆ ที่คุณควรทราบบนบอร์ดของคุณมีเครื่องหมายอยู่ในภาพด้านล่าง
ดังที่คุณเห็นจากภาพด้านบนบอร์ดนี้เต็มไปด้วยเซ็นเซอร์ที่สามารถช่วยคุณในการสร้างด้านขวาของกล่องโดยไม่ต้องเชื่อมต่อบอร์ดกับเซ็นเซอร์ภายนอกใด ๆ บอร์ดนี้มีวัตถุประสงค์เพื่อใช้ในอุปกรณ์สวมใส่และอุปกรณ์พกพาอัจฉริยะอื่น ๆ เช่นแถบฟิตเนส, การตรวจสอบระดับน้ำตาล, มาตรวัดจำนวนก้าว, สมาร์ทวอทช์, สถานีตรวจอากาศ, การรักษาความปลอดภัยภายในบ้านเป็นต้นซึ่งคุณจะใช้เซ็นเซอร์เหล่านี้ส่วนใหญ่ และเช่นเดียวกับที่เซ็นเซอร์เหล่านี้มีไลบรารีที่สร้างไว้ล่วงหน้าสำหรับ Arduino ซึ่งคุณสามารถใช้งานได้ทันที ในตอนท้ายของบทความนี้เราจะอ่านค่าจากเซ็นเซอร์เหล่านี้ทั้งหมดและแสดงบนจอภาพอนุกรม รายละเอียดเซ็นเซอร์บนบอร์ด Arduino Nano 33 BLE Sense พร้อมกับไลบรารีที่จำเป็นมีอยู่ในตารางด้านล่าง
ชื่อเซนเซอร์ |
พารามิเตอร์ |
ลิงค์ |
LSM9DSI - ST ไมโครอิเล็กทรอนิกส์ |
Accelerometer, Gyroscope, Magnetometer |
แผ่นข้อมูล LSMDSI Arduino_LSM9DS1 ไลบรารี |
LPS22HB - ST ไมโครอิเล็กทรอนิกส์ |
ความดัน |
LPS22HB เอกสารข้อมูลสินค้า Arduino_LPS22HB ไลบรารี |
HTS221 - ST ไมโครอิเล็กทรอนิกส์ |
อุณหภูมิและความชื้น |
LPS22HB เอกสารข้อมูลสินค้า Arduino_HTS221 ไลบรารี |
APDS9960 - Avago Tech |
ความใกล้เคียงแสงสีท่าทาง |
LPS22HB เอกสารข้อมูลสินค้า Arduino_APDS9960 ไลบรารี |
MP34DT05 - ST ไมโครอิเล็กทรอนิกส์ |
ไมโครโฟน |
MP34DT05 เอกสารข้อมูลสินค้า ห้องสมุด Inbuilt-PDM |
เซ็นเซอร์เหล่านี้ส่วนใหญ่มาจากST Microelectronicsและรองรับการใช้พลังงานต่ำทำให้เหมาะสำหรับการออกแบบที่ใช้แบตเตอรี่ ไม่กี่คนที่อาจคุ้นเคยกับเซ็นเซอร์ APDS9960 เนื่องจากมีให้ใช้งานเป็นโมดูล spate แล้วและเรายังเคยใช้เซ็นเซอร์ APDS9960 กับ Arduino มาก่อน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์เหล่านี้คุณสามารถเยี่ยมชมแผ่นข้อมูลที่เกี่ยวข้องและตรวจสอบให้แน่ใจว่าคุณได้เพิ่มไลบรารีที่ให้มาทั้งหมดลงใน Arduino IDE ของคุณเพื่อเริ่มใช้งานกับบอร์ด Arduino Nano 33 BLE Sense ของคุณ ในการเพิ่มไลบรารีคุณสามารถใช้ลิงก์ที่กำหนดเพื่อไปยังหน้า GitHub ที่เกี่ยวข้องและดาวน์โหลดไฟล์ ZIP จากนั้นใช้ Sketch -> รวมไลบรารี -> Add.ZIP Library หรือคุณสามารถใช้ตัวจัดการไลบรารีบน Arduino IDE และเพิ่มสิ่งเหล่านี้ ห้องสมุด
Arduino Nano 33 BLE sense Board ข้อมูลจำเพาะทางเทคนิค:
ขับเคลื่อนโดยโปรเซสเซอร์ Nordic nRF52840 บอร์ด Arduino Nano 44 BLE มีข้อกำหนดทางเทคนิคดังต่อไปนี้
- แรงดันไฟฟ้าที่ใช้งาน: 3.3V
- แรงดันไฟฟ้าอินพุต USB: 5V
- แรงดันไฟฟ้าขาเข้า: 4.5V ถึง 21V
- ชิป: NINA-B3 - RF52840
- นาฬิกา: 64MHz
- แฟลช: 1MB
- SRAM: 256 KB
- การเชื่อมต่อไร้สาย: Bluetooth 5.0 / BLE
- อินเทอร์เฟซ: USB, I2C, SPI, I2S, UART
- พิน I / O ดิจิทัล: 14
- PWM Pins: 6 (ความละเอียด 8 บิต)
- Analog Pins: 8 (กำหนดค่า 10 บิตหรือ 12 บิต)
การปรับปรุงซอฟต์แวร์ด้วย Arduino Nano 33 BLE sense
เช่นเดียวกับบอร์ด Arduino ทั้งหมด Arduino Nano 33 BLE sense สามารถตั้งโปรแกรมด้วย Arduino IDE ได้ แต่คุณต้องใช้ผู้จัดการบอร์ดและเพิ่มรายละเอียดบอร์ดใน IDE ของคุณก่อนจึงจะเริ่มได้ อย่างที่เราทราบกันดีว่า nRF 52840 สามารถตั้งโปรแกรมได้โดยใช้ ARM Mbed OS ซึ่งหมายความว่าบอร์ด Arduino Nano 33 ของเรารองรับระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ด้วยการเขียนโปรแกรม Mbed OS เราสามารถเรียกใช้เธรดหลายเธรดในเวลาเดียวกันในโปรแกรมเพื่อทำงานแบบมัลติทาสก์ได้ นอกจากนี้การใช้พลังงานของบอร์ดจะลดลงอย่างมากทุกครั้งที่เราเรียกใช้ฟังก์ชันหน่วงเวลาบอร์ดจะเข้าสู่โหมดจี้ในช่วงเวลาหน่วงเพื่อประหยัดพลังงานและจะกลับเข้าสู่การทำงานอีกครั้งเมื่อการหน่วงเวลาสิ้นสุดลง มีรายงานว่าการดำเนินการนี้จะใช้ 4.5uA น้อยกว่าการทำงานล่าช้าของ Arduino ปกติ
ดังที่กล่าวมาการรวม Mbed OS กับ Arduino IDE นั้นค่อนข้างใหม่และจะต้องใช้เวลาสักพักก่อนที่เราจะสามารถใช้งาน Mbed OS กับ Arduino IDE ได้อย่างเต็มที่ ดังนั้นเพื่อการเริ่มต้นอย่างรวดเร็วเราจะเขียนโปรแกรมเพื่ออ่านค่าของเซ็นเซอร์ทั้งหมดและแสดงบนจอภาพแบบอนุกรม
เตรียม Arduino IDE ของคุณสำหรับ Arduino Nano 33 BLE sense
เปิด Arduino IDE ของคุณแล้วไปที่ Tools -> Boards -> Board Manger เพื่อเปิดตัวจัดการ Arduino Board ของคุณ ตอนนี้ค้นหา“ Mbed OS” และติดตั้งแพ็คเกจ ควรใช้เวลาสักครู่เพื่อให้การติดตั้งเสร็จสมบูรณ์
เมื่อติดตั้งเสร็จแล้วให้ปิดกล่องโต้ตอบและเชื่อมต่อบอร์ด Arduino 33 ของคุณโดยใช้สายไมโคร USB กับแล็ปท็อปของคุณ ทันทีที่คุณเชื่อมต่อหน้าต่างบอร์ดจะเริ่มติดตั้งไดรเวอร์ที่จำเป็นสำหรับบอร์ดโดยอัตโนมัติ จากนั้นเปิด Arduino IDE ของคุณและเลือก Tools -> Board -> Arduino Nano 33 จากนั้นเลือกพอร์ต COM ที่ถูกต้องโดยตรวจสอบ Tools -> Port ของฉันเชื่อมต่อกับพอร์ต COM3 แต่ของคุณอาจแตกต่างกันไป หลังจากพอร์ตถูกเลือกมุมขวาล่าง IDE ของคุณควรมีลักษณะดังนี้
ตอนนี้เพื่อตรวจสอบอย่างรวดเร็วว่าทุกอย่างใช้งานได้หรือไม่เราสามารถใช้โปรแกรมตัวอย่างได้ลองใช้โปรแกรมที่มีให้ในไฟล์ -> ตัวอย่าง -> PDM -> PDMSerialPlotter โปรแกรมนี้จะใช้ไมโครโฟนออนบอร์ดเพื่อฟังเสียงและพล็อตบนพล็อตเตอร์แบบอนุกรม คุณสามารถอัปโหลดโปรแกรมและตรวจสอบว่าบอร์ดและ IDE ใช้งานได้หรือไม่
ตอนนี้หากคุณประสบปัญหาการคอมไพล์ช้าอย่างน่าขันแสดงว่าคุณไม่ได้อยู่คนเดียวหลายคนรวมถึงฉันต้องเผชิญกับปัญหานี้และในขณะที่เขียนบทความนี้ดูเหมือนจะไม่มีทางแก้ไข ฉันใช้เวลาประมาณ 2-3 นาทีในการรวบรวมและอัปโหลดโปรแกรมง่ายๆและเมื่อฉันลองใช้โปรแกรม BLE บางโปรแกรมหรือพยายามทำงานกับ Mbed OS เวลาในการรวบรวมจะเพิ่มขึ้นเป็น 10 นาทีซึ่งไม่ได้กระตุ้นให้ฉันลองทำอะไรเพิ่มเติม นี่เป็นเพราะการรวม Mbed OS กับ Arduino IDEหวังว่าจะมีใครบางคนจาก Arduino Community ที่ยอดเยี่ยมมาพร้อมกับวิธีแก้ปัญหานี้
โปรแกรมอ่านข้อมูลเซ็นเซอร์และแสดงผลบน Serial Monitor
หากเราไม่ใช้ฟังก์ชัน BLE หรือ core Mbed OS ของบอร์ดเวลาคอมไพล์ก็สมเหตุสมผล ดังนั้นฉันจึงเขียนแบบร่างอย่างง่ายเพื่ออ่านค่าเซ็นเซอร์ทั้งหมดและแสดงบนจอภาพอนุกรมดังที่แสดงด้านล่าง
รหัสที่สมบูรณ์ในการทำเช่นเดียวกันจะได้รับที่ด้านล่างของหน้านี้ แต่ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารีทั้งหมดที่กล่าวถึงข้างต้นแล้ว คำอธิบายของรหัสมีดังนี้
เริ่มโปรแกรมโดยรวมไฟล์ส่วนหัวที่จำเป็นทั้งหมด ที่นี่เราจะใช้เซ็นเซอร์ทั้งสี่ตัวยกเว้นไมโครโฟน
#include // รวมไลบรารีสำหรับ IMU 9 แกน #include // รวมไลบรารีเพื่ออ่าน Pressure #include // รวมไลบรารีเพื่ออ่านอุณหภูมิและความชื้น #include // รวมไลบรารีสำหรับการจดจำสีความใกล้เคียงและท่าทาง
ภายในฟังก์ชั่นการตั้งค่าเราเริ่มต้นมอนิเตอร์แบบอนุกรมที่อัตรารับส่งข้อมูล 9600 เพื่อแสดงค่าเซ็นเซอร์ทั้งหมดและเริ่มต้นไลบรารีที่จำเป็นทั้งหมด รหัสภายในการตั้งค่าแสดงอยู่ด้านล่าง
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); // Serial monitor เพื่อแสดงค่าเซนเซอร์ทั้งหมดถ้า (! IMU.begin ()) // Initialize IMU sensor {Serial.println ("Failed to initialize IMU!"); ในขณะที่ (1);} if (! BARO.begin ()) // เริ่มต้นเซ็นเซอร์ความดัน {Serial.println ("ล้มเหลวในการเริ่มต้นเซ็นเซอร์ความดัน!"); ในขณะที่ (1);} if (! HTS.begin ()) // เริ่มต้นเซ็นเซอร์อุณหภูมิและความชื้น {Serial.println ("ล้มเหลวในการเริ่มต้นเซ็นเซอร์อุณหภูมิและความชื้น!"); ในขณะที่ (1);} if (! APDS.begin ()) // เริ่มต้นเซ็นเซอร์สีความใกล้เคียงและท่าทาง {Serial.println ("ล้มเหลวในการเริ่มต้น Color, Proximity และ Gesture Sensor!"); ในขณะที่ (1);}}
ภายในฟังก์ชันลูปเราอ่านค่าเซ็นเซอร์ที่ต้องการจากไลบรารีแล้วพิมพ์บนมอนิเตอร์แบบอนุกรม ไวยากรณ์สามารถอ้างอิงได้จากโปรแกรมตัวอย่างของแต่ละไลบรารีเราได้อ่านค่า accelerometer, ไจโรสโคป, แมกนีโตมิเตอร์, ความดัน, อุณหภูมิ, ความชื้นและค่าเซ็นเซอร์ความใกล้เคียงและแสดงบนจอภาพแบบอนุกรม รหัสสำหรับวัดค่า accelerometer แสดงอยู่ด้านล่างเช่นเดียวกันเราสามารถวัดสำหรับเซ็นเซอร์ทั้งหมด
// ค่า Accelerometer ถ้า (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); } ล่าช้า (200);
Arduino Nano 33 BLE- การอัปโหลดรหัส
การอัปโหลดโค้ดไปยัง Nano 33 นั้นคล้ายกับบอร์ดอื่น ๆ แต่โปรดทราบว่าบอร์ดนั้นมีพอร์ต COM สองพอร์ต เมื่อคุณคลิกที่ปุ่มอัปโหลด Arduino IDE จะรวบรวมรหัสจากนั้นรีเซ็ตบอร์ดโดยอัตโนมัติผ่านคำสั่งซอฟต์แวร์สิ่งนี้จะทำให้บอร์ดอยู่ในโหมดบูตโหลดเดอร์และอัปโหลดรหัสของคุณ ด้วยเหตุนี้เมื่ออัปโหลดเสร็จแล้วคุณอาจสังเกตเห็นว่า Arduino IDE ได้เปลี่ยนพอร์ต COM เป็นหมายเลขอื่นโดยอัตโนมัติและคุณอาจต้องการเปลี่ยนกลับก่อนที่จะเปิดจอภาพอนุกรมของคุณ
ดังนั้นนี่จึงเป็นประสบการณ์ของฉันกับบอร์ด Arduino Nano 33 มากฉันจะลองสร้างบางอย่างด้วยเซ็นเซอร์และคุณสมบัติ BLE ในภายหลังในอนาคต คุณมีประสบการณ์กับคณะกรรมการอย่างไร? คุณต้องการให้ฉันสร้างอะไร ทิ้งคำตอบไว้ในส่วนความคิดเห็นและเราจะพูดคุยเพิ่มเติม