솔루션 CANopen을 통해 호스트에서 Smart Display를 제어하는 방법 (게이지 제어 예제)

CANopen을 통해 호스트에서 Smart Display를 제어하는 방법 (게이지 제어 예제)

May 04, 2022

소개

지금까지 Smart Display를 소개할 때는 제품 자체의 기능과 특징을 중심으로 설명해 왔으며, 고객의 최종 시스템에서 호스트를 통해 Smart Display를 제어하는 방법은 상대적으로 자세히 다루지 않았습니다. 본 문서에서는 게이지를 예로 들어 물리적 컨트롤러와 호스트(Arduino)의 데이터를 Smart Display 모듈로 전송하여 화면을 업데이트하는 방법을 소개합니다.

본 예제에서는 4.3인치 CAN Bus Smart Display에 240도 게이지를 표시하고 호스트에서 제어하는 방법을 설명합니다. 호스트는 Arduino Mega 2560, CAN Bus Shield 및 Rotary Angle Sensor로 구성됩니다. 필요한 구성 요소는 다음과 같습니다.

  1. 4.3인치 CAN Bus Smart Display
  2. Arduino Mega 2560
  3. CAN Bus Shield
  4. Rotary Angle Sensor
  5. CAN Bus Dongle
  6. GUI Builder
 

시스템 구성도

Smart Display CANopen 호스트 제어 시스템 구성도

Step 1: GUI Builder에서 프로젝트 설계

1.1 새 프로젝트를 생성하고 GUI Builder에서 4.3인치 Display의 Blank 템플릿을 선택합니다.

GUI Builder에서 4.3인치 Smart Display 새 프로젝트 생성

1.2 Resource 패널의 Background Style 0에서 검은색 화면 이미지 파일을 선택합니다.

GUI Builder의 Background Style 0에서 검은색 배경 이미지 선택

1.3 Gauge Edit 창에서 게이지 바늘의 회전 각도를 설정합니다.

►먼저 Gauge Style 6의 Modify 버튼을 클릭합니다.

GUI Builder에서 Gauge Style 6 수정

►선택하면 Gauge Editor 창에 게이지 미리보기가 표시됩니다.

GUI Builder Gauge Editor의 게이지 미리보기

►"Show Details"를 선택하면 게이지 바늘 회전에 대한 상세 정보를 확인할 수 있습니다.

GUI Builder의 게이지 바늘 회전 Show Details 설정

►게이지 바늘의 최소 및 최대 각도는 Degree 영역의 +/- 버튼을 사용하여 조정할 수 있습니다.

GUI Builder에서 게이지 바늘의 최소 및 최대 각도 조정

Value Range는 최소값과 최대값으로 설정됩니다. CAN Bus를 통해 값을 수신하면 해당 값이 게이지 바늘의 최소 및 최대 회전 각도에 매핑됩니다.

GUI Builder에서 게이지 Value Range 설정

►게이지 설계가 완료되면 Test Value 슬라이더를 오른쪽으로 드래그하여 동작을 확인할 수 있습니다. Test Value가 증가함에 따라 게이지 바늘의 각도도 증가하며, 설정된 최대값에 도달하면 바늘도 최대 각도까지 이동합니다.

GUI Builder의 Test Value를 사용한 게이지 바늘 회전 테스트

Step 2: 프로젝트 빌드 및 업로드

2.1 위 설정을 완료한 후 Page Info 화면으로 전환하고 Gauge Style 6을 화면 중앙으로 드래그합니다.

2.2 USB2CAN을 통해 PC와 Smart Display를 연결한 후 "Connect Device"와 "Upload the Project" 아이콘을 차례로 클릭합니다. 리소스와 페이지 설정이 GUI Builder를 통해 Smart Display 모듈로 업로드됩니다.

GUI Builder에서 Smart Display 연결 및 프로젝트 업로드

GUI Builder 프로젝트 업로드 진행 정보

2.3 화면이 시작 화면에서 동작 화면으로 전환되고 4.3인치 CAN Bus Smart Display에 아래와 같은 화면이 표시되면 프로젝트 업로드가 정상적으로 완료된 것입니다.

