본문 바로가기

프로젝트

라즈베리파이와 아두이노 그리고 네오픽셀

음악에 맞추어 led를 반짝이게 하고 싶었다.

처음에는 저렴한 아두이노를 활용해서 만들고자 했다. 그래서 아두이노 FFT를 찾아보니 음.. 성능이 뭔가 내 맘에 들지 않았다. 경향은 맞으나 많이 부족한? 게다가 음악도 재생을 해야한다는 제약조건이 추가되어 라즈베리파이를 이용하기로 했다. LED는 180개정도로 스트립 형태를 3개의 집단으로 묶어 제어하기로 했다.

집에 2011.12라고 적혀있는 아주 옛날 라즈베리파이 모델이 있다. 쓰지도 않고 적극 활용하기로 했는데, 네오픽셀 파이썬 라이브러리를 간단하게 동작시키는것은 가능하지만 숨쉬는 듯한 정교한 밝기조절은 되지 않았다. 연산량이 꽤나 많은 것으로 생각한다. 그래서 새로운 라즈베리파이3 B모델을 꺼냈다. 그대로 sd카드를 넣고 동작시키니 동작은 하는데 뭔가 플리커링(?) 내가 의도하지 않은 불빛들이 나타났다.
라즈베리파이에서 동작시키는데 참고할 링크1, 링크2

다시 아두이노로 왔다. 지금와서 생각해보니 당연한건데, led 신호선은 pwm단자에 연결해줘야한다. 별거 아닌데 잊고 삽질을 조금 했다. 아두이노에서는 아주 정상적으로 동작했다. 이제 라즈베리파이로 FFT를해서 해당 정보를 GPIO로 아두이노로 전달해서 아두이노가 LED를 제어하면 된다. 너무 멀리 돌아온 느낌이 들긴 하지만 정립이 되었다. 그런데, 라즈베리파이의 GPIO로 제어가 잘 되나 테스트를 해보니 음악과 함께 재생할 때 GPIO에 변화가 있으면 잡음이 상당히 많이 꼈다. 전원이 별로 좋지 않아서인지, 나는 큰 캐패시터는 없기에 일단 그냥 쓰기로 했다.

결국 라즈베리파이(음악재생, 아두이노로 GPIO신호 전달)에서 아두이노(LED제어)로 신호를 쏴서 제어하는 그림이 만들어졌다.

나중에 다시 하게되면 기억할 것은 꼭 pwm단자에 연결하도록하고, 라즈베리파이는 pwm단자가 GPIO18번 핀밖에 없다는 것을 기억하길.