기술 스마트 디스플레이 HOST와 SmartDisplay 제품의 호환 원리

HOST와 SmartDisplay 제품의 호환 원리

개요

최근 출시된 SmartDisplay 제품에서는 고객의 최종 장비를 사용해 HOST 측에서 제어하는 방법보다는 기능과 특징 자체에 더 주안점을 두었습니다. 이 글에서는 게이지를 예로 들어 물리적 스위치와 HOST(Arduino) 데이터를 SmartDisplay 모듈로 전송하고 업데이트하는 방법을 설명합니다.

설명

이 글에서는 호스트 컨트롤러로부터 수신한 240도 게이지를 표시함에 있어 SmartDisplay CANBUS 4.3인치 모듈을 사용하는 법을 설명하였습니다. 호스트는 Arduino Mega 2560 보드이며 CANBUS 실드와 Rotary Angle Sensor를 적용하였습니다. 필수 구성 요소는 아래와 같습니다.

  1. SmartDisplay CANBUS 4.3인치
  2. ARDUINO Mega 2560
  3. CAN-Bus 실드
  4. Rotary Angle Sensor
  5. CANBus 동글
  6. 소프트웨어 GUI 빌더
 

시스템 다이어그램

시스템 다이어그램

1단계: GUI 빌더에서 프로젝트 디자인

1.1 GUI 빌더에서 새 프로젝트를 만들고 4.3인치 디스플레이 빈 템플릿을 선택합니다.

GUI 빌더에서 새 프로젝트를 만들고 4.3인치 디스플레이 빈 템플릿을 선택합니다.

1.2 리소스 패널에서 배경 스타일을 0으로 변경합니다. 그러면 패널이 검은색 화면 이미지 파일을 선택해줍니다.

리소스 패널에서 배경 스타일을 0으로 변경합니다. 그러면 패널이 검은색 화면 이미지 파일을 선택해줍니다.

1.3 게이지 편집(Gauge Edit) 창에서 니들 회전 각도를 편집합니다.

►첫 단계로는 게이지 스타일 6에서 수정(Modify) 버튼을 클릭합니다.

첫 단계로는 게이지 스타일 6에서 수정(Modify) 버튼을 클릭합니다

►이것을 선택하면 게이지 편집기 창에 미리 보기 게이지가 표시됩니다(아래 그림 참조). 다음과 같은 단계를 따르세요.

이것을 선택하면 게이지 편집기 창에 미리 보기 게이지가 표시됩니다(아래 그림 참조). 다음과 같은 단계를 따르세요.

►“상세 정보 표시”(Show Details) 상자에 체크 표시하여 니들 회전에 관한 자세한 정보를 표시합니다.

상세 정보 표시(Show Details) 상자에 체크 표시하여 니들 회전에 관한 자세한 정보를 표시합니다

►니들 각도 범위의 경우, 최솟값과 최댓값 각도 매개변수를 변경하려면 각도(Degree) 영역의 +/- 버튼을 누르면 됩니다(그림 참조).

니들 각도 범위의 경우, 최솟값과 최댓값 각도 매개변수를 변경하려면 각도(Degree) 영역의 +/- 버튼을 누르면 됩니다(그림 참조).

값 범위(Value Range)는 두 개의 값으로 정의됩니다. 값 최솟값과 최댓값을 사용해 CANbus를 통해 값을 수신할 때 니들의 최소/최대 회전 각도를 매핑합니다.

값 범위(Value Range)는 두 개의 값으로 정의됩니다. 값 최솟값과 최댓값을 사용해 CANbus를 통해 값을 수신할 때 니들의 최소/최대 회전 각도를 매핑합니다.

►게이지 디자인을 완료할 때. 결과를 확인하려면 값 테스트(Test Value) 슬라이더를 오른쪽으로 끌어 각도가 최댓값/각도에 도달할 때까지 늘리면 됩니다.

게이지 디자인을 완료할 때. 결과를 확인하려면 값 테스트(Test Value) 슬라이더를 오른쪽으로 끌어 각도가 최댓값/각도에 도달할 때까지 늘리면 됩니다.

2단계: 프로젝트 빌드 및 업로드

2.1 이전 단계를 완료했을 때. 페이지 정보(Page Info) 시트로 전환하여 특정 게이지 - 스타일 6을 화면 가운데로 끌어옵니다.

2.2 USB2CAN으로 PC와 SmartDisplay를 연결합니다. “디바이스 연결”(Connect Device)과 “프로젝트 업로드”(Upload the project) 아이콘을 누르면 됩니다. GUI 빌더를 통해 리소스와 페이지 설정이 SmartDisplay 모듈에 업데이트됩니다. 아래의 이미지를 참조하세요.

USB2CAN으로 PC와 SmartDisplay를 연결합니다.

USB2CAN으로 PC와 SmartDisplay를 연결합니다.

2.3 화면이 시작 화면에서 작동 화면으로 점프하며, SmartDisplay 4.3인치 CANbus에 다음과 같은 화면이 표시되면 업로드 프로세스가 성공했다는 뜻입니다.

화면이 시작 화면에서 작동 화면으로 점프하며, SmartDisplay 4.3인치 CANbus에 다음과 같은 화면이 표시되면 업로드 프로세스가 성공했다는 뜻입니다.

3단계: Arduino 호스트 프로그래밍

Arduino 호스트 프로그래밍

3.1 GUI 빌더의 페이지 시트로 전환합니다. 게이지 스타일 6의 인덱스는 CANopen 구조에서 정의된 0(0x2000)에 해당합니다. 객체의 인덱스에 주의해야 합니다. 객체의 인덱스가 알려진 경우, 프로그래밍하면서 객체의 상태를 폴링하거나 변경할 수 있습니다(아래 샘플 코드 단락 참조).

3.2 Arduino 호스트를 사용해 type/ x/ y/ style/ 구성과 객체 0의 배경 이미지를 설정할 수 있습니다. 프로그램에서 “ConfigSmartDisplay” 함수 명령을 사용하면 됩니다. 아니면 SmartDisplay가 플래시 온보드(GUI 빌더가 설정을 업로드함)의 기존 객체 데이터를 읽어, Arduino 호스트로 프로그래밍하지 않고 화면에 구성된 객체를 배치하기도 합니다.

Arduino host-1

Arduino host-2

3.3 Arduino 호스트가 실물 Rotary Angle Sensor로부터 값 변경을 수신하는 경우. CANopen 프로토콜을 통해 특정 값을 SmartDisplay로 보냅니다. “명령 구조 ID와 하위 인덱스” 요점은 다음 프로그램을 참조하세요. 이 프로그램의 목적은 실물 Rotary Angle에서 변경된 값에 따라 게이지(객체 인덱스 0) 값을 업데이트하는 데 있습니다.

Arduino host-3

부록: 프로젝트 설정

위의 프로그램에 대한 더 자세한 정보는 https://github.com/Smart-Display-Series/SmartDisplay_CANbus_Arduino_Examples 링크를 참조하시고, 아래의 실제 하드웨어 링크도 참조하시기 바랍니다. 축하합니다! 프로젝트를 완료했습니다.


직접 사용해보시고 구매하세요! Winstar GUIBuilder 애플리케이션을 다운로드하려면 당사에 문의하시기 바랍니다.
목록으로 돌아가기
go top
close