Armadilloフォーラム

pythonでSPI通信(Armadillo Base OS)

k.sato

2023年7月20日 14時23分

佐藤です。
お世話になっております。

Armadillo-640製品マニュアル Armadillo Base OS 対応
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…

上記の10.1.CUI アプリケーションを開発する
に手を入れpythonでSPI通信を行う方法について教えていただきたいです。

import spidevを使用するために
vscode プロジェクトの container/packages.txt に debian のspiのパッケージを追加するのだと思いますが、
spi-toolsなのでしょうか?
どれをインストールするかはどうやって調べるのがよいのでしょうか?

よろしくお願い致します。

コメント

at_dominique.m…

2023年7月20日 16時45分

佐藤さん

マルティネです。

> import spidevを使用するために
> vscode プロジェクトの container/packages.txt に debian のspiのパッケージを追加するのだと思いますが、
> spi-toolsなのでしょうか?
> どれをインストールするかはどうやって調べるのがよいのでしょうか?

https://www.debian.org/distrib/packages.ja.html (packages.debian.org) で debian のパッケージ検索はできます。

具体的に:
- spi-tools のパッケージの中身を表示すると、python で使えるファイルがないことが分かります:
https://packages.debian.org/ja/bullseye/arm64/spi-tools/filelist (spi-tools を bullseye で検索、パッケージの詳細を表示して、arm64 の「ファイル一覧」リンクで表示)
- python3-spi で検索してみたところ、python3-spidev パッケージが存在しますが、debian bookworm 以降が必要ですね… https://github.com/doceme/py-spidev のパッケージです。
(wildcard で検索できませんでした… ATDE で apt search python.*spi が一番近いですが、debian bullseye にそのパッケージがまだないためそこに引っかかりません…他に使えそうなパッケージはなさそうですね。)

現在のコンテナが debian bullseye を使っていますので、そのまま使えません。
解決方法はいくつかあります:
* debian bookworm が先月に stable となりましたので、Armadillo 640 でコンテナをアップデートしても問題ありません。vscode プロジェクトの containers/DockerfileFROM docker.io...bullseye-slim から bookworm-slim に編集したら、container/packages.txt に python3-spidev を追加できます。
* 手間かかりますが、パッケージを bullseye にバックポートしてインストールできます。あまりメリットがないので説明を省きます。
* パッケージを諦めて、pip をパッケージでインストールして pip で依存を管理できます(これも containers/Dockerfile の直接変更でできます)

よろしくお願いします。

マルティネ様

佐藤です。

パッケージ検索について具体的に教えていただき、ありがとうございます。

>- python3-spi で検索してみたところ、python3-spidev パッケージが存在しますが、debian bookworm 以降が必要ですね… https://github.com/doceme/py-spidev のパッケージです。
ただcontainer/packages.txt に python3-spidevを追加しても
「Generate development swu」で失敗していたのはそういうことだったのですね。

> 現在のコンテナが debian bullseye を使っていますので、そのまま使えません。
> 解決方法はいくつかあります:
> * debian bookworm が先月に stable となりましたので、Armadillo 640 でコンテナをアップデートしても問題ありません。vscode プロジェクトの containers/DockerfileFROM docker.io...bullseye-slim から bookworm-slim に編集したら、container/packages.txt に python3-spidev を追加できます。
こちらの方法でSPI通信が確認できました。

ありがとうございました。