動いたぞ! DC モーター! – Raspberry Pi でラジコン戦車 –


■動いたぞ! DC モーター! – Raspberry Pi でラジコン戦車 –

[2018 年 4 月 30 日追記]
——————————————————-
Raspberry Pi を使い、

ブラウザから DC モーターやサーボモーターを操作して、

監視カメラ付きラジコンにする方法については、

Raspberry Pi でブラウザから操作できるラジコン戦車を作る!

にまとめたので、こちらを見ていただきたい。
——————————————————-
苦節一ヶ月半。

ようやく、本当にようやく DC モーターを動かせた!

まずは右側の車輪。

続いて左側。

当たり前だが、サーボモーターと違って、ずーっと動き続けている。

それはそれで楽しい。

今回も悪い方の予想通り、嵌りまくってしまったので、

こうやって自分で自由に制御出来るのは、もう本当に感動。

いやぁ、かなり嬉しい。

動かし方などは、最終的な完成型である、

スマホ(ブラウザ)から操作できるラジコン戦車

を作り上げた上でちゃんとまとめたいと思う。

が、まずは備忘録的に、

・DC モーターを制御するためにやったこと

・どつぼにハマった理由と解決法

・気をつけないといけないこと

・この後の予定

などを、以下に書いておこうと思う。



■DC モーターを制御するためにやったこと

とりあえず現段階では、

・DC モーターを動かすために必要な配線を行う

・コマンドラインからコマンドで GPIO に信号を送る

と言う所までをやってみて、動くことを確認した、という状態。

参考にさせていただいたのは、こちらのサイト。

RaspberryPi3で作るラジコン
https://qiita.com/imcuddles/items/c05cbea95db1f7469fed

結論から言えば、ほぼそのままで動いた。

もう超絶感謝である。

あまりの感謝に、広告をクリックしておいたほど。

ほぼ、といったのは、GPIO のピンがちょっと違ったから。

これに関しては後述する。

で、まずは物理的な配線。

上述の参考サイトにおける、こちらの記述、

https://qiita.com/imcuddles/items/c05cbea95db1f7469fed#%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AB%E3%81%95%E3%81%97%E3%81%A6%E3%83%86%E3%82%B9%E3%83%88

に記載されている配線を、ほぼそのまま実施してみた。

続いて、こちらも記載されている通り、

      root@raspi-03# echo 9 > /sys/class/gpio/export
      root@raspi-03# echo 11 > /sys/class/gpio/export
      root@raspi-03# echo 4 > /sys/class/gpio/export
      root@raspi-03# echo 17 > /sys/class/gpio/export

を実施。

すると、なぜだかは分からないが、

      root@raspi-03# echo 4 > /sys/class/gpio/export

の部分だけ、

      bash: echo: 書き込みエラー: デバイスもしくはリソースがビジー状態です

というエラーがでた。

仕方ないので、GPIO の 4 番ピンを 18 番ピンに変更。

エラーはでなくなった。

その後、

      root@raspi-03# echo out > /sys/class/gpio/gpio9/direction
      root@raspi-03# echo out > /sys/class/gpio/gpio11/direction
      root@raspi-03# echo out > /sys/class/gpio/gpio17/direction
      root@raspi-03# echo out > /sys/class/gpio/gpio18/direction

を実施し、さらに

      root@raspi-03# echo 1 > /sys/class/gpio/gpio9/value
      root@raspi-03# echo 0 > /sys/class/gpio/gpio9/value

とすることで、『最終的には』右側の車輪が無事回転を始めてくれた。



■どつぼにハマった理由と解決法

『最終的には』と強調したのは、

それでもなかなか動いてくれなかったから。

ここではその理由について書いておく。

まず一つ目の理由は、

そもそも配線が間違えていた、

ということ。

また嵌るのか!? – Raspberry Pi でラジコン戦車 –

諸々確認中 – Raspberry Pi でラジコン戦車 –

でも書いたが、

・とりあえず配線してみる -> 動かず
・配線見直してみる -> 動いた!
・調子のって色々やってみる -> 動かなくなった
・モーターを電池と直結してみる -> 動いた!
・ブレッドボード経由でモーターと電池を繋ぐ -> 動いた!
・抵抗をはさんでみる -> 動かなくなった
・ジャンパワイヤに変えてみる -> 動いた!
・モータードライバの仕様通り配線してみる -> 動かなくなった

とかいう感じで何が悪いのかがよく分からなくなってしまっていた。

で、色々試しても動いてくれないので、心折れかけに。

どうせ何やっても動かないんだよ、と諦めそうな状態になり、

しばらく現実逃避を続けていた。

が、少し落ち着いてくると、やっぱり、

たかが DC モーター一つ動かせんとは情けない!

という気持ちが強くなり、再チャレンジを決意。

最初にちょっと動かせたはずの、上述の参考サイトを思いだし、

今一度、きちんと「記載通り」に実現してみよう、

と思い立った。

これまでは、

ライブカメラ(監視カメラ)を作る!

で使っていた、サーボモーターを使いつつ、配線していた。

が、それだと上述の参考サイトと GPIO ピンがかぶってしまう。

ピン番号も含めて揃えてやってみよう、と思ったのである。

そして、既に述べた通り、GPIO の 4 番ピンだけ 18 番にし、

それ以外は全くそのまま配線してみた。

が、やっぱり動かない。ウンともすんとも言わなかった。

後で気づいたことだが、二番目の理由があったからだ。



二番目の理由は、実は配線が外れてた、ということ。

超絶初歩的なミスではある。

が、私の場合、はんだを使わず配線しているため、

・DC モーターとジャンパーワイヤーの接続部分
・電池ボックスとジャンパーワイヤーの接続部分

に関しては、引っ掛けているだけの状態。

