NANO 33 BLE Sense - 5 온보드 제스처센서 실습
이번 실습은 NANO 33 BLE Sense의 온보드 제스처 센서(APDS-9960)에 대해 알아보고, 제스처를 인식하여 RGB LED로 표현하고 제스처 방향을 시리얼 모니터에 출력하는 실습을 한다.
Arduino nano 33 BLE Sense 보드 모든 구성품 실습 강의
NANO 33 BLE Sense - 1. 온보드 RGB LED 실습
NANO 33 BLE Sense - 2. LSM9DS1, 9축 IMU센서 정보 활용
NANO 33 BLE Sense - 3. 기압 센서 사용해보기
NANO 33 BLE Sense - 4. 온습도 센서 HTS221 실습
NANO 33 BLE Sense - 5. 온보드 제스처 센싱 실습
NANO 33 BLE Sense - 6. 온보드 컬러 인식 RGB 센서 실습
NANO 33 BLE Sense - 7. 온보드 거리센서 실습
NANO 33 BLE Sense - 8. 더 살펴볼 것, 리소스와 더 많은 기능
Arduino NANO 33 BLE Sense의 온보드 센서 중 하나인 APDS-9960은 제스처 인식 이외에도 다양한 기능이 있다. 근접, RGB 색상, 주변광 인식이 가능한데, 자세한 정보는 아래를 참고한다.
- 작동 전압: 2.4 ~ 3.6 V(센서), 3.0 ~ 4.5 V(LED)
- 작동 온도: -30 ~ 85 °C
- 작동 전류: 790µA(근접센싱), 790µA(제스처센싱), 38µA(대기)
- 인터페이스: I2C
ArduinoAPDS9960 library 설명
Arduino APDS9960 라이브러리를 사용하면 Arduino Nano 33 BLE Sense에서 제공되는 APDS9960 센서를 사용하여 동작, 색상, 빛의 강도 및 근접성을 읽을 수 있습니다.
제스처 판독 값은 센서 내부의 4 개의 포토 다이오드에서 손의 움직임을 감지 한 것에 기초한 반면, 근접성은 센서로 다시 반사되는 것 (IR을 반사하는 모든 것)에 의해 반사되는 적외선의 양에 의해 판독됩니다. R, G, B 및 흰색 구성 요소에 대해 16 비트 값으로 색상이 제공됩니다. 센서에 닿는 빛이 주변 물체이고 일부 물체에 반사되지 않으면 색 온도를 계산할 수 있습니다. 그렇지 않으면 센서에 빛을 반사하는 물체의 색을 감지 할 수 있습니다.
이 라이브러리를 사용하려면 아래 코드를 제일 위에 넣어야 한다.
#include <Arduino_APDS9960.h>
아래는 제공하는 함수(api) 리스트.
begin()
end()
gestureAvailable()
readGesture()
colorAvailable()
readColor()
proximityAvailable()
readProximity()
setGestureSensitivity()
setInterruptPin()
setLEDBoost()
#include <Arduino_APDS9960.h>
const int RED = 22;
const int GREEN = 23;
const int BLUE = 24;
void setup()
{
// RGB LED 세팅
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, HIGH);
digitalWrite(BLUE, HIGH);
Serial.begin(9600);
if (!APDS.begin()) { // 센서 초기화가 실패하면 오류를 발생시킵니다.
Serial.println("APDS9960센서 오류!");
while (1)
;
}
// APDS.setSensitivity(80); //감도 조절 (1~100)
Serial.println("제스처 인식 시작!");
}
void loop()
{
if (APDS.gestureAvailable()) { // 제스처가 인식되면 true를 반환합니다.
Serial.println("Gesture!");
int gesture = APDS.readGesture(); // 인식된 제스처를 gesture 변수에 저장
switch (gesture) { // 각 제스처에 맞는 항으로 이동
case GESTURE_UP: // 상승 제스처
Serial.println("윗쪽!");
digitalWrite(RED, LOW);
delay(1000);
digitalWrite(RED, HIGH);
break;
case GESTURE_DOWN: // 하강 제스처
Serial.println("아랫쪽!");
digitalWrite(GREEN, LOW);
delay(1000);
digitalWrite(GREEN, HIGH);
break;
case GESTURE_LEFT: // 왼쪽 제스처
Serial.println("왼쪽!");
digitalWrite(BLUE, LOW);
delay(1000);
digitalWrite(BLUE, HIGH);
break;
case GESTURE_RIGHT: // 오른쪽 제스처
Serial.println("오른쪽!");
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
delay(1000);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, HIGH);
break;
default:
break;
}
}
}
소스코드 출처: 제스처 센서 사용하기
소스코드를 컴파일하고 업로딩을 완료했다면 BLE sense 보드를 아래에 놓고 위에서 손을 전후좌우로 움직이며 씨리얼 모니터를 확인하면 아래와 같은 결과를 볼 수 있다.

참고로 제스처 센서에서 확인하는 다른 값들이 있다.
| Gesture | Description |
| UP | A swipe from the bottom of the board to the top and out of range of the sensor. Make sure that your wrist/arm is not in the sensor's range at the end of the swipe! |
| DOWN | A swipe from the top of the board to the bottom and out of range of the sensor. |
| LEFT | A swipe from the right side of the board to the left and out of range of the sensor. |
| RIGHT | A swipe from the left side of the board to the right and out of range of the sensor. |
| NEAR | Object (e.g. hand) starts far above the sensor, moves close to the sensor, hovers for at least 1 second, and moves out of range of the sensor. |
| FAR | Object starts near the sensor, hovers for at least 1 second, and then moves up above and out of range of the sensor. |
| NONE | The sensor could not correctly guess the gesture being performed. |
여기까지. 놀러나가야지. ^^

'개발자 > Arduino' 카테고리의 다른 글
| NANO33 BLE Sense 2 - LSM9DS1, 9축 IMU센서 실습 (0) | 2020.05.10 |
|---|---|
| NANO 33 BLE Sense - 8 더 살펴볼 것 (0) | 2020.05.10 |
| NANO 33 BLE Sense - 7 온보드 거리센서 실습 (0) | 2020.05.10 |
| NANO 33 BLE Sense - 6 온보드 컬러 인식 RGB센서 실습 (0) | 2020.05.10 |
| NANO 33 BLE Sense - 4. 온습도 센서 HTS221 실습 (0) | 2020.05.10 |
| NANO 33 BLE Sense - 3 기압 센서 사용해보기 (0) | 2020.05.10 |
| Arduino Nano 33 BLE Sense 개발 가이드 5 - BLE 통신 테스트 (14) | 2020.05.01 |
| Arduino Nano 33 BLE Sense 개발 가이드 4 - 센서 종합 테스트 (0) | 2020.05.01 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