프로젝트 업로드 후 4.3인치 Smart Display에 표시된 240도 게이지

Step 3: Arduino 호스트 프로그래밍

Smart Display CANopen 제어를 위한 Arduino 호스트 프로그래밍

3.1 GUI Builder의 Page 화면으로 전환합니다. CANopen 구조에서 Gauge Style 6의 인덱스는 object 0(0x2000)에 해당합니다. Arduino 호스트에서 객체의 상태를 폴링하거나 변경하려면 해당 객체의 인덱스를 확인해야 합니다. 자세한 내용은 아래 샘플 코드를 참조하십시오.

3.2 Arduino 호스트에서는 "ConfigSmartDisplay" 함수를 사용하여 object 0의 type, x/y 위치, style, configuration 및 배경 이미지를 설정할 수 있습니다. 또는 Arduino 호스트에서 별도로 설정하지 않고 Smart Display가 온보드 Flash에 저장된 기존 객체 데이터(GUI Builder를 통해 업로드된 설정)를 읽어 구성된 객체를 화면에 표시할 수도 있습니다.

Arduino 코드에서 Smart Display 객체 파라미터 설정

Arduino ConfigSmartDisplay 함수를 사용한 객체 설정 예제

3.3 Arduino 호스트가 Rotary Angle Sensor의 값 변화를 감지하면 해당 값을 CANopen을 통해 Smart Display로 전송합니다.

아래 프로그램에서 주요 명령 구조의 ID와 sub-index를 확인하십시오. 이 프로그램은 Rotary Angle Sensor에서 수신한 값의 변화에 따라 게이지 값(object index 0)을 업데이트합니다.

Arduino CANopen 프로그램을 통한 Smart Display 게이지 값 업데이트

부록: 프로젝트 설정 자료

위 프로그램에 대한 자세한 내용은 다음 GitHub 리포지토리를 참조하십시오: https://github.com/Smart-Display-Series/SmartDisplay_CANbus_Arduino_Examples. 아래 영상에서 실제 하드웨어 구성과 동작을 확인할 수 있습니다.

 

WINSTAR GUI Builder를 무료로 체험해 보세요. 신청 양식을 작성하시면 GUI Builder 다운로드 링크를 이메일로 보내드립니다.

비즈니스에 맞는 디스플레이 솔루션에 관해 궁금한 점이 있으십니까? 문의!

구독

Winstar의 최신 소식을 전하는 이메일을 받아보세요.

문의

가격/데이터시트/일반 문의

기술 지원

각종 기술적인 정보가 궁금하시면 문의하세요.

go top
연계
close

우리는 귀하의 프라이버시를 소중히 여깁니다

"모든 쿠키 허용"을 클릭하면 사이트 탐색을 개선하고, 사이트 사용을 분석하며, 마케팅 및 성능 노력에 도움을 주기 위해 쿠키를 귀하의 장치에 저장하는 데 동의한 것으로 간주됩니다. 이 주제에 대한 추가 정보는 당사의 정책에서 확인할 수 있습니다. 개인정보 보호정책

우리는 귀하의 프라이버시를 소중히 여깁니다

Winstar와 일부 제3자는 www.winstar.com.tw에서 쿠키를 사용합니다. 쿠키의 종류, 목적 및 관련된 제3자에 대한 자세한 내용은 아래 및 당사의 쿠키 정책에 설명되어 있습니다. 웹사이트에서 최상의 경험을 얻으려면 "모두 허용"을 클릭하여 당사의 쿠키 사용에 동의해 주세요. 또한 선호 설정을 하거나 필수 쿠키를 제외한 쿠키를 거부할 수도 있습니다.

동의 설정 관리

항상 활성화
필수 쿠키

이 쿠키는 웹사이트를 탐색하고 개인 정보 설정, 로그인 또는 양식 작성과 같은 기능을 사용할 수 있도록 하는 데 필수적입니다.

분석 쿠키

“통계 쿠키”라고도 알려진 이러한 쿠키는 웹사이트 사용에 대한 정보를 수집합니다. 예를 들어 어떤 페이지를 방문했는지, 어떤 링크를 클릭했는지와 같은 정보입니다. 자세한 내용을 확인하세요.