フォト
サイト内検索
ココログ最強検索 by 暴想
2025年10月
      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 31  
無料ブログはココログ

最近のトラックバック

にほんブログ村

  • にほんブログ村

« GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その5) | トップページ | 岐阜かかみがはら航空宇宙博物館に行ってきた »

2019年9月 7日 (土)

GrovePi+のフリーズ解消のもよう

 GrovePi+が温湿度センサーDHT22をpython3で使用している際にフリーズ(freeze)する問題ですが、ファームウェア(Firmware)をバージョンアップ(Version Up)することにより解消したようなのでご報告です。
 簡単に言いますとVer1.2.7からVer1.4.0に変更することによって解消しました。これを初めて見る方はVer1.2.7なんて導入すらできないよ!っていう方もいるかもしれません。一方、Ver1.4.0の導入にあたって、GrovePi+のセッティングですが、当方、Webページ「GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その1)」の様にすればよいのですが、GrovePiディレクトリの位置等も違うことがあり再度載せておきます。
 まずは、GrovePi+の基盤です。
 Dscn0613-2
Rasbperry Pi2に載せる前にUSBコネクターやLANコネクターに接触しないように裏側に付箋やマスキングテープで絶縁するのがお約束のようです。(GrovePi+になって絶縁は不要のようですが一応しておきます。)
Dscn0610-2
これをRasbperry Pi2に当方は載せます。載せるにあたってGrovePi+の黒いコネクターがRasbperry Pi2の1番ピンと揃うようにします。
Dscn0616-2  
GrovePi+がRaspberryPiとうまく接続出来ていれば、電源を入れた時にGrovePi+の緑のLEDが点灯します。
 そしてRasbperry Piの初期設定です。
 公式Webページ「2.Setup the Software」に従い"Raspbian for Robots"というカスタムソフトウェアを導入しますが、すでに当方はRaspbianが導入済みなので「2.Advanced users」の方を実行しました。
 端末エミュレータ(LXTerminal)で、以下を実行して再起動するとゴミ箱以外に3つのアイコンがデスクトップに加わります。
$ sudo curl -kL dexterindustries.com/update_grovepi | bash
$ sudo reboot
20190907075330_1920x1080_scrot
 また、それに加えて/home/piディレクトリ(フォルダー)にDexterディレクトリが作られています。
 そこで、Dexterディレクトリの中を見てみますとGrovePiディレクトリができています。さらに、GrovePiディレクトリの中を見てみますとFirmwareディレクトリやSoftwareディレクトリなど見たことがあるディレクトリが見つかります。
 ここで一旦、install.shが実行できるようにスクリプトのパーミッションを修正します。
 その後install.shを実行し再起動します。
$ cd /home/pi/Dexter/GrovePi/Script
$ sudo chmod +x install.sh
$ sudo ./install.sh
$ sudo reboot
端末エミュレーターを開き、スクリプトが正常に実行されたか確認します。
$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- 04 -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                        
「00:」行、「4」列に、「04」の数字が表示されていれば、インストールは正常に完了しています。
 次に、使ってたGrovePi+のファームウェアをバージョンアップすればよいのではと考えました。Firmwareディレクトリ内にはversion.txtがありその中を見ると1.4.0と書いていますので、端末エミュレータで以下を実行します。
$ cd /home/pi/Dexter/GrovePi/Firmware/
$ sudo chmod +x firmware_update.sh
$ sudo ./firmware_update.sh
すると以下の表示が出てきますので
Updating the GrovePi firmware
=============================
 http://www.dexterindustries.com/grovepi
 Run this program:
 sudo ./firmware_update.sh
 
=============================
Do you want to update the firmware? [y,n]
“y”を打ちますと以下の表示が出ます。
Make sure that GrovePi is connected to Raspberry Pi
Firmware found
Press any key to start firmware update
. . .
なにかキーを押せということなのでEnterキーなりスペースキーなりをおしてやります。
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0xDA"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: reading input file "0x05"
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0x05:
avrdude: load data efuse data from input file 0x05:
avrdude: input file 0x05 contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.

avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "grove_pi_firmware.hex"
avrdude: input file grove_pi_firmware.hex auto detected as Intel Hex
avrdude: writing flash (19918 bytes):
Writing | ################################################## | 100% 7.80s
avrdude: 19918 bytes of flash written
avrdude: verifying flash memory against grove_pi_firmware.hex:
avrdude: load data flash data from input file grove_pi_firmware.hex:
avrdude: input file grove_pi_firmware.hex auto detected as Intel Hex
avrdude: input file grove_pi_firmware.hex contains 19918 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 7.00s
avrdude: verifying ...
avrdude: 19918 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done.  Thank you.
と表示され、ファームウェアVer1.4.0はうまく導入されたようです。
 一応、ファームウェアのバージョンを確認してみます。
$ cd /home/pi/Dexter/GrovePi/Software/Python/
$ sudo python3 grove_firmware_version_check.py
GrovePi has firmware version: 1.4.0
GrovePi+の試し運転は端折りまして。
grove_dht_graph02_02.pyの実行をしたいと思います。
以下のようにgrovepi.pyをドキュメントディレクトリにコピーして(ファイルマネージャーでコピぺしても構いません)
$ cd /home/pi/ドキュメント/
$ cp /home/pi/Dexter/GrovePi/Software/Python/grovepi.py /home/pi/ドキュメント/
このあと、ブラウザーでダウンロード - grove_dht_graph02_02.pyをダウンロードし、以下のようにgrove_dht_graph02_02.pyを移動したあと(ファイルマネージャーで移動やコピペしても構いません
$ mv /home/pi/ダウンロード/grove_dht_graph02_02.py /home/pi/ドキュメント/
シャットダウンし電源を切ったあと
$ sudo shutdown -r now
Grove-Temperature & Humidity Sensor Pro(DHT22)をGrovePi+のD4ポート(写真左上)に接続し(Grove-Light sensorがA0ポートに接続されています。)
Dscn0625-2
そして、電源を入れ以下のようにgrove_dht_graph02_02.py実行します。
$ cd /home/pi/ドキュメント/
$ python3 grove_dht_graph02_02.py
以下の端末エミュレータに表示され、グラフがポップアップ表示されれば成功です。一分毎の表示なので少々時間がかかることがあります。
終わり方は端末エミュレータで[ctrl+c]です。
で、このグラフを8.3日間動かし続けても、以前表示されていた、端末エミュレータに温度(temp)や湿度(humi)で同時にnanは表示されなくなりました(ダウンロード - 20190829temp.csv)。ここで示すグラフ表示でも1日分ですが以前のグラフのように気温、湿度、水蒸気量がともに0の値を示す(グラフ外になる)ことはなくなりました。
20190907052359_644x546_scrot

 結局、ファームウェアが原因のようです。これから、1月ほどテストしてみてnanが出るかどうかを確かめたいと思います。
 
pandasで複雑なプログラムを作ってやる必要があったのかは不明ですが今更プログラムを修正するのは面倒なので気力のある人はチャレンジしてみてください。


<動作条件>
Raspberry Pi2
Raspbian 10
カーネル 4.19.58-v7+
Python 3.7.3
numpy 1.16.2
pandas 0.23.3
matplotlib 3.0.2
GrovePi+ Firmware 1.4.0
fonts-vlgothic

<当ブログ参考>
GrovePi+のフリーズほぼ解消(28日分のCSVファイルをmatplotlibでグラフ化)
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その5)
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その4)GrovePi+のフリーズへの対応
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その3)GrovePi+のフリーズへの対応
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その2)GrovePi+のフリーズへの対応
GrovePi+のフリーズ
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化
GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その3)
GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その2)
GrovePi+のセッティングと光センサーGrove-Light sensorや温湿度センサーGrove DHT Pro(DHT22)の接続(その1)

« GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その5) | トップページ | 岐阜かかみがはら航空宇宙博物館に行ってきた »

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

コメント

コメントを書く

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

« GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その5) | トップページ | 岐阜かかみがはら航空宇宙博物館に行ってきた »