사용하기 쉽고 응용처가 많은 NeoPixel(이하 RGB 칼라픽셀로 칭함) 제품의 사용법을 간단히 정리해보겠습니다.  이미 상점 간판을 돋보이는 용도로 RGB LED가 많이 사용되고 있습니다만, 많은 경우 단색이거나 모든 LED가 하나의 색상으로 켜지는 제품이 대부분입니다.   여기서 안내드리는 칼라픽셀 제품들은 RGB LED 하나당 전용 드라이버칩이 하나씩 내장되어 있고,  여러개의 LED모듈이 하나의 신호선을 통해 직렬로 연결되어 있어서 하나의 데이터 신호선으로 수십개 이상의 칼라픽셀을 개별 색상 제어할 수 있는 제품입니다.

 

이미 제조사에서 매우 잘 정리해 놓은 튜토리얼 페이지가 있습니다만 내용이 너무 많거나 영어 자료가 익숙하지 않으신 분들은 본 요약 안내글을 먼저 보시고 제조사 튜토리얼을 참고하시면 도움이 될것 같습니다.

 

현재 이글을 통해 소개중인 제품은  30개 모듈이 스트립형으로 연결된 제품입니다. 

 

주요 재료

아두이노 UNO, USB케이블
전선 4가닥(조금 두꺼운 단선 또는  점퍼와이어 가능, 단선으로 된 랜케이블도 가능)
전원커넥터 스크류타입 (또는  기본형 ,  브레드보드형 등)
정전압 아답터 5V 2A 형
RGB 칼라픽셀( NeoPixel 30 RGB Strip형)

 

프로그래밍 

 

1. 라이브러리와 예제소스를 다운로드합니다. (제조사 튜토리얼 해당 페이지에서)

 http://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library  페이지 에서 아래 링크 다운로드

  1. Select the “Download ZIP” button, or simply click this link to download directly.

 

2. 압축파일을 해제 및 폴더명 변경

압축해제된 폴더중  *.cpp  *.h 파일이 포함된 폴더의 폴더명을 Adafruit_NeoPixel 로 변경합니다.

 

3. 라이브러리 설치

최근 아두이노 1.0.5 프로그램에서는 라이브러리 복사 과정을 대신해주는 기능이 지원되므로 아래의 메뉴를 선택하여 위 폴더를 선택해주면 라이브러리가 설치됩니다.

 

메뉴> 스케치 > 라이브러리 가져오기 >  Add Library…  선택후  해당 폴더 선택

 

참고사항. 구 버전 아두이노 SW 에서는 위 폴더를 아두이노 라이브러리 폴더에 직접 복사해야합니다. (구 버전을 사용하시는 분들은 라이브러리 설치 관련 자료를 참고하시기 바랍니다.)

 

4. 아두이노 SW를 종료후 다시 실행합니다.

 

5. 라입러리 및 예제소스 설치 확인

라이브러리가 정상적으로 설치된 경우,

메뉴 > 파일 > 예제 리스트를 살펴보면 Adafruit_NeoPixel 폴더가 보입니다.

관련 예제가 두개 있는데 strandtest 예제를 선택하시면 됩니다.

 

6. 소스 수정.

 

제품종류나 칼라픽셀의 개수에 따라 NeoPixel 선언부에 설정되는 값이 변경되어야합니다.

 

Adafruit_NeoPixel strip = Adafruit_NeoPixel(30, PIN, NEO_GRB + NEO_KHZ800);

 

 

우리가 사용중인 제품은 픽셀 개수만 변경해주면 됩니다. 첫번째 인수가  픽셀의 개수이며 60으로 되어있는 값을 30으로 변경하기만 하면 됩니다.  (주석을 보면 어떤 내용인지 확인 가능)

 

 

7.아두이노 보드 종류와 COM번호 설정후 업로드한다.

 

참고로 데이타 전송용 핀번호는 6번으로 설정되어 있습니다. 이 값은 소스 상단에 있는 define 부분에 정의되어 있으며 필요시 다른 핀번호로 변경 가능합니다.

 

참고사항.  프로그램 업로딩은 항상  제품을 결합하기 전에 하는 습관을 갖기 바랍니다.  운이 나쁘면 기존에 어떤 프로그램이 들어있는지에 따라 아두이노와 부품에 손상을 가져올  가능성이 있습니다.



