Bluetooth 接続RC
ESP32とPS3&PS4コントローラ&スマスロを使用したラジコンの製作は、非常に面白く、技術的にも挑戦的なプロジェクトです。
以下に、基本的な概要と必要な材料、手順を紹介します。


AMP モーター回路図

LED サーボモータ回路図
アンプ LM386G-S08 x1
ドライバ TB6612FNG x2
マイコン ESP32-WROOMー32E x1
デジトラ DTC114
必要な材料:
ESP32ボード: Wi-FiとBluetoothの機能を持つ制御基板。
PS3or4コントローラ: Bluetooth接続が可能なゲームコントローラ。
スマホ
モーター: 本体駆動用。
モータードライバ: ESP32からモーターを制御するための回路。
バッテリー: ESP32とモーターに電力を供給するための電源。
スピーカー:サウンド(効果音)を出力。
サーボモータ:いろいろなギミックに使用。
LED:最大5個
シャーシ: ラジコン模型のベースとなる部分。
配線材: 接続用のワイヤーやコネクタ。
基本的な手順:
ハードウェアの組み立て:
ESP32基盤をシャーシに取り付けます。
モーターをシャーシに取り付け、モータードライバと接続します。
バッテリーを取り付け、全てのコンポーネントを配線します。
PS3or4コントローラの接続:
ESP32にBluetoothライブラリをインストールします。
PS3or4コントローラをESP32にペアリングします。
これには、定番のライブラリ
「SixaxisPairTool」
を使用することが一般的です。
プログラミング:
Arduino IDEを使用してESP32をプログラムします。
コントローラからの入力を受け取り、モーターなどの動作を制御するコードを記述します。
補足)効果音の作成「音声データをテキストデータに変換」
Data:フリー効果音素材を提供していただけるサイトから入手しましょう。
アプリ audacity 使用

★要点だけ
1)書き出し
ファイルタイプ:その他の非圧縮ファイル
ヘッダ:RAW
エンコーディング:Unsigned 8-bit PCM oxo.raw データを作成
2)C言語で使える配列データに変換
Linax コマンド busybox(優れもの)
busybox xxd -i ooo.raw > ooo.txt
★この方式定番ですのでいろいろブログで紹介されています。
作成したのはこんなんです
unsigned char Daidr_raw[] = { 0x7b, 0x76, 0x79, 0x73, 0x75, 0x76, 0x78, 0x76, 0x71, 0x70, 0x6c, 0x71, 0x71, 0x75, 0x76, 0x75, 0x78, 0x75, 0x76, 0x77, 0x78, 0x7b, 0x7f, 0x7e,
……………………………….
0x82, 0x85, 0x8a, 0x87, 0x87, 0x88, 0x88, 0x8a, 0x85, 0x83, 0x82, 0x80, 0x81, 0x7c, 0x7c, 0x7b, 0x79, 0x7f, 0x7b, 0x7e, 0x83, 0x80, 0x7f, 0x7a, 0x78, 0x7d, 0x7c, 0x7f, 0x7f, 0x7f, 0x81, 0x83, 0x86, 0x88, 0x88, 0x85, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x7f, 0x82, }; unsigned int Daidr_raw_len = 94927;
dacWrite(); 関数でIO25ピンに(Digital Analog Converter)出力します。
テストと調整:
組み立てたラジコン模型をテストし、動作を確認します。
必要に応じて、プログラムやハードウェアの調整を行います。
その他:
・ギヤBOXなどメカ類は既製品
・樹脂パーツはその都度3Dプリンタにて積層印刷
3Dプリンタ Creality Ender-3 V3 KE
フィラメント PLA