緑の中に

緑の中に
国立天文台

12/30/2019

マイコンの吐き出すデータパターンの変更

マイコンの吐き出すデータパターンの変更


データ採取が容易なように、マイコンの吐き出すデータのパターンを下図のようにしました。

 上図
表示は上図のごとく1か所です。順次表示しません。目に優しいです。





上図
TeraTermのログファイルです。この様な吐き出しに変更しました。
[特徴・規則性]
このデータの特徴はデータ区切りのSpaceはありません。全データに単位mVが付いています。
データ数値の最大は4桁で最小は1桁です。

以上の特性を踏まえて、グラフ化のプログラミングを行います。
データのバグ対策は今は考えません。

照度データをTeraTermで受信

照度データをTeraTermで受信






上図 
TearTermの設定でAppend (追記)Modeのオプションがあります。
Teratermの接続を終了するとlog(ログ)ファイルが生成されます。
メモ帳で開く事ができます。

このとき、上図の様にデータの先頭にタイムスタンプが押されます。

TeraTermの受信時の受信画面にはタイムスタンプの表示は出ません。



上図
同じlog(ログ)ファイルを「さくらエデッター」を使用して開いた状態です。
メモ帳での見えと全く同じです。




上図

DeciamlBASIC にてこのデータを読みます。
ある日のある時刻のデータの1つを読めれば十分です。平均値まで算出してそれを使用する気もありません。

何十個とデータを収集していますが、少し時間経過した安定なデータをサンプルとして採り出します。桁数で50桁あたりを目途にします。

現在段階でこのプログラムはグラフデータが1件ですので、(0,0)から (8,4804)の描画です

[特徴・規則性]
●ファイルは文字型データです。各桁は半角です。
●データの特徴としてSpace(スペース)2個の後に必要とするデータがあります。単位のmvは不要です。
●TeraTerm接続の最初にデータがバグることがありました。すなわち、桁落ちなどです。

[使用データをどうするか]
●採取したいデータは0~9までの4桁の文字データです。正常観測なら必ず4桁です。
●0~9 のキャラクタコードは30H~39Hが割り当てられています。

●データ並びから任意の4桁を採りだします。この4桁中の1桁ずつ30H~39Hに合致するかを検査します。4桁中1桁でも合致しない場合は、数字が入っていないことになります。

●上記ですべて4桁の文字が得られない場合は、右に1桁分シフトした4桁を採りだします。この、シフトを行った4桁について同様に1桁ずつ30H~39Hに合致するか検査します

●以上のアルゴリズムにより、連続した4桁の文字を採取できるはずです。

●採取した4桁の文字を数値に変換します。

■上図のプログラム・実行結果は、データのバグに対して無力です。
2個のSpace(スペース)の後には必ず4桁の文字があることが前提の考え方です。

実際はバグルと1桁の時とか2桁しかない時もあり得ると考えます。「任意の4桁」の採りだし方を、右に1桁移動し4桁を採取します。さらに右に1桁移動した4桁を採取します。これを7回繰り返します。このそれぞれで1文字ずつ検査をするわけです。

すると、必ず4桁連続の文字を取得することができると考えます。

下図
次にこの概念をフローチャートにしました。ご覧ください。
めっちゃ 悪筆ですが思いつくままフロー図にしました。概念が重要だと言い訳します。
さらに、清書する予定です。



上図
大きな来年のカレンダーを明治安田さんから頂きました。
まずは、その表紙の裏側の白い面がフローチャートを描くのに最適です。

以前も電子カレンダーアラームをプログラムしました。この時もやはりカレンダーの裏側
にフロー図や状態遷移図を描きました。

思いつくまま書きます。きれいに書こうとは思わず、その時の思考過程を直ちに図式化しました。これが、結局最後まで重要な資料・思考過程の記録となっています。

あとで見ても自分の悪筆にいやになりますが、その時のプロセスが如実に思い出されます

今回は、下に長く伸びるフロー図となりました。

12/27/2019

照度の受信データを



照度の受信データを

TeraTerm受信LOGのfileです 

 上図
TeraTermにて採取したログです。最初に受信Date(日時)が入ります。
これにより生Dataにタイムスタンプが押された状態となります。

