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で仕分け” の続きを読む

ぐだぐだ低レベルプログラミング(33) RISC-V、比較命令はあるけどフラグは無い

slt_vscode_ec
Joseph Halfmoon

正確に言えば、RISC-Vにはx86のFlagsのような演算フラグレジスタは無い、というべきでしょうか。RISC-Vにも制御フラグは制御レジスタの中にあります。それでも、比較命令やって、その後分岐命令やって、みたいな古い頭のコーディングに慣れていると、最初は戸惑います。でも Flags なんて無きゃ無いで済んだんだ。。。

“ぐだぐだ低レベルプログラミング(33) RISC-V、比較命令はあるけどフラグは無い” の続きを読む

L.W.R. (30) 古文書編#1 『N-BASIC入門』飯田他著 アスキー出版1980

N-BASIC入門
Joseph Halfmoon

新刊書についてブツブツ言う筈だったLiterature watch returnsですが、「古文書編」を始めるにあたってタイトル大幅短縮 L.W.R.であります。「古文書編」その1は、約40年前に日本における「パソコン」の市場を押し広げた名機NEC PC-8001搭載のN-BASICに関するアスキーの1冊。私はコレ読んで業界入り。

“L.W.R. (30) 古文書編#1 『N-BASIC入門』飯田他著 アスキー出版1980” の続きを読む

IoT何をいまさら(97) ATSAMD51、DACを使う#1、Wio Terminal

DAC_EC
Joseph Halfmoon

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

“IoT何をいまさら(97) ATSAMD51、DACを使う#1、Wio Terminal” の続きを読む

鳥なき里のマイコン屋(141) ラズパイPico、ハードウエア割り算器の利用

DividerEC
Joseph Halfmoon

前回は浮動小数点数の計算でしたが、今回は整数の割り算です。組み込みMCUのプログラマには「割り算は避ける」習性が刷り込まれています(個人の感想です。)せいぜい2のべき乗の割り算に帰着させて右シフトで逃げます。しかしラズパイPicoでは割り算、あまり苦になりません。ハードウエアの割り算器を搭載。

“鳥なき里のマイコン屋(141) ラズパイPico、ハードウエア割り算器の利用” の続きを読む

手習ひデジタル信号処理(4) STM32F446、最初はIIRフィルタ?

IIR1st
Joseph Halfmoon

信号処理素人の個人の感想ですが、デジタル信号処理の入門書の多くはFIRが先、IIRが後という順番じゃないかと思います。IIRは難しそうだからかな。でも実装するとなるとIIRの方が簡単だったりして。ところが、三上先生本では、先にIIRが登場、どっちが先でもいいっちゃいいですが。まずは前回プログラムを「チョイ変」して1次のIIRフィルタをしみじみ?味わってみたいと思います。

“手習ひデジタル信号処理(4) STM32F446、最初はIIRフィルタ?” の続きを読む

忘却の微分方程式(17) 2D領域プロットリベンジ? MathematicaとMaxima

wxMaxima21052_EC
Joseph Halfmoon

前回、MathematicaとMaximaで同様な2Dプロットを試みておりました。しかし手元の古い版のMaximaでは実行できない関数があるということで途中で無念の?打ち切りと相成りました。そしてMaxima(GUIであるwxMaxima)をバージョンアップ。今回は更新したMaximaを使って前回歯が立たなかったプロットにリベンジ?大丈夫か?

“忘却の微分方程式(17) 2D領域プロットリベンジ? MathematicaとMaxima” の続きを読む

ブロックを積みながら(39) Node-RED、行き先切り替え、Switchノード

Switch_FlowECB
Joseph Halfmoon

前回のChangeノードは、「積荷」を載せ替えたりするためのものでした。今回のSwitchノードは、「行き先」への仕分けを担うもの、という感じです。仕分けの方法もいろいろあって非常に便利です。今回はその基本部分を使ってみますが、一見しただけでもなかなか便利。

“ブロックを積みながら(39) Node-RED、行き先切り替え、Switchノード” の続きを読む