banner
홈페이지 / 블로그 / Bluetooth Low를 위해 Raspberry Pi Pico W 사용
블로그

Bluetooth Low를 위해 Raspberry Pi Pico W 사용

Jun 16, 2023Jun 16, 2023

프레드 이디 | 2023년 8월 31일

버전 1.5.1이 출시되면서 Raspberry Pi Pico SDK는 이제 Raspberry Pi Pico W 개발 플랫폼에서 Bluetooth Classic 및 Bluetooth Low Energy(BLE)를 지원합니다. 예상대로 Bluetooth 지원 발표 이후 BlueKitchen의 BTstack 포트를 기반으로 한 여러 Pico Bluetooth 예제를 사용할 수 있게 되었습니다. Raspberry Pi Pico SDK 이식 예제 코드는 원래 BTstack C 언어 형식을 유지합니다. 그러나 공개 도메인에서 찾을 수 있는 BTstack 기반 Pico Bluetooth 예제의 대부분은 MicroPython 또는 Arduino에서 구현되었습니다. 이를 통해 이 토론의 목적은 Visual Studio Code 및 최신 Raspberry Pi Pico SDK 도구 체인을 사용하여 Ubuntu 22.04 LTS에서 개발된 작동하는 C 언어 Pico Bluetooth 저에너지 예제를 생성하는 것입니다. EDTP Electronics 다운로드 사이트에서 예제 프로젝트 소스 코드를 얻을 수 있습니다.

Raspberry Pi Pico W에 익숙하지 않은 분들을 위해 말씀드리자면 PicoW는 Bluetooth 무선 모듈을 통해 Bluetooth 무선 트래픽의 전송 및 수신을 감독하는 마이크로컨트롤러로 구성된 기본 BLE 하드웨어 구현입니다. 마이크로컨트롤러는 Bluetooth 스택에 의해 관리됩니다. Bluetooth 스택을 포함하면 PicoW 하드웨어가 Bluetooth 애플리케이션에서 클라이언트 또는 서버 역할을 맡을 수 있습니다. 따라서 PicoW는 센서를 서비스하는 원격 데이터 수집 장치 또는 원격 장치에서 센서 데이터를 수집하고 수집된 데이터를 중앙 처리 위치로 전송하는 데이터 저장 및 전달 장치 역할을 하도록 프로그래밍할 수 있습니다. PicoW 하드웨어는 또한 수신되는 Bluetooth 정보를 처리하고 그에 따라 GPIO 핀 뱅크 및 온칩 주변 장치를 통해 작동하는 독립형 모드에서 작동할 수 있습니다.

Raspberry Pi Pico SDK 버전 1.5.1을 설치하여 펌웨어 개발 프로세스를 시작합니다. Raspberry Pi Pico SDK 및 Linux용 GNU 툴체인 설치 지침은 Raspberry Pi 웹사이트에서 확인할 수 있습니다. 다음 단계에는 Visual Studio Code 설치가 포함됩니다. Ubuntu 22.04 LTS의 경우 Debian 버전의 Visual Studio Code를 다운로드하여 설치하려고 합니다. Visual Studio Code 설치는 Ubuntu 22.04 LTS 기본 제공 Debian 애플리케이션 설치 프로그램을 사용하여 수행할 수 있습니다.

설치 후 Visual Studio Code에는 일부 사용자 지정이 필요합니다. 컴파일 프로세스를 지원하려면 CMake 확장과 직렬 모니터도 설치하는 Visual Studio Code 확장 CMake 도구를 설치해야 합니다. 성공적인 컴파일을 위해 CMake는 Raspberry Pico SDK가 설치된 위치를 알아야 합니다. 절대 Raspberry Pi Pico SDK 위치는 CMake 도구 확장 설정에 수동으로 입력하는 Cmake:Environment 설정 PICO_SDK_PATH로 식별됩니다. 우리는 Linux에서 Raspberry Pi Pico SDK 및 관련 툴체인을 실행하고 있습니다. 따라서 CMake 도구 Cmake:Generator 설정 필드에 Unix Makefiles도 입력해야 합니다. 그게 다야. Visual Studio Code를 사용할 준비가 되었습니다.

Raspberry Pi Pico SDK는 Python 및 PyCryptodomex를 활용하여 Bluetooth 애플리케이션 소스 코드에 포함되어야 하는 Bluetooth 서비스 및 특성의 바이너리 데이터베이스 이미지를 구축합니다. Python은 Ubuntu 22.04 LTS 패키지와 함께 설치됩니다. PyCryptodomex를 수동으로 설치해야 합니다. PyCryptodomex 설치는 표준 Ubuntu sudo apt 설치 프로세스를 사용하여 수행됩니다. 자세한 PyCryptodomex 설치 지침은 PyCryptodomex 설명서 웹 페이지에서 찾을 수 있습니다. Raspberry Pi Pico SDK 도구 체인에 PyCryptodomex를 추가하면 이제 Raspberry Pi Pico W BLE 애플리케이션 코딩을 시작할 준비가 되었습니다.

우리의 BLE 애플리케이션은 Raspberry Pi Pico SDK의 nordic_spp_le_counter 예제를 기반으로 합니다. nordic_spp_le_counter 예제는 Nordic NUS(Nordic UART Service)의 유사한 버전입니다. Nordic NUS를 사용하면 마치 UART가 통신 링크의 양쪽에 있는 것처럼 BLE 장치가 Bluetooth를 사용하여 통신할 수 있습니다. Raspberry Pi Pico SDK nordic_spp_le_counter 예제는 실제로 동일한 이름의 BTstack 예제의 복사본입니다. Raspberry Pi Pico SDK 디렉터리 트리에서는 nordic_spp_le_counter 예제 소스 코드의 전체 블록을 찾을 수 없습니다. 따라서 BTstack nordic_spp_le_counter 예제 소스 코드를 펌웨어 빌드의 템플릿으로 사용하겠습니다.