먼저, 약간의 성능 향상을 한 Nano Every 와, IoT 기능을 추가한 NANO 33 IoT 버전, 그리고 NANO 33 BLE,
강력한 스펙의 NANO 33 BLE Sensor 보드까지 추가 되었습니다.
먼저, 상세 스펙은 아래 비교 표를 참고하세요, 한 눈에 파악이 될 수 있도록 정리했습니다. ^^
(클릭, 확대해서 보세요~)
- LSM6DS3 : 내부에 12C로 연결, 가속도 최대±16g까지(중력가속도 16배까지) 측정가능 , 자이로 최대±2000dps까지 측정가능(dps: degree per second 초당 각도의 감지 분해능)
- Nano 33 IoT, Nano 33 BLE, Nano 33 BLE Sense 보드 모두 UART 통신이 가능한 시리얼이 하나더 있습니다.
(기존 아두이노 우노 보드의 경우 PC와 USB연결하여 데이터를 주고 받게 되면, 아두이노의 0번, 1번핀의 하드웨어 시리얼 통신은 동시에 이용이 불가능 했는데요, Nano 33 시리즈는 이게 가능해졌다는 이야기 입니다. 그래서, 아두이노 코드에서 Serial.begin(9600); 은 기존 PC와 연결하는 USB 시리얼 통신으로 사용하고, Serial1.begin(9600);은 Nano33의 0번핀(Tx)-1번핀(Rx) 하드웨어 시리얼핀을 통해, 다른 장치(아두이노 등의 시리얼 통신이 가능한 장치)를 연결하여 실시간 시리얼 통신이 가능해졌다는 이야기입니다. ^^ )
[ 보드 특징 ]
아두이노 나노와 사이즈 (18mm X 45 mm) 가 같으면서, IoT 및 블루투스, 각종 센서 기능이 강화된 보드입니다.
그동안 나노 보드의 불편했던 USB 커넥터가, 안드로이드 휴대폰과 같은 Micro-5Pin으로 바뀌었네요~ ^^
기존 나노보드 크기에 6축 또는 9축 가속도/자이로 센서가 탑재되었고, Sense 보드는 근접센서, RGB센서, 주변광센서, 제스처센서가 탑재되어 팔방미인으로 통할 수 있는 보드입니다. 다만, 아직 가격이 상당해서, 가성비는 좀 그렇고 호환보드가 출시 된다면 더없이 좋을 것 같네요.
주요 특징으로는 , 기존 NANO 보드와 NANO Every 보드까지는 5V 톨러런트(Tolerant : 회로기판 내의 3.3V 부품도 5V레귤레이터를 통해 내부적으로 문제없이 처리 또는 견딜 수 있는) 가 지원 되지만, NANO 33 보드는 이름에서도 알 수 있듯, USB 전원을 제외하고 신호 레벨 전압을 3.3V로 주어야 손상되지 않습니다.
NANO 33 보드들은 모두 BLE 기능을 지원하는데요, 일반적으로 블루투스는 동작시 전력소모가 큰 단점이 있는데, 저전력으로 동작하도록 설계된 블루투스를 BLE 라고 합니다. NANO 33 IoT는 BLE 4.2를 지원하고, NANO 33 BLE 와 NANO 33 BLE SENSE 는 BLE 5.0을 지원합니다. NANO 33 IoT의 경우 USB Host를 지원하며, 네오나르도와 같은 HID 장치로 사용이 가능한 것으로 나와 있네요.
오늘 다룰 NANO 33 IoT의 상세 PIN 자료(PDF)
반응형
[ 보드 인식과 아두이노 스케치 IDE 사용하기 ]
먼저 보드를 처음 연결하게 되면, 보드 드라이버가 자동으로 설치되며, 장치관리자를 열어보면, 시리얼 포트가 할당됩니다.
- 다만, 스케치 IDE에서는 해당보드가 설치 되어 있지 않기 때문에, 메뉴에서, 툴》 보드》보드매니저를열어 NANO 관련 추가 제품군을 등록해 주어야 합니다.
【 릴리패드LilyPAD#1】 웨어러블아두이노 릴리패드 사용하기~! ( I'd like to introduce you to Arduino Lilipad and how to use it ! )
최근 웨어러블 스마트장치에 많이 사용되는 릴리패드에 대해 소개하고, 활용예를 소개해드립니다.
1. 릴리패드는? (What's Lilypad)
릴리패드는 영어명 'Lilypad'(수련(연꽃)의 잎)을 뜻하며 보드 또한 수련잎을 형상화한 모습이며 실제 잎처럼 물에 뜰 정도로 작고 가벼운 , 그래서 웨어러블 등에 어울리는 마이크로프로세서 보드입니다.
"릴리패드 328 main board" 버전의 경우, 아두이노 우노 버전에 들어가 있는 ATmega328 과 같은 프로세서가 들어 있습니다. 실제 기능과 스펙도 거의 우노와 같고, 다만, PC를 통한 코드전송을 위해서는 아두이노 프로미니에서 처럼 별도의 FTDI 커넥터 연결이 필요합니다.
릴리패드는 콜로라도 대학교의 '공예기술학부 & 컴퓨터 과학부'의 Leah Buechley 박사가 아두이노 우노의 오픈소스를 이용해서, 디자인한 보드입니다.
박사는 전자를 접목한 직물분야의 뛰어난 전문가로 활동해왔으며, 웨어러블기기에 적합한 얇고 가벼고, 디자인에 중점을 둔 보드를 개발하게 된 것이죠.
회로 연결에는 전기가 통하는 전도성 실(Conductive thread)을 이용합니다.
그 밖에 아이들의 오감을 자극해줄 수 있는 전자책도 함께 전자 팝업북(electronic popables) 도 개발하였습니다.
/* 초음파 센서로 동영상 실행시키기 */ /* 라이즈이IOT http://Rasino.tistory.com */ #include int distance; int triggerPin = 6; int echoPin = 7; void setup() { Keyboard.begin(); //키보드 컨트롤 관련 함수 선언 Serial.begin(9600); pinMode(triggerPin, OUTPUT); // 트리거 핀을 출력으로 설정 pinMode(echoPin, INPUT); // 에코 핀을 입력으로 설정 } void loop() { digitalWrite(triggerPin, LOW); // 트리거 핀 초기화 digitalWrite(echoPin, LOW); // 에코 핀 초기화 delayMicroseconds(2); // 트리거 핀으로 10 us의 펄스를 발생 digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); distance = pulseIn(echoPin, HIGH)/58; //에코핀 입력의 거리값을 cm단위로 계산 Serial.println("Distance(cm) = " + String(distance)); delay(1000); if (distance < 20) { // 물체(사람)가 20cm 이하 되면 감지(LED경보 작동) Keyboard.press(KEY_LEFT_CTRL); // '왼쪽 Ctrl 키' delay(2); Keyboard.press(KEY_LEFT_ALT); // '왼쪽 Alt 키' delay(2); Keyboard.press('1'); // 숫자'1' delay(500); // 시간지연을 두어 여러번 실행되는 것을 방지함 Keyboard.releaseAll(); // 키를 계속 누르지 있지 않도록 함 delay(10000); } }
4. 아두이노 코드 직접 다운로드
: 다운받은 후 압축파일을 풀고 사용하세요
5. 동작확인
: 작동은 위 유튜브 영상을 통해서도 확인 가능합니다.
6. 상세 설명
- 위 회로도를 보고 초음파 센서와 보드를 연결해주세요
- 네오나르도 보드는 키보드나 마우스와 같은 HID 장치로 인식하기 때문에, 처음 PC와 연결할 때 장치 드라이버 설치가 필요합니다.
- 다음으로 플레이를 시킬 동영상을 준비합니다. 그리고 PC에 동영상 플레이어가 설치되어 있으면 됩니다. 영상에서는 다음 카카오플레이어가 설치되어 연결 되어 있습니다.
- 동영상을 플레이시키는 원리는 이렇습니다. 네오나르도 보드는 PC를 통해 키보드의 키입력이 가능합니다. 따라서 동영상을 단축키로 지정해서 실행 시키면 됩니다.
- 그럼 동영상을 단축키로 지정하기 위해 바로가기 아이콘을 바탕화면에 만들어 보겠습니다.
- 찾아 보기를 눌러 플레이시킬 동영상을 선택해줍니다.
- 이름을 적당히 정한 후 확인을 눌러 줍니다.
- 바로가기 아이콘에서 마우스 우클릭 후 속성을 클릭합니다.
- 바로가기 키 항목에서ctrl + Alt키를 동시에 누른 상태에서 숫자1을 입력합니다.
- 사실 숫자 1만 입력하여도 Ctrl+Alt키는 자동 입력됩니다.
- 그럼, 단축키가 제대로 먹히는지 ctrl+Alt+1을 눌러봅니다.
- 동영상이 잘 실행됩니다.
- 하지만 문제는 동영상이 전체화면 모드로 실행되지 않습니다.
- 이럴때는 플레이어 옵션에서 동영상 실행시 전체화면 모드로 실행 옵션을 찾아서 체크해주면 해결 됩니다.
- 카카오 팟플레이어의 경우 왼쪽 상단의 설정메뉴로 들어가보면 환경설정 메뉴가 있습니다.
- 환경설정으로 들어가서 재생항목에 보면, 재생시 창 크기 설정이 있고, 여기를 최대화 화면으로 설정해주면 됩니다.
- 그럼 보드를 연결하고 코드를 업로드 해줍니다.
「 이 과정에서 OS버전이나 PC환경에 따라 업로드가 잘 안 되는 문제가 생길 수 있는데, 레오나르도 보드의 특성상 키보드장치로 인식이 되어 있을 때 업로드를 위한 통신이 안 되기 때문입니다. 이럴 때는 업로드 버튼을 누르자마자 보드의 리셋키를 눌러 키보드 장치 인식이 끊어진 순간 데이터를 업로드 하면 해결되는데, 타이밍을 잘 맞추어야 합니다.
현재는 업데이트 되어 자동으로 장치 인식기능을 켜고 끄면서 업로드가 자연스럽게 잘 됩니다.
만약, 그 밖의 에러가 날 경우, 통신포트가 제대로 체크되어 있는지? 네오나르도 보드로 선택이 잘 되어 있는지 한 번더 확인해보세요.」
- 코드를 살펴보면, 초음파 센서로 물체와의 거리 값을 구해냅니다.
distance = pulseIn(echoPin, HIGH)/58; //에코핀 입력의 거리값을 cm단위로 계산
- 그래서 물체가 20cm 이하로 들어오게 되면, 동영상의 바로가기 아이콘에서 지정해 놓은 단축키를 누르도록 코딩이 되어 있기 때문에 영상에서처럼 동영상이 자동으로 실행이 됩니다.
if (distance < 20) { // 물체(사람)가 20cm 이하 되면 감지(LED경보 작동) Keyboard.press(KEY_LEFT_CTRL); // '왼쪽 Ctrl 키' delay(2); Keyboard.press(KEY_LEFT_ALT); // '왼쪽 Alt 키' delay(2); Keyboard.press('1'); // 숫자'1' delay(500); // 시간지연을 두어 여러번 실행되는 것을 방지함 Keyboard.releaseAll(); // 키를 계속 누르지 있지 않도록 함 delay(10000); }
- 마지막으로 시리얼 모니터창을 열어 측정되는 거리값과 함께 영상이 잘 실행되는지 확인해보세요.
만족스럽게 실행이 잘 될 것입니다. ^^
만약 PC를 라즈베리파이로 바꾼다면 더욱 소형화 시킨 작품을 만들 수 있겠네요.
오늘 학습내용은 여기까지 이며, 다음 학습영상을 기대해주세요~
감사합니다. ~~~ ^^
=== 아두이노 네오나르도 에러 잡기! ===
1. 만약 아래와 같은 HID.h HID.cpp 에러가 난다면, HID.cpp 파일을 아래 경로에서 찾아 백업후, 삭제를 하거나 파일명을 변경해 놓는다.
[ 에러 증상 ]
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HID.cpp:17:10: fatal error: Platform.h: No such file or directory #include "Platform.h" ^~~~~~~~~~~~ compilation terminated. "Keyboard.h"를 위한 복수개의 라이브러리가 발견되었습니다 사용됨: C:\Program "HID.h"를 위한 복수개의 라이브러리가 발견되었습니다 사용됨: C:\Program exit status 1 보드 Arduino Leonardo 컴파일 에러.
【 아두이노ProMini#2】 초소형 블루투스리모컨만들기! for RC CAR ( Arduino Pro Mini)
지난시간, 블루투스 조이스틱으로 제어되는 소형 미니카를 만들어 보았다. 하지만 무언가 아쉽다. 아두이노 우노로 리모컨을 만들다 보니 크기가 거의 미니카와 차이 없을 정도로 크게 느껴졌다. 그래서 이번엔 아두이노 프로미니를 이용해서 한 손에 쏙들어가서 컨트롤 할 수 있도록 작게 만들어보려한다. 앞선 실습을 진행했다면 무난하게 만들 수 있을 것이다. (필요한 경우, 선수학습 부분을 참고하면 문제 없을 것이다)