본문 바로가기
장인으로의 여정/라즈베리파이

[라즈베리파이3] Dotmatix 사용기

by 유기농프로그래밍 2016. 6. 15.
반응형

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'

 

 

 

 

반응형

댓글