このDataの並びはそもそも数値なのか文字なのか?
これが重要なことになります。あとで検討しましょう。



1画面に収まらず、2画面として撮影記録したのもです


上図
同じDataをBinEditで閲覧しました。1画面に収まらず、2画面として撮影記録したのもです。

--------------------------------------------------------------------------------------------
 
手動で受信トリガーしています(単にTeraTermのアイコンをクリック)。すると、受信を
開始しました。

受信Fileには以前の内容を引き継がないようにしたいと思います。受信画面やBafferを一旦クリヤして記録保存する方式としたいです。あえて、追加モードもあるようです。追加モードでの記録採取は今は考えません。

受信File名はteraterm.log として保存されます。このファイルをメモ帳で開いた場合、上段図になります。

同じファイルをBinEditで開いてみます。すると中段・下段写真となります。
表示形式をUTF-8 またはSHFIT_JIS にすると同じように見えます。

TeraTermのログのローテイト設定で2KByteとしました。ここの設定を例えば10Byte程度とするといくつもファイルを作り出す動作をしました。

実験では30秒ぐらいのデータ採取で200Byte程度の容量となりました。
ただし、この時の伝送速度は2400BPSで送信側・受信側を一致させています。

(ここでさらに思いを拡張させます。UTF-8 とかSHIFT_JIS は何のことか?
この関連は別タイトルで述べたいと思います)

TeraTermのログのローテイト設定で1KByteとしました。
そして、5分間の受信容量を調べたら約1.5KByteでした。


今の写真のデータの容量は962Byteです。
--------------------------------------------------------------------------------------------

次の課題は
●この採取データは文字としての属性扱いです。
 文字を数値に変換する関数があります。よって、文字の属性で良いのですが単位のmv
 が問題になります。

 マイコンよりmvは吐き出して欲しくない。
 これは、マイコン側のプログラムで変更します。

あるいは、生データのmvを削除して、1次加工データを作成する手段があります。

 また、何十個もデータが採取されているように見えますが、これは1個のデータとみな 
 されているようです。
 


生データのmvを削除して、1次加工データの作成を試みます。まだ、後の手段としう。
 

■ やれることからやる。後で、検討を加える。



 








12/17/2019

照度を観測-1


照度を観測-1



上図
AD変化の具合を調べるため、可変抵抗器で5Vを分圧して0~5Vの電位を作りました。
この電位をAD変換ICへ送りました。
















AD-RS232C変換 パソコンにDataを送る 


AD-RS232C変換 パソコンにDataを送る 





上図
PIC12F675でAD変化を行っています、アナログ量は照度です。

変換後のデジタルデータをRS232Cレベルに変換して、RS232Cストレートケーブルでパソコンに送っています。

*照度センサーはセンサー下側からの反射に反応しないように、黒色の台紙を入れました
* 黒いペンキャップは照度センサーを暗くするためです。



  上図  
照度センサー、 PIC12F675、  AD変換用ICが見えます







上図
暗いときはセンサーの電位は低く出現します。明るいとセンサーの値は大きく出現します
明るくしたり暗くしてみたときのデータです。



上図
観測データはまだグラフ化プログラムと連動していません!!
イメージ写真です。観測したデータとグラフのリンクがこれからの課題です
このイメージが目標です。




上図
PIC12F675へ書き込んだプログラムがなんであったか管理することを忘れてしまいました
微妙に調整しているため、上図観測画面は他とは違うプログラムで動作しているかもしれません。しかし、基本的には皆同じです。


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

パソコンの受信画面です。センサーを暗くすると約0mvを示します。また、明るくすると約4700mv前後を示します。

受信ソフトはTeraTermで受信しています。伝送速度は2400bpsで同期させました。

受信ソフトを十進BASICでも実現できました。

ここから先の展開は、受信したデータをファイルとして保存する必要があります。
この方法をこれから研究・検討します。TeraTerm が良いのか十進BASICが良いのか?
とにかく目的を実現しやすい方から進めます。
--------------------------------------------------------------------------------------------

Java参考書籍

1日で
基本が
身に付く!
Java

