緑の中に

緑の中に
国立天文台

4/02/2021

Ruby言語の特徴

                                      Ruby言語の特徴    

-------------------------------------------------------------------

Ruby

変数の型宣言はありません

------------------------------------------------------------------

スコープの種類は

・ローカル変数 小文字のアルファベッドで始まる変数名。

(変数名の頭に記号が付いていない)

・グローバル変数 変数名の頭に$が付いている。

・インスタンス変数 変数名の頭に@が付いている。

・クラス変数      変数名の頭に@@が付いている。

・クラス定数 大文字のアルファベッドで始まる変数名。

---------------------------------------------------------------------

Rubyには、マルチスレッド機能が装備されています。「マルチスレッド」とはひとつのプログラム内で、複数の処理を同時に実行させる機能のことです。

Rubyでは、マルチスレッドを言語レベルで用意しているため、マシンレベルのスレッド(ネイティブスレッド)を用いません。

このことにより、マルチスレッド機能を持たないOSでも、この機能を利用することができるだけでなく、どのCPUで動作させてもプログラムは同じ動作を実現します。

その代わりに、プログラムの実行速度が非常に遅くなるという欠点があります。

  

4/01/2021

RubyーLogger

Ruby-温度 Logger(ロガー)

下記は部屋の温度を記録させた状態です
ほんとに素晴らしいです。

5分インターバルの計測です。途中、手動で計測を起動しています。
温度センサーはサーミスターを使用しました。

サーミスターは、温度上昇時と温度下降時の履歴が一致しませんでした。
私が校正用に使用した温度計は、1℃目盛りです。

本当は、0.5℃目盛の精密温度計を使用して校正したいところです。


水銀0.5℃目盛の精密温度計は1万円前後します。

今とれる対策は、サーミスターと直列に入れた510Ωの抵抗を酸化金属被膜抵抗に変更することです。今現在はカーボン抵抗を使用しました。

下図のif文の羅列をご覧ください。

校正用の温度計を見て、その時のセンサー値を都度その温度
範囲になるように合わせます。



5分インターバルの実行には、バッチを組みました。
Windows10におてのバッチファイルの作り方はWebで検索可能です。
一度経験すると、何とか使えるようになります。
これはそのバッチ(log.bat)の内容です。

---------------- log.bat ----------------------------------
:START

@echo off
 
echo Hello Tom  
echo Programe name is thermistor_purple_big_logger_100.rb
echo 5min. interval logger. eternally  

cd C:\Users\**\Documents\MyRuby
REM ruby LM35DZ_logger_102.rb

ruby thermistor_purple_big_logger_100B.rb

timeout 294 /NOBREAK > NUL



REM 300--> 5min
REM 600-->10min

GOTO START
---------------------------------------------------------

REM ruby LM35DZ_logger_102.rb

このREM(リマーク)箇所は実行されません。

温度センサーLM35DZの場合のプログラムです。

300秒の設定でもほとんど問題ないと思います。