電電高専生日記

【改良版】 RaspberryPiで作ったカメラ付き戦車ラジコン

2014/11/23 14:50

RaspberryPiで作ったカメラ付き戦車ラジコンの続きとなります。

前回公開した戦車は、前進以外はまともに動作させることができませんでした。原因は、モーターの電源でした。単三電池を3本から4本(直列接続)に増やしたところ、スイスイ動くようになりました。

RaspberryPiで作った戦車

以下、動いている様子の動画

操作画面も改良し、どのボタンを押しているかを分かりやすくしました。また、停止ボタンを取り除き、ボタンを離したら自動的に停止するようにしました。

操作画面やプログラムのソースを貼ります。

・操作画面のHTML部分

TANK

・操作画面のJavaScript部分
$(function(){
	var phpsrc="caterpillar.php";
	$(".ctrlBtn").mousedown(function(){
		var comm = this.id;
		if (comm=="advance"){
			$.post(phpsrc, {mortor:"left", act:1});
			$.post(phpsrc, {mortor:"right", act:1});
		} else
		if (comm=="turningLeft"){
			$.post(phpsrc, {mortor:"left", act:-1});
			$.post(phpsrc, {mortor:"right", act:1});
		} else
		if (comm=="turningRight"){
			$.post(phpsrc, {mortor:"left", act:1});
			$.post(phpsrc, {mortor:"right", act:-1});
		} else
		if (comm=="back"){
			$.post(phpsrc, {mortor:"left", act:-1});
			$.post(phpsrc, {mortor:"right", act:-1});
		}
		$(this).css({"background":"#FFCC66"});
	});
	$(".ctrlBtn").mouseup(function(){
		$.post(phpsrc, {mortor:"left", act:0});
		$.post(phpsrc, {mortor:"right", act:0});
		$(this).css({"background":"#FFFFFF"});
	});
});
・Apache2からのGPIOピン操作(caterpiller.php)
/*
    mortor ... "left":左のモーター "right":右のモーター
    act    ... 1:前回転 0:停止 -1:後回転
*/
$pin1 = $pin2 = -1;
if ($_POST["mortor"] == "right"){
	$pin1=26;
	$pin2=19;
}
if ($_POST["mortor"] == "left"){
	$pin1=13;
	$pin2=6;
}

if ($_POST["mortor"]=="right" || $_POST["mortor"]=="left"){
	if ($_POST["act"] == 1){
		exec("gpio -g mode ".$pin1." out");
		exec("gpio -g write ".$pin1." 0");
		exec("gpio -g mode ".$pin2." out");
		exec("gpio -g write ".$pin2." 1");
	} else
	if ($_POST["act"] == 0){
		exec("gpio -g mode ".$pin1." out");
		exec("gpio -g write ".$pin1." 0");
		exec("gpio -g mode ".$pin2." out");
		exec("gpio -g write ".$pin2." 0");
	} else
	if ($_POST["act"] == -1){
		exec("gpio -g mode ".$pin1." out");
		exec("gpio -g write ".$pin1." 1");
		exec("gpio -g mode ".$pin2." out");
		exec("gpio -g write ".$pin2." 0");
	}
}

プログラムに関してはもっと上手い書き方があったと思うんですが、面倒なのでここは直さずそのままにしときました。

ということで、戦車ラジコンの動作が快適になりました。これで残りの欠点は、RaspberryPi用電源が長く持たないことと、戦車の各部品が固定されていない為に脆いこととなりました。しかしRaspberryPiは戦車ラジコン以外にも色々と使いたいので、これ以上の改良はしないかもしれません。

追記(2015/01/02)
このページが何故か非常に重かったのですが、原因が分かりました。
どういうわけかプライベートアドレスをソースとしたimgタグを貼っており、十数秒も接続が試行されていました。
このimgタグを除去したので、今はページが軽くなっております。

  • このエントリーをはてなブックマークに追加

最新記事

コメント(0)





プロフィール

名前:elkosendiary

性別:男

生年:1995年


2011年4月 高専入学
2016年3月 高専卒業
2016年4月 大学編入学
2018年3月 大学卒業予定

にほんブログ村 大学生日記ブログ 理系大学生へ
にほんブログ村

カテゴリ
Adsense
月別アーカイブ
ブログ内検索

おすすめ記事

「高専大学編入ログ」を作成しました

自作ゲーム「Defend PortMoresby!」バージョン3

【改良版】 RaspberryPiで作ったカメラ付き戦車ラジコン