전자 점수 판은 모든 스포츠 토너먼트에서 누구나 가질 수있는 가장 중요한 도구 중 하나입니다. 기존의 방법을 사용하는 오래된 수동 점수 판은 시간이 많이 걸리고 오류가 발생하기 쉬우므로 표시 장치를 실시간으로 변경해야하는 경우 컴퓨터 화 된 점수 판이 필요합니다. 이것이이 프로젝트에서 안드로이드 애플리케이션 을 사용하여 보드의 점수를 변경할 수 있는 Bluetooth 제어 무선 스코어 보드 를 구축하는 이유입니다. 이 프로젝트의 두뇌는 아두 이노 나노이고, 디스플레이 부분은 P10 LED 매트릭스를 사용하여 실시간으로 점수를 원격으로 보여줄 것입니다.
P10 LED 디스플레이 매트릭스
P10 LED 매트릭스 디스플레이 a를 사용할 수있는 가장 좋은 방법입니다 LED 보드를 야외 또는 실내 사용을 위해. 이 패널에는 최상의 디스플레이 결과를 위해 설계된 플라스틱 하우징에 총 512 개의 고휘도 LED가 장착되어 있습니다. 또한 방수를 위해 IP65 등급을 제공하므로 실외 사용에 적합합니다. 이를 통해 이러한 패널을 임의의 행 및 열 구조로 결합 하여 큰 LED 간판 을 만들 수 있습니다.
모듈의 크기는 32 * 16입니다. 즉, 각 행에 32 개의 LED가 있고 각 열에 16 개의 LED가 있습니다. 따라서 각 LED 간판에는 총 512 개의 LED가 있습니다. 그 외에도 방수 IP65 등급을 받았으며 단일 5V 전원으로 전원을 공급받을 수 있으며 매우 넓은 시야각을 가지고 있으며 밝기는 최대 4500 니트까지 올라갈 수 있습니다. 그래서, 당신은 가져온 일광에서 그것을 명확하게 볼 수 있습니다. 이전에는 Arduino와 함께이 P10 디스플레이를 사용하여 간단한 LED 보드를 구축했습니다.
P10 LED 매트릭스 의 핀 설명 :
이 LED 디스플레이 보드 는 입력 및 출력 연결을 위해 10 핀 메일 헤더를 사용합니다.이 섹션에서는이 모듈에 필요한 모든 핀을 설명했습니다. 또한 모듈 중간에 외부 전원을 보드에 연결하는 데 사용되는 외부 5V 커넥터가 있음을 알 수 있습니다.
- 활성화: 이 핀은 PWM 펄스를 제공하여 LED 패널의 밝기를 제어하는 데 사용됩니다.
- A, B: 이를 다중 선택 핀이라고합니다. 다중 행을 선택하기 위해 디지털 입력을 사용합니다.
- 시프트 클록 (CLK), 스토어 클록 (SCLK) 및 데이터: 일반 시프트 레지스터 제어 핀입니다. 여기서 시프트 레지스터 74HC595가 사용됩니다.
P10 LED 디스플레이 모듈을 Arduino에 연결:
접속 P10의 매트릭스 디스플레이 모듈 매우 간단한 프로세스의 Arduino 행이다 우리 회로에서, 우리는의 Arduino의 핀 (9) 등의 핀 A, 핀 B와 같은 핀 (7) 핀 (6)을 인 에이블 핀 구성 핀 (13)은 CLK는, 핀 (8)이된다 SCLK, 핀 11은 DATA이고 마지막으로 핀 GND는 모듈 및 Arduino의 GND 핀입니다. 아래의 전체 표는 핀 구성을 명확하게 설명합니다.
P10 LED 모듈 |
Arduino UNO |
활성화 |
9 |
ㅏ |
6 |
비 |
7 |
CLK |
13 |
SCLK |
8 |
데이터 |
11 |
GND |
GND |
참고: 512 개의 LED가 많은 전력을 소비하므로 P10 모듈의 전원 단자를 외부 5V 전원에 연결하십시오. 5V, 3A DC 전원 공급 장치를 P10 LED 모듈의 단일 장치에 연결하는 것이 좋습니다. 더 많은 번호 모듈을 연결하려는 경우 그에 따라 SMPS 용량을 늘리십시오.
Arduino Scoreboard에 필요한 구성 요소
이것은 매우 간단한 프로젝트이므로 구성 요소 요구 사항은 매우 일반적이며 필요한 구성 요소 목록은 아래에 표시되어 있으므로 지역 취미 상점에서 나열된 모든 자료를 찾을 수 있습니다.
- Arduino Nano
- P10 LED 매트릭스 디스플레이
- 브레드 보드
- 5V, 3AMP SMPS
- HC-05 블루투스 모듈
- 전선 연결
Arduino Scoreboard의 회로도
이 프로젝트는 매우 간단 하기 때문에 Arduino LED Scoreboard 의 회로도 는 아래에 나와 있습니다. 저는 인기있는 소프트웨어를 사용하여 회로도를 개발했습니다.
회로의 작동은 매우 간단합니다. Android 애플리케이션과 Bluetooth 모듈이 있으며 Bluetooth 모듈과 성공적으로 통신하려면 HC-05 모듈을 Android 애플리케이션과 페어링해야합니다. 연결되면 표시하려는 문자열을 보낼 수 있습니다. 문자열이 전송되면 Arduino는 문자열을 처리하고 데이터가 시프트로 전송 된 후 내부 74HC595 시프트 저항이 이해할 수있는 신호로 변환합니다. 표시 할 준비가되었습니다.
Arduino 점수 판 코드 설명
하드웨어 설정이 성공적으로 완료되면 이제 Arduino Nano를 프로그래밍 할 때입니다. 코드에 대한 단계별 설명은 다음과 같습니다. 또한 이 튜토리얼의 하단에서 전체 Arduino Scoreboard 코드 를 얻을 수 있습니다.
우선 모든 라이브러리를 포함해야합니다. P10 LED 디스플레이를 제어하기 위해 DMD.h 라이브러리를 사용했습니다. 주어진 GitHub 링크에서 다운로드하여 포함 할 수 있습니다. 그 후, 우리 코드에서 인터럽트 프로그래밍에 사용될 TimerOne.h 라이브러리 를 포함시켜야합니다.
이 라이브러리에는 사용할 수있는 프런트가 많이 있으며이 프로젝트 에는 " Arial_black_16 "을 사용 했습니다.
#포함
다음 단계에서는 LED 매트릭스 보드에 대한 행과 열의 수를 정의합니다. 이 프로젝트에서는 하나의 모듈 만 사용했기 때문에 ROW 값과 COLUMN 값을 모두 1로 정의 할 수 있습니다.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
그 후 코드에 사용 된 모든 변수가 정의됩니다. Android 앱에서 직렬 데이터를 수신하는 데 문자 변수를 사용하고 점수를 저장하는 데 두 개의 정수 값을 사용하며 Matrix에 표시 할 최종 데이터를 저장하는 배열을 정의합니다.
문자 입력; int a = 0, b = 0; int 플래그 = 0; char cstr1;
SPI를 통해 Arduino Nano에서 들어오는 데이터를 지속적으로 확인 하는 함수 scan_module () 이 정의됩니다. 그렇다면 프로그램에서 사용자가 정의한 특정 이벤트를 수행하기 위해 인터럽트 를 트리거합니다.
void scan_module () { led_module.scanDisplayBySPI (); }
setup () 내부 에서 타이머가 초기화되고 인터럽트는 앞에서 논의한 scan_module 함수에 연결됩니다. 처음에는 clear screen (true) 기능을 사용하여 화면을 지웠는데 , 이는 모든 픽셀이 OFF로 정의되었음을 의미합니다.
설정에서 Serial.begin (9600) 기능을 사용하여 직렬 통신도 활성화되었습니다. 여기서 9600은 Bluetooth 통신의 전송 속도입니다.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (true); }
여기서는 Arduino에서 오는 유효한 데이터가 있는지 여부에 따라 직렬 데이터 가용성을 확인합니다. 앱에서받은 데이터는 변수에 저장됩니다.
if (Serial.available ()> 0) { 플래그 = 0; 입력 = Serial.read ();
그런 다음 수신 된 값을 미리 정의 된 변수와 비교했습니다. 여기에서 Android 애플리케이션에서는 두 팀의 점수를 선택하기 위해 두 개의 버튼이 사용됩니다. 버튼 1을 누르면 문자 'a'가 아두 이노로 전송되고 버튼 2를 누르면 문자 'b'가 아두 이노로 전송됩니다. 따라서이 섹션에서는이 데이터가 일치하고 일치하는 경우 각 점수 값이 코드에 표시된대로 증가합니다.
if (입력 == 'a'&& 플래그 == 0) { 플래그 = 1; a ++; } else if (입력 == 'b'&& 플래그 == 0) { 플래그 = 1; b ++; } 그렇지 않으면;
그런 다음 P10 매트릭스 함수는 문자 데이터 유형 만 표시 할 수 있으므로 수신 된 데이터는 문자 배열로 변환됩니다. 이것이 모든 변수가 문자 배열로 변환되고 연결되는 이유입니다.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). toCharArray (cstr1, 50);
그런 다음 모듈에 정보를 표시하기 위해 selection () 함수를 사용하여 글꼴을 선택 합니다. 그런 다음 drawMarquee () 함수를 사용하여 P10 보드에 원하는 정보를 표시합니다.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
마지막으로 스크롤 메시지 표시가 필요하므로 특정 마침표를 사용하여 전체 메시지를 오른쪽에서 왼쪽 방향으로 이동하는 코드를 작성했습니다.
긴 시작 = millis (); 긴 타이밍 = 시작; 부울 플래그 = 거짓; while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); 타이밍 = millis (); } }
이것으로 코딩 과정이 끝났습니다. 이제 업로드 할 준비가되었습니다.
스마트 폰 제어 스코어 보드 -테스트
Arduino에 코드를 업로드 한 후 프로젝트를 테스트 할 차례입니다. 그 전에 Android 애플리케이션을 스마트 폰에 설치해야합니다. 주어진 링크에서 P10 스코어 보드 애플리케이션 을 다운로드 할 수 있습니다. 설치가 완료되면 앱을 열면 홈 화면이 아래 이미지와 같이 보일 것입니다.
SCAN 버튼을 클릭 하여 앱과 함께 Bluetooth 모듈을 추가합니다. 그러면 전화기의 페어링 된 Bluetooth 장치 목록이 표시됩니다. 이전에 HC-05 Bluetooth 모듈을 페어링하지 않은 경우 휴대폰의 Bluetooth 설정을 사용하여 모듈을 페어링 한 다음이 단계를 수행하십시오. 화면은 다음과 같이 표시됩니다.
그런 다음 목록에서 여기에 사용 된 Bluetooth 모듈의 이름 인“HC-05”를 클릭합니다. 그것을 클릭하면 화면에 연결된 것으로 표시됩니다. 그런 다음 점수 판을 진행할 수 있습니다.
앱에 표시된대로 "홈"과 "자리 비움"사이의 아무 버튼이나 클릭하십시오. 홈 버튼을 선택하면 P10 디스플레이에서 홈 점수가 증가합니다. 마찬가지로 자리 비움 버튼을 선택하면 자리 비움 점수가 증가합니다. 아래 이미지는 최종 화면이 어떻게 보이는지 보여줍니다.
프로젝트를 좋아하고 새로운 것을 배웠기를 바랍니다. 프로젝트와 관련하여 다른 질문이 있으면 아래에 댓글을 달거나 포럼에서 질문 할 수 있습니다.