사진 왼쪽에 있는 ATTINY85 모듈 로 WS2812B 네이픽셀 RGB를 구동 해보려고 한다. 일반적 으로 연결 하는 부분은 아두이노 와 같지만 , 마지막 업로드 하는 부분에서 다르다 . 이전에 이런 작업을 하지 않아도 따라하면 될 만큼 써보겠다. 왜냐면, 선 행동 후 정확하게 알기 위해서다.
엄청 자세한 내용은 https://blog.naver.com/roboholic84/220388177048에서 확인 하면 된다. 나도 이 게시물을 보고 따라 했다.
일단 대략 적인 과정 이다
1)프로그램 다운로드 - 일단 소스를 작성 할 수 있는 프로그램 을 다운 받자!
2)프로그램 실행 - 설치된 Arduino IDE - Digistump Release 프로그램 을 실행 하자!
3)ATTINY85 보드 설정 - 가지고 있는 ATTINY85 모듈 에 맞는 보드 를 선택 하자!
4)업로드 테스트 - 첫 업로 드를 해보자!
5)ATTINY85에 업로드 - 여기부터가 일반 아두이노 에 업로드 하는 방법과 다르니 잘 보자 .
6)네오픽셀 연결 - ATTINY85 에 네오픽셀 를 연결 하자
7) 네오픽셀 을 동작 할 수 있는 소스 를 작성 해보자.
1)일단 소스 를 작성 할 수 있는 프로그램 을 다운 받자!
https://github.com/digistump/DigistumpArduino/releases/download/v1.5.8C/DigistumpArduinoInstall1.5
실행파일 이므로 다운로드 받고 설치 하자!
2)설치된 Arduino IDE - Digistump Release 프로그램 을 실행 하자!
아래 사진의 아이콘을 더블클릭하여 실행 하면 된다.
<실행 사진>
3)가지고 있는 ATTINY85 모듈 에 맞는 보드 를 선택 하자!
도구 > 보드 > Digispark (Default - 16.5mhz)
<Digispark (Default - 16.5mhz 선택 사진>
4)첫 업로드 를 해보자!
파일 > 예제 > Digispark_Examples > Start 순으로 클릭 한다.
5)여기부터가 일반 아두이노 에 업로드 하는 방법과 다르니 잘 보자 .
일단 보자
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
업로드 버튼 을 누르고 시간이 지나면 아래와 같은 메시지 가 표시 된다.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
이때 ATTINY85모듈을 컴퓨터 USB에 연결 한다.
그럼 아래와 같이 동작하고
> Please plug in the device ...
......
>> Micronucleus done. Thank you!
Thank you! 가 나오면 끝 그리고 모듈에서 빤짝빤짝 빛나고 있는 LED 를 확인 할 수 있다
이제 목표했던 네오픽셀 RGB LED를 연결할 차례다!
6)ATTINY85 에 네오픽셀 를 연결 하자
<ATTINY85&네오픽셀 연결 사진>
사진처럼 잘 연결해 주자.
5V - +5V
P1 - DI -> 프로그램을 작성할때 중요 한 것이므로 잘 기억 하자
GND - GND
7)네오픽셀 을 동작 할 수 있는 소스 를 작성 해보자.
아래 동영상은 예전에 만들어 놨던 하트에 ATTINY85를 연결하여 LED를 동작시킨 것이다. 예제만 살짝 바꾼것이니 그냥 따라하면 된다.
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
네오픽셀 사용 하는 방법 은 빨간색 으로 강조 한 부분이다. 기본 설정값(1) 을 가지고 네오픽셀 을 제어 할 수 있는 객체 를 만들고(2) , 초기화(3) 하고, 각각의 LED의 색을 지정(4) 하고, 보여 준다(4) .
// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN 1
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 23
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GR B + NEO_KHZ800);
int delayval = 500; // delay for half a second
void setup() {
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor (i, pixels.Color(0,150,0)); // Moderately bright green color.
pixels.show() ; // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
}
}
(1) 네오픽셀에 DI를 ATTINY85 P1핀 에 연결 하기 위해서 PIN 을 1 로 한다.
(1) 네오픽셀 LED수를 설정 한다. 4개면 4 20개면 20으로 해준다.
(2) 네오픽셀 을 제어 하기 위해 변수에 네오픽셀 객체를 만들어 저장 한다. 기본 예제는 NEO_GR B 가 아니고 NEO_RGB 로 되어 있으니 고쳐 준다 .
(3) 초기화 한다.
(4) setPixelColor() 함수 로 원하는 위치에 원하는 색을 설정 한다. (5) show()함수 를 실행하기 전까지 는 지정한 색 으로 표시 되지 않는다 .