raspiPICO+KITRONIK-5331を使ったDCモーター制御車両ベースです。

UART通信を使い、モーター駆動指示、モーター回転数を取得します。

RasPiPicoUartMotorBaseとマイコン等の制御用ボードをUARTで接続し、以下のコマンドをUARTで通知することでDCモーターを駆動させることが可能です。
また、モーターの回転数(rpm)の情報をUARTで受信することができます。
| UARTコマンド(制御ボード→RasPiPicoUartMotorBase) | 説明 |
|---|---|
| start${"v_r": 右モーター速度指示値, "v_l":左モーター速度指示値} | モーター駆動指示 |
| emergency_stop | モーター停止 |
※速度指示値は0〜100 ※終端に改行コードCRLF(\r\n)を入れること
| UART応答(制御ボード←RasPiPicoUartMotorBase) | 説明 |
|---|---|
| {"rpm_l":左モーター回転数(rpm),"rpm_r":右モーター回転数(rpm)} | モーター回転数応答 |
- Raspberry Pi Pico
- Raspberry Pi Pico用Kitronikモータードライバーボード(KITRONIK-5331)
- エンコーダ付きDCモーター×2個
- 動作実績:DC 12v モーター エンコーダ付き ギアモーター マウントブラケット付き 65mm(130rpm)
- モーター駆動用バッテリ(モーター電圧に応じて準備)
※Raspberry Pi Pico開発環境はThonnyを使用 https://thonny.org/
-
Micro Pythonのファームウェアをセットアップしてください。
以下サイト参照。
https://www.marutsu.co.jp/pc/static/large_order/zep/m-z-picoled-da1?srsltid=AfmBOorvtQBPDclVyJtAbuTcil99_cpVNFvaeHsgTcH8kHxA0RaH-YSx -
Kitronik用のドライバー(PicoMotorDriver.py)をRaspberry Pi Picoに保存します。
以下参照。
https://github.com/KitronikLtd/Kitronik-Pico-Motor-Driver-Board-MicroPython -
RasPiPicoSource内にあるmain.pyをRaspberry Pi Picoに保存します。
https://github.com/InomaCreate/RasPiPicoUartMotorBase/blob/main/RasPiPicoSource/main.py
-
raspiPICO+KITRONIK-5331を接続し、UART用線を出します。(要ハンダ付け)
UART1 TX:GPIO4(PIN6), UART1 RX:GPIO5(PIN7), GND(PIN8)から線を出します。
- Raspberry Pi 5(Ubuntu24.04)
以下、Raspberry Pi 5(Ubuntu24.04)を使ったサンプルプログラムのセットアップ、実行方法を記載します。
-
Raspberry Pi5のUART通信を有効にする
1-1. /boot/firmware/config.txtを編集し、以下を追加します。
enable_uart=1
dtoverlay=uart01-2. Raspberry Pi5を再起動します
sudo reboot1-3. 再起動後、以下コマンドでuartが有効になっているか確認します。
sudo dmesg | grep ttyAMA
ttyAMA0が有効になっている場合、以下のピンがUART信号のピンです。
ttyAMA0・・・PIN8:GPIO14(TxD)/ PIN10:GPIO15(RxD)1-4. RasPiPicoUartMotorBaseのUART線をRaspberry Pi5のUARTピンと接続します。

-
Raspberry Pi5に必要なパッケージのインストール
以下のコマンドで、サンプルプログラムを実行するために必要なパッケージをインストールします
sudo apt update
sudo apt install libncurses5-dev libncursesw5-dev
pip3 install pyserial
セットアップしたRaspberry Piでサンプルプログラムを動かします。
以下スクリプトを実行すると、モーター駆動用のサンプルプログラムが起動します。
キーを通知すると、前進、後進、モーター速度変更などを行います。(以下表参照)
python3 sample_motor_send.py
| キー | 動作 |
|---|---|
| i | 前進 |
| k | 後進 |
| s | 右モーター速度UP(+5) |
| a | 左モーター速度UP(+5) |
| x | 右モーター速度DOWN(-5) |
| z | 左モーター速度DOWN(-5) |
| e | モーター停止 |
| q | プログラム終了 |
以下スクリプトを実行すると、モーター回転数受信のサンプルプログラムが起動します。
python3 sample_rcv_rpm.py
3Dデータ(stlファイル)もGitHubにUPしました。必要に応じて3Dプリンターで印刷してご使用ください。
https://github.com/InomaCreate/RasPiPicoUartMotorBase/tree/main/3D-data
以下のように、Raspberry Pi Picoや電池ボックス、モーター、キャスターを取り付けれるようにしております。
キャスターは、ホームセンターで買った直径38mmのものです。

モーターのマウントは、「DC 12v モーター エンコーダ付き ギアモーター マウントブラケット付き 65mm(130rpm)」に付属されていたマウントブランケットをそのまま使用しています。