配線をいじったりしているうちに、簡単に外れてしまう。

そのため、何度も引っ掛け直す必要があった。

やっぱりハンダ付け必要だなー、

でも、ラジコン戦車以外今のところハンダ付けする予定ないしなー、

だとすると買っても一瞬使って終わるしなー、

などと考えていたため、未だにハンダは買ってない。

暫定的な処置として、例のごとくセロハンテープで止めた。

それでもちょこちょこ外れはするが、やらないよりはましになった。



これでいよいよ動くはず、ということで、

コマンドラインから GPIO に値設定をやってみた。

が、やっぱりうんともすんとも言わない。

が、一度心折れかけから復活した人間は強いもので、

動かないのが当たり前

みたいな状態になっており、別に何も思わなくなった。

とりあえず、再度 DC モーターを電池と直結し、

動くこと、

を確認しようとした。

そうすると、最初はブゥイーンと動くのだが、すぐに

シュゥーン

とうなって動かなくなった。

あれ?何で動いたのにすぐ止まる?

もしかしてモーター壊れた?

ということで、代わりのモーターに差し替えてみようかとも

おもったが、それはそれで作業が面倒。

まさかそんなにすぐになくならんだろう、とは思ったものの、

電池を変えてみた。

超元気そうに、DC モーターが動いた。

・・・。

ということで、三つ目の理由は電池切れだった。

電池を変えた上で、再度配線し直し、

コマンドラインから GPIO に信号を送ると、

無事、動いてくれたのである。

感動した!

ということで、この過程を経て気づいた、

・気をつけておくべきこと

について、以下に書いておこうと思う。

■気をつけないといけないこと



まぁ、気をつけないといけないことというか、

動かない場合に確認しないといけないことは、

大体以下の通りかと思う。

1. 兎にも角にも配線!配線!

まずはやっぱり配線が間違えてないかどうか。

ブレッドボード上の配線は当然のことながら、

ラズパイ側の GPIO も間違えてないか、

配線が外れたりしてないか、を徹底して確認するのが重要。

2. パワー不足では動きませんよ!?

当たり前じゃない!という話ではあるが、

今回新しい電池を使っていたにも関わらず、

何度か試しているだけでどうも磨り減ったらしい。

結構パワーを食うのかもしれない。

後、動く様になってから、嬉しがって何度も動かしていたら、

ラズベリーパイに繋いでいるディスプレイが真っ暗になった。

DC モーターを止めると復活する。

どうもラズベリーパイに供給している電源も足りてないっぽい。

電源は十分供給能力のあるものを使っているはずだが、

ケーブルがいわゆる急速充電対応の USB ケーブルではない。

ラズパイの電源不足問題は前から言われている話なので、

このケーブルも急速充電用のケーブルの方が良さそう。

パワー問題はちょっとなんとかしないとなー。

3. モーターボックス固すぎません?

モーターボックスのネジをきっちり締めてしまうと、

電池に直結させた時ですら動かないことがあった。

ゆるゆるだとそもそもモーターの回転が歯車に伝わらないが、

締めすぎてもダメっぽい。

4. コマンド、あってる?

GPIO に信号を送るためのコマンド、

エラーが出てくれる場合はよいが、

ピン番号間違えとか、エラーが出ない場合とか、

そういう場合は当然動かない。

これも要再確認項目。

5. そもそも部品は動く?

DC モーター自体が逝かれてしまうとそら無理。

なので、電池直結させて動いているかを確認した方が

よいと思われる。

モータードライバーが壊れている場合は、

どう確認すればいいか、自分でも分かっていない。

ただ、二個とも壊れていることは少ないと思うので、

配線はそのままでモータードライバのみ差し替える

ということをやって、どっちかで動けば故障の可能性あり、

でいいと思う。両方とも動かない場合は多分他の問題。

ということで、この辺りをきっちり確認できれば、

コマンドラインから DC モーターを制御する

ということは出きると思われる。

さて、後は今後の予定についてだ。



■この後の予定

とりあえず、DC モーターを動かす、は達成できた。

が、作りたいのは、

ブラウザ(スマホ)から操作できるラジコン戦車

だ。

そのためには、ライブ(監視)カメラのときのように、

まずは python コードを書く、

次に WebIOPi を使ってブラウザからコードを実行する

という形が必要。

参考サイトにもコードは載っているが、

ライブ(監視)カメラと両方操作したいので、

この辺のデザインなんかも考えながら、

・html の作成
・python コードの作成

をやる必要がある。

これが出来たら、ラズパイ自体や電池ボックス、

DC モーターなどを車体に載せ、キャタピラを装着して

車体を完成させないといけない。

これを実現するには、モバイルバッテリーも必要。

さらにさらに、ライブ(監視)カメラとの合体機にもしたいので、

カメラとパンチルトモジュールも搭載しないといけない。

そうなると、今の私の作り方では、多分板車体では無理。

やっぱりユニバーサルボードが必要な気がしてきた。

とりあえずブラウザから動かせる形を実現して、

車体デザインはその後で考えよう。

はぁ、しかし長かったが動くとやっぱり楽しい!


Copyright (c) 2017 Webmaster of this site All Rights Reserved.
カテゴリー: ブログ, ラズパイで電子工作 タグ: , , パーマリンク

動いたぞ! DC モーター! – Raspberry Pi でラジコン戦車 – への2件のフィードバック

  1. Momopi のコメント:

    はじめまして。
    私もRaspberry PIでラジコン戦車を作ってみました。
    初めて動いたときは感激でした!
    製作記事をぜひご覧ください。

  2. raspi-wannabe のコメント:

    すごいすっきりしてますね!
    素晴らしい!
    私もユニバーサルボードにして
    すっきりさせようかと考え中ですが,未着手…。
    いいものを拝見できました。
    ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください