https://youtube.com/live/2GCMiZnnYFA
[아두이노#567] 네오픽셀(WS2812/NEOPIXEL)을 간단히 사용하는 방법 알아보기!(녹칸다 튜토리얼)
녹칸다가 네오픽셀(WS2812/NEOPIXEL)이라고 불리는 컬러 LED모듈을 구입했다!
아두이노에서 컬러LED 여러개를 동시에 제어할 수 있는 아주 좋은 모듈이다!
막대기(bar) 타입과 링(ring)타입이 있는데 링타입 3종을 구입했다!
크기에 따라서 LED의 갯수가 달라지는데 8개, 16개, 24개로 준비했다!
(각 LED가 RGB 컬러를 표현할 수 있는 LED임)
이번편에서는 아두이노 개발툴에 네오픽셀을 제어할 수 있는 개발 환경을 구성한다!
(라이브러리 설치하면 끝남)
라이브러리에서는 RGB컬러를 제어하는 함수와 HSV컬러를 제어하는 함수를 제공한다!
(하면서 알아보도록 하자)
라이브러리에서 제공하는 기본예제를 작동시켜본후 녹칸다가 자율적으로 예제를 구현하도록 한다!
대략 아래와 같은 순서로 접근해보고자 한다!
(반드시 다 하는건 아니고 상황에 따라서 내용을 가감하도록 함)
1.일정한 시간간격으로 컬러가 바뀌는 제어!
2.시리얼 입력으로 컬러가 바뀌는 제어!
3.버튼을 눌렀을때 컬러가 바뀌는 제어!
4.LED의 갯수가 많아질 수록 전류량이 부족해서 외부전원을 사용해야 하는데 사용방법 알아보기!
-------------여기까지 쉬움-------------
5.여러개 네오픽셀을 연결해서 간단히 제어해보기!
6.시리얼 입력을 하면 컬러가 바뀌는 패턴이 나오도록 해보기!
7.버튼을 누르면 컬러가 바뀌는 패턴이 나오도록 해보기!
8.HSV컬러로 네오픽셀 제어해보기!
-------------여기까지 약간 어려움-------
9.서서히 밝아졌다가 서서히 어두워지도록 해보기!(fade-in, fade-out)
10.가변저항과 HSV컬러를 이용해서 네오픽셀 제어해보기!
11.버튼과 가변저항을 이용해서 네오픽셀 제어해보기!
-------------여기까지 많이 어려움-------
(기본적인 설명)
1.라이브러리는 라이브러리 매니저에서 neopixel이라고 검색해서 "Adafruit NeoPixel"설치한다!
2.네오픽셀의 DI핀은 라이브러리에서 6번핀을 주로 활용함으로 녹칸다도 6번핀을 씀!
3.네오픽셀은 기본적으로 배열과 반복문의 사용방법을 명확히 이해를 해야 쓸수있다!
4.컴퓨터에서 24bit RGB컬러를 사용할 경우 R에 8bit, G에 8bit, B에 8bit가 할당된다!
5.8bit라는 것은 숫자의 범위가 0~255이고 이것은 아두이노에서 byte와 같다!
6.네오픽셀 라이브러리에서 RGB컬러를 사용할때는 pixels.Color(0, 0, 0) 함수를 쓴다!
7.내가 HSV컬러를 사용하고자 할때는 pixels.gamma32(pixels.ColorHSV(hue));
8.HSV컬러는 주로 열화상카메라에 잘 사용한다!
9.HSV컬러는 색상을 일렬로 나열할 수 있다!(RGB컬러가 못하는것)
(예제)
1.아두이노에 8개짜리 네오픽셀을 연결해서 기본예제 구동하기!
2.아두이노에 16개짜리 네오픽셀을 연결해서 기본예제 구동하기!
3.네오픽셀 8개짜리를 이용해서 빨강-녹색-파랑 순으로 1초간격으로 켜지도록하기!
4.아두이노에 R을 전송하면 빨간색, G를 전송하면 녹색, B를 전송하면 파란색으로 켜지도록 하시오!(8개짜리네오픽셀)
5.버튼이 3개 있는데 첫번째 버튼이 눌려지면 빨간색, 두번째 버튼이 눌려지면 녹색, 세번째버튼이 눌려지면 파란색이 켜지도록 하시오!(8개짜리네오픽셀)
6.녹칸다가 보유한 8개짜리 네오픽셀과 16개짜리 네오픽셀을 서로 연결해서 사용하되 외부전원을 사용하시오!(시리얼로 +문자를 전송하면 양의방향으로 LED가 쉬프트되고, -문자를 전송하면 음의방향으로 LED가 쉬프트 되도록 하시오)(24개짜리네오픽셀을 연결해도 호환됨)
7.24개짜리 네오픽셀을 이용해서 +문자를 전송하면 LED가 시계방향으로 파도타기를 하고, -문자를 입력하면 반시계방향으로 파도타기를 하도록 하고 S를 전송하면 멈추도록 하시오!
8.아두이노에게 0을 전송하면 패턴A를 출력하고 1을 전송하면 패턴B를 출력하고 2를 전송하면 패턴 C가 출력되도록 하되 초보자용 코드로 구현하시오!
-패턴A : 빨간색-녹색-파란색 1초간격으로 무한반복
-패턴B : 빨간색이 켜지되 1초간격으로 홀수번째와 짝수번째가 반복되면서 켜지기!
-패턴C : 0~11번과 12~23번까지를 그룹으로 나눠서 파란색과 빨간색이 교차되면서 경찰차 경광등같이 켜지도록 하시오!(S는 아무것도 안함)
9.시리얼입력으로 R을전송하면 HSV컬러로 빨강색을 표현하고 B을 전송하면 파란색을 표현하도록 하시오!
10.아두이노가 빨간색부터 파란색까지 순차적으로 컬러가 바뀌고 끝나면 파란색부터 빨간색까지 컬러가 순차적으로 바뀌도록 하시오!
11.HSV컬러로 빨간색을 표현하되 밝기를 조절해보시오!
12.가변저항을 이용해서 24개의 네오픽셀의 위치를 조절해보시오!(항상 LED는 1개만켜짐)
13.가변저항을 이용해서 네오픽셀에 모든 LED를 켠상태에서 컬러를 빨간색에서 파란색사이로 HSV컬러를 이용해서 변경해보시오!
14.가변저항을 이용해서 빨간색으로 켜진 LED의 밝기를 조절하시오!
15.(12)번에서 구현한 예제에서 잔상효과를 추가해보시오!
16.네오픽셀에 빨간색 LED가 0부터 출발해서 23번LED까지 한칸식 이동할때 잔상이 생기도록 하시오!
17.(16)예제에서 회전할때마다 컬러를 빨간색에서 파란색쪽으로 바뀌도록 하시오!
'프로그래밍 > 네오픽셀(WS2812)' 카테고리의 다른 글
[아두이노#568] 네오픽셀(WS2812/NEOPIXEL)을 IR리모컨과 블루투스로 제어해보기!!(with appinventor/녹칸다) (0) | 2023.08.10 |
---|