MENU
  • ホーム
  • 生成AI
  • Drone
  • Minecraft
  • RaspberryPi
  • 随想
面白いこと発掘だ
northarantの研究室
  • ホーム
  • 生成AI
  • Drone
  • Minecraft
  • RaspberryPi
  • 随想
northarantの研究室
  • ホーム
  • 生成AI
  • Drone
  • Minecraft
  • RaspberryPi
  • 随想
  1. ホーム
  2. RaspberryPi
  3. Raspberry Piに何かをつなごう

Raspberry Piに何かをつなごう

2023 2/05
RaspberryPi
2023年2月5日

さて、バッテリーから電源が供給できるようになったので、次は色々なパーツを接続していきたいと思います。

まず、モーターを回したいと思ったとします。ラズパイのGPIOピンの5vから電源を取って、モータを回す事はできるでしょうか?

かなり小さなモーター(クーリングファンなど)なら出来るのですが、私が使おうとしている車輪用のモーターだと消費電力が大きいので、GPIOから電源を取るとラズパイの電圧が低くなってしまい、動作不安定になる事が容易に想像できます。

任意のGPIOピンをONにしてそこから電源を取るのはどうでしょうか。

ラズパイの汎用GPIOピンは、ONで3.3vという仕様です。そして、ラズパイのGPIOピンは制御チップ(SoC)に直接繋がっているので、大きな電流が流れたらラズパイが壊れます。従って、次のような制限がかかっています。

  • ピン1本あたり最大16mAまで。
  • ピン合計で50mAまで。

詳しくは、以下の公式ドキュメントに書いてあります。

あわせて読みたい
Just a moment...

つまり、モーターを回す場合は別に電源を用意しなければいけないのです。しかし、FPV-TANKでは、バッテリーからラズパイに電源を供給しているので、結論的にはモーターの電源も同じバッテリーから取る事になります。

ちなみに、私が買ったモーターはこちらです。モーター1台につき最大200mAの電流が流れるようです。

FPV-TANK ver1.0では、前輪用のモーターと後輪用のモーターがあって、それを左右2組なので、モーターを4つ使いました。ところが、モーターに電力を持っていかれるためか、ラズパイには常にカミナリマークがついてて、電圧が足りなくなってしまっていたのです。

そこで、ver2.0ではモーターを左右1つずつにしています。消費電力対策と過電流防止のためです。モーターの数を減らすことで、何とか正常電圧で動かないかなと淡い期待を持っているのです。

このモーターにはカタログ値で、最適な動作電圧6-8vと書かれているので、5vに下げる前のバッテリー直の電圧をくれてやります。

さて、モーターへ電圧をくれてやるのは良いとして、ラズパイからそれをコントロールしなければならないのですが、どうするか。

そこで登場するのがモータードライバーです。私が使ったモータードライバーはこちら。

そこで登場するのがモータードライバーです。私が使ったモータードライバーはこちら。

さて、このモータードラーバーは何をしてくれるのかというと、バッテリーから直で受け取った電圧を-100%〜+100%の範囲で、モーターに送ってくれるのです。

従って、+100%で送れば全速前進となるし、+50%で送れば微速前進。25%位だと様々な物理的抵抗で車輪は回らなくなると思います。で、-100%にすれば全速後退となるわけです。

それを左右2ch別々に制御できるので、FPV-TANKに様々な動作をさせる事ができるのです。

さて、ここで困った問題が発生します。

ラズパイのGPIOピンは5vか0vかどちらかしか出力しないのです。アナログ的な信号を出力することは基本できないのです。(12番ピンと、35番ピンだけはアナログ的な信号を出力できるようです。)

Device Plus - デバプラ
ラズパイ(Raspberry Pi)のGPIOを再確認! | Device Plus - デバプラ ラズパイはただの小型パソコンではありません。「GPIO」と呼ばれるコネクタが搭載されおり、ほかのデバイスと簡単に信号をやりとりできるよう設計されています。 GPIOをマ...

そこで、そういったアナログ的な信号を出力する下請け会社というか、子分というか、そんなチップが必要なのです。

そこで目をつけたのが、PCA9685というPWM制御に特化したチップです。

これを使えば、最大16個の何かをPWM制御できます。

PWM制御とは、Pulse Width Modulation の頭文字を取ったもので、パルス信号のONとOFFの時間比率を自由に変えて制御対象(私の場合、モータードライバーやサーボモーター、LEDなど)に信号を送って制御する方法です。

LEDもPWMを使うと明るさを自由に変更できるのです。(ONの時間比率を長くすれば明るくなり、OFFの比率を長くすれば暗くなります。)

いよいよ電子工作の深い所までやってきましたね。(と言っても、私にとって深いだけですが^^;)

では、この下請け会社PCA9685にはどうやって指示を出したら良いでしょうか?

それがI2C通信です。

I2C通信については、次の記事で書きたいと思います。

RaspberryPi
GPIO PCA9685 PWM バッテリー モーター
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • Raspberry Piのバッテリー駆動
  • I2C通信

この記事を書いた人

northarantのアバター northarant

1968年生まれ。職業は高校数学の教員。自分では変わり者だと思っています。常により良い未来を目指して、時に楽しく、時に苦しみながら、人生を歩いています。

関連記事

  • INA219を使った電圧と電流の監視
    2023年3月4日
  • PWM制御を用いたLEDの輝度調整
    2023年2月27日
  • Picamera2を使った写真の撮影
    2023年2月26日
  • OSのクリーンインストール
    2023年2月19日
  • 自動ブレーキの搭載
    2023年2月18日
  • HC-SR04を用いた距離の測定
    2023年2月17日
  • 移動するだけのTANK
    2023年2月12日
  • モータードラーバーL9110S
    2023年2月9日

コメント

コメントする コメントをキャンセル

カテゴリー

  • Drone
  • Minecraft
  • Python
  • RaspberryPi
  • Twenty Twenty-Tree
  • これすごい
  • 生成AI
  • 随想

アーカイブ

  • 2025年5月
  • 2024年12月
  • 2024年11月
  • 2024年9月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年3月
  • 2023年2月
  • 2023年1月

© northarantの研究室.

目次