• 締切済み

電子制御。 センサを使って走行をさせる。 困っています。

http://www.nagais.co.jp/pokecom/mouse/mouse.html」 のキットを使い、組み立てたものを、ポケットコンピューターを 使い、上記リンクの、「ポケコンマウス走行コースの例」の黒のテープのところを進むようにしたいのです。 自分は、下記のようにやって、Aに指令を与えてとりあえず、 動作チェックをしたりしていました。 10:OPEN "PIO:" 20:PIOSET &HF0 30:INPUT "OUT=";A 40:PIOPUT A 50:GOTO 30 ◆数値Aに10進数で指令を与えます。 出力データ | 左モータ | 右モータ | 出力状況 0 | OFF | OFF | 惰性で止まる 5 | 前進 | 前進 | 直進する 10 | 後進 | 後進 | 後進する 9 | 後進 | 前進 | 車体の中心を軸として左回転する。 6 | 前進 | 後進 | 車体の中心を軸として右回転する。 13 | ブレーキ | 前進 | 左車輪を止めて左折前進する。 7 | 前進 | ブレーキ | 右車輪を止めて右折前進する。 14 | ブレーキ | 後進 | 左車輪を止めて左バックする。 11 | 後進 | ブレーキ | 右車輪を止めて、右バックする。 15 | ブレーキ | ブレーキ | ブレーキをかけて止まる。 ◆反射型センサはこのようなデータがかえってきます。 S1-S2:48,S1-S3:80,S1-S4:144,S2-S3:96,S2-S4:160,S3-S4:192 S1-S2-S3:112,S1-S2-S4:176,S1-S3-S4:208,S2-S3-S4:224,S1-S2-S3-S4:240 とこのようなり、値が16で割れるので、割って簡単にして、 if文で条件分けして考えています。 →T字路に来たら、右に曲がる、十字路が来たら、前進するというプログラムを教えてください。そして、その後自分で改良して、自動判断させるようにしたいと思います。

みんなの回答

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.3

遅くなりましたが、まだ回答が役にたつでしょうか…。 線にそって進めるように調整できておりさらに、 90度曲がることができることを前提にして話を進めます。   進行方向↑   □□□□■■■■□□□□   □□□□a■■b□□□□   □□□□■■■■□□□□   □□□□■■■■□□□□   □□□c■■■■d□□□      図1:道(■)、道以外の路面(□), センサー(a,b,c,d)、進行方向の関係   たとえば、右折の時、 a b c d 1 1 0 0 時刻1 0 0 0 0 時刻2 0 0 0 1 時刻3 となることはないんですよね。つまり、 a,bのラインとc,dのラインの間隔より、線が太いんですよね。 だとすれば、以下のように判断することになると思います。 右折路  a b c d  1 1 0 0  1 1 0 1 右に道があることを確認  0 0 0 1 前に道がないことを確認  (少し戻る必要があれば戻る)  道のあるほうへ曲がる。 左折路  a b c d  1 1 0 0  1 1 1 0 右に道があることを確認  0 0 1 0 前に道がないことを確認  (少し戻る必要があれば戻る)  道のあるほうへ曲がる。 十字路  a b c d  1 1 0 0  1 1 1 1 左右に道があることを確認  1 1 1 1 しばらく進んでも前の道がとぎれない  そのまま直進 丁字路  a b c d  1 1 0 0  1 1 1 1 左右に右に道があることを確認  0 0 1 1 前に道がないことを確認  (少し戻る必要があれば戻る)  右折する。 どうでしょう。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

回答1の補足の図で、進行方向はどちらですか? 上ですか? 黒線の太さが、S1とS2の幅よりも太く、S3とS4の幅よりも狭い、ということなんでしょうか?

twinkle_light
質問者

補足

進行方向は、上側、つまり、S1、S2がついている方向が前となります。 「黒線の太さが、S1とS2の幅よりも太く、S3とS4の幅よりも狭い、ということ」→まさにその通りです。 いま、自分もこの教えて頂くプログラムに加えるのを必死に考えているところです。「wolv様」、ご回答の方、期待とともに、お待ちしております。 本当に、よろしくお願いいたします。 10:OPEN "PIO:" 20:PIOSET &HF0 30:PIOPUT 5:GOSUB *WAIT1 40:PIOPUT 15:GOSUB *WAIT2 このようにたとえば、入力すれば、前進をし、ブレーキをかけると思います。 こんな感じの関数?というか言語を使い、行います。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

