Arduino Uno 로 MAX7219 (8X8) 도트 매트릭스 모듈과 MPU-6050 자이로센서를 사용해서
자이로 센서로 미로를 탈출 하는 미로 탈출 게임을 만들어 보는 프로젝트입니다
MAX7219 (8X8) 도트 매트릭스 모듈은 8-Digit LED 드라이버 MAX7219 칩 max7219.pdf 을 기반으로 제작된
8열 8행의 디스플레이 모듈 입니다
아두이노 나 AVR, PIC, STM 등의 마이크로 컨트롤러로 손쉽게 제어 가능하기 때문에 유용합니다
또한 입, 출력 인터페이스로 제작되어 여러개의 매트릭스 모듈을 연결해서 사용이 가능합니다
<8X8 매트릭스 모듈 이미지>
<8X8 매트릭스 모듈 상세사양>
MPU-6050 은 3축 자이로 센서와 3축 가속도 센서의 기능이 결합된 센서 모듈 입니다
AVR 또는 Arduino 의 I2C bus 인터페이스를 사용하며 DMP(Digital Motion Processer) 기능은
센서 값과 복잡한 계산을 할수 있으며 펌웨어로 프로그래밍 가능하게 합니다
Robot 자동화 시스템, GPS, 게임 등 다양한 용도로 활용이 가능합니다
<MPU-6050 센서 이미지>
사용된 부품
Arduino Uno R3 (Italy)
MAX7219 (8X8) 도트 매트릭스 모듈
MPU-6050 자이로센서 모듈
점퍼케이블
미니 브래드보드
구성 배선도
사용된 예제소스
MAX7219_MPU-6050_Escape from the maze.txt
사용된 라이브러리
LedControl 라이브러리를 첨부하였습니다
라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요
주의사항
위 첨부된 LedControl 라이브러리를 다운로드 해 설치해 주고 위 첨부된 "MAX7219_MPU-6050_Escape from the maze" 예제를 다운로드 해서 스케치 업로드 해 줍니다
배선시 MPU-6050 자이로센서의 SCL 과 SDA 이 아두이노의 A5, A4 에 제대로 연결 되었는지 확인합니다
예제코드를 살펴보면
#include <LedControl.h>
#include<Wire.h>
위 2가지 라이브러리를 사용합니다, Wire.h 는 아두이노 IDE 설치시 기본 포함되어 있는 라이브러리 입니다
const int PIN_LED_DIN = 12; // Pin LED DataIn
const int PIN_LED_CS = 11; // Pin LED LOAD(CS)
const int PIN_LED_CLK = 10; // Pin LED Clock
const int LEDS_AMOUNT = 1; // The number of leds chained, currently the code only supports one.
const int LEDS_BRIGHTNESS = 8; // Intensity of the led, a number between 1-15
매트릭스 모듈 아두이노 핀 세팅을 확인 할 수 있습니다
DIN-12, CS-11, CLK-10 순입니다
LED BRIGHTNESS (밝기)도 1~15까지 조정할 수 있습니다, 8로 설정되어 있습니다
const int MPU_ADDR = 0x68; // I2C address of the MPU-6050
MPU-6050 I2C 주소는 0x68 입니다
/**
* 's': Start position
* 'f': Finish position
* 'X': Wall
* ' ': Movement zone
*/
시작위치 s, 종료위치 f, 벽은 X, 움직이는 공간은 ' ' 입니다
const char LEVELS[][LEVELS_ROWS][LEVELS_COLUMNS] = {
// Level 1
{
{'X','s','X','X','X','X','X','X'},
{'X',' ','X','X','X','X','X','X'},
{'X',' ','X',' ',' ',' ',' ','X'},
{'X',' ','X',' ','X','X',' ','X'},
{'X',' ','X',' ','X','X',' ','X'},
{'X',' ','X',' ','X','X',' ','X'},
{'X',' ',' ',' ','X','X',' ','X'},
{'X','X','X','X','X','X','f','X'},
},
// Level 2
{
{'X','X','X','X','X','X','s','X'},
{'f',' ',' ','X','X','X',' ','X'},
{'X','X',' ','X',' ',' ',' ','X'},
{'X',' ',' ','X',' ','X','X','X'},
{'X',' ','X','X',' ','X','X','X'},
{'X',' ','X','X',' ','X','X','X'},
{'X',' ',' ',' ',' ','X','X','X'},
{'X','X','X','X','X','X','X','X'},
},
// Level 3
{
{'X','X','X','X','X','X','X','X'},
{'X',' ',' ',' ','X',' ',' ','s'},
{'X',' ','X',' ','X',' ','X','X'},
{'X',' ','X',' ',' ',' ','X','X'},
{'X',' ','X','X','X','X','X','X'},
{'X',' ','X','X','X','X','X','X'},
{'X',' ','X','X','X','X','X','X'},
{'X','f','X','X','X','X','X','X'},
}
/*
// Level Template
{
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X'},
}
*/
};
레벨에 따라 미로가 위 처럼 변합니다
자이로 센서의 각도를 조정해서 미로 탈출 게임을 진행 할 수 있습니다
프로젝트 동영상
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 MLX90614 비접촉 온도센서를 사용해서 실내온도 측정해 보기 (0) | 2020.07.16 |
---|---|
Arduino Uno 로 FSR 압력센서 를 사용해서 DC모터 구동시켜 보기 (0) | 2020.05.27 |
Arduino Uno 로 탁도 센서를 사용해서 액체의 탁도 변화를 측정해 보고 LCD에 출력해 보기 (0) | 2020.04.29 |
Arduino Uno 로 레이저 송수신 모듈을 사용해서 광학효과 만들어 보기 (0) | 2019.12.27 |
Arduino Uno 로 USB 호스트 쉴드를 사용해서 키보드로 입력한 데이터를 1602 LCD에 표시해 보기 (0) | 2019.12.03 |
댓글