忍者ブログ
高気密高断熱住宅に関する話題。 時事ネタなど。
 1 |  2 |  3 |
CCS811の件の続き
結論
Raspberry Pi3(Python-SMBus)がクロックストレッチに対応できないのが原因。
解決法1
/boot/config.txt
dtparam=i2c_baudrate=######
を追加して、I2Cの通信速度をデフォルトの100kHzから遅くする。
(#####には、適当に数字を入れる)
自分の環境の場合「10000」で安定しました。
要するに、クロックストレッチに対応できないので
それが誤差になってしまうくらいまで通信速度を落とすという
なんとも冴えない対応をすることでかろうじて通信できる模様。
このRaspberryPi のI2Cクロックストレッチ非対応問題は、
かなり以前から知られている現象のようですが
未だに解消されないんですね・・・。
ハマったわさ!!
よくわからないですが、このクロックストレッチにRaspberry Pi3側が
対応しないために、通信結果にノイズが混じるようです。
酷い場合は、通信自体が成立しません。
以下、メモ的リンク。

I2Cクロックストレッチの話題1
https://www.element14.com/community/thread/49698/l/i2c-clock-stretching-feature-in-raspberry-pi-3?displayFullThread=true
I2Cクロックストレッチの話題2
https://www.raspberrypi.org/forums/viewtopic.php?f=44&start=50&t=13771
I2Cクロックストレッチの話題3
http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html
http://www.microchip.com/forums/m810443.aspx
BCM2708ドライバー
https://github.com/raspberrypi/linux/blob/rpi-4.1.y/drivers/i2c/busses/i2c-bcm2708.c
RaspberryPi ハードウェア
https://www.raspberrypi.org/documentation/hardware/raspberrypi/README.md
BCM2837
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2837/README.md
解決策2
I2C通信をGPIOを使って行う。

I2Cクロックストレッチの話題2のスレの最後にCで書かれたものへのリンクがあります。
・・・C・・・苦手w
Perlでも同様のことをしている人がいるっぽい。
Perl知らないw
PR
AVRって何?

知っている人は当然知っているんでしょうが、
私は知りませんでした。

最近まで知らなかったんですが、Arduinoに載っているゲジゲジの
アレがAVRの一種 ATMEGA328Pというものらしいです。
AVRファミリの中では、中ぐらいの性能な部類・・・かな?

Raspberry Pi3とかだと、電気馬鹿食いなのと
ぶち切りできない(PCに近いため)ので、
道具として使うにはチト使いにくい部分もあったりします。

が、とりあえずライターなるものが必要らしく
う~む、なにを選べばいいものやら・・・。
しかも、売り切れとか終売とかあったり・・・。

PICとかAVRのちっちゃいマイコン(死語?)とか
男の浪漫ですよね~w

思うに、Raspberry Pi3は画像処理が得意というか売りなんでしょう。
有り余るパワーで画像認識が可能です。
これと、GPIOを使っていろいろしようというのが
相応しいというか、ラズパイらしい使い方なのかもしれません。
最近ではUSB外付けGPGPUまで登場しました。
AIというか機械学習真っ盛りですね。
ラズパイで学習させるのは無理がありますが、学習済みNN
を使うのは問題ない模様。
キュウリの自動選別機とか作例があった気が・・・。

もっと簡単な用途でなら、ちっちゃいAVRで電池駆動でも事足りる
かもしれません。
どこまで単純化して小さく出来るか?
ATtiny10とか・・・ スゲー。

どの程度ならどのマイコンという感覚がイマイチわからないのです。


ミサイルで蚊を殺すような使い方でも、ラズパイの方が
「猿でも出来る」的な簡単さがあるのも事実。
低層の知識がなくてもできてしまうから簡単なんですが
何かあっても対応できることが限られてしまいます。

技術の進歩っていうのは、結局人間の欲望に基づくようで
そのうち、ラズパイ使えば大抵のことは何も考えなくても
知識がなくても使えるようになっていく気がしなくもないです。
SHT-11あたりのセンサーが変態I2Cで苦労したりしたけれど
今のSHT-31は標準のI2C通信でいとも簡単に使えるようになりました。

ただ、基本というか
そういう部分も知っておきたい気がします。
それに、ちっちゃいマイコンはやっぱり男の浪漫なのですw

と言うわけで、しばらくAVRで遊んでみます。
(PICは手出しすら出来ませんでしたがw)
秋月のショップページをうろうろしていて、
コレのDIP化キットを見つけました。


https://flashair-developers.com/ja/discover/overview/w04/

FlashAirは、無線LANがついていないデジカメに
無線LANでアクセスできるようになる便利アイテムで
ずいぶん前に買ったものが手元にあり、未だに便利に活躍してます。

ですが、最近のデジカメはBluetoothとかWi-Fiとか無線機能を
搭載している物が多く活躍の場が減っているのではないでしょうか。

が、IoTアイテムへと華麗に転身していたんですね。
素晴らしい。

なんだろう、このワクワク感w

ロギングと無線通信ができて、べらぼうに小さくて・・・。
ぐむむ、時間が~!
精神と時の部屋が欲しい・・・(´・ω・`)
BME680の気圧センサーを利用して
台風通過のデータを先日紹介しましたが
あんまりBME680の使用がお勧めできないことが
わかってきました。


これは、台風通過時のデータ。
うーん、きれい。



で、こちらは他のときのデータ。
おや?気温と気圧が逆相関になってます。
・・・(´・ω・`)
そんなアホな。
逆ならわからなくもないけど
そんな潜水艦みたいな密閉性はないw


 
で、改めて気圧センサーをLPS22HBに変更して
別の日のデータ。
そうだよね、室温と気圧は関係ないよね。
因みに途中段差になっているところは、
日付が飛んでます。
 

最近、なにかと重宝されているボッシュのBMEシリーズ
のセンサーですが、あんまりいい感じではないようです。
器用貧乏ですね。

センサーも餅は餅屋!ってことで。
先日紹介したCCS811を使ってみたのですが、
やたらと不安定でした。

SHT-31やLPS22HBの安定ぶりとは対照的です。

Raspberry Pi3 Python3 SMBus を使っています。




CSVにデータを吐いてみると、わりと
どのデータにもまんべんなく先頭ビットが立って
しまっているようです。

ミスなく通信している行を見つける方が少ないくらい。

あと、通信できないこともあるのですが、
こちらは、スクリプトで例外処理してしまっているので
データには出てきません。

要はちゃんとデータが取れればいいのですよ、取れれば!

と、言うわけで

多分PIPでインストールできるライブラリーがあるような
気がするので、そちらをインストールしてみて
それでもダメなら・・・う~む、どうしましょう?

プルアップ抵抗でも足してみる?

誰か助けて~
うあ゙ぁあ ・゚・(´Д⊂ヽ・゚・ あ゙ぁあぁ゙ああぁぁうあ゙ぁあ゙ぁぁ
♥ Admin ♥ Write ♥ Res ♥
カウンター
カレンダー
10 2017/11 12
S M T W T F S
4
5 6 7 9 10 11
12 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
フリーエリア
最新コメント
[05/11 ヤン]
[06/03 ヤン]
[05/30 ヤン]
[04/26 ヤン]
[10/03 ICHI]
最新トラックバック
バーコード
ブログ内検索
P R
Copyright ©  晴時々曇一時雨  All Rights Reserved.
*Material by Pearl Box  *Template by tsukika忍者ブログ [PR]