Arduinoに挑戦・13(VS-C3と接続)

ロボット用PSコントローラーのVS-C3で、Arduino Robotを無線化するために、接続テストをしました。

画像


ROBOMIC(ブログ)を参考に、接続しました。

画像


意外と簡単に接続できました!
プログラムをロボット用に改造が必要です。

画像


画像


#include //for v1.6

PS2X ps2x; // create PS2 Controller Class

int error = 0;
byte vibrate = 0;

//==========================================================================================================
//Main
//==========================================================================================================

void setup(){
Serial.begin(57600);

//CHANGES for v1.6 HERE!!! **************(VS-C3コントローラー)*************

error = ps2x.config_gamepad(13,11,10,12, true, true);
//setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error

if(error == 0){
Serial.println("0 Found Controller, configured successful");
}

else if(error == 1)
Serial.println("1 No controller found, check wiring, see readme.txt to enable debug. ");

else if(error == 2)
Serial.println("2 Controller found but not accepting commands. see readme.txt to enable debug. ");

else if(error == 3)
Serial.println("3 Controller refusing to enter Pressures mode, may not support it. ");

//Serial.print(ps2x.Analog(1), HEX);
Serial.println(" PS-C2 Controller Found OK! "); //PS-2Cコントローラー
}


void loop(){
//DualShock Controller(PS-C3コントローラーの場合)

ps2x.read_gamepad(false, vibrate); //ゲームパッド・ボタンの読み込み

if(ps2x.Button(PSB_START)) //スタートボタン
Serial.println("Start");
if(ps2x.Button(PSB_SELECT)) //セレクトボタン
Serial.println("Select");

if(ps2x.Button(PSB_PAD_UP)) //上ボタン
Serial.println("U");
if(ps2x.Button(PSB_PAD_RIGHT)) //右ボタン
Serial.println("R");
if(ps2x.Button(PSB_PAD_LEFT)) //左ボタン
Serial.println("L");
if(ps2x.Button(PSB_PAD_DOWN)) //下ボタン
Serial.println("D");

if(ps2x.Button(PSB_GREEN)) //三角ボタン
Serial.println("G");
if(ps2x.Button(PSB_RED)) //丸ボタン
Serial.println("O");
if(ps2x.Button(PSB_PINK)) //四角ボタン
Serial.println("P");
if(ps2x.Button(PSB_BLUE)) //エックスボタン
Serial.println("X");

if(ps2x.Button(PSB_L3))
Serial.println("L3");
if(ps2x.Button(PSB_R3))
Serial.println("R3");
if(ps2x.Button(PSB_L2))
Serial.println("L2");
if(ps2x.Button(PSB_R2))
Serial.println("R2");
if(ps2x.Button(PSB_R1))
Serial.println("R1");

if(ps2x.Button(PSB_L1)) // L1を押しながら、アナログスチックコントロール
{
Serial.print(ps2x.Analog(PSS_LY), DEC);
Serial.print(",");
Serial.print(ps2x.Analog(PSS_LX), DEC);
Serial.print(",");
Serial.print(ps2x.Analog(PSS_RY), DEC);
Serial.print(",");
Serial.println(ps2x.Analog(PSS_RX), DEC);
}

delay(50);

}

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 2

なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)

この記事へのコメント

ふじさん
2015年01月19日 23:40
はじめまして。私もナッキーさまのブログを参考にVS-C3とarduinoの接続にチャレンジしましたが、私は未だ上手くいっておりません。(VS-C1はうまくいくのですが、VS-C3になると反応しません(´・_・`))

ヴイストンにVS-C3とVS-C1の違いを問い合わせてもサポート外とのことで取り合っていただけませんでした。

ついては、ナッキーさまから助けて頂きたく書き込みさせていただきました。お時間がある時でけっこうです。以下の質問にご回答いただければ幸いです。

・私は純正品のUNOを使って動きませんでしたが、ナッキーさまのUNOは以下のAmazonの製品ですか?
http://www.amazon.co.jp/SainSmart-UNO-R3-ATmega328P搭載-Duemilanove/dp/B00BPISRWE/ref=pd_sim_e_11?ie=UTF8&refRID=0M8GC17Z476946KMA02D

・使用したライブラリのバーションをご教示くださいませ。以下のページのライブラリと推察していますが、4つのバーションのうち、どれを使われたかご教示してください。
http://www.billporter.info/2010/06/05/playstation-2-controller-arduino-library-v1-0/comment-page-26/#comment-11879

飛び込みのコメントで申し訳ありませんがよろしくお願いいたします。
ナッキィー
2015年01月24日 23:58
>ふじさん
コメントをありがとうございます。

ご返事遅れましたが、純正のUNOで問題なく動きました。なお、スケッチは改造して有りますが、本文に追加しておきました。
ニックネーム
2017年10月08日 03:19
初めまして、少し気になったのですが
Arduinoのおそらく5V系GPIOをVS-RCV3の信号線に直接つないで大丈夫なのでしょうか?

この記事へのトラックバック