LinkIt Smart 7688を使ってみる

UPM Sensor/Actuator repository for MRAA

UPMとはmraaライブラリを利用して作られたセンサーやアクチュエータのためのライブラリ集です。
MediaTek LinkIt Smart 7688 Developer's Guideの5.2章に、ADXL345(3軸加速度センサー)用のサンプルコードが記載されていますが、
ADXL345を持っていないので正しく動くのかどうかわかりません。

こ ちらにUPM(Useful Packages & Modules)のPythonサンプルソースが公開されています。
サンプルとして公開されているadxl345.pyと、MediaTek LinkIt Smart 7688 Developer's Guideに記載されているサンプルでは
ライブラリのインポートの手順が違います。

intel-iot-devkitのサンプル
#!/usr/bin/python
#-*- encoding: utf-8 -*-
from upm import pyupm_adxl345 as adxl345
import time

device = adxl345.Adxl345(0)

while True:
  device.update()
  a = device.getAcceleration()
  print "(x,y,z)=%5.1f, %5.1f, %5.1f" % (a[0], a[1], a[2])
  time.sleep(0.3)

MediaTek LinkIt Smart 7688 Developer's Guideのサンプル
#!/usr/bin/python
#-*- encoding: utf-8 -*-
import pyupm_adxl345 as adxl
import time

device = adxl.Adxl345(0)

while True:
  device.update()
  a = device.getAcceleration()
  print "(x,y,z)=%5.1f, %5.1f, %5.1f" % (a[0], a[1], a[2])
  time.sleep(0.3)

intel-iot-devkitのやり方では、インポートエラーとなりました。
root@mylinkit:~# python ./adx1-2.py
Traceback (most recent call last):
  File "./adx1-2.py", line 3, in <module>
    from upm import pyupm_adxl345 as adxl345
ImportError: No module named upm



oled_ssd1308.pyのサンプルソースをintel-iot-devkitからダウンロードして、インポート部分だけを変えて試してみ まし た。
root@mylinkit:~# python ./oled_ssd1308.py
Traceback (most recent call last):
  File "./oled_ssd1308.py", line 28, in <module>
    import pyupm_lcd as upmLCD
ImportError: No module named pyupm_lcd

どうもpyupm_lcdはインストールされていないようです。
opkgで最新版にアップデートできるのかどうか確認してみましたが、できませんでした。
# opkg list-installed | grep upm
libupm - 0.4.0-04dc6df4297a7766d6f1a8fef9699d586e7e0d92

# opkg upgrade libupm

ちょっと期待していたんですが、残念です。
UPMライブラリの最新版をソースからコンパイルしてインストールする必要が有りそうです。
こち らにC言語のライブラリソースが公開されています。
mraaライブラリを使ったGPIO/i2c/SPIのアクセス方法も大体分かったので、どうしても使いたいデバイスは、
mraaライブラリを使えば何とかなりそうです。

続く....