실리콘 로고

SILICON LABS Lab 3B – 스위치 온/오프 수정 사용자 가이드

SILICON LABS Lab 3B - 스위치 켜기/끄기 수정

이 실습에서는 다음 중 하나를 수정하는 방법을 보여줍니다.ampZ-Wave SDK의 일부로 제공되는 응용 프로그램.

이 운동은 "Z-Wave 1-Day Course" 시리즈의 일부입니다.

  1. SmartStart를 사용하여 포함
  2. Zniffer를 사용하여 Z-Wave RF 프레임 해독
  3. 3A: 컴파일 스위치 켜기/끄기 및 디버그 활성화
    3B: 스위치 켜기/끄기 수정
  4. FLiRS 장치 이해

 

주요 특징

  • GPIO 변경
  • PWM 구현
  • 온보드 RGB LED 사용

 

1. 서론

이 연습은 이전 연습인 "3A: Compile Switch On/Off 및 enable debug"를 기반으로 하며 Switch On/Off s를 컴파일하고 사용하는 방법을 보여줍니다.amp르 응용 프로그램.

이 연습에서는 s를 수정합니다.ampLED를 제어하는 ​​GPIO를 변경하여 애플리케이션을 변경합니다. 또한 RGB LED를 사용하고 PWM을 사용하여 색상을 변경하는 방법을 배웁니다.

1.1 하드웨어 요구 사항

  • 1 WSTK 메인 개발 보드
  • 1 Z-Wave 무선 개발 보드: ZGM130S SiP 모듈
  • 1 UZB 컨트롤러
  • 1 USB 지니퍼

1.2 소프트웨어 요구사항

  • Simplicity Studio v4
  • Z-웨이브 7 SDK
  • Z-Wave PC 컨트롤러
  • Z-웨이브 즈니퍼

그림 1 Z-Wave SiP 모듈이 있는 메인 개발 보드

그림 1: Z-Wave SiP 모듈이 있는 메인 개발 보드

1.3 전제 조건
이전 실습에서는 PC 컨트롤러 및 Zniffer 애플리케이션을 사용하여 Z-Wave 네트워크를 구축하고 개발 목적으로 RF 통신을 캡처하는 방법을 다루었습니다. 이 연습에서는 사용자가 이러한 도구에 익숙하다고 가정합니다.

이전 실습 실습에서는 s를 사용하는 방법도 다루었습니다.ampZ-Wave SDK와 함께 제공되는 응용 프로그램. 이 연습에서는 사용자가 다음 중 하나를 사용하고 컴파일하는 데 익숙하다고 가정합니다.amp르 응용 프로그램.

 

2. 보드 인터페이스 탐색

Z-Wave 프레임워크는 board.h 및 board.c에 의해 정의된 하드웨어 추상화 계층(HAL)과 함께 제공되어 각 하드웨어 플랫폼에 대한 구현 가능성을 제공합니다.

HAL(Hardware Abstraction Layer)은 여러 하드웨어 플랫폼에서 실행할 수 있는 응용 프로그램에 일관된 인터페이스를 제공하는 시스템 하드웨어와 해당 소프트웨어 간의 프로그램 코드입니다. 이점을 취하기 위해tag이 기능을 사용하려면 애플리케이션이 직접이 아니라 HAL에서 제공하는 API를 통해 하드웨어에 액세스해야 합니다. 그런 다음 새 하드웨어로 이동할 때 HAL만 업데이트하면 됩니다.

2.1 S 열기amp르 프로젝트
이 연습을 위해서는 Switch On/Off s를 열어야 합니다.amp르 응용 프로그램. "3A 컴파일 켜기 끄기 및 디버그 활성화" 연습을 완료했다면 Simplicity Studio IDE에서 이미 열려 있어야 합니다.

이 섹션에서 우리는 보드를 볼 것입니다 files 및 LED가 초기화되는 방법을 이해합니다.

  1. 메인에서 file "SwitchOnOff.c", "ApplicationInit()"을 찾아 Board_Init()에 대한 호출을 확인합니다.
  2. Board_Init()에 코스를 놓고 F3 키를 눌러 선언문을 엽니다.

그림 2 열린 Samp르 프로젝트

3. Board_Init()에서 호출된 Board_Con-figLed()에 의해 BOARD_LED_COUNT에 포함된 LED가 어떻게 초기화되는지 확인합니다.