이제 회로를 연결합니다.

 

 

회로 연결은 매우 간단합니다.  아두이노 보드에 GND와 D6 핀 두개만 연결되면 됩니다.

하지만 많은 분들이 실수 하시는 부분이 있으니 아래 사항을 꼭 주의 하시기 바랍니다.

 

1. 제품을 잘 보시면 화살표가 있습니다. 전선 결합은 꼭 입력측에 해주셔야합니다. 즉, 화살의 꼬리측에 있는 GND, DIN, +5V 핀에 전선을 연결하여 아두이노측에 연결해주셔야합니다. 종종 사용중에 선을 변경하시다가 화살촉 부분에 연결하시게 되면 작동이 되지않습니다.

 

2. 아두이노상의 GND와 외부전원의 GND 둘 다 본 제품의 GND에 결합되어야 합니다. 외부전원을 사용하는경우 GND 공통 접지를 잊으셔서 작동이 안되는 경우가 많습니다.

 

 

3. 전원은 pixel 30개를 사용하는 경우 5V 2A 정전압 아답터 전원 사용을 권장합니다. 전압은 꼭 정전압 5V여야하고, 암페어(전류)규격은 2A 이상이면 됩니다. 3A , 5A 제품을 사용하실 수 있습니다. 또한 픽셀을 3개정도 만 잘라서 사용한다면 전류 소모가 작으므로 아두이도 5V 핀으로 부터 전원을 공급받아도 무관합니다. 픽셀이 많아질 수록 전력소모가 크며 적절한 전원을 공급하지 않으면 비정상 작동되거나 고장의 원인이 될 수 있습니다.

 
 
전선 납땜하기
30모듈형 칼라픽셀은 5미터 형 제품을 5등분한 제품입니다. 이때문에 대부분 전선이 연결되어 있지 않은 상태이므로 직접 전선을 납땜해주셔야합니다. 전선은 아두이노와 브레드보드 연결시 사용되는 점퍼와이어나 AWG22 규격정도의 단선, 또는 단선으로 된 랜케이블을 잘라서 사용하시면 됩니다. 중요한점은 GND부분에서 전선이 두가닥이 나와야 하나는 아두이노 GND에 나머지 하나는 외부전원 GND에 연결되게됩니다. 이때문에 총 4가닥의 전선이 필요합니다.

 
 
전원 소켓 준비하기
대부분의 정전압 아답터의 DC출력부는 5.5x2.1mm 규격의 둥근형태의 DC플러그입니다. 이 DC 플러그로 부터 전원을 공급받기 위해 전선을 잘라서 납땜하는것보다는 적절한 DC커넥터 제품을 이용하면 아답터 전원을 장착/탈착하기 편리합니다. 제경우 스크류 터미널로 납땜없이 전선 결합이 가능한 제품을 사용하였습니다. 이외에도 저렴한 일반 DC잭이나 브레드보드 호환 DC잭 활용도 가능합니다.
 
TIP.  현재 예제에서는 PC와 USB케이블로 연결하거나  별도의 9V아답터를 DC잭에 연결하여 아두이노 보드에 전원을 공급하고 있습니다만  정전압 5V 전원아답터를 사용하실 경우  아두이노 보드용 전원을 별도로 공급하지 않을 수 있습니다.  즉,  아두이노 보드에 연결된 USB케이블과  DC잭에 연결된 전원을 모두 제거하신 상태에서   정전압 5V 전원에서  5V전원선을 하나 더 연결하여 아두이노의 5V핀에 직접 연결해주시면  아두이노 보드도  정전압 아답터로부터 전원을 공급 받을 수 있습니다.  즉,  5V 단일 전원으로   아두이노 보드와  RGB 칼라픽셀을 모두 구동하실 수 있습니다.
 

 
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

레이보우두이노 Rainbowduino   와  Rainbow Cube Kit( 4x4x4)  연동 작동하기

 

1. 아두이노 라이브러리 설치하기

아두이노 IDE 개발환경인 스케치 버전(1.0이상 또는 구버전)에 따라 다음 두개중 하나를 다운로드 후 설치합니다. 

(참고사항.  사용중인 아두이노 스케치의 소스파일명 확장자가  *.ino 이면 Arduino 1.0이상 이며,   *.pde 이면 구버전의 아두이노 스케치 입니다. 즉, Arduino 023 사용)

 

