LoginSignup
2
0

BMP280をI2C接続したMilk-v Duo上でPythonを使って温度と気圧を測定する

Last updated at Posted at 2023-12-01
1 / 2

はじめに

秋葉原ロボット部の有志で、Milk-v Duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。

Milk-v Duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。

  1. CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
  2. 最高1 GHzで動作するデュアルRV64コア
  3. 64 MBのラム
  4. オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能

現在配布されているディスクイメージV1.5.0には、Python、Pipが含まれていますので、本体の上でプログラミングが可能です。
本稿では、Milk-v Duoに温度と圧力のセンサであるBMP280を接続して、pythonのプログラムで、温度と圧力の測定を行います。

用意するもの

・Milk-v Duo本体
・3.3Vで動作するBMP280モジュール
・本体とモジュールを接続するジャンプワイヤ

BMP280とMilk-v Duoの接続

以下の様に接続します。
BMP280 Milk-v Duo
SCL GP0(GP1)
SDA GP1(GP2)
VCC 3V3(OUT)(GP36)
GND GND(GP3、8、13、18、23、28、33、38のいずれか)

Pipを使う前にSwapの設定

Milk-v DuoのRAMの容量が64MBしかありませんので、PiP3が動作しません。
Milk-v Duoのディスクイメージには、swap用に第3パーティションが確保されています。
以下の操作を行うと、Swapとして256 MBの容量が確保されます。

[root@milkv-duo]~# mkswap /dev/mmcblk0p3
[root@milkv-duo]~# swapon /dev/mmcblk0p3
[root@milkv-duo]~# echo "/dev/mmcblk0p3 swap swap defaults 0 0" >> /etc/fstab

実際に確保されているかは次のコマンドで確認します。

[root@milkv-duo]~# free -h
     total used  free  shared buff/cache available
     Mem: 29236 14732 7760 88 6744 11692
     Swap: 262140 0 262140 

上に示したように、「Swap:」の表示と「total」の下に「262140」と記載があれば、利用可能です。

「bmp280-python」のインストール

BMP280を利用するPythonプログラムには複数ありますが、ここでは、Pimoroniの「bm@280-python」を使用します。
はじめに、ライブラリをインストールします。

[root@milkv-duo]~# pip3 install bmp280

インストールに時間がかかりますが、気長に待ちます。
次に、母艦で「https://github.com/pimoroni/bmp280-python
を、zipファイル(bmp280-python-master.zip)としてダウンロードします。
最後に、「bmp280-python-master.zip」を母艦からmilk-v duoにscpで転送します。
転送が終了したら、milk-v duo上でファイルを解凍します。

[root@milkv-duo]~# unzip bmp280-python-master.zip
[root@milkv-duo]~# cd bmp280-python-master
[root@milkv-duo]~# cd examples
[root@milkv-duo]~# ls

examplesのディレクトリに、以下の5つの「.py」ファイルが存在することがわかります。
compensated-temperature.py
dump-calibration.py
relative-altitude.py
temperature-and-pressure.py
temperature-forced-mode.py
今回は、「temperature-and-pressure.py」を使用します。

「temperature-and-pressure.py」の実行

[root@milkv-duo]~# python temperature-and-pressure.py
temperature-and-pressure.py - Displays the temperature and pressure.

Press Ctrl+C to exit!


25.71*C 720.93hPa
26.49*C 1009.55hPa

「Ctrlキー」と「C」を同時に押すまで、計測値が表示されます。

おわりに

Pipによるライブラリのインストールに時間がかかりますが、Pythonを使って、milk-v duoのGPIOに接続したセンサの制御が可能になりました。
Milk-v duoのGPIOの配置はRaspberry pi picoのGPIO配置と同じですので、これまでに蓄積されたRaspberry pi pico用のハードとPythonプログラムが利用可能です。
色々、試してみてください。

参考url:https://github.com/milkv-duo/duo-examples

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0