그림 3 열린 Samp르 프로젝트

4. BOARD_LED_COUNT에 코스를 놓고 F3을 눌러 선언을 엽니다.
5. led_id_t에 정의된 LED는 다음과 같습니다.

그림 4 열린 Samp르 프로젝트

6. 보드로 돌아가기.c file.
7. 교육자를 Board_ConfigLed()에 놓고 F3 키를 눌러 선언문을 엽니다.
8. led_id_t에 정의된 모든 LED가 Board_ConfigLed()에서 출력으로 구성되었음을 확인하십시오.

그림 5 열린 Samp르 프로젝트

이것이 의미하는 바는 개발 보드의 모든 LED가 이미 출력으로 정의되어 사용할 준비가 되어 있다는 것입니다.

 

3. Z-Wave S로 수정amp르 신청

이 연습에서는 Switch On/Off s에서 LED에 사용되는 GPIO를 수정합니다.amp르 응용 프로그램. 이전 섹션에서 개발 보드의 모든 LED가 이미 출력으로 초기화되어 사용할 준비가 된 방법을 배웠습니다.

3.1 RGB LED 사용

버튼 보드의 LED 대신 Z-Wave 개발 모듈의 온보드 RGB LED를 사용할 것입니다.

1. 그림 6과 같이 SwitchOnOff.c 기본 애플리케이션에서 RefreshMMI 기능을 찾습니다. file.

그림 6 수정이 없는 RefreshMMI

그림 6: 수정하지 않은 RefreshMMI

2. "Board_SetLed" 기능을 사용하지만 GPIO를 다음으로 변경합니다.
BOARD_RGB1_R
BOARD_RGB1_G
BOARD_RGB1_B

3. 그림 3과 같이 OFF 상태와 ON 상태에서 “Board_SetLed”를 7번 호출합니다.

그림 7 RGB LED를 사용하도록 수정된 RefreshMMI

이제 새로운 수정 사항이 구현되었으며 컴파일할 준비가 되었습니다.
장치를 프로그래밍하는 단계는 "3A 컴파일 켜기 끄기 및 디버그 활성화" 연습에서 다루며 여기에서 간단히 반복됩니다.

  1. "빌드"를 클릭하십시오 아이콘 1 버튼을 눌러 프로젝트 빌드를 시작합니다.
  2. 빌드가 완료되면 "Binaries" 폴더를 확장하고 *.hex를 마우스 오른쪽 버튼으로 클릭합니다. file "Flash to Device..."를 선택합니다.
  3. 팝업 창에서 연결된 하드웨어를 선택합니다. "Flash Programmer"는 이제 필요한 모든 데이터로 미리 채워져 있으며 "Program"을 클릭할 준비가 되었습니다.
  4. "프로그램"을 클릭합니다.

잠시 후 프로그래밍이 완료되고 최종 장치가 이제 수정된 버전의 Switch On/Off로 깜박입니다.

3.1.1 기능 테스트

이전 연습에서 SmartStart를 사용하여 보안 Z-Wave 네트워크에 장치를 이미 포함했습니다. 지침은 "SmartStart 사용 포함" 연습을 참조하십시오.

힌트 내부 file 시스템은 재프로그래밍 사이에 지워지지 않습니다. 이렇게 하면 노드가 네트워크에 남아 있고 다시 프로그래밍할 때 동일한 네트워크 키를 유지할 수 있습니다.

모듈이 작동하는 주파수 또는 DSK 등을 변경해야 하는 경우 새 주파수가 내부 NVM에 기록되기 전에 칩을 "삭제"해야 합니다.

따라서 귀하의 장치는 이미 네트워크에 포함되어 있습니다.

RGB LED를 켜고 끌 수 있는지 확인하여 기능을 테스트합니다.

  • PC 컨트롤러에서 "Basic Set ON" 및 "Basic Set OFF"를 사용하여 기능을 테스트합니다. RGB LED가 켜졌다 꺼졌다 해야 합니다.
  • RGB LED는 하드웨어에서 BTN0을 사용하여 켜고 끌 수도 있습니다.

이제 수정이 예상대로 작동하고 S에서 사용되는 GPIO가 성공적으로 변경되었음을 확인했습니다.amp르 신청

3.2 RGB 색상 구성 요소 변경

이 섹션에서는 RGB LED를 수정하고 색상 구성 요소를 혼합하려고 합니다.

