手頃な価格の FPV シングルノード レース タイミング ソリューション
このプロジェクトが気に入ったら、コードベースに貢献したり、テストしてフィードバックを提供したり、新しいアイデアを共有したり、PhobosLT の福音を広めたりすることでプロジェクトをサポートできます。タピオカ ティー やビールを私に買ってきてくれると、プロジェクトをより良くするための原動力になります。
Phobos LapTimer (または PhobosLT) は、5.8GHz FPV パイロット向けのシンプルだが強力なラップ タイミング ソリューションです。個人使用向けに、小型ドローン (2 インチ以下) を念頭に設計されていますが、より大きなドローンで実行することに何ら問題はありません。これは、電源を内蔵し、WiFi 経由で電話、タブレット、またはラップトップと通信する小型のスタンドアロン デバイスです。このプロジェクトの目標は、自宅のリビングルームや地元のトレーニング会場で友達とフープレースの練習セッションをやりたいときに、いつでもどこでも簡単に使用できる、使いやすく小型のデバイスを用意することです。コードの一部は RotorHazard と ExpressLRS に基づいています。これらの組織の背後にある人々に大きな称賛を送ります。彼らはコミュニティのために多くのことを行い、FPV の未来を形作っています。これらのプロジェクトをまだご存じなく、時間がある場合は、ぜひチェックしてください。
PhobosLT には次の機能があります。
5.8GHz アナログ、HDZero、Walksnail システムの単一ノード タイミング。
音声コールアウト (オプションでパイロット名を含む)。
リアルタイムの RSSI 読み出しとキャリブレーション - 16m^2 または 200 ft^2 の部屋のような狭いスペースでもタイミングを測定できます。
連続 2 周および 3 周のタイムと、その場でのオプションの読み出し (RaceGOW 用に特別に開発)。
ラップ履歴を閲覧可能。
誤検知を回避するために、測定可能な最小限のラップタイムを設定する機能。
設定可能な低電圧アラーム。
サイズが小さく、構築が簡単です。
比較的安価です。
追加のアプリは必要なく、自己完結型のソリューションです。
今後の開発計画:
WiFi または Web コンフィギュレーター経由でフラッシュします。
はんだ付けを最小限に抑えるカスタムハードウェア。
ExpressLRS およびゴーグルVRXとの統合により、ラップタイムをOSDに転送します。
RotorHazard との統合によりスプリットタイムを測定します。
精度は低下しますが、同時に複数のパイロットをサポートします。
プロジェクトの核となるのは、ESP32 ボード + RX5808 モジュールです。 ESP は、すべての構成を備えた単純な Web ページを提供する Web サーバーとして機能します。 WiFi 接続と Web ブラウザーを備えた任意のデバイスを使用して、デバイスに接続し、タイマーを設定し、ラップタイムを測定できます。
ドローンがタイマーに近づくほど RSSI が高くなるため、ラップ タイミングは RSSI を時間の経過とともに測定し、フィルタリングして RSSI のピークをチェックすることによって行われます。これに基づいて、いつピークをカットするかを示すEnter RSSI
しきい値とExit RSSI
しきい値を設定します。次に、RSSI の開始と終了の間の時間を使用して、最後のピークと現在のピークの間の時間を測定します (ラップ)。
クライアントとの通信は WiFi 経由で行われます。 ESP32 はアクセス ポイントをセットアップし、クライアントはそれに接続します。 RSSI は WebSocket 経由で送信され、RSSI グラフをリアルタイムで描画します。構成、ユーザー操作、イベント (タイマーの開始、停止、ラップタイムの報告など) は、rest 呼び出しを使用して実行されます。
ブラウザは、articulate.js ライブラリを使用してサウンドを発したり、ラップタイムを呼び出したりするために利用されますが、オプション (ただし推奨) のビープ音をタイマーにインストールして、ピークが検出されるたびに音を発したり、タイマーが終了したときに警告したりすることもできます。バッテリーの電圧が低いです。
Phobos LapTimer を構築するには、次のものが必要です。
ESP32 ブレークアウト ボード (できれば USB 付き)。コードベースは、組み込みの 1s 18650 リチウムイオン電池スロットと電圧検出回路を備えたLilyGo T-ENERGY
を使用してプラグ アンド プレイですぐに使用できます。サポートされているボード:
LilyGo T-ENERGY - 推奨。
LilyGo T-CELL - 上記のものより高価ですが、充電回路が付いています。
ESP32-DevKit - 必要最小限だが安価。
SPI Mod を備えた RX5808 VRx モジュール。
バッテリー、パワーバンクなど、あらゆる種類の電圧供給。使用する ESP32 モジュールによって異なります。
(オプション) 任意の色の LED (+ 電流を管理するためのマッチング抵抗)。
(オプション) 発電機付きの 3v3 ~ 5v ブザー (アクティブでありパッシブではありません)。
RX5808 を ESP32 に接続するには、以下のピン配置表を使用します。 RX5808 の +5v ピンを 3v3 ソースに接続して RX5808 を低電圧にし、RSSI 解像度を向上させ、冷却を助ける必要があることに注意してください。
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 とブザーを接続するだけです。
あるいは、コミュニティにタイマーの作成を依頼することもできます。 discordで質問してみよう!
現在、ファームウェアのビルドは Visual Studio Code 経由で行われます。ツールチェーンのセットアップは ExpressLRS の場合とまったく同じであるため、すでに ExpressLRS ツールチェーンをセットアップして実行している場合は問題ありません。ファームウェアを構築するための要件は次のとおりです。
ビジュアルスタジオコード。
プラットフォームIO。
ギット。
次の手順を実行して、コンピュータにツールチェーンを設定します。
vscodeをダウンロードしてインストールします。
vscode を開き、右側のツールバーにあるExtensions
アイコンをクリックします (「拡張機能の管理」を参照)。
検索ボックスに「platformio」と入力し、拡張機能をインストールします ( pio install
ドキュメントを参照)。
gitをインストールします。
ファームウェアを構築する前の最後のステップは、このリポジトリのクローンをコンピュータに作成することです。
VSCode でコマンド パレットを開きます (MacOS ではCmd+Shift+P
を、Windows ではCtrl+Shift+P
を使用)
Git: Clone
と入力します。
それをクリックしてください。
次に、PhobosLT リポジトリ URL を入力します (この 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
という結果が表示されるまで待ちます。それでおしまい!タイマーを使用する準備ができました。
何か問題が発生した場合は、ターミナルも確認してください。そこには、少なくとも問題が何であるかのヒントが含まれています。 discord に関するさらなるサポートが必要な場合は、コミュニティに問い合わせてください。
ESP-WROOM-32 ケース by porlock
このセクションでは、タイマーの使用法と設定について説明します。アプリは3ページで構成されており、使い方はとても簡単です!
タイマーをオンにすると、短いビープ音と長いビープ音が聞こえます。
デバイスの電源を入れ、WiFi をオンにします。
PhobosLT_xxxx
で始まる WiFi アクセス ポイントが検出されるまで待ちます。
それをクリックしてパスワードを入力します: phoboslt
。
接続すると、アプリが表示されたブラウザ ウィンドウが開きます。問題が発生しない場合は、ブラウザを開いて20.0.0.1
と入力します。
出来上がり!
タイマーを設定するには、 Configuration
ボタンをクリックする必要があります。次のような画面が表示されます。
以下に、すべての設定パラメータとその説明を示します。
チャンネルとバンド- ドローンと同じバンドとチャンネルに設定します。サポートされているバンド - A、B、E、Fatshark、RaceBand、LowBand、それぞれ 8 チャンネル。周波数- これは、設定されたバンドとチャンネルに基づいて周波数を表示する静的フィールドです。最小ラップタイム- 計測できる最小ラップタイムを設定できます。これにより、スタートゲートでクラッシュした場合や、トラックが非常にタイトで 1 周中に何度もタイマーのすぐ近くを飛行した場合の誤検知を回避できます。バッテリー電圧アラームしきい値- 希望の電圧に達するとトリガーされるバッテリー電圧アラームを設定します。範囲は 2.5 ~ 4.2v です。アナウンサー タイプ- タイマーでラップタイムを報告する方法について、いくつかのオプションがあります。
None
全く音が出ないことです。
Beep
横断時に短いビープ音を鳴らして、ラップが登録されたことを知らせます。
Lap Time
ラップタイムを発表します (パイロット名フィールドが入力されている場合はパイロット名も含まれます)。
Two Consecutive Lap Time
2 回連続のラップタイムを発表します。
Three Consecutive Lap Time
3 回連続のラップタイムを発表します。
アナウンサー速度- アナウンサーがラップタイムを読み上げる速度を制御します。パイロット名- 入力すると、時間を読み取るときにパイロット名が含まれます (例: Pilot1 23.45
。複数のタイマーが同時に実行されている場合に便利です。一人で練習する場合は空にしてください。
注: 設定したら、 Save Configuration
ボタンをクリックして設定を保存してください。保存しないと、変更が有効になりません。
キャリブレーションは非常に重要なステップであり、タイミングが正しく行われ、すべてのラップがタイマーによってカウントされるようにするには、適切に行う必要があります。
キャリブレーションを実行するには、 Calibration
ボタンをクリックします。 2 つのスライダーと、時間の経過に伴う RSSI を表すグラフが表示されます。 RSSI は、ドローンとタイマーの間の距離の逆数と考えることができます。 RSSI が高いほど、距離は短くなります。
ノードはCrossing
またはClear
いずれかになります。ノードがClear
の場合、RSSI が低いため、タイマーはドローンがタイマーの近くにいないと判断します。 Crossing
の場合、RSSI が高いため、タイマーはドローンがタイマーの横を通過していると判断します。 Crossing
が終了し、RSSI がClear
ゾーンに戻ると、ラップ パスが記録されます。これは、 Enter
RSSI しきい値とExit
RSSI しきい値を設定することで調整されます。
適切に調整されたタイマーは、ドローンがタイマーに最も近い場合、交差点が 1 つしかない場合にラップタイムを表示します。例:
Crossing
常に濃い緑色でマークされ、 Clear
青色で表示されます。
RSSI のEnter
およびExit
の適切な初期値を見つけるには、次の手順を実行します。
タイマーとドローンの電源を入れ、目的の VTx 出力に設定し、VTx が動作温度に達するまで 30 秒待ちます。
タイマーの上の 1 ゲートよりわずかに大きい距離にドローンを配置します。
RSSI に注意してください。安全のために 2 ~ 5 ポイントを差し引いてください。これがEnter RSSI
になります。
さらに 8 ~ 10 ポイントを差し引いて、それをExit RSSI
として設定します。
Save RSSI Thresholds
] をクリックします。そうしないと、変更は有効になりません。
他のパイロットと一緒に飛行している場合、隣接するチャネル上の他の VTx によって生成されるすべてのノイズにより、RSSI 測定値が低くなる可能性があります。他のパイロットと一緒に飛行する場合は、両方のしきい値を数ポイント下げることをお勧めします。
レース画面では、レースを開始または停止したり、ラップタイムを表示およびクリアしたりできます。 Race
ボタンをクリックすると、画面が次のように変わります。
ボタンの機能:
Start Race
- クリックしてカウントダウンを開始し、タイマーにラップのカウントを開始する信号を送ります。
Stop Race
- 新しいラップのカウントを停止したいときに押します。これまでに集めた周回をクリアすることはできません。
Clear Laps
- 画面上のラップをクリアします。レースの実行中にも実行できます。
数周走ると、画面にラップタイムが表示されます。
サポートや質問をしたり、ただ交流したりするには、Discord チャンネルに参加してください。どなたでも大歓迎です!