モーター制御編1~RaspberryPi Picoでモーターを動かす準備~

2024年8月9日(金)は、6割ほどの出席でした。夏休み、三連休前というのにみんな熱心です。

  • 18時00分~18時15分 タイピング練習
  • 18時15分~18時30分 キーボード練習
  • 18時30分~19時50分 モーターを動かす準備
  • 19時50分~20時00分 あとかたづけ

タイピング練習とキーボード練習

タイピングの練習は、「寿司打」、キーボードの練習は「テトリス」です。

矢印キーを使うくせをつけてほしい、ということでテトリスをはじめました。はじめて間もないのですが、もう慣れたようです。あとは、エディタ上で矢印キーを使えるかどうかということですね。

ところで、タッチタイピングで驚愕の事実が判明しました。

入力精度ではまだまだわたしが一番ですが、入力速度だと小学生に負けていることがわかりました。恐るべし! 1年経たずして200字/分を超えてくるセンスに脱帽です。

そしてもうひとり、ここ2ヶ月で圧倒的にスコアを伸ばしてきている小学生のメンバーがいます。きっかけがあったようで、ブレイクポイントを超えたのではと考えています。素晴らしい!

Lチカのプログラムでモーターは動くか?

今回からモーター制御に取り組みます。まずは、かんたんにLチカプログラムの確認です。

from machine import Pin
import utime

motor = Pin(15, Pin.OUT)

while True:
    motor.value(1)
    utime.sleep(1)
    motor.value(0)
    utime.sleep(1)

一秒点灯、一秒消灯を繰り返すLチカプログラムと全く同じです。「led」を「motor」に置き換えただけです。

さて、これで実際にLEDをモーターに接続をかえて動くかどうか?

もちろん、動きません。

なぜか。Raspberry Pi PicoはGPIO1ピンあたり、4mA流すことができます。ところが、モーターを駆動するには2A程度の電流を流す必要があります。実に500倍の電流を必要としているわけで、動くわけがないのです。

トランジスタを使えば動かせる

ラズPicoに直接モーターをつないでも動きません。しかし、トランジスタを使うとモーターを動かせます。

お試しで使ったのは、FETのK4017。ぶっつけ本番、見事動きました。

トランジスタは、水道の蛇口のイメージで使います。線が3本あり、それぞれの意味は以下のとおりです。

  • ゲート : 水を止めたり出したりするハンドル(弁)
  • ドレイン : 水の入口
  • ソース : 水の出口

つまり、ゲートをラズPicoで制御してあげればよいのです。

しかしながら、今回のテーマでは、もっと複雑な制御をしたいのでモータードライバを使います。

工作しやすいように、電池ボックス・モーター・ドライバをはんだ付け

理論的なところは、これくらいにしておきます。これから回路を組み立てて、プログラミングしていくのに、前準備のはんだ付けをします。具体的には、電池ボックス・モーターはリード線にピンを付けて熱収縮チューブで保護をします。

また、モータードライバにもピンをつけます。これにより、ブレッドボードでかんたんに試作ができます

学校では、中学校の技術科目で使うはんだごてです。もちろん小学生のメンバーにもやってもらいます。写真を見ても分かる通り、真剣そのもの。

「難しくてもやる」「難しいことをやる」

だからこそ到達できる領域があるのだと考えています。妥協しません。

さて、来週は残りのメンバーのはんだ付けと、制御プログラムを書こうかなと考えています。