
今回は三角関数なんですけどね、正直1回じゃ理解するの無理。特にMaximaは使える関数とオプション制御の変数を適切に組み合わせないと所望の結果にたどりつけませぬ。今回は、とりあえずMathematicaのお題をなぞって、次回また演習してみるしかない。大丈夫か?
デバイス作る人>>デバイス使う人>>デバイスおたく

前回、内蔵のLEDとスイッチがNode-REDから使えるように復旧しました。今回はいよいよ外付けハード追加と思ったのですが、その前にスクリプトを整理することにいたしました。カッコよく言うならリファクタリングというやつ。でも作業しながら、どうするのが良いのか迷いましたです。迷える子羊(?そうは見えないが)にお導きを。

前回は、Sequenceを作り出すために Splitノードを使ってしまいました。さすれば、今回は Joinノードを使ってSplitしたSequenceを元に戻してみるしかありません。やって見ればシミジミ会得できました。何もすることはありません。勝手に元に戻ります。これもSplitノードが「仕込んで」くれているお陰。

前回は比較命令でした。比較した結果を格納するフラグが無いと知ってちょっとギョッとしましたが、キャリーやオーバーフローに対応する結果がレジスタに入れば問題ない、と。今回は条件分岐です。フラグが無いので分岐命令自身がレジスタの内容を判定して飛びます。慣れたらかえって便利かも。必要十分な命令がそろっているし。

前回はDACでアナログ波形を垂れ流してみました。ATSAMD51のDACにはいろいろ近代的な機能がありつつも最初は一番単純な方法で実験。今回はADCです。これまた近代的な機能がいろいろあるのです。しかしこちらも最初は単純な方法でまずは動かしてみます。ADCで測った波形をそのままDACに出力。サンプリング周波数は10kHz。

以前、ラズパイPico上のMicroPythonでUart通信を行ったことはあったのですが、C/C++SDKではstdoutの出力先としての利用ばかりでした。今回C/C++SDKでも双方向の通信をやりたかったのでちょっと実験してみました。そして、長らく誤解してきたことにも気づきました。

三上直樹先生著、工学社『「Armマイコン」プログラムで学ぶデジタル信号処理』で手習ひさせていただいとります本シリーズもようやくデジタル信号処理っぽいボード線図が出てくるようになりました。わたしゃ嬉しいよ。といっても今回は非巡回型移動平均、名前は厳めしいですが「普通の移動平均」でやんす。

前回、uasyncioのお陰でNode-REDサーバとの通信タイミングを自由に決められるようになりました。今回からM5ATOMLiteに「手足」をつけ、前回までに整備?した「インフラ」を使ってNode-REDとの間を接続して行きたいとおもいます。外付けハードの制御の前に、最初は内蔵のLEDとスイッチだな。

前回はSwitchノードを使って「仕分け」をやってみましたが、Sequence rulesによる仕分けというものは出来ませんでした。今回はSplitノードを使って配列要素をSequenceとして並べ、それをSwitchノードで仕分けてみたいと思います。まさにベルトコンベアで流れてくる箱を行き先別に仕分けるイメージ。

Microchip社のArm Cortex-M4搭載マイコン、ATSAMD51の周辺回路をなるべくダイレクトに制御してみるシリーズ、今回はDAC(Digital to Analog コンバータ)であります。データシートを読んでみると信号処理向け支援機能なども内蔵しておりなかなか強力。とりあえず今回は簡単にタイマ割り込みハンドラの中でソフトでDA出力してみました。