일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- deep learning
- API
- tensorflow
- CUDA
- cudnn
- 안드로이드
- Python
- ubuntu
- Android Studio
- 이미지 인식
- 이미지인식
- GPU
- 자신만의
- opencv
- 버전 업그레이드
- virtualenv
- #YOLO #darknet # cuda #gpu
- googlemp
- Android
- 현재위치
- 지도
- 안드로이드 스튜디오
- Google Map
- bazel
- YOLO
- yolo mark
- Today
- Total
Be happy
MAX7219를 이용한 8x8 도트매트릭스. 본문
시각장애인에게 필요한 보조기구를 만드는 중이다. 각종 위험요소를 판단하고 인지시키기 위해 led 불빛, 소리, 진동을 사용한다.
일단 YOLO(you only look once) 데이터를 받아서 아두이노에서 실행하기 위해 8*8 도트매트릭스 센서를 연결하였다.
점퍼선을 구하고 먼저 소스코드를 짠다음 실행을 해보았다. 너무나 화려한 불빛..
준비물 : Uno R3, USB cable, 8x8 도트매트릭스 키트, 암-암 케이블 , 점퍼선
보드와 바로 연결해야 하기 때문에 암-암 케이블과 점퍼선을 사용해야 한다. 우노 헤더와 매트릭스 키트를 바로 연결한다.
배선도.
unsigned char i;
unsigned char j;
/*Port Definitions*/
int Max7219_pinCLK = 11;
int Max7219_pinCS = 10;
int Max7219_pinDIN = 12;
int vol;
int val;
unsigned char disp1[65][8] = {
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, //0
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //0
};
void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
digitalWrite(Max7219_pinCS, LOW);
for (i = 8; i >= 1; i--)
{
digitalWrite(Max7219_pinCLK, LOW);
digitalWrite(Max7219_pinDIN, DATA & 0x80); // Extracting a bit data
DATA = DATA << 1;
digitalWrite(Max7219_pinCLK, HIGH);
}
}
void Write_Max7219(unsigned char address, unsigned char dat)
{
digitalWrite(Max7219_pinCS, LOW);
Write_Max7219_byte(address); //address,code of LED
Write_Max7219_byte(dat); //data,figure on LED
digitalWrite(Max7219_pinCS, HIGH);
}
void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00); //decoding :BCD
Write_Max7219(0x0a, 0x03); //brightness
Write_Max7219(0x0b, 0x07); //scanlimit;8 LEDs
Write_Max7219(0x0c, 0x01); //power-down mode:0,normal mode:1
Write_Max7219(0x0f, 0x00); //test display:1;EOT,display:0
}
void setup()
{
Serial.begin(9600);
pinMode(Max7219_pinCLK, OUTPUT);
pinMode(Max7219_pinCS, OUTPUT);
pinMode(Max7219_pinDIN, OUTPUT);
delay(50);
for (i = 1; i < 9; i++)
{
Write_Max7219(i, disp1[0][i - 1]);
}
Init_MAX7219();
}
void loop()
{
for (j = 0; j < 64; j++)
{
for (i = 1; i < 9; i++)
{
Write_Max7219(i, disp1[64 - j][i - 1]);
delay(10);
}
}
}
매트릭스 제어 코드 입력!
8*8 매트릭스 제어 성공!
'볼라드 탐지기 (2017.9~2017.12) > 아두이노' 카테고리의 다른 글
아두이노 피에조 부저 소리제어 하기 (0) | 2018.06.21 |
---|---|
아두이노 진동 모터 제어하기. (0) | 2018.06.21 |
빵판(브레드보드)사용하기. (0) | 2018.06.21 |