라이브러리 파일 설치위치:

다운로드 후 압축을 해제하면 안쪽에 Rainbowduino 라는 폴더가 있습니다.  이 폴더 통째로 아두이노가 설치된 디렉토리에 있는 libraries 디렉토리에 복사합니다.  즉,  arduinoDir\libraries\Rainbowduino  폴더가 있고  이안에는  Rainbowduino.cpp Rainbowduino.h 파일 등이 보입니다.

 

 

2.  Rainbowduino에 내장된 FTDI USB to Serial 드라이버 설치하여  COM 포트 인식시키기

Rainbowduino를 PC와 USB케이블로 연결후 다른 모든 부품(RainbowCube Kit 등)을 제거합니다.

PC에서 자동 인식되며 필요한경우 적절한 드라이버를 선택해줍니다.  Arduino 스케치 폴더에 있는 drivers 폴더에 있는 파일로 인식되지 않는경우엔  Windows 드라이버 자동찾기를 선택하하여 재설치해주면 update후 자동 설치됩니다.

 

3. 아두이노 스케치 환경 열기

( library 설치후엔 꼭 다시 실행해줘야합니다.)

Rainbowduno용 라이브러리가 정상 설치되었다면  파일 > 예제 메뉴 선택후 Rainbowduino 라는 메뉴가 보입니다.

이를 선택하면 아래와 같은 예제들이 기본 등록된것을 알수있습니다.

본 예제 파일들이 보이지 않는경우 라이브러리 설치가 제대로 되지 않은것이니 재 확인 바랍니다.

 

Cube1

Cube2

Cube3

..... 이하 여러개

 

 

PlasmaCube 를 선택해 봅니다.

 

4.  아두이노 보드 종류 및 COM 번호 선택하기

 

도구>시리얼 포트

COM 번호는 과정 2에서 확인된 COM번호를 선택하면됩니다.(제어창  장치관리자 COM 장치리스트에서 확인가능)

 

도구>보드:   아두이노 보드 종류는    Arduino Pro or Pro mini  5V 16MHz,  w/ATMega328  를 선택하면 됩니다.

 

5. 컴파일 및 업로드

컴파일시 오류가 없다면 업로드해봅니다.

 

6.  USB케이블을 제거후  RainbowcubeKit 과  Rainbowduino를 연결해줍니다.

RainbowCubeKit 에 포함된 전선으로  Vin / Gnd 라인(볼트로고정)을  Rainbowduino 상의 Vcc/ Gnd 라인(볼트로고정)에 공통 연결해줍니다.

RainbowCubeKit 에 7~9V 최소 1A 이상 정전압 전원을 연결해줍니다.

 

여러 패턴으로 작동되는것을 확인 할 수 있습니다.

 

주의.  LED 가 64개 작동되는 킷이므로  소형 9V 전지나  USB케이블을 통한 전원으로는 정상 작동이 보장되지 않으며 작동오류나 PC 파손등의 원인이 될 수 있으니  꼭  별도의 정전압 아답터 전원을 사용하시기 바랍니다.

 

 

관련 상품 리스트

Rainbowduino V3.0
RainbowCubeKit 납땜 자작형
RainbowCubeKit 완성형( Rainbowduino, 아크릴 케이스  및 전원 포함)
9V 1A 정전압 아답터
mini USB 케이블(Rainbowduino 와 PC연결용)

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.spikenzielabs.com/SpikenzieLabs/SolderTime_2.html

 

제품소개

아두이노 UNO와 동일한 MCU가 내장된 아두이노 호환 자작 전자손목시계킷 입니다.

이미 프로그램이 업로딩 되어 납땜 및 결합만 하여도 곧바로 시계로 작동이 가능하며,

능력이 되면 직접 원하는 소스코드를 업로딩하여 자신만의 방식으로 동작하는 전자시계를 만들 수 도 있습니다.

(안내.프로그램 업로딩을 위해서는 FTDI USB to 시리얼 변환기(별매)가 따로 필요합니다.)

 

제작 난이도가 높은 제품은 아니지만 납땜에  어느정도 익숙한 사용자에게 권장합니다.

납땜점 및 PCB가 미세하므로 (미숙련으로 인해) 반복하여 납땜할 경우 PCB가 손상될수있습니다.,

또한 크리스탈 부품은 가열 지속시 부품 파손될 수 있으므로 이점 양지하시기 바랍니다.

 

 

 

도구: 니퍼, 납, 인두기, 인두팁 클리너, 종이스티커나 납땜 보조 손잡이

 

 

제작법

 

제작시간:  납땜에 어려움이 없는경우 약 1시간이내

 

납땜 제작시

.버튼과 크리스탈은 접착면에서 잡아 뽑기보다는 니퍼로 커팅할것을 권장합니다.

.5X7 LED 세그먼트의 결합시 옆면에 라벨문자를 표식으로하여 제작안내 사진 방향으로 결합합니다.

 

마무리시

.플라스틱판은 보호비닐을 제거하고 사용합니다.

.circuit area등의 플라스틱판은 방향이 있으므로 제작안내에 포함되 그림을 자세히 보시고 결합하시기 바랍니다.

(크리스탈 부품 위치 고려 등)

.플라스틱판은  4장 또는 5장일수 있습니다.

( circuit area 판의 경우  얇은판 2개 일수도, 다른경우 두꺼운판 1개일수도 있음 )

 

초기 작동 테스트

전지를 넣으면 잠시동안 12:00 시간 표시가 되고 꺼집니다.

우측버튼을 누르면 현재시간을 잠시 보여주고 꺼집니다.

모든 LED 점이 정상적으로 작동되는지 테스트하려면

좌측버튼을 누른상태로 건전지를 삽입하면 촤측부터 한줄씩 모든 LED점을 순차점등 테스트 모드로 진입합니다.

 

 

시계 작동법

 

아래의 모드 및 세팅 상태도를 보고 세팅할 수 있습니다.

http://www.spikenzielabs.com/Downloadables/ST2IntFlow.jpg

 

시간설정, 알람설정 , 스톱워치(초단위 측정), 메시지 , 사인파 에니메이션(소리 점검)

 

알람이 설정되면 촤측 하단에 점이 추가됨.

 

 

 

(작성중인 문서입니다.)

 

 

킹!왕!짱! 기다리고 기다렸던

많은 분들이 안드로이드기기의 무선통신 기능( Bluetooth, Wifi) 을 활용하여 원격 제어되는 자동차나 탱크등을 갖고 싶어 하시는것 같습니다.  이중 소수의 분들이 직접 제작하는경우를 봤습니다만 제작 비용도 만만치 않고 소요시간과 제작을 위해 알아야할 사항도 제법 많은것 같습니다.  특히 하드웨어 개발보다는 소프트웨어 개발에 집중하려는 개발자분들은 무선으로 제어되는 적당한 하드웨어 플랫폼을 찾고 계실겁니다. 저도 마찬가지로 이런 기능을 하는 저렴한 장비를 찾아왔는데요 오늘 소개해드릴 제품이 바로 딱! 그 제품인것 같습니다.  

 

해킹 권장 플랫폼

안을 들여다 보면 ATMega칩을 주제어칩으로 장착하고 있고,  이곳에 모터드라이버 회로와  블루투스(Bluetooth) 모뎀이 장착되어 있는것이 보입니다.  제어보드에는 MCU를 재프로그래밍하려는 해커? 분들을 위해 ISP핀홀도 마련되어 있어서 내장된 프로그램을 직접 원하는데로 바꿔보실 수 있습니다.(차량용 펌웨어 소스코드와 무선 명령어 코드가 공개되어 있습니다.)  또한 전용 안드로이드앱(apk파일)을 동봉된 CDROM에 넣어 주므로 프로그래밍을 전혀 모르시는 분들도 파일메니져를 이용하여 apk 파일을 설치하기만 하면 재밌게 갖고 놀 수 있습니다. 

 

All in One

필요한 액세서리도 모두 포함되어있어서 작동을위해 따로 준비해야할 것은 안드로이드폰(또는 스마트패드) 뿐입니다.

LiPo배터리가 내장되어 있고, 충전기능이 내장된 USB케이블이 제공되므로 PC에 꽂아서 충전해 주시면 수십분간 주행이 가능합니다. Wow~

 

첨부된 동영상을 참고하시기 바랍니다.

 

 

 

 

