ryotankの備考録日記

趣味の電子工作についての備考録などなど

foliumの勉強_GeJSONとは何か

GeJSONとは、地理空間情報を表現する為のフォーマットの1つで JSON形式でデータを表現する

GeJSONの特徴

・軽量で扱いやすい GeJSONはJSON形式な為 サイズが小さく、webアプリなどで扱いやすい

・様々な情報を表現出来る GeJSONでは地理空間情報だけでなく プロパティ情報も合わせて表現出来るので 様々な情報を1つのファイルに集約可能

・オープンなフォーマット GeJSONは、誰でも自由に利用する事が出来る

GeJSONの基礎知識

以下のような要素が含まれる

・Feature: 地物データ FeatureCollection: 地物データの集合 Geometry: ジオメトリ情報 Properties: 地物データのプロパティ情報

ジオメトリオブジェクト GeoJSONでは、ジオメトリオブジェクトと呼ばれるオブジェクトがあります。 ジオメトリオブジェクトは、以下の種類があります。

Point: 点 MultiPoint: 複数の点 LineString: 線分 MultiLineString: 複数の線分 Polygon: 面 MultiPolygon: 複数の面

プロパティ GeoJSONでは、地物データのプロパティを定義することが可能。 プロパティには、地物の名前や種別、面積や長さなどの属性情報が含まれる。 プロパティは、Featureオブジェクト内に定義される。

次回はGeoJSONの例を示す

ESP32で時間経過に沿った予報を表示する面白い基板を作ろう計画その2

評価基板を作るには

すごーく重要な電源問題を決める

電源候補1: リチウムイオン電池(ボタン電池型も含む)

リチウムイオン電池は、小さく安価である。 ただ、充電方法や充電回路が一般的でない また、衝撃に弱く発火すると大きな火事に成りかねない。

TVで報道されているような大規模な火事になるという点から 候補から外れる

電源候補2: アルカリ乾電池

ごくごく一般的な電池 どこでも入手しやすく 電池ケースもネット検索すれば手に入る ただ1本あたり満充電でも1.5Vなので 複数本使うことがスタンダードになり 結果的にスペースを取る事になり 基板自体が大きくなる傾向にある

以上の観点から電源供給はアルカリ乾電池になる。

次回は、電源電圧を決めてLED点灯回路(電源確認用)を決める

ESP32で時間経過に沿った予報を表示する面白い基板を作ろう計画その1

そもそもESP32ってなんぞ??

ESP32とはロボット制御や小型ディスプレイ表示(LCDみたいな) WiFiとBluetoothを標準搭載した低コストで 低消費電力なIoT向けマイコンの事。

コスト的には数百円から千円程度で入手可能で 技適(技術基準適合証明)取得済の ボードも販売されている

カメラや大容量メモリー向けの ESP32-S3などの派生商品も展開されている

ESP32のデメリットとしては アナログ入力の精度が低い、消費電力が比較的高い 5Vトレランス(耐電圧)がない事

特に、消費電力が高いという事は 無線機能を内蔵している為、待機時や 通信時の消費電力が高いので、ボタン電池のみを 使った長期のバッテリー駆動には、あまり向かない事

また、5Vトレランス非対応というのは 5Vの電気信号を直接入力するとESP32のチップが 破損する。その為に5Vのセンサーやマイコンと繋ぐには レベル変換回路が必要になる。 入出力ピン(いわゆるIOピン)は3.3V駆動

最後に無線ノイズの影響 高周波のWiFiやBluetoothを使うので 周辺のアナログ回路やセンサーにノイズが 乗りやすいという特性も持っている。

将来的には、自作のロボットに搭載したい

まずはESP32の評価基板で実験をする事が先決

秋月電子で購入予定 10_12時点での価格1個税込みで1800円

販売コード 115673 型番 ESP32-DevKitC-32E 発売日 2020/11/02 メーカー Espressif Systems (Shanghai) Pte. Ltd.

