개발자/Arduino

Arduino Nano 33 BLE Sense Sensor 라이브러리 소개

지구빵집 2020. 11. 24. 10:18
반응형

 

Arduino Nano 33 BLE Sense Sensor 라이브러리 소개 

 

아두이노 나노 33 BLE 감각이 되었다 2019년 7월 출시 와 아두 이노를위한 실제 단계까지했다! Arm Cortex-M4F 기반 nRF52840 을 사용하여 Nano 33 BLE가 출시 되면서 Atmel 기반 8 비트 마이크로 컨트롤러의 시대가 늘어 났습니다. 값싼 아두 이노 클론의 확산과 함께 이것은 아두 이노가 벽에 글을 쓰는 것을보고 단순하게 유지하는 것이 더 이상 반죽을 가져 오지 않을 것이라는 것을 본 결과 일 것입니다. 결국 상당히 쓸모없는 Arduino 프로젝트의 양은 요즘 약간 지루해 보이며 Nano 33 시리즈와 같은 더 복잡한 제품으로 인해 심각하게 멋진 프로젝트의 새로운 시대가 도래 할 수 있습니다.

 

이전에 The Hacky Super Loop Arduino Nano 33 BLE Sense 예제 기다리 셨습니다 .이 보드에 대한 의미있는 작업 예제가 부족한 문제를 해결하려고했습니다. 각 센서의 인터페이스가 항상 이상적인 것은 아니며 Mbed OS 를 사용하여 센서 값을 수집 하는 데 사용할 수있는 구체적인 예는 널리 사용되지 않습니다 .

Arduino와 함께 Mbed OS를 사용할 수있는 능력은 Arduino의 진정한 발전입니다. 마지막으로, 더 복잡한 Arduino 프로젝트를 정렬하는 합리적이고 상대적으로 결정적인 방법입니다! 센서 데이터 수집을 단순화하는 동시에 Mbed OS의 힘을 활용하기 위해 Nano33BLESensor가 탄생했습니다. 

 

Nano33BLESensor 라이브러리 Nano33BLESensor는 Mbed OS 를 활용 하여 간단한 방식으로 프로그램에 통합 할 수있는 링 버퍼에 센서 측정을 자동으로 배치합니다. 즉, Nano33BLESensor는 측정 값을 "백그라운드"버퍼에 배치하고 나중에 프로그램이 시간이있을 때 버퍼에서 측정 값을 검색 할 수 있습니다. 여기 GitHub 에서 찾을 수 있습니다 . 또한 Arduino의 Library Manager를 사용하여 찾을 수 있으며 Arduino IDE를 사용할 때 검색 할 때 사용할 수 있습니다. 사람들이 시작하는 데 도움이되는 간단한 예도 있습니다. 

 

Nano33BLESensor 기능

  • 다음 센서 측정을위한 공통 인터페이스로 클래스 구현
  • 3 축 가속도계
  • 3 축 자이로 스코프
  • 3 축 마그네틱
  • RMS 마이크
  • 기압
  • 온도 (습도 포함)
  • 근접
  • RGBC 색상
  • 몸짓
  • Mbed OS 사용으로 프로그램과 쉽게 통합 할 수 있습니다.
  • 링 버퍼 사용을 통해 판독 센서 측정과 관련된 시간 제약을 완화 할 수 있습니다.
  • 시작하는 데 도움이되는 BLE 및 직렬 플로터 용으로 설계된 모든 센서에 대한 훌륭한 예입니다.

 

결국 결과는 다음과 같습니다.

  • 온보드 센서의 매우 간단한 초기화.
  • 센서 데이터 수집을 위해 초기화 이후에는 코드가 필요하지 않습니다.
  • 센서 데이터의 매우 간단한 사용.
  • 서로 다른 센서 간의 공통 인터페이스.
  • Mbed OS를 사용하면 센서 측정 값 읽기가 "백그라운드에서"발생하고 주 프로그램 루프에서 벗어나게됩니다. 

 

Nano33BLESensor 예

 

Nano33BLESensor 라이브러리는 직렬 및 Bluetooth를 모두 사용하는 센서 측정 데이터 출력을 포함하는 일련의 강력한 예제와 함께 제공됩니다. Arduino의 Serial PlotterBluetooth LE Explorer 와 같은 Bluetooth 패킷 분석 도구를 사용하여이 데이터를 동시에 볼 수 있습니다 . GitHub 저장소에서 사용할 수있는 몇 가지 예는 다음과 같습니다.

 

  • Nano33BLESensorExample_accelerometer
  • Nano33BLESensorExample_gyroscope
  • Nano33BLESensorExample_magnetic
  • Nano33BLESensorExample_IMU
  • Nano33BLESensorExample_colour
  • Nano33BLESensorExample_gesture
  • Nano33BLESensorExample_proximity
  • Nano33BLESensorExample_microphoneRMS
  • Nano33BLESensorExample_pressure
  • Nano33BLESensorExample_temperature
  • Nano33BLESensorExample_AllSensors-SerialPlotter

 

