テスト

//キーコンフィグ
//c[1]に入ったキーの数字を10進数で表すと・・・
//2:左ボタン
//4:左トリガ
//8:右ボタン
//10:右トリガ
//1:右レバー←

//c[2]に入ったキーの数字を10進数で表すと・・・
//2:左ボタン
//4:左トリガ
//8:右ボタン
//10:右トリガ
//1:左レバー↑
//2:左レバー↓
//4:左レバー→
//8:左レバー←
//16:右レバー↑
//32:右レバー↓
//64:右レバー←
//12:セレクト
//3:スタート


//-------------------------------------------------------------
// Arduinoのコード
//-------------------------------------------------------------

#include

#define MYRX 12 //アナログ0番ピンは砲塔左右サーボ
#define MYTX 11 //アナログ0番ピンは砲塔左右サーボ
SoftwareSerial mySerial(MYRX, MYTX);

unsigned char c[8];
unsigned long chksum;

void setup(){
mySerial.begin(9600);//SBDBTとArduinoは2400bps
Serial.begin(19200);//シリアルモニター表示
c[0]=0x80;//常に
}

void loop(){
//まずは無線からシリアルを読み込む。c[1]とc[2]にキー入力が格納される。
int i;
if (mySerial.available() >= 8) { //8byte以上あるかチェック
if (mySerial.read() == 0x80){ //1byte読み込んで0x80のスタートビットかチェック
Serial.print(c[0],HEX);//16進数で数値を表示。
Serial.print(",");//コンマで区切る。
for (chksum=c[0],i=1;i<8;i++){//スタートビットは読み込み済みなので、次の7個のデータを読み込む。
c[i]= mySerial.read();
if(i<7) chksum+=c[i];
Serial.print(c[i],HEX);//16進数で数値を表示。
Serial.print(",");//}//コンマで区切る。
}
if(c[7]==(chksum & 0x7F)){//ボタン部分のみのチェックサムを簡易計算してみる。
Serial.println("check sum OK !");//チェックサムOKを表示。
} else {
Serial.println("check sum * * ERROR * *");//ダメならエラーを表示。
}

//ここから、キー入力に応じて、メッセージを出す。
if(c[2] == 0x11 ){//
Serial.println("RIGHTLEVER_UP+LEFTLEVER_UP");
}
if(c[2] == 0x22 ){//
Serial.println("RIGHTLEVER_DOWN+LEFTLEVER_DOWN");
}
if(c[2] == 0x12 ){//
Serial.println("RIGHTLEVER_UP+LEFTLEVER_DOWN");
}
if(c[2] == 0x21 ){//
Serial.println("RIGHTLEVER_DOWN+LEFTLEVER_UP");
}
if(c[2] == 0x01 ){//
Serial.println("LEFTLEVER_UP");
}
if(c[2] == 0x02 ){//
Serial.println("LEFTLEVER_DOWN");
}
if(c[2] == 0x10 ){//
Serial.println("RIGHTLEVER_UP");
}
if(c[2] == 0x20 ){//
Serial.println("RIGHTLEVER_DOWN");
}
if(c[2] == 0x11 ){//
Serial.println("RIGHTLEVER_UP");
}
if(c[2] == 0x22 ){//
Serial.println("RIGHTLEVER_DOWN");
}
if(c[2]== 12){//
Serial.println("select");//ためしに10進数でやってみる。大丈夫。
}
if(c[2]== 3){//
Serial.println("start");
}
if(c[1] & 16 == 16 ){//←これが上手く判断してくれない。
Serial.println("FIRE!!");
}
if(c[1]== 0x08 ){//
Serial.println("Centering");
}
if(c[1]== 0x02 ){//
Serial.println("Target_UP");
}
if(c[1]== 0x04 ){//
Serial.println("Target_DOWN");
}
}
}
}

//-------------------------------------------------------------
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

宣伝:電子出版しました。
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク