Arduino_USB_PPM — USBジョイスティックをPPMへ変換するArduinoスケッチ
概要
USBホストシールドを装着したArduinoボードを使い、USB接続のジョイスティック(ゲームパッド)からの入力をRC送信機で用いられるPPM(Pulse Position Modulation)信号へ変換するための簡潔なスケッチ集です。主にFLYSKY I6Xなど一般的な送信機に合わせたマルチチャネルPPM信号を生成でき、スケッチ内でチャンネル数、フレーム長、パルス幅などを設定可能。現状はメインのArduinoスケッチ、ライセンス、.gitignoreのみが含まれ、今後PPMテストコードやUSB→PPM変換ロジックの追加が予定されています。趣味のRC用途やプロトタイピングで、USB入力を既存の受信機や送信機と組み合わせたい開発者向けの出発点となるリポジトリです。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 2
- ファイル数: 4
- メインの言語: C++
主な特徴
- USBホストシールド経由でUSBジョイスティック入力を読み取り、PPM信号を生成
- マルチチャネルPPMフレームの生成に対応(チャンネル数はスケッチで設定可能)
- FLYSKY I6Xなど一般的な送信機のフォーマットに合わせた出力調整が可能
- 小規模でシンプルな構成、拡張やテストコードの追加が容易
技術的なポイント
このプロジェクトのコアはArduinoスケッチ(USB_PPM_Arduino.ino)で、USBホスト機能を利用して接続されたジョイスティックの各軸やボタンの状態を読み取り、それをRC用のPPM信号にマッピングして生成する点にあります。PPMは複数チャネル分のパルスを一定のフレーム長でまとめて出力するため、生成ロジックは各チャネルのデューティやオフセットを正確に計算してタイミング制御する必要があります。Arduino上でのタイミング制御には、ハードウェアタイマーや割り込みを用いた精密なパルス幅生成が一般的ですが、本リポジトリではスケッチ内でフレーム長やパルス幅、チャネル数を定義できるようにしており、幅広い送信機仕様に合わせられる柔軟性を持たせています。
USB側はUSBホストシールドのライブラリ(別途導入が想定される)を利用し、標準的なHIDプロファイルのジョイスティックを扱う想定です。ジョイスティックから得た軸値はアナログスティックのレンジに応じてPPMのパルス幅(通常は1000〜2000μsの範囲)にスケーリングされ、各チャネルの順序に従ってフレーム内に配置されます。生成されたPPMは送信機の受信機や外部モジュールに入力することで、USBコントローラをRCシステムの制御入力源として利用できます。
注意点として、USBデバイスの互換性(特に非標準HIDや特殊なゲームパッド)やホストシールドのライブラリバージョン依存、Arduinoのクロック精度や割り込み競合によるタイミングずれが生じ得る点があり、実運用前に実機での測定・キャリブレーションが必要です。リポジトリ内には「TODO: Add PPM test code and USB to PPM code」とあり、テストベンチや追加のUSB→PPMマッピングロジックの整備が予定されているため、現状はプロトタイプまたは学習用の土台と考えるのが現実的です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.MD: file
- USB_PPM_Arduino.ino: file
まとめ
USBジョイスティックを簡易にPPMへ変換するためのプロトタイプ実装。拡張・テストが望まれる出発点。
リポジトリ情報:
- 名前: Arduino_USB_PPM
- 説明: 説明なし
- スター数: 1
- 言語: C++
- URL: https://github.com/Jaofilipe/Arduino_USB_PPM
- オーナー: Jaofilipe
- アバター: https://avatars.githubusercontent.com/u/57682937?v=4
READMEの抜粋:
Arduino_USB_PPM
Convert a USB joystick input into a PPM signal for an RC transmitter using an Arduino + USB Host Shield.
This repository contains:
- USB_PPM_Arduino.ino — main Arduino sketch
- LICENSE — GNU GPL v3
- .gitignore
TODO: Add PPM test code and USB to PPM code
Features
- Generates multi-channel PPM signal for FLYSKY I6X and other common transmitters.
- Configurable PPM channel count, frame length and pulse settings in the sket…