フォト
サイト内検索
ココログ最強検索 by 暴想
2026年6月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
無料ブログはココログ

最近のトラックバック

にほんブログ村

  • にほんブログ村

« GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その1) | トップページ | GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その3) »

2018年7月 1日 (日)

GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その2)

 今回は前回のGrovePi+のセッティングに引き続き光センサーGrove-Light sensorの接続です。これは、アナログセンサーでアナログポートに挿さないといけません。アナログポートの参考としては「GitHub」の「GrovePiのポート仕様とパーツ名称」(<-うまくリンクが張れないので検索サイト等で検索してみてください)があります。これによると、ポートは写真右側の緑で囲ってある下からA0、A1、A2の3つで、

Grove-Light sensorをGrovePi+のA0ポートに接続したところ(D4ポートにGrove DHT Pro(DHT22)が接続されています。)

Dscn0625_3_li


取得するデータの範囲は: 0-1023(10ビット)です。以前使ったMCP3208が0-4095(12ビット)でしたから多少見劣りするものの十分役に立つ範囲と思われます。

Grove-Light sensorの写真
Dscn0621_2


 さて、それではソフトを動かしてみようとサンプルプログラムを探したところディレクトリ/home/pi/Documents/grove/GrovePi/Software/Pythonの中にありました(当方は、/home/pi/Documents/groveにディレクトリを作ったのでこうなっていますが/home/pi/Desktopに作っている方は読み替えて動作させてくださいませ。)。grove_light_sensor.pyです。このサンプルプログラムを見たところ、Grove-Light sensorの他にLED_Socket_Kitが必要となっています。LED_Socket_Kitを当方は持っていないので、とりあえずアナログポートの動作がわかれば良いと言うことで更にサンプルプログラムを探してみるとgrove_analog_read.pyがありました。これは、光の照度までは示してくれないけれども動作しているかどうかは十分わかりそうです。さて、これを実行したところ。
$ python3 grove_analog_read.py
Traceback (most recent call last):
  File "grove_analog_read.py", line 44, in <module>
    sensor_value = grovepi.analogRead(sensor)
  File "/home/pi/Documents/grove/GrovePi/Software/Python/grovepi.py", line 227, in analogRead
    return number[1] * 256 + number[2]
TypeError: 'int' object is not subscriptable
とエラーが発生します。ここでサンプルプログラムをイジって原因を解決しようとしたのですがサンプルプログラムのファイルはそのままでは、ファイルを変更して上書きすることができませんでしたので/home/pi/Documentsにコピーして修正することとしました。今度は別のエラーが発生しましたが「import grovepi」がうまく動いていないせいであることがわかり/home/pi/Documents/grove/GrovePi/Software/Python/grovepi.pyを/home/pi/Documentsにコピーして見ました。すると、
Traceback (most recent call last):
  File "grove_analog_read.py", line 44, in <module>
    sensor_value = grovepi.analogRead(sensor)
  File "/home/pi/Documents/grovepi.py", line 227, in analogRead
    return number[1] * 256 + number[2]
TypeError: 'int' object is not subscriptable
と、先ほどと同じようなエラーが発生します。色々、ファイルをイジってエラーが起きないように試行錯誤したのですが中々エラーは解決せず、随分Webページを探している中で、「Grove Piで光量の取得エラー。ファームウェアのアップデートで解決」を発見しファームウェアのアップデートを以下のように行ったところ解決したのでした。(Wikiよりファームウェア (英: firmware) とは、電子機器に組み込まれたコンピュータシステム(ハードウェア)を制御するためのソフトウェアで、ソフトウェアをROM等の集積回路にあらかじめ書き込まれた状態で、機器に組み込んだもの。また、ソフトウェアではなく、プログラマブルロジックデバイスで利用する回路情報も広義のファームウェアと呼ぶことがある。)
$ cd /home/pi/Documents/grove/GrovePi/Firmware/
$ sudo chmod +x firmware_update.sh
$ sudo ./firmware_update.sh
すると、嘘のように
$ python grove_analog_read.py
sensor_value = 31
sensor_value = 32
sensor_value = 33
sensor_value = 140
sensor_value = 131
sensor_value = 62
sensor_value = 98
sensor_value = 216
sensor_value = 234
sensor_value = 228
sensor_value = 225
sensor_value = 130
sensor_value = 107
sensor_value = 37
^CTraceback (most recent call last):
  File "grove_analog_read.py", line 47, in <module>
    time.sleep(.5)
KeyboardInterrupt
と動き出したのです。光を当ててやると4番めから数字が上昇しているのがわかります。
Ctrl+cを押して途中で止めています。
 いやー、seeed studio社(Groveブランドを作っている会社)様勘弁してくだせーって感じです。
と、言うことで今回はここまでで終わりです。次回は温湿度センサーGrove DHT Pro(DHT22)の接続です。これも試行錯誤してやっと動きました。

« GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その1) | トップページ | GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その3) »

パソコン・インターネット」カテゴリの記事

コメント

助かりました。 勉強しようとGROVEPI+といくつかセンサーを購入しましたが技術資料が少なかったので大変助かりました。

当方のブログを見て頂きありがとうございます。
わかりにくいところもあるかと思いますがご容赦ください。
seeed studio社様はハード的にはよい規格を作ってくれているようですが、ソフト的には苦しめられる部分がありますよね。
興味無いかもしれませんがGrove以外の記事も読んでもらえるとうれしいです。

コメントを書く

(ウェブ上には掲載しません)

« GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その1) | トップページ | GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その3) »