다음은 이러한 몇 가지 예의 결과입니다. 테스트 결과 화면입니다.

 

 

 

시각적으로 허용되는 방식으로 데이터를 보려면 Bluetooth LE Explorer를 특정 방식으로 구성해야합니다. 아래 애니메이션은이 설정을 보여줍니다. 

 

이미지 https://dalegi.com/2020/09/04/the-arduino-nano-33-ble-sense-sensor-library-you-have-been-waiting-for/

 

Nano33BLESensor가 센서 사용을 단순화하는 방법

 

다음은 Nano33BLESensor가 Nano 33 BLE Sense를 사용하여 센서 데이터 수집을 단순화하는 방법에 대한 몇 가지 예입니다. 전체 API의 경우 GitHub 저장소를 확인할 수 있습니다 .

 

온보드 가속도계 초기화, 데이터 읽기 및 인쇄.

 

Arduino_LSM9DS1 

 

#include <Arduino_LSM9DS1.h>
 
float accelerometerX, accelerometerY, accelerometerZ;
void setup()
{
  IMU.begin()
}
 
void loop()
{
  if(IMU.accelerationAvailable())
  {
    IMU.readAcceleration(accelerometerX, accelerometerY, accelerometerZ);
    Serial.printf("%f,%f,%f\r\n", accelerometerX, accelerometerY, accelerometerZ);
  }
}

 

Nano33BLESensor 

 

#include "Nano33BLEAccelerometer.h"
 
Nano33BLEAccelerometerData accelerometerData;
void setup()
{
  Accelerometer.begin()
}
 
void loop()
{ 
  if(Accelerometer.pop(accelerometerData))
  {
     Serial.printf("%f,%f,%f\r\n", accelerometerData.x, accelerometerData.y, accelerometerData.z);
  }
}

 

온보드 컬러 센서 초기화, 데이터 읽기 및 인쇄.

 

Arduino_APDS9960 

 

#include <Arduino_APDS9960.h>
 
int colourR, colourG, colourB, colourC;
void setup()
{
  APDS.setGestureSensitivity(50);
  APDS.begin();
  APDS.setLEDBoost(0);
}
void loop()
{
  if (APDS.colorAvailable())
  {
    APDS.readColor(colourR, colourG, colourB, colourC);
    Serial.printf("%d,%d,%d,%d\r\n", colourR, colourG, colourB, colourC);
  }
  delay(1000);
}

 

Nano33BLE 센서 

 

#include "Nano33BLEColour.h"
 
Nano33BLEColourData colourData;
void setup()
{
  Colour.begin()
}
 
void loop()
{ 
  if(Colour.pop(colourData))
  {
    Serial.printf( "%d,%d,%d,%d\r\n", colourData.r, colourData.g, colourData.b, colourData.c);
  }
}

 

온보드 온도 센서 초기화, 데이터 읽기 및 인쇄

 

Arduino_HTS221 

 

#include <Arduino_HTS221.h>
 
float temperature, humidity;
void setup()
{
  HTS.begin();
}
void loop()
{
  temperature = HTS.readTemperature();
  humidity = HTS.readHumidity();
  Serial.printf("%f, %f\r\n", temperature, humidity);
  delay(1000);
}

 

Arduino33BLESensor 

 

#include "Nano33BLETemperature.h"
 
Nano33BLETemperatureData temperatureData;
void setup()
{
  Temperature.begin()
}
 
void loop()
{ 
  if(Temperature.pop(temperatureData))
  {
    Serial.printf("%f,%f\r\n", temperatureData.temperatureCelsius, temperatureData.humidity);
  }
}

 

결론 Nano33BLESensor는 Nano 33 BLE로 흥미로운 가능성을 제공합니다. 공통 인터페이스를 사용하여 온보드 센서의 사용을 단순화하고 Mbed OS를 활용하여 판독 센서 측정과 관련된 시간 제약을 완화합니다. 이 라이브러리가 트랙을 따라가는 누군가에게 유용하기를 바랍니다! 

 

 

참고 문서

1. 아마도 원문일 가능성이 상당히 큰

2. 위 포스팅 코드의 GitHub

3. Mbed OS

4. Hacky Super Loop Arduino Nnao 33 BLE Sense 예제

 

 

 

 

 

 

 

 

 

 

반응형