- Arduino Nano 33 BLE Sense
- Arduino Nano 33 BLE Sense 하드웨어 개요
- Arduino Nano 33 BLE 감지를 통한 소프트웨어 개선
- Arduino Nano 33 BLE 감지를위한 Arduino IDE 준비
- 센서 데이터를 읽고 시리얼 모니터에 표시하는 프로그램
- Arduino Nano 33 BLE- 코드 업로드
Arduino는 빠른 프로토 타이핑 및 아이디어 검증을 위한 개발 플랫폼이었습니다. 우리 중 많은 사람들이 Arduino UNO 개발 보드로 시작했을 것이지만 오늘날 사물 인터넷, 컴퓨터 비전, 인공 지능, 기계 학습 및 기타 미래 기술로 발전함에 따라 겸손한 Arduino UNO는 더 이상 8 -비트 마이크로 컨트롤러. 이로 인해 Wi-Fi, Bluetooth, GSM 및 인기있는 MKR1000 또는 MKR GSM 1400 과 같은 기타 무선 기능이 내장 된 더 강력한 프로세서를 갖춘 새로운 보드가 출시되었습니다. 이러한 맥락에서 Arduino는 최근 Arduino Nano 33 이라는 새로운 버전의 Nano를 출시했습니다.
Arduino Nano 33 보드에는 Arduino Nano 33 IoT와 Arduino Nano 33 BLE 센스라는 완전히 두 가지 유형이 있습니다. 두 모듈의 주요 차이점은 Arduino Nano 33 BLE 감지 모듈에는 일부 내장 센서 (나중에 자세히 설명)가 있지만 Arduino Nano 33 IoT에는 센서가 없다는 것입니다. 이 기사에서는 Arduino Nano 33 BLE 감지 보드를 검토하고 그 특징과 기능을 소개하고 마지막으로 센서 값을 읽고 직렬 모니터에 표시하는 샘플 코드를 작성합니다. 그러니 배우자….!
Arduino Nano 33 BLE Sense
"Arduino Nano 33 BLE Sense"라는 이름은 입에 가득 차 있지만 이름 자체가 중요한 정보를 담고 있습니다. 치수, 핀아웃 및 폼 팩터가 기존의 Arduino Nano와 매우 유사하기 때문에 "Nano"라고 불립니다. 실제로 기존 프로젝트에서 Arduino Nano를 대체 할 계획이지만이 새로운 모듈 은 3.3V, 클래식 Nano는 5V에서 작동합니다. 그래서 나는 보드가 3.3V에서 작동 함을 나타 내기 위해“33”이라는 이름이 나오는 곳이라고 생각합니다. 그러면 "BLE"라는 이름은 모듈이 Bluetooth Low Energy (BLE5 5.0)를 지원함을 나타냅니다."sense"라는 이름은 가속도계, 자이로 스코프, 자력계, 온도 및 습도 센서, 압력 센서, 근접 센서, 컬러 센서, 제스처 센서, 심지어 내장 마이크와 같은 온보드 센서가 있음을 나타냅니다. 나중에 BLE 및 기타 센서에 대한 자세한 내용을 살펴 보 겠지만 지금은 Arduino Nano 33 BLE 감지 보드가 개봉 된 것처럼 보입니다.
Arduino Nano 33 BLE Sense 하드웨어 개요
보드를 처음 보면 상단에 많은 구성 요소가 붐비는 것을 볼 수 있으며, 대부분은 앞서 말씀 드린 센서입니다. 그러나 주요 뇌는 오른쪽의 금속 케이스 뒤에 숨겨져 있습니다. 이 케이스 에는 강력한 Cortex M4F와 BLE 및 Bluetooth 5 통신용 NINA B306 모듈 이 포함 된 Nordic nRF52840 프로세서 가 들어 있습니다. 이를 통해 보드는 초 저전력에서 작동하고 Bluetooth 5를 사용하여 통신 할 수 있으므로 홈 자동화 및 기타 연결된 프로젝트의 저전력 메시 네트워크 애플리케이션 에 이상적입니다. 또한 nRF 프로세서가 ARM Mbed OS를 지원하기 때문에또한 나중에 논의 할 몇 가지 소프트웨어 개선 사항을 제공합니다. 보드에서 알아야 할 센서, LED, 푸시 버튼 및 기타 중요한 사항은 아래 이미지에 표시되어 있습니다.
위 이미지에서 볼 수 있듯이 보드에는 외부 센서에 보드를 연결하지 않고도 상자의 오른쪽을 구축하는 데 도움이되는 센서가 전원으로 가득 차 있습니다. 이 보드는 피트니스 밴드, 포도당 모니터링, 보수계, 스마트 워치, 기상 관측소, 홈 보안 등과 같은 웨어러블 장치 및 기타 스마트 휴대용 장치에 사용되는 것을 목표로합니다. 그리고 항상 그렇듯이 이러한 모든 센서에는 쉽게 사용할 수있는 Arduino 용 사전 구축 라이브러리가 있습니다. 이 기사의 끝에서 우리는 이러한 모든 센서에서 값을 읽고 직렬 모니터에 표시합니다. Arduino Nano 33 BLE 감지 보드의 센서 세부 정보와 필수 라이브러리는 아래 표에 나와 있습니다.
센서 이름 |
매개 변수 |
연결 |
LSM9DSI – ST Microelectronics |
가속도계, 자이로 스코프, 자력계 |
LSMDSI 데이터 시트 Arduino_LSM9DS1 라이브러리 |
LPS22HB – ST 마이크로 일렉트로닉스 |
압력 |
LPS22HB 데이터 시트 Arduino_LPS22HB 라이브러리 |
HTS221 – ST 마이크로 일렉트로닉스 |
온도 및 습도 |
LPS22HB 데이터 시트 Arduino_HTS221 라이브러리 |
APDS9960 – Avago Tech. |
근접, 빛, 색상, 제스처 |
LPS22HB 데이터 시트 Arduino_APDS9960 라이브러리 |
MP34DT05 – ST 마이크로 일렉트로닉스 |
마이크로폰 |
MP34DT05 데이터 시트 내장 PDM 라이브러리 |
이러한 센서의 대부분은 ST Microelectronics 제품 이며 저전력 작동을 지원하므로 배터리 작동 설계에 이상적입니다. APDS9960 센서는 이미 spate 모듈로 사용 가능하고 이전에 Arduino와 함께 APDS9960 센서를 사용했기 때문에 이미 익숙한 사람은 거의 없습니다. 이러한 센서에 대한 자세한 내용은 각 데이터 시트를 방문하고 제공된 전체 라이브러리를 Arduino IDE에 추가하여 Arduino Nano 33 BLE 감지 보드와 함께 사용하기 시작했는지 확인할 수 있습니다. 라이브러리를 추가하려면 주어진 링크를 사용하여 각 GitHub 페이지로 이동하고 ZIP 파일을 다운로드 한 다음 Sketch-> Include Library-> Add.ZIP Library를 사용하거나 Arduino IDE에서 라이브러리 관리자를 사용하여 추가 할 수도 있습니다. 도서관.
Arduino Nano 33 BLE 감지 보드 기술 사양:
Nordic nRF52840 프로세서로 구동되는 Arduino Nano 44 BLE 보드의 기술 사양은 다음과 같습니다.
- 작동 전압: 3.3V
- USB 입력 전압: 5V
- 입력 핀 전압: 4.5 ~ 21V
- 칩: NINA-B3 – RF52840
- 클록: 64MHz
- 플래시: 1MB
- SRAM: 256KB
- 무선 연결: Bluetooth 5.0 / BLE
- 인터페이스: USB, I2C, SPI, I2S, UART
- 디지털 I / O 핀: 14
- PWM 핀: 6 (8 비트 분해능)
- 아날로그 핀: 8 개 (10 비트 또는 12 비트 구성 가능)
Arduino Nano 33 BLE 감지를 통한 소프트웨어 개선
모든 Arduino 보드와 마찬가지로 Arduino Nano 33 BLE 감지는 Arduino IDE로 프로그래밍 할 수 있습니다. 그러나 시작하기 전에 보드 관리자를 사용하고 IDE에 보드 세부 정보를 추가해야합니다. 우리가 알고 있듯이 nRF 52840은 ARM Mbed OS를 사용하여 프로그래밍 할 수 있으므로 Arduino Nano 33 보드는 실시간 운영 체제 (RTOS)를 지원합니다. Mbed OS 프로그래밍을 사용하면 프로그램에서 동시에 여러 스레드를 실행하여 멀티 태스킹을 수행 할 수 있습니다. 또한 보드의 전력 소비가 크게 줄어들 것이며, 지연 기능을 호출 할 때마다 보드는 전력을 절약하기 위해 지연 시간 동안 간지럼 모드 로 들어가고 지연이 끝나면 다시 작동합니다. 이 작업은 정상적인 Arduino 지연 작업보다 4.5uA 적게 소비하는 것으로보고되었습니다.
즉, Arduino IDE와의 Mbed OS 통합은 비교적 새롭고 Arduino IDE로 Mbed OS의 모든 기능을 완전히 활용하려면 시간이 좀 걸릴 것입니다. 따라서 빠른 시작을 위해 모든 센서 값을 읽고 직렬 모니터에 표시하는 프로그램을 작성합니다.
Arduino Nano 33 BLE 감지를위한 Arduino IDE 준비
Arduino IDE를 시작하고 도구-> 보드-> 보드 관리자로 이동하여 Arduino 보드 관리자를 시작합니다. 이제 "Mbed OS"를 검색하고 패키지를 설치하십시오. 설치가 완료되는 데 약간의 시간이 걸립니다.
설치가 완료되면 대화 상자를 닫고 노트북과 마이크로 USB 케이블을 사용하여 Arduino 33 보드를 연결하십시오. 보드를 연결하자마자 보드에 필요한 드라이버 설치가 자동으로 시작됩니다. 그런 다음 Arduino IDE를 열고 도구-> 보드-> Arduino Nano 33을 선택합니다. 그런 다음 도구-> 포트를 선택하여 올바른 COM 포트를 선택합니다. 내 포트는 COM3 포트에 연결되어 있지만 사용자는 다를 수 있습니다. 포트가 선택되면 IDE 오른쪽 하단 모서리가 다음과 같이 보일 것입니다.
이제 모든 것이 작동하는지 빠르게 확인하기 위해 예제 프로그램을 사용할 수 있습니다. File-> Examples-> PDM-> PDMSerialPlotter에 제공된 프로그램을 사용해 보겠습니다. 이 프로그램은 온보드 마이크를 사용하여 오디오를 듣고 직렬 플로터에 플로팅합니다. 프로그램을 업로드하고 보드와 IDE가 작동하는지 확인할 수 있습니다.
이제 엄청나게 느린 컴파일을 경험한다면 당신은 혼자가 아닙니다. 저를 포함한 많은 사람들이이 문제에 직면하고 있으며이 기사를 쓰는 시점에는 해결책이없는 것 같습니다. 간단한 프로그램을 컴파일하고 업로드하는 데 2 ~ 3 분 정도 걸리고 BLE 프로그램을 시도하거나 Mbed OS로 작업하려고 할 때 컴파일 시간이 10 분 이상으로 늘어났기 때문에 더 이상 시도하지 못했습니다. 이는 Mbed OS와 Arduino IDE의 통합 때문입니다. 멋진 Arduino 커뮤니티의 누군가가 이에 대한 해결책을 제시하기를 바랍니다.
센서 데이터를 읽고 시리얼 모니터에 표시하는 프로그램
보드의 BLE 또는 핵심 Mbed OS 기능을 사용하지 않으면 컴파일 시간이 합리적이었습니다. 그래서 모든 센서 값을 읽고 아래와 같이 시리얼 모니터에 표시하는 간단한 스케치를 작성했습니다.
동일한 작업을 수행하는 전체 코드는이 페이지 하단에 있지만 위에서 언급 한 모든 라이브러리를 설치했는지 확인하십시오. 코드에 대한 설명은 다음과 같습니다.
필요한 모든 헤더 파일을 포함하여 프로그램을 시작하십시오. 여기에서는 마이크를 제외한 4 개의 센서를 모두 사용합니다.
#include // 9 축 IMU 용 라이브러리 포함 #include // 압력을 읽을 라이브러리 포함 #include // 온도 및 습도를 읽을 라이브러리 포함 #include // 색상, 근접 및 제스처 인식을위한 라이브러리 포함
설정 기능 내에서 모든 센서 값을 표시하고 필요한 모든 라이브러리를 초기화하기 위해 9600 보오율로 직렬 모니터를 초기화합니다. 설정 내부의 코드는 다음과 같습니다.
void setup () {Serial.begin (9600); // 모든 센서 값을 표시하는 직렬 모니터 if (! IMU.begin ()) // IMU 센서 초기화 {Serial.println ("IMU 초기화 실패!"); while (1);} if (! BARO.begin ()) // 압력 센서 초기화 {Serial.println ("압력 센서 초기화 실패!"); while (1);} if (! HTS.begin ()) // 온도 및 습도 센서 초기화 {Serial.println ("온도 및 습도 센서 초기화 실패!"); while (1);} if (! APDS.begin ()) // 색상, 근접 및 제스처 센서 초기화 {Serial.println ("색상, 근접 및 제스처 센서 초기화 실패!"); while (1);}}
루프 기능 내에서 라이브러리에서 필요한 센서 값을 읽고 직렬 모니터에 인쇄합니다. 구문은 각 라이브러리의 예제 프로그램에서 참조 할 수 있으며 가속도계, 자이로 스코프, 자력계, 압력, 온도, 습도 및 근접 센서 값을 읽고 직렬 모니터에 표시했습니다. 가속도계 값을 측정하는 코드는 아래와 같습니다. 마찬가지로 모든 센서를 측정 할 수 있습니다.
// 가속도계 값 if (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("가속도계 ="); 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 기능으로 무언가를 구축하려고 시도 할 것입니다. 이사회에 대한 경험은 어땠습니까? 내가 그것으로 무엇을 만들길 바라나요? 댓글 섹션에 답변을 남겨 주시면 더 자세히 논의하겠습니다.