ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

【自作ロボットROS2化】Raspberry Pi5(Ubuntu24.04)+ROS2 JazzyでUART通信を動かす

今回は、Raspberry Pi5にインストールしたUbuntu24.04でUART通信を動かします。
UART通信を使いたい理由は、ROS1で作っていたロボット(INOBO)がJetsonNano-ラズパイPICO間をUART通信でDCモーターを制御していたからです。
今回は、Raspberry Pi5-ラズパイPICO間をUART通信してDCモーターを制御します。
※ラズパイPICOに実装しているモータ制御はそのまま流用するつもりです。

スポンサーリンク

Raspberry Pi5(Ubuntu24.04)のUART通信を有効にする

1.
/boot/firmware/config.txtを編集し、以下を追加します。

enable_uart=1
dtoverlay=uart0

2.リブート
Raspberry Pi5(Ubuntu24.04)を再起動します。

sudo reboot

3.
再起動後、以下コマンドを入力して、uartのデバイスが有効になっているかを確認します。

sudo dmesg | grep ttyAMA

ttyAMA0が有効になっています。

ちなみに、ttyAMA0のポートは、以下となります。
ttyAMA0・・・PIN8:GPIO14(TxD)/ PIN10:GPIO15(RxD)

※ttyAMA10は、Raspberry Pi5の標準で有効になっているデバッグ用のuartのようです。

4.
実際にUARTが使えるかを確認してみます。 FTDI FT232のUSBシリアルアダプターを持っているのでこれをWindowsPCに繋いで通信できるか見てみました。
screenでシリアル確認してみます。
screenが入っていないので、インストールします。

sudo apt install screen

以下コマンドを実行し、screenでttyAMA0を開きます。

screen /dev/ttyAMA0 9600

PIN8:GPIO14(TxD)/ PIN10:GPIO15(RxD) /PIN6 GNDとFT232のシリアルアダプターをつなぎます。
USBでWindowsPCに繋いでTera Termでシリアルポートとつなぎます。

Raspberry Pi5で入力した文字がWindows上に表示され、Windowsで入力した文字がRaspberry Pi5上に表示されました。問題なくUART通信できているようです。

最後に、実際にモーターを動かしてみた

ROS1で作ったUART通信でのモーター速度通知用ノードをROS2に移植して動かしてみました。
Raspberry Pi PICOとRaspberry Pi5を接続し、teleopでcmd_velを通知すると問題なくモーターが動きました。

さて、Lidarとモーター周りが動かせるようになったので、次はいよいよROS2で自己位置推定やナビ関連をやってみようと思います。

それでは!

参考サイト:
以下のサイトを参考にさせていただきました。ありがとうございます。
Raspberry Pi 4 + Ubuntu 20.04で複数のUARTを有効にする
Use the Raspberry Pi 5 Serial Ports(Youtube)

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン