virt_flyのブログ -51ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑Raspberry PiでPythonプログラムを実行して温湿度センサーで測定したデータをCSVファイルに書き出したもの

 

Raspberry Piって中途半端

 

プログラミング学習は自己流で

 

前回は、温湿度が測れるところまではできましたが、定期的に計測し記録が残せるようでないとものたりません。CO2センサーでは、他人の経験をそっくりそのまま後追いしただけですが、そこまでは達成したわけですから。その後センサーが壊れて頓挫していますが(^_^)?

 

これ以上は、どうやら自分で見様見真似でもプログラミングするしか前にすすめそうになさそうです。そうなれば、プログラミング言語は何にするか決めなくてはなりません。CとPythonとから選ぶなら、インタプリンタ型言語でコンパイルの必要がないPythonが良いかも。

 

でも、Pythonを学ばないとプログラミングできません。どうしたものでしょう。

 

書籍は様々あっても読まなければどれが良いのかわからないし、いくらよい解説本でも読んだだけで何もかも理解できるほどわたしの頭はよくありません。実地に試すほうがわかりやすくて性に合っているのですが、センサーなど電子工作をともなうものは、キットでも買えば系統的に学べるのか、それも定かでなければ高い買い物をするわけにはいきません。

 

もう面倒なので、リファレンスを一瞥してPythonはどんなプログラミング言語なのかをおおよそ感じるようにし、注意点くらいは覚えておき、あとは闇雲にプログラミングに挑み、わからなければググりながら試行錯誤することで解決していくことにしたいと思います。これまでだってそうしてきたのですから、自分流もいたしかたない。

 

冒頭のスクリーンショットは、そうして実現したもの。日時と測定した湿度、摂氏と華氏での温度とをターミナル、ならびにCSVファイルに出力するようにPythonにてプログラムを記述し、まがりなりにも表示できたところを示しています。

 

microSDカードスロットがはがれそう

 

実は、ここに至るまでにとんでもないトラブルがありました。Raspberry Pi ZeroのmicroSDカードスロットが半分はがれかけてしまったのです。基板からカードが飛び出す構造上の欠陥で、ケーブルをつないだりする時についつい押さえてしまって、そりゃペキッとスロットのハンダ付け部分をはがしてしまいやすですよね。修理を何回か試みたのですが、すぐはがれて半分浮いた状態です。

 

そのせいか、CSVファイルの書き出し時は1セルしか表示されず、しかも文字化けしたようなわけのわから記号が表示されたり、microSDカードのコピーにも失敗するは、起動に時間がかかるのもあやしいところ。

 

Raspberry Pi 4では、スロットを壊す可能性はないものの、発熱がすごくて冷却ファン付きのケースが欠かせません。ファンのケーブルが邪魔してSDA、.SCLピンが挿せないのは、ケーブルの問題でしょうが、スタックしたりリボンケーブルをつけようとすると、ファン用の電源が取れなくなります。この欠陥により、Raspberry Pi 4はかなり中途半端なものになっていると思います。

 

OSがあり、複数のOSが使えて、Raspberry Pi はつぶしがきくので損はないように思うし、Raspberry Pi Zero Wだと小型な上、安価でWi-Fiも使えるところも気に入りなだけに残念です。せめて基板にファン用の電源がとれるようにならないものでしょうか。

 

ところでみなさんは、形状にもよりますがボックスケースにはいったRaspberry Pi 4にHATをスタックするときやリボンケーブルをGPIOピンに接続するときはどうされていますか。ピンソケットをスタックする他ないでしょうか。

プログラム

参考にしたPythonプログラムの手直しは、以下の通り。

1)現在日時の取得

2)CSVファイルへの書き出し

3)繰り返し

 

具体的には(sleepなど細かな点は省いています)

 import datetime     ←日時の取得のためのインポート
  import csv     ←CSV出力のためのモジュールインポート
        :
       (略)
        :
 ↓Get I2C busに関する記述の後に
 f = open("data.csv","w")     ←ファイル入出力の準備
        :
       (略)
        :
 for n in range(10):     ←データ出力の繰り返しのため、ここでは10回
 ↓以下ブロックのためにインデント下げ
        :
       (略)
        :
  h = str(humidity)
  c = str(celsTemp)
  k = str(fahrTemp)
        :
       (略)
        :
  now = datetime.datetime.now()     ←日時の取得
  t=str(now)
        :
       (略)
        :
  thck=[t,h,c,k]         :
       (略)
        :
 ↓以下の2行でCSVファイルに書き込み
  writer = csv.writer(f, lineterminator='\n')
  writer.writerow(thck)

 

 

先のスクリーンショットでは、一見10秒毎に定期実行しているかに見えますが、それは偶然、よく見ると少しづつずれていっています。CSVファイルもコマンドを実行するたびに一から書き直しになっています。そこらをもう少しなんとかしたいものです。

 

 

<参考>

 

 

 

↑温湿度センサーSi7021を取り付けたRaspberry Pi Zero HATもどきはセンサーのつなぎ間違いを避けるため作製

初めてのC言語、Python

壊れたCOセンサーにフラストレーション

 

先頃まで、Raspberry PiでMH-Z19Bを使い二酸化炭素の測定を試してきました。

 

測定データをCSVファイルに書き出すところまではできたので、続いてGASを使いネット上に公開したエクセルファイルへのデータの書き込みというのを試してみたのですがうまくいかず、試行錯誤中になんとMH-Z19Bがあっけなく壊れてしまいました。

 

目が相当悪くなってきたので、多分ピンの刺し違えを犯したのでしょう。

 

センサーを壊して後が続けられないなんて、こんな中途半端ではフラストレーションがたまるばかり。何でもいいから、他のセンサーを使ってでも何かしないと気分がおさまりません。悪い性分です。

 

代わりに温湿度センサーSi7021

 

そこで、前にIchigoJamで使った温湿度センサーSi021を、Raspberry Piにつないでみることにしたのが、今回の話題です。

 

さっそく、このセンサーが使えるプログラムをググってみたら、CとPython、Javaの3つプログラミング言語で書かれたものがすぐみつかりました。

 

いずれも横文字ばかりのサイトだったこともあり、とりあえずCとPythonで試してみました。

 

これまでただ実行するだけだったPython、Cにいたってはさわったことすらなかったので、Pythonってコンパイルが要らないんだなどと、思わず今更ながらの素人の感想を吐いたものです。

 

スクリーンショットは、PythonとCとでそれぞれ実行した結果です。

 

 

 

無事測定できましたが、少しもの足りないです。いちいち手入力でのコマンド実行が面倒だし、測定データの記録ができません。

 

 

<参考>

 

 

 

↑アップデートしたFlightGear2020.4.0では、ALSもRembrandtもなくなり、影が標準に!?

FlightGear2020.4.0がアップデートされてビックリ!

Ubuntuがアップデートを促すので実行したところ、FlightGearの開発版も含まれていたので、どんな具合か試してみてビックリ!

 

機体に翼が落とす影ができているじゃありませんか。

 

これまでフライトシュミレーターソフトのFlightGearで、機体が地表に影を落とすのはRembrandt効果を使用した時に限られていました。それ以外、デフォルトやALS使用時は影の形を模した平面形の3Dオブジェクトを持つ機体が、影もどきを作っているのがせいぜい。最近コクピットビューでは、操縦席内に影ができるようにはなっていましたが、外部ビューで機体の上に翼などの影が生じることはありませんでした。

 

慌てて、FlightGearを起動し直し、ランチャーでRenderingの設定を見たら、なんとRenderの選択の項がなくなっています。RembrandtやALSはいったいどうなったのでしょうか。

 

デフォルトもなくなり、どうやらALSがデフォルトとなり、Rembrandtは影を残して消えてしまったように見えます。ALSの発色はいまいち好きになれないところがありますが、これまで影のないために、せっかく様々な機能のあるALSの世界がリアリティーに欠けて見えたところが解消され、また3択になっていたRenderが一つに統一されて影が標準となったのなら、大いに喜ぶべきことでしょう。

 

 

それに、下のスクリーンショットを見てください。Viewのドロップダウンメニューに今は使えないけれど、今までに見かけなかったあらたなViewがいくつも含まれていて、期待がふくらみます。他にも、まだ変わっていそうなので、おいおい確かめることにしましょう。