■主な仕様 ・シリーズ:ESP32 ・CPU:ESP32-WROOM-32E ・ROM:4MB ・RAM:520kB ・GPIO:19 ・電源電圧min.:3.3V・5V ・電源電圧max:5V ・IO電圧min.:3.3V ・IO電圧max.:3.3V ・IDE:Arduino_IDE・ESP-IDF ・実行言語:C/C++ ・無線機能:Wi-Fi・Bluetooth ・無線機能詳細:Wi-Fi(802.11b/g/n)2.4GHz・Bluetooth(v4.2_BR/EDR・BLE) ・工事設計認証(技適)番号:217-204070 ・長辺:48.2mm ・短辺:27.9mm

まずは、上記の評価基板をKICadで描いてみるか いつになるだろうな・・

電子工作作業日報その26_作業日報アプリで使う機能でテストを自動化したい件

pytestというライブラリを使って ”将来の修正で、機能を壊していないか確認する為の保険"をかける

やり方としてが 最初のpytestを書く 電子工作作業日報project/

  • reports_excel_create.py #テスト対象の関数

  • test_reports_excel_create.py #テストファイル(test_で始める)

reports_excel_create.py の中身

#電子工作作業日報アプリで使う機能

'''openpyxlに関するライブラリをインポートする
セルの文字配列
罫線の色や形を整える
まず、最初にカラのexcelファイルを作る
2番目に1つ目のシートを生成する(1枚目シート名)
3番目に1つ目シートに各単語を書き込む
4番目に1つ目シートにセル結合部に以下の処理を施す
5番目:セル結合した箇所に太い罫線を引く
6番目:2つ目シートを生成する(2枚目シート名)
2シート目に各単語を書き込む
8番目:2つ目シートにセル結合部に以下の処理を施す
9番目:セル結合した箇所に太い罫線を引く
10番目:3つ目シートを生成する(3枚目シート名)
11番目:同シートに各単語を書き込む
12番目:3つ目シートにセル結合部に以下の処理を施す
13番目:3つ目シートのセル結合部に太い罫線を引く
14番目: excelブックを生成した時に出来た[Sheet]を削除する
15番目: ファイル名を「電子工作作業日報_生成した日付」という名称でファイルを保存
16番目:CTkMessageboxで"ファイルを所定の場所に保存しました"という文言を成功付きアイコンで表示する 
'''

test_reports_excel_create.pyの中身 #テストファイル

from reports_excel_create import

通信シーケンス図をplantumlでの表記に変えてみる 表記その1

例として plantumlで開始を表現するなら activate ライフライン名

終了を表現するなら  deactivate ライフライン名

実線矢印を表現するなら ライフライン名 -> ライフライン名 : メッセージ名

応答メッセージは点線矢印で通信シーケンス図では表現される

plantumlだと

ライフライン --> ライフライン名:メッセージ名

上記の決まりごとを踏まえて実際にplantuml表記に変えてみると・・・

plantuml的表記その1

まずはすべてのライフライン名で開始を表現してみる

activate ユーザー  ユーザー ->専用ファイル:データ用意  activate 専用ファイル activate 入力補助GUI activate ファイル解析処理  activate グラフ事前設定処理   activate グラフ生成処理 activate グラフ表示処理


次回は通信シーケンス図をもとに 各メッセージと応答メッセージをplantuml表記で表現する

減量管理入力補助GUIその107_UMLをコード化するには python編

いざ自分で苦労して描いた通信シーケンス図を pythonコードにするには

どうすればいい全くといって良いほど 分からず

ネットで色々調べてみた

「UMLをコード化 python」と検索した

AI君によると

まずクラス(Class):classクラス名:で定義する

2番目に属性(Attributes): initメソッド内でself.属性名として 定義する

3番目に操作Operations/Methods): クラス内の関数として定義します。 関連・集約 (Association/Aggregation): 他のクラスのインスタンスを 属性として保持する。

ほ~~~ん

すぐにはコード化出来なさそう

じっくりと取り組むかぁ・・・

アークナイツ理性回復GUIその4_現状

リニューアルしてみた

現状で問題なのは MAXから現理性を引いた値を

時間ごとに変換して表示するエリアまでは再現出来たが

理性計算フレームの見た目参考キャプチャ
実際に数値として出すことが出来ない

つまりは式が成り立っていない為に、表示処理が出来ないのか

それとも計算自体は出来ているが、時間ごとに表示出来る桁数に限界があるのか

ネットに落ちている 電卓GUIの変数の計算式などを参考にして もう少し煮詰めていく