Ganponブログ

趣味の模型作り、ドライブ、旅行など
since Mar.2017

ArduinoとPS4コントローラで戦車を動かす

2019-07-10 10:07:09 | Arduino

2019-07-10
追記する事が有ったのでブログを更新しました。

ペアリング完了(BTドングルのMACアドレスをPS4コントローラに書き込み)後に、スケッチの下記の部分を書き換えることで、次回からのPSボタンのみで起動が出来る様になります。

  【変更前】
/* You can create the instance of the PS4BT class in two ways */
// This will start an inquiry and then pair with the PS4 controller - you only have to do this once
// You will need to hold down the PS and Share button at the same time, the PS4 controller will then start to blink rapidly indicating that it is in pairing mode
PS4BT PS4(&Btd, PAIR);
// After that you can simply create the instance like so and then press the PS button on the device
//PS4BT PS4(&Btd);
 
  【変更後】
/* You can create the instance of the PS4BT class in two ways */
// This will start an inquiry and then pair with the PS4 controller - you only have to do this once
// You will need to hold down the PS and Share button at the same time, the PS4 controller will then start to blink rapidly indicating that it is in pairing mode
//PS4BT PS4(&Btd, PAIR);
// After that you can simply create the instance like so and then press the PS button on the device
PS4BT PS4(&Btd);
 
しかし、これではBTドングルとPS4コントローラがひも付きで1対1になります。
私はコントローラ1台で複数のBTドングルとペアリングしたいので、面倒でも起動はSHAREボタンとPSボタンを同時でペアリングする様にしています。


2019-07-08
これまでPS3コントローラを使ってArduinoで模型戦車を動かしてきました。
しかし、PS3コントローラとArduinoのペアリングには最初にUSBケーブルでコントローラとUSBシールドを接続してBluetoothドングル(以下BTドングル)のMACアドレスをPS3コントローラに書き込む必要が有ります。
この為、複数の戦車に対してはBT
ドングルを差し替えて使用する事になります。
BT
ドングルを差し替えるのはかなり面倒で、戦車毎にBTドングルとコントローラを持つことになります。 

【備忘録】
 BTトングルのMACアドレスはシリアルモニタでArduino IDEのシリアルモニタで確認できます。
 その準備としてsetting.hの一部を書き換えておく必要が有ります。

 1. librariesフォルダ内のUSB_Host_Shield_Library_2.0フォルダへ移動

 2. settings.h をテキストエディタで開く
 3. ENABLE_UHS_DEBUGGING の値を 0から1 に変更する。

////////////////////////////////////////////////////////////////////////////////
// DEBUGGING
////////////////////////////////////////////////////////////////////////////////
/* Set this to 1 to activate serial debugging */
#define ENABLE_UHS_DEBUGGING 0 ←この0を1に書き換える
 
 4. SHAREボタンとPSボタンを同時してペアリングをさせます。
  確認出来たら、0に戻しておくこと。
   1のままだとプログラムを書き込んだ時にメモリー量が大幅に増加します。

 


PS4コントローラの場合は、この工程が要らない様なので試してみます。

先ず、PS4コントローラを手に入れます。
PS3コントローラはAmazonで1500円程度で互換品が手に入りますが、PS4コントローラは互換品でも倍以上です。
それならばと言う事で、互換品とほぼ同価格の純正品の中古を手配しました。

Arduino IDEで以前作成したスケッチ(プログラム)のPS3BTに関わる部分をPS4BTに書き換えます。
プログラム容量は殆ど変化しないので、私のスケッチでも使えそうです。

コントローラとArduinoに接続したUSBシールドとペアリングの方法は、
1. SHAREボタンとPSボタンを同時に3秒ほど押す。
2. コントローラのインジケータが白く高速点滅し、ペアリング完了すると青色点灯して操縦可能になります。

次に2台目の戦車とのペアリングの確認をします。
その前に1台目の戦車の電源を切り、PS4コントローラの青色点灯が消灯するまで待ちます。
準備が出来たら、2台目の戦車を起動して、PS4コントローラのSHAREボタンとPSボタンを同時押しして白く高速点滅させます。
暫くすると、青色点灯に変わりペアリングが成功し操縦可能になります。
上手くペアリングできないときは、先にPS4コントローラをペアリングモード(白色高速点滅)にしてから戦車の電源を入れると上手くいく場合が有ります。

一度、ペアリングできると次からのペアリング開始までの時間は短くなります。

動画では青色点灯が白っぽく映っています。

 

 

 

 

 



2 コメント

コメント日が  古い順  |   新しい順
Unknown (Arduino)
2021-11-06 11:37:25
コメント失礼します。
戦車はサーボモータ1個とDCモータ1個を使用ですか。可能でしたら、プログラムを教えていただけないでしょうか。
返信する
Unknown (Ganpon)
2021-11-06 17:08:04
「Arduinoをはじめよう(小型化2)」の方の戦車は下記にスケッチ(プログラム)を掲載しています。
https://blog.goo.ne.jp/ganpon26/e/18752b28675e43830aae5ef81f9d5e9a

モーターは左右各1個、サーボは旋回、砲身上下に各1個です。
コントローラはPS3になっています。
PS4用にはこのページの内容を参考に書き換えてください。

「RC可動化 1/35 キングタイガー製作(回路)」
https://blog.goo.ne.jp/ganpon26/c/73cab580f923ae622588d8ba965f466d
に回路図、スケッチを掲載していますので、参考になると思います。
返信する

コメントを投稿