データのお砂場(16) R言語、LakeHuron、ヒューロン湖の水位とな?

LakeHuronMovingAVGPlot
Joseph Halfmoon

前回に続き、今回も時系列データです。北米大陸の巨大な湖、ヒューロン湖の水位のデータ。前回4半期毎の季節変動をトレンドと分離できたので、今回もその手か、と思ったのですが違いました。1年1点のデータであるので季節変動などはありません。長い目でみた長期のトレンドを探れということみたい。

“データのお砂場(16) R言語、LakeHuron、ヒューロン湖の水位とな?” の続きを読む

モダンOSのお砂場(36) Mbed OS6、InterruptInを使う。STM32

Nucleo_F401RE_UserButton_LD2
Joseph Halfmoon

前回はスレッドを使って2つの仕事を並行処理でした。今回は外部端子割り込みを使ってみます。Mbed OS6での割り込み処理の流儀は、FreeRTOSの割り込みの流儀とはちょっと違う感じがいたします。OSとして割り込みやIOなどを「仕切る」Mbed OS6と、他のフレームワークに乗っかってRTOS機能を提供するFreeRTOSと(個人の感想です。)

“モダンOSのお砂場(36) Mbed OS6、InterruptInを使う。STM32” の続きを読む

ぐだぐだ低レベルプログラミング(50) RISC-V、浮動小数積和演算、速さだけでないノダ

fmadd_fmul_EC
Joseph Halfmoon

前回、浮動小数点の加減算をやりました。その前に例外を「味わう」ために浮動小数点の除算をやっています。そこで今回は必然の乗算です。ただ掛け算が出来たと喜んでも芸がありませぬ。RISC-Vには、普通の掛け算命令だけでなく、積和演算命令もあります。信号処理(積分)などするときはこちらの方が「普通」。今回はこの2つを比べてみる、と。

“ぐだぐだ低レベルプログラミング(50) RISC-V、浮動小数積和演算、速さだけでないノダ” の続きを読む

ソフトな忘却力(17) VSCodeでgtest、テンプレートライブラリ使用csvパーサ

csvparser_gtest_results
Joseph Halfmoon

今回は実用的なテンプレート・ライブラリ libfccp を呼び出しているコードにGoogleTest(gtest)を適用してみたいと思います。libfccp はC++用のCSVファイル読み取り用のパーサです。CSVはテキストなので自分でも読み込み簡単な気がしますが、既にライブラリがあるのなら利用させていただいた方が確実でお楽。

“ソフトな忘却力(17) VSCodeでgtest、テンプレートライブラリ使用csvパーサ” の続きを読む

Pico三昧(9) Pico C/C++SDKでinterp その3、シンプルな線形補間

blend Mode Interporation
Joseph Halfmoon

ラズパイPicoの特長の一つであるinterpを扱って三回目にして、ようやく回路名称である interpolator (補間器)の主目的である補間を試みてみます。今回は整数型のシンプルな線形補間です。Blend Modeというモードを設定するだけで、後はレジスタに値を書き込むだけで補間を行ってくれます。便利っちゃ便利ですが、Blend Modeって何者?という疑問が残ります。

“Pico三昧(9) Pico C/C++SDKでinterp その3、シンプルな線形補間” の続きを読む

忘却の微分方程式(34) 複素数の取扱い、MathematicaとMaxima

WolfComp004
Joseph Halfmoon

微分方程式にじっくり取り組む前にひとまず一通り学ぶべく、さっさと先に進めることにいたしました。今回は複素数の取扱いについてです。基本のキなのでMathematicaでもMaximaでも同様な機能は備えていました。しかし両者の「御家流」は大分違うようです。さっさと「一通り」やった後、再び微分方程式に戻ってくる予定。

“忘却の微分方程式(34) 複素数の取扱い、MathematicaとMaxima” の続きを読む

手習ひデジタル信号処理(22) 残響生成器その2、全域通過フィルタ、Scilabで見る

AllPassBlockDiagram
Joseph Halfmoon

残響生成器の2回目は、2個目の要素部品、全域通過フィルタ(all pass filter)であります。前回同様、要素部品は、Scilab使って「味わってみる」と(実機で個別に動かすのがメンドイだけだろ~。)前回から比べるとXCOSでのブロックダイアグラムが少しこなれてきた?分からんけど。

“手習ひデジタル信号処理(22) 残響生成器その2、全域通過フィルタ、Scilabで見る” の続きを読む

データのお砂場(15) R言語、JohnsonJohnson、四半期毎一株あたり利益

RawDataGraph
Joseph Halfmoon

今回のデータは60年くらい前から40年くらい前のJ&J社の一株利益のデータです。60年前これ知っていたら大儲け(できる筈ないですが。)まさに儲かっていますなJ&J。が、しかし、このデータセットサンプル処理の意義は、その儲かっているトレンドから、結構大きな4半期毎の変動を分離せよ、ということみたいです。

“データのお砂場(15) R言語、JohnsonJohnson、四半期毎一株あたり利益” の続きを読む

ソフトな忘却力(16) VSCodeで ctest+gtestその2、Classのテスト

CTEST_Results
Joseph Halfmoon

前回 CMakeのテストランナーである ctest の元で GoogleTest(gtest)フレームワークのTEST走らせました。調子に乗って今回はC++のClass のテストに手を広げてみました。前回の関数単体とはちょっと書き方が違ってました。今回は分量多いので「前回との差分」部分にフォーカスして記述いたします。

“ソフトな忘却力(16) VSCodeで ctest+gtestその2、Classのテスト” の続きを読む

トホホな疑問(45) I2CでAQM1602通信失敗、Pull-up抵抗強すぎた。

AQMwaveformBAD
Joseph Halfmoon

今回はM5ATOM Liteに使い慣れたI2C接続のLCDディスプレイAQM1602XAを接続しようとして足をすくわれました。まさか。結論から言えばI2Cバスに接続してあった他のデバイスのプルアップ抵抗が強力すぎ。無駄な努力でMicroPythonでACK無視するI2Cもどきを作成、表示OK。端子変えれば済む話だ。

“トホホな疑問(45) I2CでAQM1602通信失敗、Pull-up抵抗強すぎた。” の続きを読む

鳥なき里のマイコン屋(151) PlatformIOのunittest、使ってみた

Uno_Nucleo_EC
Joseph Halfmoon

ホスト機上のテストフレームワーク、テストランナーは定番がありますが、組み込みマイコン上では独自路線が多いのではないかと想像します。そんな中、以前から気になっていたPlatformIOの単体テストランナーを試用してみました。とりあえずサンプルプロジェクトを持ってきて「ちょっと」修正しただけで別ボード対応可。いいんでないかい。

“鳥なき里のマイコン屋(151) PlatformIOのunittest、使ってみた” の続きを読む

モダンOSのお砂場(35) Mbed OS6、Threadを使ってみる、STM32

ProjectWizard
Joseph Halfmoon

前回はEventQueueを使った2つの仕事の並行処理例でした。今回はThreadを使ってほぼ同じ仕事を書き直してみます。プライオリティがないEventQueueと比べると、Threadはプラオリティ制御もできて、クリティカルな制御が可能なのだと思います。RTOSのカーネルのお陰。RTOS的にはこちらの方が「本流」でしょうか。

“モダンOSのお砂場(35) Mbed OS6、Threadを使ってみる、STM32” の続きを読む

トホホな疑問(44) WindowsPCからWindowsPCにSSH接続

blockDiagEC
Joseph Halfmoon

今回WindowsPCから、別のWindowsPCにSSHすることにいたしました。どちらもWindows版のOpenSSH利用です。手元のPCからちょっと離れたところにあるPCのコマンドプロンプトを開いて操作できるとよろしかろう、と。ついでにその中からWSL2起動すれば x86版のLinuxも使える、と。つい魔が刺しました。

“トホホな疑問(44) WindowsPCからWindowsPCにSSH接続” の続きを読む

ぐだぐだ低レベルプログラミング(49) RISC-V、アリガチな浮動小数加減算の落とし穴

VScodeEC
Joseph Halfmoon

前回までに浮動小数点の例外とか丸めとかのメンドイ部分を調べました。今回からは実際に計算していきたいと思います。まずは浮動小数の加算と減算からですな。ただ足し算が出来たと喜ぶのでは芸が無いので、皆さんご存じな「駄目」ケースの計算をあえてやって、バイナリで結果を見て行きたいと思います。

“ぐだぐだ低レベルプログラミング(49) RISC-V、アリガチな浮動小数加減算の落とし穴” の続きを読む