プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

Ubuntuからラズパイピコを使う

Windowsでも使えるけどUbuntuでも使ってみる

ラズパイピコは当然のことWindowsからも使えますが、サンプルコードを使ったりするのにLinuxのほうが都合が良い場面があります。
ラズパイ4等でも良いのですが、ラズパイ4が如何に強力といえどもPCよりは非力です。
また、外部ディスプレイかSSHで使う必要があります。
そこで、最近構築したUbuntuで使えるようにしてみました。

まず、USBケーブルで接続しますが、Bootボタンを押しながらUSBポートに接続すると書き込みモードで認識されるのはWindowsと同じです。

ラズパイピコは/dev/ttyACM0という名称で認識されます。
gihyo.jp

$ls -l /dev | grep ttyACM
crw-rw-rw-+ 1 root   dialout 166,   0 10月  2 18:29 ttyACM0

ラズパイピコがエクスプローラーで外部メディアとして表示されるので、hello_usb.uf2をドラッグドロップして書き込みます。(これもWindowsと同様)

シリアルコンソール接続用のソフトウェアをインストールし、起動します。

$sudo apt install gtkterm

起動

$sudo gtkterm

ポートを選択すると”Hello, world!”が表示されます。

okchan08.hateblo.jp

次に、mpu6050というi2c接続の3軸加速度センサを使ってみようとすると、Serialが認識しません。
ここでかなり悩みましたが、CMakeLists.txtでUSB Serialが有効化されていないためでした。

$cd pico/pico-examples/i2c/mpu6050_i2c
$vim CMakeLists.txt

CMakeLists.txtに以下を追記します。

pico_enable_stdio_usb(mpu6050_i2c 1)
pico_enable_stdio_uart(mpu6050_i2c 0)

再度Buildします。

$cd pico-examples/build/i2c/mpu6050_i2c
$make clean
$make

これについては、公式のGitHubのIssueに悩んでいる人の書き込みがありました。
github.com
公式のGetting startにもSerialの項目に書かれています。(公式資料嫁...)

https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf

センサー出力を得ることができました。

まとめ

これでシリアル接続環境が整いました。
シリアル接続アプリはいろいろあるようですが、まずはGUIのこちらを使ってみます。

教訓
公式資料大事。
GitHubのIssueを検索すると情報があることが多い。