양단자를 손으로 꼭 잡으면 켜지는 스위치입니다.
놀라운 점은 한사람 뿐 아니라,  수십명이 손을 잡아서 장거리 회로를 구성해도 작동됩니다.
가장 기초적인 트랜지스터 활용예이면서 제법 재밌는 응용을 할수있는 회로입니다. 아래 회로1 상의 콜렉터(C) 점과 R1사이에 LED를 넣어주면 아두이노 없이도 LED를 On/Off 시켜볼수 있습니다. (단, R1은 330옴으로 변경요함)
아두이노에서 활용하려면 아래와 같이 연결하시면 됩니다.
 

 

 
회로1.이 기본회로입니다.
A와 B점을 양손으로 잡으면 트랜지스터 Base에 전류가 가해져서 C점의 전압이 강하(Low)하게됩니다.  A와 B간에 결합이 없어서 트랜지스터의 Base와 Emitter간의 전류가 흐르지 않게되면 C점의 전압은 거의 5V(High)로 유지됩니다.
아날로그입력핀으로 감지하면 이값(전압)의 변화를 확인 가능하며,  디지탈입력으로 감지하면 HIGH / LOW를 구분할 수 있게 됩니다. 회로1에서 R1은 꼭 필요하지만 R2는 A와 B가 쇼트될 가능성이 있어서 보호차원에서 넣은 저항입니다. 쇼트 시킬 일이 없다면 생략해도 됩니다.
 
트랜지스터는 유사품(범용 NPN형)으로 대체가능합니다.
위 경우엔 2sc1815를 사용한 예입니다.

회로1의 경우 예제소스는  아두이노 스케치에서 기본제공하는
File > Examples > Analog > AnalogInOutSerial 예제를 업로딩 후,
 시리얼모니터 창을 열어놓고  A,B점을 양손으로 꽉 잡아보시면 됩니다. 
접촉 상태에따라 A0핀으로 입력받는 전압 값의 변화 출력됩니다.


우측의 회로2. 는 저항을 모두 생략한 상태이며 R1을 생략하고 대신 아두이노 내부 풀업저항을 활성화 시킨 상태입니다. 즉, R1 역활을 하는 내부 저항을 활용하는 방법입니다.대부분의 마이크로콘트롤러칩들은 외부저항없이도 프로그램 세팅만으로 내부 풀업저항을 설정할 수 있는 기능이 있습니다.풀업저항 활성화를 위해선  핀모드를 입력모드로 전환 후, 해당핀을 HIGH로 세팅해주면 됩니다.  내부 풀업을 활성화 시키는 코드가 포함된 예제소스는 아래와 같습니다.
(참고. 쇼트 보호저항 R2은 넣어주시는것이 좋습니다.)
 
// 아두이노 디지탈입력핀 D2로 입력할 경우로 가정,  풀업저항 On

int ledPin = 13;      // 아두이노 내장 LED 사용

void setup() {
  pinMode(ledPin, OUTPUT);  
  pinMode(2, INPUT);   //가령, D2로 입력받을경우
  digitalWrite( 2, HIGH);   // D2핀의 풀업저항을 활성화시킴. (입력모드로 전환후 HIGH출력하면됨)

}

// A와 B점을 손으로 잡으면  아두이노 내장 LED가 켜지고 ,  놓으면 꺼집니다.
void loop() {     
  if( digitalRead(2)){
    digitalWrite(ledPin, LOW);   
  }else{
    digitalWrite(ledPin, HIGH);    
  }
  delay(100);
}
 

참고로,  5V 전원을 사용하므로 손으로 잡아도 감전 될 걱정은 안하셔도 됩니다.


활용예.
잘만 활용하면 터치센서 대체용으로 활용 가능합니다. 터치센서는 한극으로 작동 되지만, 러브스위치는 두접점을 동시에 눌러야 작동되는점이 차이점입니다.  TR한개만 있으면 되므로 매우 저렴한 방법입니다.
특히 사람의 몸을 통하여 회로가 구성된다는 점이 알쏭 달쏭 요상한 재미를 더해주므로 여러명이서 재밌는 이벤트를 구성할때 활용하면 좋은 소재가 될 수 있습니다.

알림. 위 회로와 소스로 테스트 결과 잘 작동됨을 확인하였습니다.  시간이 늦은 관계로 실제 이미지와 작동영상은 추후에 올리겠습니다.
 
 
 
 

 

+ Recent posts