현재 DVMEGA+BlueStack과 연결해 사용하고 있는 라즈베리파이 2B 의 MMDVMHost 프로그램에 터치스크린을 설치해 보았습니다.
사용한 TFT LCD 터치스크린은 최근에 MMDVM에서 지원하기 시작한 중국산 Nextion 터치 스크린입니다.
가격도 굉장히 저렴합니다.
주문하자 판매자가 드라이버 있는 위치를 알려주네요. MMDVM에는 필요없겠지만 다른 목적으로 쓰실 분은 참조하시기 바랍니다.
https://github.com/itead/ITEADLIB_Arduino_Nextion
지난 11월 11일 AliExpress.com 의 할인행사시 주문했던 것이 이제 도착했습니다.
무료배송이긴 하지만 보통 25일 이상 걸리네요. 잊어버리고 느긋하게 기다리면 언젠가는 도착합니다. Hi
MMDVM에 전용의 디스플레이 장치를 부착하면, 각 모드별 접속 상황 등을 표시해줍니다.
현재 MMDVMHost에서 지원하는 Nextion LCD는 2.4인치, 2.8인치, 3.2인치, 3.5인치 등인데, 이번에 제가 구입한 것은 3.2" 크기 입니다.
(https://www.aliexpress.com/item/English-Version-Nextion-3-2-TFT-400X240-Touch-Screen-Display-HMI-LCD-Display-Module-Touch-Panel/32443541471.html?spm=2114.13010608.0.0.ji2niO)
간단한 구성입니다. LCD, 결선용 배선, 작은 PCB 하나.
작은 PCB는 LCD의 전원을 아래에서 설명하는 것과 같이 라즈베리파이의 GPIO 핀에서 끌어오지 않고 외부 +5V USB 전원장치를 사용하고자 할 때, 전원 케이블을 PCB의 마이크로 USB 컨넥터에 연결하고 출력 핀 + 및 -를 LCD 케이블의 + (적색 전선) 및 - (검정색 전선)에 연결하여 사용합니다.
사진으로는 잘 느끼지 못하지만, wide 형태의 디스플레이여서 옆으로 좀 깁니다 (아마도 16:9 종횡비?).
LCD 뒷면에 붙어있는 PCB의 모습입니다. 오른쪽에 모델명이 있고, 왼쪽에는 결선용 컨넥터, 윗쪽에는 SD카드 홀더입니다.
라즈베리파이 투명케이스에 바로 부착시킬 수 있으면 좋겠다는 희망하에, 정확한 사이즈를 몰라 눈대중으로 골랐는데 3.2"의 크기는 라즈베리파이 투명 케이스보다 PCB 길이가 조금 길고 높이는 짧습니다. 윗 사진은 라즈베리파이 투명 케이스 위에 LCD를 올려놓고 찍은 것입니다.
결선 방법
같이 공급된 배선의 컨넥터를 PCB의 건넥터에 꼽고, 반대쪽은 라즈베리파이의 GPIO 해당 핀에 꽂아줍니다.
빨간 선 : +5V
검정 선 : Ground
노란 선 : LCD의 RXD (라즈베리파이의 TXD) : 시리얼 통신 라인입니다
파란 선 : LCD의 TXD (라즈베리파이의 RXD) : 시리얼 통신 라인입니다
라즈베리파이의 GPIO 핀에 DVMEGA 등이 꼽혀있어 결선이 곤란한 경우에는 "USB to TTL" Converter를 별도로 구입하여 라즈베리파이의 USB 단자에 꽂아서 연결할 수 있습니다. 이때는 포트가 /dev/ttyUSB0로 바뀌겠지요?
전원이 인가되면 기본화면이 보입니다. 1~6번까지의 메뉴를 터치하면 서브화면으로 이동되는 것을 볼 수 있습니다.
원래 아두이노에 물리는 것을 가정해 입력된 것으로 보입니다.
라즈베리파이 (MMDVMHost) 에서의 설정
라즈베리파이에 MMDVMHost 프로그램 등이 정상적으로 설치되어 작동하고 있다는 가정하에 설명합니다.
pi 로 로그인합니다.
$ cd /opt/MMDVMHost/Nextion
$ ls -l
설치방법은 README.md 파일에 상세히 설명되어 있습니다.
각 사이즈별 TFT LCD 및 HMI 디스플레이 드라이버들이 들어 있습니다. 현재는 2.4인치, 2.8인치, 3.2인치, 3.5인치 등이 지원되는군요.
제가 구입한 제품의 드라이버는 NX4024T032.tft 인데, 의미는
4024 : 해상도 400 x 240
T : Basic Display (K는 Enhanced Display)
032 : 사이즈 3.2인치 등입니다.
nextion.py 파일은 설치용 python 스크립트입니다.
다음과 같이 설치합니다.
$ sudo apt-get install python-serial python
$ python nextion.py NX4024T032.tft /dev/ttyAMA0
자동으로 시리얼 통신속도를 설정하고, 관련 데이터를 LCD로 전송하여 기입하는 진행과정이 LCD 화면 및 터미날에 동시에 표시됩니다.
이 과정이 성공적으로 끝나면 다음과 같이 기본화면이 MMDVM 로고로 변경되어 표시됩니다.
이 과정은 하나의 터치스크린에 대해 한 번만 행하면 됩니다. 이 후 다른 라즈베리파이에 연결해도 MMDVM.ini 의 설정만 잡아주면 동작됩니다.
다음은 MMDVM.ini에서의 설정입니다.
$ sudo nano /opt/MMDVMHost/MMDVM.ini
[General]
Callsign=HL5BPL
Timeout=180
Duplex=0
# ModeHang=10
RFModeHang=10
NetModeHang=3
#Display=None
Display=Nextion
Daemon=0
위 빨간색처럼 Nextion 디스플레이를 사용한다고 설정하고,
[Nextion]
# Port=modem
Port=/dev/ttyAMA0
Brightness=50
DisplayClock=1
UTC=0
IdleBrightness=20
위 빨간색처럼 포트가 맞게 설정되었는지 확인합니다.
이후
$ sudo reboot
리부팅하면 정상적으로 설치를 마치게 됩니다.
무신호시 대기화면입니다.
MMDVM.ini에 설정된 호출부호와 DMR ID (CCS7 ID)가 표시되고 아래쪽에 날짜와 시간이 표시됩니다.
라즈베리파이에서 Time Zone은 KST로 바꾸어놔서 시간이 맞는데, Locale을 안바꾸었더니 날짜표시가 유럽식입니다.
"en_GB.UTF-8" 로 기본 설정되어 있는 Locale을 "ko_KR.UTF-8" 로 바꾸어 봤더니 일부 한글로 표시되는 부분이 죄 깨져버려서 포기했습니다. 한글 쓸 일이 없어서 한글폰트등이 설치되어 있지 않기 때문이겠죠.
Locale을 "en_US.UTF-8"로 바꾸어 보니 미국식 날짜표시 (11/30/16) 와 12시간 형식 시간표시로 바뀌네요.
Locale 및 Time Zone 변경은 sudo raspi-config 에서 하면 됩니다.
D-Star 신호가 들어올 때의 화면입니다.
DMR 수신 상태의 화면입니다.
DVMEGA 라서 Time Slot 2 만 사용됨을 알 수 있습니다. MMDVM 보드에서는 TS1, 2 다 사용되겠지요?
C4FM 수신 상태의 화면입니다.
참고로 https://github.com/g4klx/MMDVMHost 의 README.md 파일에 보면, 현재 지원하는 디스플레이 종류가 나와 있습니다.
It can optionally control various Displays. Currently these are:
The HD44780 displays are integrated with wiringPi for Raspberry Pi based platforms. The other displays can be directly connected to the UART on Raspberry Pis or with FT-232RL modules to any USB port.
첫댓글 고민하고 있었는데 좋은 정보 감사합니다.
이 제품에는 아직 맞는 케이스가 없이 알맹이만 판매하는 것 같은데 케이스는 별도로 고민을 하셔야 할 것 같습니다.
화면 시원하고 보기 좋네요
오늘 Nextion 스크린 오더 했습니다. ㅋㅋㅋ
도착하면 케이스는 아크릴로 한번 만들어 보려고 생각 중 입니다.
잘봤습니다
정보 감사합니다