반응형
Dotmatix 사용기
맨 처음 bcm 라이브러리를 설치해야한다.
나는 bcm2835-1.50을 받아서 설치했다.
[아래 글 참고]
http://software-craftsman.tistory.com/23
그리고 난 후 max7219 Library를 다운받아 설치한다.
git clone https://github.com/rm-hull/max7219.git
setup.py으로 설치한다.
설치 명령어는 "python setup.py install" 이다.
(README.md를 읽어보면 좀 더 명확한 방법과 선 연결이 나와있다)
examples에 있는 코드를 응용하면 여러가지 모양의 LED 글씨들을 사용할 수 있다.
matrix_test.py을 수정해서 사용해보았다.
#!/usr/bin/env python
import max7219.led as led
from max7219.font import proportional, SINCLAIR_FONT, TINY_FONT, CP437_FONT
device = led.matrix(cascaded=6)
#LED를 6개 사용한다는 의미이다. 예시코드에서는 cascaded=1 로 되어 있다.
device.orientation(270)
#270의 의미는 각도이다. 글자형태가 270으로 해야 원하는 글자가 나왔다.
device.brightness(3)
#밝기 조절이다. 15가 제일 밝게 나온다. 눈이 부셔서 3으로 설정.
device.letter(0, ord('P'))
device.letter(1, ord('A'))
device.letter(2, ord('U'))
device.letter(3, ord('S'))
device.letter(4, ord('E'))
device.letter(5, ord('!'))
#이렇게 쓰면 PAUSE! 라는 글자가 똭!!
device.show_message("Game Start!", font=proportional(CP437_FONT))
#이렇게 쓰면 Game Start!가 scroll형식으로 지나간다.
time.sleep(1)
for _ in range(10):
device.invert(1)
time.sleep(0.25)
device.invert(0)
time.sleep(0.25)
#invert 해줄 수도 있다.
DIGITS = {
0 : '0' ,
1 : '1' ,
2 : '2' ,
3 : '3' ,
4 : '4' ,
5 : '5' ,
6 : '6' ,
7 : '7' ,
8 : '8' ,
9 : '9'
}
def show_score():
hundred=score/100 % 10
ten=score/10 % 10
one=score%10
device.letter(3, ord(DIGITS[hundred]))
device.letter(4, ord(DIGITS[ten]))
device.letter(5, ord(DIGITS[one]))
#score를 보여주기 위한 함수로 만들었다. 문자하나를 넣기 위해 꼼수.
def show_number(number):
if number < 0:
return
ten=number/10 % 10
one=number%10
device.letter(0, ord(DIGITS[ten]))
device.letter(1, ord(DIGITS[one]))
device.letter(2, ord(':'))
#시간을 보여주기 위해 만든 함수이다. 1초마다 number를 낮춰서 호출했다.
아래 동영상은 농구게임 시간 & 점수판이다.
팁으로 숫자폰트가 마음에 안들어서 영상과는 다르게 수정했다.
font.py에서 CP437_FONT를 아래와 같이 수정했다.
font.py은 /usr/local/lib/python2.7/dist-packages/max7219/font.py 에 있다.
[0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00], # '.'
[0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00], # '/'
[0x00, 0x7E, 0xFF, 0x81, 0x81, 0xFF, 0x7E, 0x00], # '0'
[0x00, 0x00, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00], # '1'
[0x00, 0xE6, 0xF7, 0x91, 0x91, 0xDF, 0xCE, 0x00], # '2'
[0x00, 0x42, 0xC3, 0x89, 0x89, 0xFF, 0x76, 0x00], # '3'
[0x00, 0x30, 0x28, 0x24, 0x22, 0xFF, 0xFF, 0x00], # '4'
[0x00, 0x8F, 0x8F, 0x89, 0x89, 0xF9, 0x71, 0x00], # '5'
[0x00, 0x7E, 0xFF, 0x89, 0x89, 0xFB, 0x72, 0x00], # '6'
[0x00, 0x01, 0xC1, 0x21, 0x11, 0x0F, 0x07, 0x00], # '7'
[0x00, 0x76, 0xFF, 0x99, 0x99, 0xFF, 0x76, 0x00], # '8'
[0x00, 0x4E, 0xDF, 0x91, 0x91, 0xFF, 0x7E, 0x00], # '9'
반응형
'장인으로의 여정 > 라즈베리파이' 카테고리의 다른 글
[라즈베리파이3] 초음파 사용기(HC-SR04) (0) | 2016.06.15 |
---|---|
[라즈베리파이3] bcm2835 download 경로 (0) | 2016.05.03 |
[라즈베리파이3] 입문 (1) | 2016.04.21 |
댓글