鳥なき里のマイコン屋(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、アリガチな浮動小数加減算の落とし穴” の続きを読む

データのお砂場(14) R言語、InsectSprays、殺虫剤の効きの分散分析とな?

InsectSpraysBoxPlot
Joseph Halfmoon

毎回テキトーにグラフを描いてお茶を濁してきたので、今回は多少なりとも統計的な意味に近づきたいです。そこに「飛んで火にいる夏の虫」であったのが今回のシンプルな一元配置の分散分析、one-way ANOVAです。データセットはInsectSprays、「殺虫剤の効果はありや、無しや」と。

“データのお砂場(14) R言語、InsectSprays、殺虫剤の効きの分散分析とな?” の続きを読む

Pico三昧(8) Pico C/C++SDKでinterp その2、DeadBeef例題

DeadBeef
Joseph Halfmoon

前回からラズパイPicoの特長の一つである interpolator を使いはじめました。今回は、interpolator の内部にある、シフタ、マスク、符号拡張器を制御してみます。RP2040データシートを読むとちょうどいい塩梅に処理例が載っていました。DeadBeefとな。ここでは16進数でちょうど32ビットだからってことみたいですが。

“Pico三昧(8) Pico C/C++SDKでinterp その2、DeadBeef例題” の続きを読む

忘却の微分方程式(33) 常微分方程式を解く その2、MathematicaとMaxima

MAX_ODE_D000_EC
Joseph Halfmoon

前回に引き続き今回も微分方程式です。今回は数値解の求め方について、Mathematicaの例題をMaximaでも解いてみた、という感じです。例によって、良いように勝手にやってくれるお楽なMathematicaと、ちゃんと自分でやれよ、という感じのMaximaという感じ。結構辛いよ素人には。

“忘却の微分方程式(33) 常微分方程式を解く その2、MathematicaとMaxima” の続きを読む

手習ひデジタル信号処理(21) 残響生成器その1、櫛型フィルタ、Scilabで見る

CombFilterImpluseRes
Joseph Halfmoon

今回から残響生成器に入ります。その1回目は要素部品、櫛型フィルタ(comb filter)です。勝手ながら要素部品は Scilab 使って個別に「動かして」みるというスタイルであります。今回は、まずブロック図を描いてインパルス応答の波形を観察。次に例の如くにボード線図も描いてと。大分慣れてきた?

“手習ひデジタル信号処理(21) 残響生成器その1、櫛型フィルタ、Scilabで見る” の続きを読む

MicroPython的午睡(60) ESP32、WatchDogタイマの利用

DevKitC_WDTtest
Joseph Halfmoon

WatchDogタイマ(番犬タイマ)は、万が一ソフトウエアがxxな事態に陥ったときにRESETなどかけて制御を取り戻してくれる「転ばぬ先の杖」であります。40年ほど前のマイコンでは、ちょっとヘビイ・デューティっぽい機種にのみ搭載されていましたが、この頃はほぼほぼ漏れなく搭載されている標準機能かと思います。

“MicroPython的午睡(60) ESP32、WatchDogタイマの利用” の続きを読む

ソフトな忘却力(15) VSCodeでctest+gtest、CMakeLists.txt

vscodeGtestCtest
Joseph Halfmoon

前回 CMakeLists.txtを書くだけで、GoogleTestがインストールされていなくても速攻でgtestできるのに感激しました。CMake本当に便利。しかし前回はVSCodeからリモート接続じゃなかったです。それに全部のファイルを同じディレクトリに入れてました。やっぱりライブラリやテストは分けたいです。またテキトーにCMakeLists.txt書いてみたら通ってしまった。これで良いの?

“ソフトな忘却力(15) VSCodeでctest+gtest、CMakeLists.txt” の続きを読む

データのお砂場(13) R言語、Indometh、インドメタシンの薬物動態とな?

IndomethPlot001
Joseph Halfmoon

歳をとると解熱鎮痛剤のお世話になることがままあります。ロキソプロフェンなどはお馴染み。家の人も飲んでいたような。インドメタシンは私、塗り薬で使ったことがあったです。今回のデータセットは、そのインドメタシンが体内から排泄されていく過程のデータらしいです。電気信号の減衰波形とはまた違う、当たり前ですかな。

“データのお砂場(13) R言語、Indometh、インドメタシンの薬物動態とな?” の続きを読む

モダンOSのお砂場(34) Mbed OS6、EventQueueを使ってみる

VSCodeWindow
Joseph Halfmoon

前回のMbed OS6は bare metal profileでしたが、今回はRTOS部分を含むフルセットのAPIが使える状態でサンプル・プログラムをビルドしています。とはいえbare metalでも「行けそう」な小さなもの。使ってみるMbed OS機能は EventQueueです。Queueに溜まっているお仕事を取り出しては処理してくれる働き者。

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

ブロックを積みながら(55) Node-RED、Pingでネットワークへの接続を確認

PingFlow
Joseph Halfmoon

Node-RED側から、「先っぽ」のIoTデバイスがちゃんと繋がっているの?ということを確かめたい、と思いました。だって接続切れてるんだもん。切れた接続の復旧はまた別の話ですが、とりあえず接続の確認ならば、pingうてばいいじゃん、ということでNode-REDの ping をば使ってみました。

“ブロックを積みながら(55) Node-RED、Pingでネットワークへの接続を確認” の続きを読む

ぐだぐだ低レベルプログラミング(48) RISC-V、浮動小数点例外フラグたててみる

Kendryte K210
Joseph Halfmoon

今回も前回同様にRISC-Vの単精度浮動小数点除算命令を使います。今回は実際に計算をした結果として浮動小数点例外の5つのフラグを立ててみたいと思います。所望の例外を所望の場所(というかタイミングというか)で起こすというのは難しいというかメンドイです。そのくせ、起きてほしくないときに起きるんだけれども。例外ってやつは。

“ぐだぐだ低レベルプログラミング(48) RISC-V、浮動小数点例外フラグたててみる” の続きを読む