スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

拡張現実子供乗せロボットゲーム製作(第三回)


ソフトウエア編

今回使用するものは
・XBOX360USBパッド
・XNA(XBOX360、Windows用)
・OPENCV(SharperCV)(画像認識ライブラリ)
・USB-IO制御DLL

まずはXNA上でUSB-IOの制御を行います
下記でUSB-IO制御DLLをC#から
コールできるようなコードを提供してくれているので
そちらをプロジェクトに組み込みます

やねうらおさんの日記
http://d.hatena.ne.jp/yaneurao/20041109

起動時にUSB-IOの検索を行うコードを追加します

protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
USBIO.USBIO.uio_find();
}
}

終了時にUSB-IOの解放を行うコードを追加します

protected override void UnloadGraphicsContent(bool unloadAllContent)
{
if (unloadAllContent == true)
{
USBIO.USBIO.uio_free();
}
}


XBOX360USBパッドとキーボードから
操作された際にUSB-IOにビットを送信してあげます


KeyboardState keys = Keyboard.GetState();
GamePadState currentState = GamePad.GetState(PlayerIndex.One);
if ((keys.IsKeyDown(Keys.A) && keys.IsKeyDown(Keys.W))
|| (currentState.ThumbSticks.Left.X < -0.5f && currentState.ThumbSticks.Left.Y > 0.5f))
{
USBIO.USBIO.uio_out(1, 1 + 4, 0);
}
else if ((keys.IsKeyDown(Keys.D) && keys.IsKeyDown(Keys.W))
|| (currentState.ThumbSticks.Left.X > 0.5f && currentState.ThumbSticks.Left.Y > 0.5f))
{
USBIO.USBIO.uio_out(1, 2 + 8, 0);
}
if (keys.IsKeyDown(Keys.A) || currentState.ThumbSticks.Left.X < -0.5f)
{
USBIO.USBIO.uio_out(1, 1 + 4 + 8, 0);
}
else if (keys.IsKeyDown(Keys.D) || currentState.ThumbSticks.Left.X > 0.5f)
{
USBIO.USBIO.uio_out(1, 2 + 4 + 8, 0);
}
else if (keys.IsKeyDown(Keys.W)
|| currentState.ThumbSticks.Left.Y > 0.1f)
{
USBIO.USBIO.uio_out(1, 12, 0);
}
//後
else if (keys.IsKeyDown(Keys.S) || currentState.ThumbSticks.Left.Y < -0.1f)
{
USBIO.USBIO.uio_out(1, 0, 0);
}
//STOP
else
{
USBIO.USBIO.uio_out(1, 15, 0);
}


続きを読む »

スポンサーサイト

テーマ : ハードウェア - ジャンル : コンピュータ

拡張現実子供乗せロボットゲーム製作(第二回)

回路図編

回路図は下記のような増幅回路を4組作成してやります
回路図を描いたほうがいいかもしれませんが
イメージしやすく図で
usb-io

USB-IOのPort0とVCCをトランジスタの両端に繋ぎます
そこで小さくても電流が流れると、リレーとの間の電流が
大きく流れるようになり、リレーが動作します

これでPCからリレーを動作できるようになりました
とりあえず下記のサイトからもらったusb_base.exeを使用して
実験してみてください
Port0とPort1を切り替えると
カチカチなればOKです

USB-IOについては下記のサイトを参考にしてみてください

USB-I-Oをいじる - とにかく動かしてみる


後はリレー4つを使ってモータの正転逆転回路を組みます
2つのリレーでモータのONOFFを行い
もう2つのリレーで正転逆転を行います

正転逆転


本当は抵抗とか計算して入れないといけないかもしれませんが
よくわからんので入れてませんw
最初NPN型トランジスタを使って回路を組んでいたら
USB-IOが吸込み型で接続してるので、どうにもうまく組めなくなりました
NPN型、PNP型なんて昔ちょこっと勉強しただけなんで
おぼえちゃいない

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

拡張現実子供乗せロボットゲーム製作(第一回)

いつもPCでのゲーム製作ばかりではつまらないので
今回は下記のような仕様のロボット?を作ってみます

・子供を乗せて移動できる
・ロボットのコントロールはPCから行う
・USBカメラをロボットに搭載する
・USBカメラの画像をフルスクリーンで見ながら操作
・操作はXBOX360パッドで行う
・顔認識で顔を的にし攻撃できる

これが出来れば超リアルなロボットゲームが出来る!
(現実の画像を使うんだから当たり前だけど)
あなたも冬休みの工作にでも挑戦してみてはどうでしょうか

ハードウエア編

まずはロボットの作成
ロボットといってもモータ2つを使い
移動できるようにするだけです
今回は子供も乗れる様に作りましたが
タミヤあたりのキャタピラ工作でも問題ないです

こんなロボットです↓
ロボット


本体で使用する材料は
・モータ、ギアボックス(モータ2つが左右についているやつ)
・タイヤ(これは何でもOK)
・USBカメラ(1800円くらい)
・植木鉢の移動台(100均で売ってる)

材料が集まったらこれをくっつけるだけ
移動台にギアボックスを紐でなりくっつけます
後はUSBカメラをクリップで乗せるだけ

もう、ここは好みで作るしかないです
自分は昔ロボコンで使っていた
モータとギアボックスに
タミヤのタイヤをムリクリつけて作りました
植木鉢の移動台はダイソーで210円でしたが
中々動きが軽くて20Kまで耐えられます

次にパソコンからロボットの操作が出来るようにします
ここで使用する材料は
・USB-IO(1500円送料こみ)
下記のサイトで買えます
http://km2net.com/usb-io/index.shtml
・リレー×4(5V、2C(2接点)260円*4)
・PNP型トランジスタ×4(A1015 100円)
・電池ボックス(単三×3)
・電池ボックス(モータ駆動用)

こんな回路になります↓
電気回路


USB-IOでモータ2つを正転反転を制御してあげます
USB-IOの出力は5V15mAなのでそのままでは
モータはおろか、リレーの駆動も出来ないので
増幅回路を組んでやります
増幅回路といっても自分でもよく分からないので
トランジスタ一個かますだけです
回路図の方はまた次回


この時点でUSBカメラの画像を見ながら
ロボットをPCから動かす事ができます
結構これだけでも面白いです

子供を乗せて動かしてます↓
椅子の変わりにバケツを使ってます
子供乗せ~

テーマ : ハードウェア - ジャンル : コンピュータ

プロフィール

TEA(てぃあ)

Author:TEA(てぃあ)
親サイト:
フリーのゲームがダウンロードできます
主にシューティング系

最新記事
最新コメント
カテゴリ
PSP Vita
カウンター
ジャスティスレギオン 無料ダウンロード
インディーズPSPVitaゲーム
リンクや作った物
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。