Bluetooth는 임베디드 시스템에서 단거리 무선 통신을위한 가장 간단하고 널리 사용되는 프로토콜입니다. Bluetooth는 한 장치에서 다른 장치로 데이터를 전송하는 데 사용될뿐만 아니라 장치를 무선으로 제어하는데도 사용됩니다. 오늘날 거의 모든 전자 장치가 Bluetooth를 지원하므로 임베디드 응용 프로그램에 Bluetooth 제어 옵션이있는 것이 현명합니다.
이 튜토리얼에서는 MATLAB에서 Bluetooth를 사용하여 무선으로 통신하는 방법을 배웁니다 . 컴퓨터에 내장 된 Bluetooth를 한쪽에는 MATLAB이, 다른쪽에는 Arduino가있는 HC-05를 사용합니다. Bluetooth를 통해 MATLAB과 Arduino 간의 통신을 설정하는 방법에는 두 가지가 있습니다. 하나는 명령 창을 사용하는 것이고 다른 하나는 MATLAB GUI를 사용하는 것입니다. 두 방법의 Arduino 코드는 동일하게 유지됩니다. MATLAB을 처음 사용하는 경우 MATLAB을 사용하여 간단한 LED 깜박임 프로그램을 시작하고 MATLAB에서 사용되는 기본 용어를 배우는 것이 좋습니다. 더 많은 MATLAB 프로젝트를 탐색 할 수 있습니다.
- MATLAB과 Arduino 간의 직렬 통신
- MATLAB 및 Arduino를 사용한 DC 모터 제어
- MATLAB 및 Arduino를 사용한 스테퍼 모터 제어
- MATLAB을 사용하여 이미지 처리 시작하기
필요한 구성 요소
- MATLAB이 설치된 노트북 (기본 설정: R2016a 이상 버전)
- Arduino UNO
- 블루투스 모듈 (HC-05)
- LED (모든 색상)
- 저항기 (330ohm)
- 점퍼 와이어
HC-05 및 Arduino와의 인터페이스 에 대해 자세히 알아 보려면 다음 기사를 확인하십시오.
- Arduino를 사용하는 Bluetooth 제어 서보 모터
- Arduino 및 Bluetooth를 사용하는 음성 제어 LED
- Arduino 및 Bluetooth를 사용하는 휴대폰 제어 AC
회로도
MATLAB과 Arduino 간의 Bluetooth 통신을 위한 회로도 는 다음과 같습니다.
MATLAB 명령 창을 사용한 Bluetooth 통신
이것은 Arduino와 MATLAB 간의 Bluetooth 통신을 설정하는 간단한 방법입니다. 여기서 MATLAB은 노트북의 블루투스 를 사용하여 Arduino와 연결된 HC-05를 연결합니다. 먼저 Arduino를 코딩하여 MATLAB에서 들어오는 직렬 수신 데이터를 읽어야합니다 (노트북의 Bluetooth 사용).
그런 다음이 Bluetooth 전송 데이터를 MATLAB에서 사용하여 Arduino에 연결된 모든 것을 제어 할 수 있습니다. 여기 에서는 MATLAB을 사용하여 LAPTOP에서 제어 할 수있는 Arduino에 LED를 연결했습니다.
먼저 주어진 Arduino 코드를 Arduino UNO에 업로드 한 다음 MATLAB 명령 창에서 코딩을 시작하십시오.
#포함
그런 다음 MATLAB과 Arduino 간의 Bluetooth 통신을위한 명령 창에 아래 MATLAB 코드를 복사하여 붙여 넣습니다.
instrhwinfo ('블루투스', 'HC-05'); bt = 블루투스 ('HC-05', 1); fopen (bt);
아래 코드에서 fprintf (bt, '0') 명령 은 Arduino에 '0'을 전송하여 LED를 끄는 데 사용됩니다. 이제 LED를 켜려면 아래 명령을 사용하여 '0'대신 '1'을 보내십시오.
fprintf (bt, '1');
사용 가능한 하드웨어에 대한 정보를 확인하려면 아래 명령을 사용하십시오.
instrhwinfo ('유형', '장치 이름');
블루투스 포트를 열려면 아래 명령을 사용하십시오.
fopen (bt);
Bluetooth를 사용하여 MATLAB에서 Arduino로 데이터를 전송 하는 전체 프로세스를 이해하려면 아래 비디오를 확인하십시오.
MATLAB GUI를 사용한 Bluetooth 통신
MATLAB GUI를 사용하여 Bluetooth 통신을 시연하기 위해 MATLAB에 3 개의 그래픽 버튼을 만들어 Arduino에 연결된 LED를 켜고 끄고 깜박입니다. 그래픽 버튼을 클릭하면 데이터가 블루투스를 통해 MATLAB에서 HC-05로 전송됩니다. Arduino에는 MATLAB에서 HC-05로 Bluetooth 전송 데이터를 수신하고 수신 된 데이터에 따라 LED를 제어하는 코드가 포함되어 있습니다. Arduino 코드는 이전 코드와 동일하게 유지되지만 차이점은 이전에는 MATLAB의 명령 창을 통해 데이터 '1'과 '0'을 보냈고 이제는 그래픽 버튼 세 개를 클릭하면 동일한 데이터가 전송된다는 것입니다.
GUI를 시작하려면 명령 창에 아래 명령을 입력하십시오.
안내서
팝업 창이 열리면 아래 이미지와 같이 새로운 빈 GUI 를 선택하십시오.
이제 아래와 같이 LED를 켜고 끄고 깜박이기위한 세 개의 푸시 버튼을 선택 합니다.
푸시 버튼의 크기를 조정하거나 모양을 변경하려면 해당 버튼을 클릭하기 만하면 버튼의 모서리를 드래그 할 수 있습니다. 푸시 버튼을 더블 클릭하면 특정 버튼의 색상, 문자열 및 태그를 변경할 수 있습니다. 아래 그림과 같이 세 개의 푸시 버튼을 사용자 정의했습니다.
원하는대로 버튼을 사용자 지정할 수 있습니다. 이제 이것을 저장하면 MATLAB 의 편집기 창 에 코드가 생성됩니다. MATLAB GUI를 사용하여 Bluetooth 데이터를 수신 할 때 Arduino에서 수행하려는 작업에 따라이 코드를 편집하십시오. 그래서 아래에서 MATLAB 코드를 편집했습니다. MATLAB 시작하기 튜토리얼에서 명령 창, 편집기 창 등에 대해 자세히 알아볼 수 있습니다.
Bluetooth를 통해 MATLAB에서 LED를 제어하기위한 완전한 MATLAB 코드 는이 프로젝트의 끝에 제공됩니다. 또한 여기에 다운로드 할 GUI 파일 (.fig) 및 코드 파일 (.m)이 포함되어 있으며,이를 사용하여 요구 사항에 따라 버튼을 사용자 지정할 수 있습니다. 아래는 Arduino와 연결된 LED를 제어하기 위해 수행 한 몇 가지 조정입니다.
아래 코드를 복사하여 번호에 붙여 넣으십시오. 74를 클릭하여 MATLAB을 랩탑의 Bluetooth에 설정하거나 연결하십시오.
모두 지우기; 글로벌 bt; instrhwinfo ('블루투스', 'HC-05'); bt = 블루투스 ('HC-05', 1); fopen (bt);
여기서 fopen (bt) 은 데이터 전송을 위해 Bluetooth 포트를 여는 데 사용됩니다.
이제 아래로 스크롤하면 GUI에서 세 개의 푸시 버튼에 대해 생성 된 세 가지 기능이 있음을 알 수 있습니다. 이제 클릭시 수행하려는 작업에 따라 함수에 코드를 작성하십시오.
에서 LED ON의 버튼의 기능, 복사 및 LED를 켜려면 그냥 기능이 끝나기 전에 코드 아래에 붙여 넣습니다. 아래 코드에서 fprintf (bt, '1') 는 랩톱의 Bluetooth를 사용하여 MATLAB에서 HC-05로 '1'을 보내는 데 사용됩니다. Arduino는 HC-05를 통해이 데이터 '1'을 수신하고 11 번째 핀을 HIGH 로 만들어 LED를 켭니다.
글로벌 bt; fprintf (bt, '1');
에서 LED OFF의 버튼의 기능, 복사 및 LED를 끄려면 단지 기능이 끝나기 전에 코드 아래에 붙여 넣습니다. 아래 코드에서 fprintf (bt, '0') 는 랩톱의 Bluetooth를 사용하여 MATLAB에서 HC-05로 '0'을 보내는 데 사용됩니다. Arduino는 HC-05를 통해 '0'을 수신하고 11 번째 핀을 LOW 로 만들어 LED를 끕니다.
글로벌 bt; fprintf (bt, '0');
에서 BLINK의 버튼의 기능 은 LED를 깜박 코드 아래 사용합니다. 용 루프가 LED 10 번 깜박하는데 사용된다.
글로벌 bt; for i = 1:10 fprintf (bt, '1'); pause (0.5); fprintf (bt, '0'); pause (0.5); 종료
MATLAB GUI 코딩을 완료하고 회로도에 따라 하드웨어를 설정 한 후 실행 버튼을 클릭하기 만하면.m 파일에서 편집 된 코드가 실행됩니다.
MATLAB이 응답하는 데 몇 초가 걸릴 수 있습니다. MATLAB이 BUSY 표시를 표시 할 때까지 GUI 버튼을 클릭하지 마십시오. 이는 아래와 같이 화면의 왼쪽 하단 모서리에 표시됩니다.
모든 준비가 완료되면 LED-ON, LED OFF 및 BLINK 버튼을 클릭하여 각각 LED를 켜고, 끄고, 깜박입니다. 이 프로젝트의 모든 코드 파일은 여기에서 다운로드하거나 아래 제공된 코드를 사용할 수 있습니다.
아래 비디오 에서 MATLAB GUI를 사용하여 Bluetooth를 통해 MATLAB에서 Arduino로 데이터를 전송 하는 전체 프로세스를 이해하십시오.