S11のピークを見つける
いまひとつ、うまくやりたいことに到達しないんですがそれは自己の「ボキャブラリのなさ」ということなんでしょう、きっと
ピークを見つけるのに、scipyを利用する方法があるようです。前も調べたことがあるのだが、わかりにくいなぁ。低いピーク(谷)を見つけるのにargrelmin 、山を見つけるのに argrelmax 。引数のorderは、検出する範囲を指定するみたい。しかし、sパラのデータはログで掃引しているので下の方と上の方とでピークの位置をきちっと判定できない。ログでも判定できたらいいのにね、でもどういうアルゴリズムになるのか想像できないですけどね。
scikit-rfのデータを抽出する
s_magなどデータプロットは綺麗にできるようになったが、データをCSVなんかで保存できないかということを考えていた。Spyderで変数エクスプローラを見ると構造体の中にデータが入っているように見えて、そこを選択してエクセルとか貼り付けることはやっていた。
fが周波数、sが3D配列で見えていると思われる。
配列の要素を見つける
MATLABにはfindって関数があって、条件にあう要素のキー(インデックス)が返される。
Pythonには、numpyのwhereってのがあって、同様に返されるがキーそのものが返らなくて、ずっと解らなかったが、ようやく解った。
import bumpy as np a=np.arange(5) np.where(a==2) # (array([2]),) np.where(a==2)[0] # array([2]) np.where(a==2)[0][0] # 2
キーの配列が返るという意味だったのか!。ようやく理解した。
コロナ禍 行動自粛中
もうしばらく、行動自粛が続くものと思います。すこしづつ、制限は解除されてくと思いますが、前にも書いたけど働きかた改革の本当の意味で、この一部テレワークに変えつつ、業務効率化を目指して行って欲しいな。自粛制限がなくなったんで、3ヶ月前に戻して遅れた分大量残業でやってもらいますって、言いそうだな。いまだ、精神論だけでアホヌカす奴が多いからな!
で、Pythonista3ですが、一応、sceneなるライブラリを使うことで、アプリっぽくできましたね。字の色や、大きさや見た目感はもうちょっと工夫が必要ですが、まぁいいでしょう、ってことで。
Pythonista3 定期的に表示
時刻の表示をすることができるようになったが、定期的に回すのはどうすればいいのか。
しらべると、time.sleep()を使っている例を見かける。
v = ui.load_view() label2=v['label2'] while True: label2.text=format(dt,'%H:%M:%S') time.sleep(1) v.present('sheet')
ループしているようだが、windowが表示されない。v.present('sheet')まで行かないせいだと思う。なので、presentより後にループを持ってきたらいいかなと思った。さらに調べていたら、並列処理する場合はThreadingを使うんだよって書いてあるものがあった。
TOCOSやっと動かせたぜ!
やっている人にとっちゃ子供騙しだろうけど、俺にとっちゃ、けっこう満足っす。そこそこにまとめてあるっすよ。
TWELITEの動作確認を、無s年ブックに書いたっす。
自分で満足すりゃええのよ!
「長い休み中に将来の仕事を考えてきてください」、「は?」、考えねーわ、やりたいことやるっちゅうんじゃ、ボケ。アイデアがあったっって言わねーよ。
休みもあと2日で終わるが、特に全体的な成果ってないな。ええねん。それでええねん。ずっと、それでええねん。やりたいことやった、それでええねん。
ええねん!
PythonでLM61温度を知る。
温度が計算通りきちんと反映されるかを知りたくて、Teratermの表示を流れているをみていたが、よくわかならい。VitualBoxでデータを加工する方法ならPythonがいいが、それだったらMacでできないのかなって調べたらできそうだった。
PySerial
PySerialを使えばMacでも、PythonでUSB-UART変換で使えそうな感じだ。で、やってみた。
Anacondaの初期状態での”installed"には含まれていなかったのでPythonターミナルで
$ conda install pyserial
でインストールして使用する。
上のページでも書いたが、Macのterminalから接続デバイスをまず探しておく。そのときはVirtualBoxで使用しているポートを外しておいてやらないといけない。VirtualBoxで掴んでいると、ここには表示されないみたいだった。私の場合、下記コマンドで4つ表示された。
TWE-Lite
MONO WIRELESS(私が購入した時はTOCOSだった)の簡単無線モジュールです、
モード設定で親にも子にもなり、信号端子が同期するという、アプリがもともと入っています。クイックガイドの通りやれば、いとも簡単に無線通信ができてしまうのですが、親の方にmbedとかをつないでUARTでデータをとることを考えたとき、UARTのデータが仕様がはっきりわからなくて(当時)webにもなんか書いてあったけど、TIみたくまとまりなくていまいち頭に入ってこなかった。走行するうちに仕事が忙しくなり、そのままに放置していた。その数年後、不幸にもコロナ禍でようやく時間が取れるようになったので、もう一度トライしてみようということになった。
あいかわらず、簡単部分は分かりやすいが、webのページはあちこち飛ばされるせいで分かりづらい。みりゃわかるでしょみたいなものはたくさんあると思うが、確認しながらの結果を覚え書き(自分のための)として書いておく。
今回、ADに温度センサLM61をつけたかった。子機にLM61をつけて遠方に置き、親機は手元で液晶表示させるような使い方。最終的には、子機を数台設置して複数の場所を表示する。
Pythonista3 時刻を表示する
iOSでPythonを使うやつです。ブックマークなんだけど、アプリっぽくアプリ同列にアイコンを置けるということも魅力
https://cycle.eek.jp/blogs/ee9king/268
これで、定年タイマと同じものを作れないか、ずーと考えてわかんないことがあったが、今日ようやく、できた。
ボタンを押したらどうこうという、作り方の検索結果は多数あるが、ボタンなしで表示だけするというのを探すと、"Hello World"などでprint文しか出てこない。探し方もあると思うけど、print文だと、Pythonのコンソールに表示される。それ、意味ないやろ。
Python取り組み
これ、前も書いたかな。今取り組んでいるものに、PythonでASOカーブをプロットして判定するということをやっている。ASOはSOAとも書いたりするけど、Area of Safety Operation、トランジスタの安全動作領域のことです。ぼくは、これを書くようになったのは会社に入ってからだ、それまでは絵は知っていたが使うことはなかった。ある意味、十分マージンをとって動作させれば特に困ることはないが、パルス動作などの場合に、いろいろ不便が生じる。製品製造では何万台も作るわけだから、たまに壊れることはあったりしたら、こまってしまう。
波形を取得して、絵に当てはめるってところは、簡単にできるが、できれば判定や、周囲温度における低減や化と過渡熱特性からパルスラインの追加などを自動でできないか、なんて考えたり。考えているだけで定年になるだろうけど。それでもいいや、手に触れているだけで、やった気になるから。