はじめに
秋葉原ロボット部の有志で、Milk-v Duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。
Milk-v Duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。
- CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
- 最高1 GHzで動作するデュアルRV64コア
- 64 MBのラム
- オプションのアドオンボードを接続すると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プログラムが利用可能です。
色々、試してみてください。