技術評論社







買いましたが、全く見ていません。

やることが多く、やり切れません。


はやぶさについての質問です

はやぶさについての質問です

「初代はやぶさ」 「はやぶさ2」 について思いを巡らしています。私の単純な質問です。
はやぶさ2は改善・改良が施され全く同じではないと思いますが、基本的には大きな違いは無いと勝手に思っています。

以下、私の単純・純粋な質問です


Q1-1

  • はやぶさは時計を搭載していますか?
  • もし搭載しているなら、協定世界時(UTC) ですか? 日本標準時(JST)ですか?
  • どのような時計を搭載しているのかな?

Q1-2

  • 地球からのコマンド(命令)に対して、はやぶさがその電波を受信するまで時間遅 延があります。地上系の作業手順時刻は日本標準時(JST) で行っていますか?


Q1-3
  • はやぶさの発する信号は1BitのBinary信号とのことです。この信号は、外界観測信号や自身のマシンの状態も発信していると思います。これらをごちゃまぜに送信しているのでしょうか?
  • はやぶさの発する観測データはタイムスタンプ付きでしょうか? 地球との時間遅延があるのでどのようにデータの時刻を扱いますか?
  • 信号のスタートBitとStopBitはどのように組んでいるのでしょうか?
  • 一連のデータは何ビット構成にしているのでしょうか?
  • 信号の種別を知りたいです?  パルスコードPCM ? TDM? 電波形式は?

*昔の朝日新聞に特集があり読んだ記憶があります。上記内容に触れていた記事もあったかもしれません。新聞を保存すべきでした。

図書館へ行って過去新聞を調べます。可能でしょうか?








MinGWとは

MinGW  とは




MinGW : Minimalist GNU for Windows の略である。


  • GNU Compiler Collection(グニューコンパイラコレクション)は、GNUのコンパイラ群である。略称は「GCC(ジーシーシー)」。このGCCの実行ファイル(コマンド)がgccである。
  • 様々な言語に対応しており、標準ではC言語やC++、Objective-C、Fortran、Java、Ada、Goのコンパイラが同梱されている。
  • gccとは、GNUプロジェクトが開発・公開しているコンパイラ。様々なプログラミング言語のコンパイラを集めたパッケージとなっている。多くのUNIX系OSで標準的に利用され、オープンソースのOSではOS自体のコンパイルに用いられることも多い。
<Net >

十進BASIC参考図書



十進BASIC参考図書

BLUE BACKS
パソコンを遊ぶ
簡単プログラミング
コンピュータを自由に操る「十進BASIC」入門

林 良夫




書籍以外にNetを検索すると多くの情報が得られます





12/08/2019

C++ クラスと継承 完全制覇



新・標準
プログラマーズ
ライブラリ

C++
クラスと
継承
完全制覇

矢沢 久雄
技術評論社


私はC++で挫折しました。’クラス’ ’オブジェクト’ ’インスタンス’何のことやら。もう参りました。

ところがこの本の最初に私のような方が非常に多く、私も例外ではないことが分かりました。そのような方に親切な本らしいです。

気づいたことがあります。私、DABSEⅢやdBXLを以前扱いました。
すると、フィールド、レコードという概念があります。
この概念で説明してもらった方が私には理解が容易です。で、そのような解説がありました。 理解しやすいです。

と今のところ思っています。これからぼちぼち始めます。











3ステップ Visual Basic 入門


3ステップ
Visual Basic入門

技術評論社

 


まだ、よく見ていません。
ぺらぺらとページをめくっただけの感想は、手続きがそれなりにあるという感じです。

従来のCUIタイプに私は慣らされているため、戸惑います。

3ステップ C#入門


3ステップ
C#
入門
技術評論社


本の通りに実施していくと、アプリが作成できました。もちろんOS Win10 上で動作しました。

完成したアプリの立ち上がりは良いです。
アプリの完成度が高ければ、ユーザにとって使用感は素晴らしいものとなることは理解できました。

従来のCUIタイプでプログラミングし、Input、Outputのみを着飾る方法で両者を結合するプログラミング方式はとれないか?

アプリにウエアを着せる概念はとれないのかな?