[아두이노#568] 네오픽셀(WS2812/NEOPIXEL)을 IR리모컨과 블루투스로 제어해보기!!(with appinventor/녹칸다)
프로그래밍/네오픽셀(WS2812) 2023. 8. 10. 23:08https://youtube.com/live/2V0ZwH_-SXI
[아두이노#568] 네오픽셀(WS2812/NEOPIXEL)을 IR리모컨과 블루투스로 제어해보기!!(with appinventor/녹칸다)
이번편은 아두이노에 네오픽셀(neopixel)을 연결하고 원격제어를 해보도록 한다!
원격제어라고 해서 거창한것은 아니고 리모컨과 블루투스로 근거리 제어를 해보도록 하자!
IR리모컨은 수신부와 송신부로 구성하고 아두이노는 수신을 받는다!
즉 TV리모컨처럼 아두이노를 향해서 어떤 버튼을 누르면 네오픽셀에 특정한 패턴이 나오는 것이다!
리모컨 신호를 수신하면서 동시에 네오픽셀을 구동시키기 위해서는 꽤나 복잡한 코드를 구사해야하는데,
난이도와 결과물의 수준을 적절히 타협을 해서 다양한 예제를 만들어보도록 하자!
블루투스(bluetooth)는 HC06모듈을 아두이노에 연결하도록 한다!
제어는 스마트폰으로 한다!
스마트폰에서 블루투스로 제어할 수 있는 앱이 마땅한게 없기 때문에 직접 만들어보도록 하자!
녹칸다의 아두이노 월드에서는 스마트폰 앱은 특별하지 않으면 앱인벤터(appinventor)로 구현한다!
앱인벤터에 대한 구체적인 내용은 녹칸다의 앱인벤터 시리즈를 참고하면 된다!
https://bota.tistory.com/category/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%95%B1%EC%9D%B8%EB%B2%A4%ED%84%B0
스마트폰으로 아두이노에 블루투스 연결을 해서 제어 명령을 전송하면 네오픽셀이 제어되도록 구현해보자!
(리모컨ID)
FF30CF 1
FF18E7 2
FF7A85 3
FF10EF 4
FF38C7 5
FF5AA5 6
FF42BD 7
FF4AB5 8
FF52AD 9
FF6897 0
FF9867 100+
FFB04F 200+
FFE01F -
FFA857 +
FF906F EQ
FF22DD |◀◀
FF02FD ▶▶|
FFC23D ▶||
FFA25D CH-
FF629D CH
FFE21D CH+
(깨알지식)
1.아두이노에서 IR리모컨을 사용하기 위해서는 라이브러리를 설치해야한다!
2.irremote라고 라이브러리매니저에서 검색한다음 "IRRemote" 3.9.0버전을 설치한다!
3.아두이노 loop안에 2개 이상의 작업이 존재할 경우 하나의 작업이 점유를 하면 안된다!
4.점유를 한다는 것의 의미는 그작업을 하는 동안 다른작업을 수행할수 없을때를 의미한다!
5.IRRemote라이브러리는 아두이노 내부의 타이머 인터럽트를 사용해서 loop와 관계없이 리모컨의 ID값을 읽을 수 있는 것 같다!
6.IRREmote라이브러리는 50ms간격으로 리모컨의 ID값을 읽기때문에 네오픽셀의 패턴변경 주기가 50ms보다 작으면 문제가 생길 여지가 있다!
7.앱인벤터는 스마트폰에 앱인벤터 앱을 설치해야하고 테스트 하려는 스마트폰과 PC가 같은 인터넷 공유기에 접속되어야한다!(같은 네트워크에 있어야한다)
8.그러면 앱인벤터 앱을 설치해야 앱을 실행할 수 있느냐?(X)
9.앱인벤터에서 빌드해서 apk파일을 생성하면 누구나 스마트폰에 앱인벤터 앱없이 실행할 수 있다!
(예제)
1.아두이노 5번핀에 IR리모컨 수신기를 연결해서 리모컨의 ID를 읽는 예제를 구현하시오!
2.리모컨의 0번을 누르면 OFF, 1번을 누르면 모든 LED가 빨간색, 2번을 누르면 모든 LED가 녹색, 3번을 누르면 모든 LED가 파란색으로 켜지도록 하시오!
3.네오픽셀의 0번LED는 항상켜져있다! 리모컨의 1번버튼을 누르면 LED가 시계방향으로 회전하면서 1개씩 켜지고 2번버튼을 누르면 반시계방향으로 회전하고 0을 누르면 멈추도록하시오!
4.HSV컬러를 이용해서 2번예제를 구현하시오!
5.리모컨의 0번을 누르면 빨강-파랑까지 HSV컬러로 변환하고 1번을 누르면 파랑-빨강방향으로 HSV컬러로 변환한다!
6.네오픽셀의 모든 LED가 빨간색으로 지정된다! 리모컨의 1번을 누르면 LED가 점점 밝아졌다가 점점 어두워지는 작업을 반복하고 0을 누르면 멈춘다!(숨쉬기모듈)
7.블루투스모듈을 연결하고 작동이 되는지 아닌지 확인하는 예제!
8.블루투스모듈로 0을 전송하면 모든 LED가 꺼지고, 1을 전송하면 모든 LED가 빨간색, 2를 전송하면 모든 LED가 녹색, 3을 전송하면 파란색이 켜지도록 하시오!
9.블루투스모듈로 1번버튼을 누르면 LED가 시계방향으로 회전하면서 1개씩 켜지고 2를 전송하면 반시계방향으로 회전하고 0을 전송하면 멈추도록하시오!
10.블루투스로 0번을 전송하면 빨강-파랑까지 HSV컬러로 변환하고 1번을 전송하면 파랑-빨강방향으로 HSV컬러로 변환한다!
11.블루투스로 RGB값을 전송해서 LED를 작동시키시오!
12.앱인벤터로 네오픽셀의 모든 LED가 빨간색으로 지정된다! 1번을 전송하면 LED가 점점 밝아졌다가 점점 어두워지는 작업을 반복하고 0을 전송하면 멈춘다!(숨쉬기모듈)
'프로그래밍 > 네오픽셀(WS2812)' 카테고리의 다른 글
[아두이노#567] 네오픽셀(WS2812/NEOPIXEL)을 간단히 사용하는 방법 알아보기!(녹칸다 튜토리얼) (2) | 2023.08.09 |
---|