저렴한 FPV 단일 노드 레이스 타이밍 솔루션
이 프로젝트가 마음에 든다면 코드베이스에 기여하고, 테스트 및 피드백을 제공하고, 새로운 아이디어를 공유하고, PhobosLT 복음 전파를 도우면서 지원할 수 있습니다. 나에게 버블티나 맥주를 사주는 것도 고려해 보세요. 그러면 프로젝트를 더 좋게 만들 수 있는 원동력이 될 것입니다!
Phobos LapTimer(또는 PhobosLT)는 5.8GHz FPV 조종사를 위한 간단하지만 강력한 랩 타이밍 솔루션입니다. 개인용으로 설계되었으며 작은 드론(2인치 이하)을 염두에 두고 설계되었지만 더 큰 드론과 함께 실행하는 데에는 아무런 문제가 없습니다! 자체 전원이 공급되고 WiFi를 통해 휴대폰, 태블릿 또는 노트북과 통신하는 소형 독립형 장치입니다. 이 프로젝트의 목표는 거실이나 지역 훈련 장소에서 친구와 함께 소란 없이 경주 연습 세션을 원할 때마다 어디에서나 사용할 수 있는 사용하기 간단하고 작은 장치를 갖는 것입니다. 코드의 일부는 RotorHazard 및 ExpressLRS를 기반으로 합니다. 이 조직 뒤에 있는 사람들에게 큰 찬사를 보냅니다. 그들은 커뮤니티를 위해 많은 일을 하고 있으며 FPV의 미래를 형성하고 있습니다. 아직 이 프로젝트를 모르고 시간이 있다면 꼭 확인해 보세요!
PhobosLT에는 다음과 같은 기능이 있습니다.
5.8GHz 아날로그, HDZero, Walksnail 시스템의 단일 노드 타이밍.
선택적으로 조종사 이름을 포함한 음성 설명.
실시간 RSSI 판독 및 교정 - 16m^2 또는 200ft^2 방과 같은 작은 공간에서도 타이밍을 허용합니다.
연속 2랩, 연속 3랩 및 즉시 판독 옵션(RaceGOW용으로 특별히 개발됨).
볼 수 있는 랩 기록.
오탐을 방지하기 위해 측정 가능한 최소 랩 시간을 설정하는 기능.
구성 가능한 저전압 경보.
크기가 작아서 구축이 용이합니다.
상대적으로 저렴합니다.
추가 앱이 필요하지 않으며 자체적으로 충분한 솔루션입니다.
향후 개발 계획:
WiFi 또는 웹 구성기를 통해 깜박입니다.
납땜을 최소화하는 맞춤형 하드웨어.
ExpressLRS 및 고글 VRX와 통합하여 랩 타임을 OSD로 전달합니다.
스플릿 타임을 측정하기 위해 RotorHazard와 통합.
낮은 정확도로 동시에 여러 조종사를 지원합니다.
프로젝트의 핵심은 ESP32 보드 + RX5808 모듈입니다. ESP는 모든 구성이 포함된 간단한 웹 페이지를 제공하는 웹 서버 역할을 합니다. WiFi 연결과 웹 브라우저가 있는 모든 장치를 사용하여 연결하고, 타이머를 구성하고, 랩 타임을 측정할 수 있습니다.
랩 타이밍은 시간 경과에 따른 RSSI를 측정하고 이를 필터링한 후 RSSI의 피크를 확인하는 방식으로 이루어집니다. 드론이 타이머에 가까울수록 RSSI가 높아지기 때문입니다. 이를 기반으로 우리는 언제 피크를 잘라야 하는지 알려주는 Enter RSSI
및 Exit RSSI
임계값을 설정했습니다. RSSI 진입과 종료 사이의 시간은 마지막 피크와 랩인 현재 피크 사이의 시간을 측정하는 데 사용됩니다.
클라이언트와의 통신은 WiFi를 통해 이루어집니다. ESP32는 액세스 포인트를 설정하고 클라이언트가 이에 연결됩니다. RSSI 그래프를 실시간으로 그리기 위해 웹소켓을 통해 RSSI를 전송합니다. 구성, 사용자 상호 작용 및 이벤트(예: 타이머 시작, 중지, 랩 타임 보고)는 휴식 호출을 사용하여 수행됩니다.
브라우저는 articulate.js 라이브러리를 사용하여 소리를 내거나 랩 타임을 알리는 데 활용되지만 옵션(권장) 신호음을 타이머에 설치하여 피크가 감지될 때마다 소리를 내거나 예를 들어 타이머가 울릴 때 경고할 수도 있습니다. 배터리 전압이 낮습니다.
Phobos LapTimer를 구축하려면 다음이 필요합니다.
ESP32 브레이크아웃 보드(USB 포함 권장) 코드베이스는 1s 18650 리튬 이온 셀 슬롯과 전압 감지 회로가 내장된 LilyGo T-ENERGY
사용한 플러그 앤 플레이 방식입니다. 지원되는 보드:
LilyGo T-ENERGY - 추천합니다.
LilyGo T-CELL - 위의 것보다 비싸지만 충전 회로가 있습니다.
ESP32-DevKit - 기본이지만 저렴합니다.
SPI 모드가 포함된 RX5808 VRx 모듈.
배터리, 보조 배터리 등 모든 종류의 전압 공급 장치. 사용되는 ESP32 모듈에 따라 달라집니다.
(선택 사항) 모든 색상의 LED(+ 전류 관리를 위한 일치하는 저항기).
(선택 사항) 발전기가 포함된 3v3~5v 부저(수동이 아닌 능동형).
RX5808을 ESP32에 연결하려면 아래 핀아웃 표를 사용하십시오. 더 나은 RSSI 해상도를 얻고 냉각에 도움이 되도록 RX5808의 +5v 핀을 3v3 소스에 연결하여 RX5808을 언더볼팅해야 합니다.
ESP32 핀 | RX5880 |
---|---|
33 | RSSI |
접지 | 접지 |
19 | CH1 |
22 | CH2 |
23 | CH3 |
3V3 | +5V |
선택 사항이지만 권장되는 LED, 부저 및 배터리 전압 입력 핀아웃:
ESP32 핀 | 주변기기 |
---|---|
21 | LED 양극(+) |
27 | 부저 양성(+) |
35 | VBAT 입력 MAX 3.3v(코드에서는 1s 리튬 이온 셀이 있는 1/2 전압 분배기를 가정함) |
아래에서 주변 장치의 연결 다이어그램을 찾을 수 있습니다. T-Energy 및 T-Cell의 경우 RX5808과 버저만 연결하면 됩니다.
또는 커뮤니티에 타이머를 만들어 달라고 요청할 수도 있습니다. 불일치에 대해 물어보세요!
현재 펌웨어 빌드는 Visual Studio Code를 통해 이루어집니다. 툴체인 설정은 ExpressLRS와 정확히 동일하므로 이미 ExpressLRS 툴체인을 설정하고 실행 중이라면 괜찮을 것입니다. 펌웨어를 빌드하기 위한 요구 사항은 다음과 같습니다.
비주얼 스튜디오 코드.
플랫폼IO.
Git.
컴퓨터에 도구 체인을 설정하려면 다음 단계를 수행하십시오.
vscode를 다운로드하고 설치합니다.
vscode를 열고 오른쪽 도구 모음에서 Extensions
아이콘을 클릭하세요(확장 관리 참조).
검색 상자에 platformio를 입력하고 확장 기능을 설치합니다( pio install
설명서 참조).
자식을 설치하십시오.
펌웨어를 빌드하기 전 마지막 단계는 이 저장소를 컴퓨터에 복제하는 것입니다.
VSCode에서 명령 팔레트를 엽니다(MacOS에서는 Cmd+Shift+P
, Windows에서는 Ctrl+Shift+P
사용).
Git: Clone
입력하세요.
클릭하세요.
그런 다음 PhobosLT 저장소 URL(Github 페이지 상단의 Clone
버튼에서 찾을 수 있음)을 입력하세요.
저장소 복사본을 배치할 폴더를 선택합니다.
펌웨어를 빌드하려면 왼쪽 도구 모음에서 PlatformIO
아이콘을 클릭하면 작업 목록이 표시됩니다. 이제 Project Tasks
선택하고 PhobosLT
-> General
확장한 후 Build
선택합니다. 몇 초 후에 터미널에 결과가 표시됩니다( Success
).
플래시를 시도하기 전에 ESP32와 컴퓨터가 USB를 통해 연결되어 있는지 확인하세요. 플래싱은 2단계 프로세스입니다. 먼저 펌웨어를 플래시한 다음 정적 파일 시스템 이미지를 ESP32에 플래시해야 합니다.
펌웨어를 플래시하려면 왼쪽 도구 모음에서 PlatformIO
아이콘을 클릭하면 작업 목록이 표시됩니다. 이제 Project Tasks
선택하고 PhobosLT
-> General
확장한 후 Upload
선택하세요. 터미널에 결과가 표시됩니다( Success
). 다음으로 2단계로 이동합니다.
Project Tasks
선택하고 PhobosLT
-> Platform
확장한 후 Upload Filesystem Image
선택합니다. 터미널에 Success
라고 표시된 결과를 기다립니다. 그게 다야! 타이머를 사용할 준비가 되었습니다.
문제가 발생했다면 터미널도 확인해 보세요. 문제가 무엇인지에 대한 최소한의 힌트가 포함됩니다. 불일치에 대한 추가 도움이 필요하면 커뮤니티에 문의하세요!
porlock의 ESP-WROOM-32 케이스
이 섹션에서는 타이머의 사용법과 구성에 대해 설명합니다. 앱은 3페이지로 구성되어 있으며 사용하기 매우 쉽습니다!
타이머를 켜면 짧고 긴 신호음이 들립니다.
장치를 켜고 WiFi를 켜십시오.
PhobosLT_xxxx
로 시작하는 WiFi 액세스 포인트를 검색할 때까지 기다립니다.
그것을 클릭하고 비밀번호를 입력하십시오: phoboslt
.
앱이 연결되어 브라우저 창을 열어야 합니다. 발생하지 않는 경우 브라우저를 열고 20.0.0.1
입력하세요.
짜잔!
타이머를 구성하려면 Configuration
버튼을 클릭해야 합니다. 다음과 유사한 화면이 나타납니다.
아래에서 모든 구성 매개변수와 해당 설명을 찾을 수 있습니다.
채널 및 밴드 - 드론과 동일한 밴드 및 채널로 설정합니다. 지원되는 밴드 - A, B, E, Fatshark, RaceBand 및 LowBand, 각각 8채널. 주파수 - 설정된 대역 및 채널을 기반으로 주파수를 표시하는 정적 필드입니다. 최소 랩 시간 - 시간을 측정할 수 있는 최소 랩 시간을 설정할 수 있습니다. 이렇게 하면 출발 게이트에 충돌할 때 또는 트랙이 매우 좁고 한 랩 동안 여러 번 타이머에 가깝게 비행할 때 오탐을 방지할 수 있습니다. 배터리 전압 경보 임계값 - 원하는 전압에 도달하면 트리거되는 배터리 전압 경보를 설정합니다. 범위는 2.5-4.2v 사이입니다. 아나운서 유형 - 타이머가 랩 시간을 보고하는 방법에 대한 몇 가지 옵션이 있습니다.
None
전혀 소리가 나지 않는 것입니다.
Beep
교차할 때 짧은 경고음을 울려 랩이 등록되었음을 알려줍니다.
Lap Time
랩 시간을 알려줍니다( 파일럿 이름 필드가 채워져 있는 경우 파일럿 이름 포함).
Two Consecutive Lap Time
2회 연속 랩 타임을 발표합니다.
Three Consecutive Lap Time
3회 연속 랩 타임을 발표합니다.
아나운서 속도 - 아나운서가 랩 시간을 읽는 속도를 제어합니다. 파일럿 이름 - 채워지면 시간을 읽을 때 파일럿 이름이 포함됩니다(예: Pilot1 23.45
. 동시에 실행되는 타이머가 두 개 이상일 때 유용합니다. 혼자 연습할 때는 비워두세요.
참고: 일단 구성되면 Save Configuration
버튼을 클릭하여 구성을 저장하십시오. 그렇지 않으면 변경 사항이 적용되지 않습니다.
보정은 매우 중요한 단계이며 타이밍이 올바르게 이루어지고 모든 랩이 타이머에 의해 계산되도록 올바르게 수행해야 합니다.
교정을 수행하려면 Calibration
버튼을 클릭하십시오. 두 개의 슬라이더와 시간 경과에 따른 RSSI를 나타내는 그래프가 표시됩니다. RSSI는 드론과 타이머 사이의 거리의 역수로 생각할 수 있습니다. RSSI가 높을수록 거리가 짧아집니다.
노드는 Crossing
또는 Clear
일 수 있습니다. 노드가 Clear
인 경우 RSSI가 낮기 때문에 타이머는 드론이 타이머 근처에 없다고 판단합니다. Crossing
인 경우 타이머는 RSSI가 높기 때문에 드론이 타이머를 지나고 있다고 믿습니다. Crossing
이 완료되고 RSSI가 Clear
존으로 돌아오면 랩 패스가 기록됩니다. Enter
및 Exit
RSSI 임계값을 설정하여 이를 보정합니다.
잘 보정된 타이머는 드론이 타이머에 가장 가까울 때 교차점이 하나만 있을 때 랩 시간을 표시합니다. 예:
Crossing
항상 짙은 녹색으로 표시되고 Clear
파란색으로 표시됩니다.
Enter
및 Exit
RSSI에 대한 적절한 초기 값을 얻으려면 다음 단계를 수행하십시오.
타이머와 드론을 켜고 원하는 VTx 전력으로 설정한 후 VTx가 작동 온도에 도달할 때까지 30초 동안 기다립니다.
타이머 위의 게이트보다 약간 더 떨어진 거리에 드론을 배치합니다.
RSSI에 유의하세요. 안전을 위해 2~5점을 차감하세요. Enter RSSI
가 되어야 합니다.
8~10포인트를 더 빼서 Exit RSSI
로 설정하세요.
Save RSSI Thresholds
을 클릭하세요. 그렇지 않으면 변경 사항이 적용되지 않습니다.
다른 조종사와 함께 비행할 때 인접 채널의 다른 VTx에서 발생하는 모든 소음으로 인해 RSSI 판독값이 낮아질 수 있습니다. 공중에서 다른 조종사와 함께 비행할 때 두 임계값을 몇 포인트씩 낮추는 것이 좋습니다.
레이스 화면에서는 레이스를 시작하거나 중지하고 랩 타임을 확인하고 지울 수 있습니다. Race
버튼을 클릭하면 화면이 다음과 같이 변경됩니다.
버튼의 기능:
Start Race
- 클릭하면 카운트다운이 시작되고 타이머에 신호를 보내 랩 카운트가 시작됩니다.
Stop Race
- 새로운 랩 계산을 중지하려면 이 버튼을 누르세요. 지금까지 모은 랩은 클리어되지 않습니다.
Clear Laps
지우기) - 화면에서 랩을 지웁니다. 레이스가 진행 중일 때도 수행할 수 있습니다.
몇 바퀴를 달리면 화면에 랩 시간이 표시됩니다.
지원이나 질문이 필요하거나 그냥 어울리기 위해 Discord 채널에 가입하세요! 모두를 환영합니다!