これだけだと、この製品をもってる人しか回答できないと思うので、もう少し補足してください。特に、  S1-S2:48 などはどういう意味ですか? たぶん、センサーS1とS2が路面の黒を検出し、他のは白を検出している、 だと思いますが、あってますか? S1,S2,S3,S4は、マウスのどの部分についているセンサーですか?

twinkle_light
質問者

補足

ありがとうございます。 補足致します。 本体背面にセンサーが下図のようについています。 ┏━━━━━━━━┓ ┃           ┃ ┃  S2□ □S1   ┃ ちょうど、S1、S2が黒いラインに上にあります。 ┃           ┃ ┃□S4    S3□ ┃ ┃           ┃ ┃           ┃ ┗━━━━━━━━┛ 「センサーS1とS2が路面の黒を検出し、他のは白を検出している、 だと思いますが、あってますか?」 →あっています。 [S1-S2:48] は、S1とS2が黒の時、48という数値を出力するという意味です。

関連するQ&A

  • 逆転機構

    1つのモータにて2本の軸を回そうとしています。 しかも2本の軸をそれぞれ逆に回したいのです。 例えば右の軸は右回転、左の軸は左回転、のように。 ギヤボックスを作ればいいのでしょうが、もっと簡単に出来るものをご存知の方はいませんか?標準的なものを安く買えるといいのですが・・・

  • モータを使用して

    はじめまして. モータを使って,シリンダみたいに直線運動を行う物を作りたいのですが,どのように作れば良いか,ご教授お願いします. ・モータが回転することによって前後運動を繰り返す物ではなく,モータが右回転の時は,直進.左回転のときは,後進するようなものが作りたい.

  • サーボ2軸によるトルク制御

    サーボ2軸によるトルク制御に関して困っています。 負荷トルク耐久試験装置で、短冊型のトルク波形を描く必要があるのですが うまく描けません。 装置情報としては ・3.5kWのサーボモータ2台 ・モータのギヤ比が1/17(両軸とも) 制御情報としては ・棒状のワークの両端をモータにつないで回転 ・片側を位置制御、反対側をトルク制御で使用 回転速度の加減速やトルク指令の加減速等いろいろ試しましたが、 トルク指令の加速レートを小さくすると短冊形の波形にならず、 トルク指令の加速レートを大きくするとモーターがハンチングして 安定しない、またはひげ状のピークトルクが発生してしまいます。 何かよい制御方法、またはヒントでも結構ですので ご教示頂けませんでしょうか。 宜しくお願いします。

  • ▽フォークリフトのハンドル操作方法を教えて下さい!

    ▽12日にフォークリフト教習所で実技講習(2日目)があります。 16日にも実技講習(3日目)があり、その日の最後に実技試験が あります。私は、ハンドル操作が苦手です。 前進しながら右へ曲がる、前進しながら左へ曲がる、後進しながら 右へ曲がる、後進しながら左へ曲がる、の4パターンありますが、 例えば、後進しながら右へ曲がる場合、手順は、 (1)ハンドルを車輪がまっすぐな、9時の状態から右に1周回し、 (2)ハンドルを左へ1周戻し、 (3)ハンドルを右に2周回し、 (4)ハンドルを左へ2周戻す、 と、実技初日に機械的に覚えました。で、感覚でのハンドル捌きだった ので、よく覚えてないのですが、これら(1)~(4)は、それぞれ具体的に どういうタイミングでハンドルを回せば良いのでしょうか? 更に、回した時に、後輪は、それぞれ何度の角度まで動きますか? あと最終実技試験では、後進しながら左へ曲がるコースがあります。 (後進しながら右へ曲がるコースは無い。)この場合は、さっきの逆で、 (1)ハンドルを車輪がまっすぐな、9時の状態から左に1周回し、 (2)ハンドルを右へ1周戻し、 (3)ハンドルを左に2周回し、 (4)ハンドルを右へ2周戻す、 でよろしゅうございますか?違うなら、訂正して欲しいです。 あと、この(1)の状態から、回す場合、9時の位置以外に、 何時の位置に、どう行った時に回すパターンがありますか? もう一つ、フォークリフトのハンドル操作を解り易く説明した 本があれば紹介して欲しいです。ついでに、フォークリフトの ハンドル操作は、車のハンドル操作と全く同じなのですか? 以上、わかる方、解る範囲でも構いませんので、ぜひ、 (客観的にも)解り易く教えて下さい。明日の朝6時42分に 家を出るまでにご回答を確認したいので、できれば大至急、 ご回答宜しくお願い致します。

  • モーターによるゼンマイの引っ張り試験機の制御につ…

    モーターによるゼンマイの引っ張り試験機の制御について はじめまして。宜しくお願いします。 工場で電気保守の仕事をしております。 今回、現場の方から要請があり、下記のような試験機を作ってくれないかとの 要望があり、制御で困っています。 ?ゼンマイの耐久試験機で場所がないのでコンパクトにつくってほしい。 ?ワンモーターでゼンマイを巻き取り、巻き戻す。(正転、逆転を繰り返す) ?スピードコントロールしたい。 ?モーターの動く時間を制御したい。(正転何秒、逆転何秒) ?安くしあげたい。 ?移動はしない。(回転のみです) ?私は動きとして 正転→停止→逆転 の動きをしたいと思っております。 以上です。 私はあまりシーケンサーを使ったことがないので、 有接点で回路をくみたいのですが、 回路が思い浮かびません。 大変困っております。 宜しくお願いします。 すいません。記入不足がありました。 ?正転はばねを引っ張りまきます。 ?逆転はモーターの回転でばねの力を利用して戻します。 (モーターでばねをたるませる感じです。) ?二軸で一軸にゼンマイ、二つ目の軸にモーターで正転時にはばねを引っ張ってのばし、モーター軸で巻き取る。巻き取り終えれば、モーター軸を逆転させ、ゼンマイの戻る力でゼンマイをたるませ巻き取る感じです。 上記の一工程を繰り返す自動回路で行いたいのです。 スイッチはスタートと停止のみです。 カウンターを取り付けて回数をみて人が停止スイッチを押して止まる感じです。例えばですが正転10S、停止1S、逆転10Sで動かすとしましょう。 タイマーでオン→停止→オフが繰り返せればと思っております。モーター容量は25Wで行こうと思っています。 宜しくお願いします。

  • マウスによるモータ制御

    駄文で申し訳ありません。 現在PICを介してサーボモータの制御を行っているのですが、マウスを左に動かせば左回転、右に動かせば右回転するようなプログラムを作りたいのですが、いまいち方法が分かりません。 どなたか詳しい方教えて頂けないでしょうか? ちなみに、言語はJavaで、現在はキーボードより文字を送り、PICによりその文字に対応した信号をモータに送信し動作させています。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 駐車の仕方

    添付画像の「A」の位置に車を止める場合どうしたらよいですか? 個人的には後進で出入口から入って「A」の手前で目一杯右に切って、車体を斜めにして停車して、パーキングに入れて左に切ってから、下の車の右フロントに当たらないように後進で入ればいいのかなと思いますが、なにぶん駐車は苦手なのでお知恵をおかりしたいです。

  • 中村精密Nゲージ

    Nゲージ中村精密機関車C58モーターは、作動し前進、後進はしますが、動輪がうまく回転せず(すべってしまう)に、こまっていますどこか修理してくれるところはありませんか? 以前から家にあった物で完全な形で遺したい

  • waitのつもりがwaitされない!

    c言語初心者です。 ライントレーサーを作っています。 とりあえず前進して後進してを繰り返しそうと思って、以下のプログラムを立てました。 #include <pic.h> __CONFIG(HS&WDTDIS&PWRTEN&UNPROTECT); int wait(long); void main(void) { int motor; TRISB=0x00; while(1) { motor=0x90; wait(1000); motor=0x60; wait(1000); PORTB=motor; } } int wait(long a) { long i; for (i = 0; i < a; i++); return 0; } motor=0x90が前進で motor=0x60が後進です。 これで動かしたところ、後進しかしませんでした。 どこに原因があるのでしょうか。 ご教授おねがいします。

  • ハンドルを切ると音が...テラノ

    2年式のテラノに乗っています。 左にロックするまでハンドルを切って前進、後進すると金属が擦れるようなガリッという音がします。 右ではないのですが、どんな原因が考えられるのでしょうか。 よろしくお願いします。

専門家に質問してみよう