“RGB 색상 모델의 색상은 빨강, 초록, 파랑이 각각 얼마나 포함되어 있는지를 나타내는 것으로 설명됩니다. 색상은 RGB XNUMX색(r,g,b)으로 표현되며, 각 구성 요소는 XNUMX에서 정의된 최대값까지 다양할 수 있습니다. 모든 구성 요소가 XNUMX이면 결과는 검은색입니다. 모든 것이 최대이면 결과는 가장 밝게 표현할 수 있는 흰색입니다."

위키피디아에서 RGB 색상 모델.

그림 8 RGB 색상 구성 요소가 함께 혼합됨

이전 섹션에서 모든 색상 구성 요소를 활성화했기 때문에 RGB LED는 ON일 때 흰색입니다. 개별 구성 요소를 켜고 끄면 LED를 변경할 수 있습니다. 또한 각 색상 성분의 강도를 조정하여 그 사이의 모든 색상을 만들 수 있습니다. 이를 위해 PWM을 사용하여 GPIO를 제어합니다.

  1. ApplicationTask()에서 그림 9와 같이 PwmTimer를 초기화하고 RGB 핀을 PWM으로 설정합니다.                                                                                그림 9 ApplicationTask에서 초기화된 PWM
  2. RefreshMMI()에서는 모든 색상 구성 요소에 대해 난수를 사용합니다. Rand()를 사용하여 LED가 켜질 때마다 새 값을 가져옵니다.
  3. DPRINTF()를 사용하여 새로 생성된 값을 직렬 디버그 포트에 씁니다.
  4. 임의의 값을 사용하려면 Board_SetLed()를 Board_RgbLedSetPwm()으로 대체하십시오.
  5. 업데이트된 RefreshMMI()에 대해서는 그림 10을 참조하십시오.

그림 10 PWM으로 업데이트된 RefreshMMI

그림 10: PWM으로 업데이트된 RefreshMMI

이제 새로운 수정 사항이 구현되었으며 컴파일할 준비가 되었습니다.

  1. "빌드"를 클릭하십시오 아이콘 1 버튼을 눌러 프로젝트 빌드를 시작합니다.
  2. 빌드가 완료되면 "Binaries" 폴더를 확장하고 *.hex를 마우스 오른쪽 버튼으로 클릭합니다. file "Flash to Device..."를 선택합니다.
  3. 팝업 창에서 연결된 하드웨어를 선택합니다. "Flash Programmer"는 이제 필요한 모든 데이터로 미리 채워져 있으며 "Program"을 클릭할 준비가 되었습니다.
  4. "프로그램"을 클릭합니다.

잠시 후 프로그래밍이 완료되고 최종 장치가 이제 수정된 버전의 Switch On/Off로 깜박입니다.

3.2.1 기능 테스트

RGB LED의 색상을 변경할 수 있는지 확인하여 기능을 테스트하십시오.

  1. PC 컨트롤러에서 "Basic Set ON"을 사용하여 기능을 테스트합니다.
  2. "Basic Set ON"을 클릭하면 색상 변화를 확인할 수 있습니다.

이제 수정이 예상대로 작동하고 PWM을 사용하도록 GPIO를 성공적으로 변경했음을 확인했습니다.

4 토론

이 연습에서는 스위치 켜기/끄기를 간단한 LED 제어에서 다색 LED 제어로 수정했습니다. PWM 값에 따라 이제 모든 색상과 강도로 변경할 수 있습니다.

  • 이 애플리케이션의 장치 유형으로 "바이너리 스위치"를 사용해야 합니까?
  • 다색 LED에 더 적합한 명령 클래스는 무엇입니까?

질문에 답하려면 Z-Wave 사양을 참조해야 합니다.

  • Z-Wave Plus v2 장치 유형 사양
  • Z-Wave 애플리케이션 명령 클래스 사양

이것으로 Z-Wave S의 GPIO를 수정하고 변경하는 방법에 대한 자습서를 마칩니다.amp르 응용 프로그램.

 

이 매뉴얼에 대해 더 자세히 알아보고 PDF를 다운로드하세요:

문서 / 리소스

SILICON LABS Lab 3B - 스위치 켜기/끄기 수정 [PDF 파일] 사용자 가이드
실습 3B, 스위치 수정, 켜기, 끄기, Z-Wave, SDK

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *