offfff

32x16 RGB LED matrix panel 라즈베리파이에서 사용하기 본문

프로그래밍

32x16 RGB LED matrix panel 라즈베리파이에서 사용하기

offfff 2016. 10. 2. 09:00

32x16 RGB LED matrix panel 라즈베리파이에서 사용하기


 

이놈만 구매해서는 사용할 수 없고,

LED 패널 자체가 소모하는 전력이 꽤 되기 때문에 AC Adapter를 같이 사야합니다.


 


  

 

 

1. 연결

 

패널의 뒷면을 보면 HUB75 인터페이스가 있습니다.

RGB LED 패널들은 다 이 표준을 가지고 만들어진답니다.

이런 놈이 하나 더있는데, 그놈은 다른 패널과 연결하여 사용하는 용도입니다.

패널은 5V 로직으로 디자인 되어있는데, 파이 GPIO3.3V 출력입니다.

이번에 구매한 패널은 3V 로직으로도 HIGH 트리거를 만들어 낼 수 있어서

다행히 파이로 구동이 가능합니다.

만약 5V로만 동작하는 패널을 구매하셨다면 Voltage level shifter를 추가로 구매하세요.

(참고 : https://www.adafruit.com/product/1787)

 

(출처 : https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/wiring.md)

 

 

오른쪽 사진은 패널과 연결하고 난 커넥터의 반대편입니다.

좌우가 반전되어 연결된다는 점을 유의하세요.

D32x16 패널에서는 필요하지 않습니다.

 

이제 커넥터랑 라즈베리파이를 연결해 보겠습니다.

아래 표에서 스마일 표시 된 부분과 연결합니다.

물론 D는 연결 안하셔도 됩니다.

 

(출처 : https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/wiring.md)

 

 

혹시나 32x16보다 큰 사이즈를 사용하시는 분들은 아래 개념도를 참고하시면 되겠습니다.

 

 

 

연결하고 나서의 모습입니다.

꽤 많은 점프 선을 사용했습니다.

 

 

 

 

 

 

 

2. 테스트하기

 

전원을 연결하기 전에 연결이 잘 됐나 다시 한 번 확인하시기 바랍니다.

패널 전원을 먼저 연결하고 나서 라즈베리파이에 전원을 연결하세요.


이제 라즈베리파이에서 작업하겠습니다.

작업용 디렉토리로 이동해서, git에 올라온 프로젝트를 받아오겠습니다.

다운로드가 완료되면 rpi-rgb-led-matrix라는 폴더가 생성됩니다.

폴더로 이동해서 make 명령어로 컴파일 해줍니다.


$ git clone https://github.com/hzeller/rpi-rgb-led-matrix/

$ cd rpi-rgb-led-matrix

$ make


 

 

이제 API 예제들을 컴파일 하겠습니다.

examples-api-use 폴더로 이동해서 make 명령어로 컴파일 해줍니다.

 

$ cd examples-api-use

$ make

 

컴파일 전

컴파일 후


 

c-example, demo, mininal-example, text-example이 생깁니다.

먼저 demo 예제를 돌려보겠습니다.

 

$ sudo ./demo -D 1 runtext16.ppm --led-rows=16

 

12개의 데모가 있고 D 옵션을 0~11으로 주면 여러가지 모양이 패널에 표시됩니다.

아래는 1번 데모입니다.

(동영상)

 

 

 

 

 

 

3. 텍스트 출력하기

 

아직 해결할 내용이 많이 있지만 일단 완료된 부분까지 기록하겠습니다.

text-example은 패널에 글자를 표시하는 예제입니다.

아래 명령어와 옵션으로 실행합니다.


$ sudo ./text-example f ../fonts/10x20.bdf --led-rows=16

 

 

 

-C 옵션으로 색상을 바꿀 수도 있습니다.

 

$ sudo ./text-example f ../fonts/10x20.bdf led-rows=16 C 0,125,255

 

 

 

이 외에도 빛 밝기 조절, 좌표 조절 등 다양한 옵션이 있고

옵션 없이 실행하면 옵션 리스트를 보여주니 참고하시길 바랍니다.

또 이런 옵션들이 예제 소스에 모두 담겨있기 때문에,

적절히 응용해서 프로그래밍 하면 되겠습니다.

 

 

 

 

 

 

4. 한글 출력

 

마지막으로 한글 출력을 알아보겠습니다.

특정 언어를 사용하기 위해서는 fonts 파일을 다운받아야 합니다.

라즈베리파이에서 아래 링크로 연결하여 다운 받습니다.

 

http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asizn.tar.gz

 

다운로드 된 파일의 압축을 풀어서 /rpi-rgb-led-matrix/fonts 경로에 갖다놓습니다.

 

● 다운로드 전

● 다운로드 후

 

 

어차피 쓸 건 한정되어 있지만, 엄청나게 많아졌습니다.

이름에 ko로 쓰여 있는 게 한글지원이 되는 애들입니다.

파일 앞 00x00LED 패널의 rowcolumn입니다.

그런데 한글 지원 font는 죄다 18x18이라서 그런지, 16x32인 우리 패널에서는 조금 어색하게 나옵니다.

 

예제 프로그램이 있는 경로로 가서 아래 명령어를 실행했습니다.

프로그램이 실행되고 출력하고자 하는 텍스트를 입력하면 됩니다.

‘ㅎ을 입력했는데 사이즈가 맞지 않아 잘리는 모습을 볼 수 있습니다.

 

$ sudo ./text-example f ../fonts/18x18ko.bdf --led-rows=16 C 0,125,256

 

 

 

같은 동양권인 일본어 지원 폰트를 사용해보았습니다.

한글이 지원되지만, 자음과 모음은 출력이 되지 않았습니다.

 

$ sudo ./text-example f ../fonts/12x13ja.bdf --led-rows=16 C 0,125,256

 

 

 

 

 

 

 


5. 추후 과제

이제 소스를 찬찬히 살펴보면서, 텍스트 움직임이나, 이미지 출력 등의 API를 알아보고,

아이디어를 적용한 프로그램을 만들어 봐야겠습니다.

괜찮은 아이디어 있으면 댓글로 남겨주세요.
















'프로그래밍' 카테고리의 다른 글

[Arrays] CyclicRotation  (0) 2016.10.12
[Iteration] BinaryGap  (0) 2016.10.12
라즈베리파이 원격 데스크톱 접속 환경구축  (0) 2016.10.01
라즈베리파이 시작하기  (0) 2016.09.30
HTML Input Attribute  (0) 2016.09.21