鳥なき里のマイコン屋(143) ラズパイPico、PlatformIOでArduino

Wiz000
Joseph Halfmoon

半年くらい前にはラズパイPicoに対応していなかった筈のPlatformIOが「Arduinoプラットフォーム」でPico対応をしていました。自分では何もしていないのですが、PC上でラズパイPicoのオブジェクトを生成できるようになってました。ボーっとして生きていても「自動で」世間の変化に追従できる?ありがたし。 “鳥なき里のマイコン屋(143) ラズパイPico、PlatformIOでArduino” の続きを読む

ソフトな忘却力(8) CMake、最適化オプションの置き場所。thread化の蹉跌?

SpeedGraph
Joseph Halfmoon

前回はPthreadを使って、スレッド数が多くなると処理時間が短くなるようなコードを書いてみました。今回はそれに最適化オプションを加えてみます。ヤバいな、ズルズルと深みにハマって行く感じがします。まずはCMakeの使い方もよく分かってないので、まずCMakeLists.txt内での最適化オプションの置き場所から調べないと。 “ソフトな忘却力(8) CMake、最適化オプションの置き場所。thread化の蹉跌?” の続きを読む

手習ひデジタル信号処理(6) STM32F446、巡回型移動平均1/3

BodeMAVG_CYC1
Joseph Halfmoon

前回は非巡回型移動平均で単刀直入、分かり易かったです。今回「から」3回は巡回型移動平均です。3回分なのは、三上先生のご方針が、「巡回型」でも同じことができることを示したのち、「巡回型に潜む魔物」を垣間見、さらに整数処理の「黒魔術」の一端に触れるという流れなのかな、と忖度した次第。ホントか?

“手習ひデジタル信号処理(6) STM32F446、巡回型移動平均1/3” の続きを読む

忘却の微分方程式(19) 三角関数、1回じゃ無理。MathematicaとMaxima

trig_EC
Joseph Halfmoon

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

“忘却の微分方程式(19) 三角関数、1回じゃ無理。MathematicaとMaxima” の続きを読む

MicroPython的午睡(48) 中途半端なリファクタリング。組み込みには組み込みの?

FILES_Thonny
Joseph Halfmoon

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

“MicroPython的午睡(48) 中途半端なリファクタリング。組み込みには組み込みの?” の続きを読む

ブロックを積みながら(41) Node-RED、SplitしたらJoinするしかないな。

Join_Test_FLOW
Joseph Halfmoon

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

“ブロックを積みながら(41) Node-RED、SplitしたらJoinするしかないな。” の続きを読む

ぐだぐだ低レベルプログラミング(34) RISC-V、充実の?条件分岐命令、無駄は無いのだ

branchEC
Joseph Halfmoon

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

“ぐだぐだ低レベルプログラミング(34) RISC-V、充実の?条件分岐命令、無駄は無いのだ” の続きを読む

IoT何をいまさら(98) ATSAMD51、ADからDA直接、Wio Terminal

ADDA_EC
Joseph Halfmoon

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

“IoT何をいまさら(98) ATSAMD51、ADからDA直接、Wio Terminal” の続きを読む

鳥なき里のマイコン屋(142) ラズパイPico、SDKでUart入出力

uartTest_EC
Joseph Halfmoon

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

“鳥なき里のマイコン屋(142) ラズパイPico、SDKでUart入出力” の続きを読む

忘却の微分方程式(18) 幾何って言っても何だかな。MathematicaとMaxima

Max_triangle_EC
Joseph Halfmoon

今回は、Wolfram-Mathematicaのお手軽さというか取っ付きの良さにMaximaは完敗という感じです。まあ私がMaxima知らないのがダメなんだけれど。同じことは多分できるのだけれどもそこまでの道のりが遠かったです。テーマは「幾何」。幾何っていっても図を描いたりなんだけれども、なんだかな~

“忘却の微分方程式(18) 幾何って言っても何だかな。MathematicaとMaxima” の続きを読む

手習ひデジタル信号処理(5) STM32F446、非巡回型移動平均

MovingAVG_BlockDiagram
Joseph Halfmoon

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

“手習ひデジタル信号処理(5) STM32F446、非巡回型移動平均” の続きを読む

ソフトな忘却力(7) clock()関数はCPUタイムを集計するのだ。経過時間じゃない。

RPi3_pthread
Joseph Halfmoon

時間計測のとき、プロセッサ固有の性能カウンタばかり使用しておったのです。今回はCレベルの関数で「汎用」にやろうとして失敗しました。なれないことはするもんじゃないです。とりあえず pthread の効用を測定する雛形は作成。ラズパイ3上では、それらしいグラフを描けました。他のマシンや pthread以外への展開はまた次回かな。

“ソフトな忘却力(7) clock()関数はCPUタイムを集計するのだ。経過時間じゃない。” の続きを読む

MicroPython的午睡(47) genericポートでもM5ATOMLiteはOKよ

M5ATOM_DUT1014
Joseph Halfmoon

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

“MicroPython的午睡(47) genericポートでもM5ATOMLiteはOKよ” の続きを読む

ブロックを積みながら(40) Node-RED、配列をSplitして、Switchで仕分け

split_switch
Joseph Halfmoon

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

“ブロックを積みながら(40) Node-RED、配列をSplitして、Switchで仕分け” の続きを読む