MicroPython的午睡(52) ATOMLite、気圧の測定結果をNode-REDへ

Pressure_EC
Joseph Halfmoon

前回、定番の圧力センサ Bosch BMP280の補償計算をなんとかやっつけてMicroPythonで気圧と温度を測れるようになりました。今回は測った結果を、例によってMQTTに載せてNode-REDへ報告し、Dashboard上にグラフ表示してみます。まずは前回プログラムのモジュール化から。

“MicroPython的午睡(52) ATOMLite、気圧の測定結果をNode-REDへ” の続きを読む

ブロックを積みながら(45) Node-RED、Dashboard、formノード

Form_EC
Joseph Halfmoon

前々回、Node-REDダッシュボードのTemplateノードを使ってみました。表示ができるだけでなくボタンを配置して入力にも使える優れものでした。今回は同じく入出力兼用のformノードを使ってみます。ユーザーとのインタフェースを作るにはバッチリ?なノードです。

“ブロックを積みながら(45) Node-RED、Dashboard、formノード” の続きを読む

鳥なき里のマイコン屋(146) ラズパイPico、C/C++SDK、マルチコアで割り込み1

MULTI_GPIO_INTR_DUT
Joseph Halfmoon

折角2コア積んでいるラズパイPicoなのに、大分前にちょっと2コアで動かしただけでした。これでは宝の持ち腐れです。無理にでも2コア使う方針といたしました。ま、動かしてみないと身に染みないこともあるっと。今回は2コアで外部端子からの割り込みを受けてみました。早速のお間抜けあり。

“鳥なき里のマイコン屋(146) ラズパイPico、C/C++SDK、マルチコアで割り込み1” の続きを読む

ぐだぐだ低レベルプログラミング(38) RISC-V、mulとdiv、RV32M拡張その1

TargetBoardandDebugger
Joseph Halfmoon

今回のRV32Mは拡張命令セットといいつつ、ほとんどの実装で採用されている筈のもの。整数掛け算と割り算であります。しかし命令が存在しても何サイクルで処理できるのかは実装依存です。まずはmulとdiv命令を使ってみて処理サイクル数を数えてみるところから始めました(前にもやったっけ?忘れているからいいか。)

“ぐだぐだ低レベルプログラミング(38) RISC-V、mulとdiv、RV32M拡張その1” の続きを読む

手習ひデジタル信号処理(9) STM32F446、FIRフィルタその1、直接形

FIR1_BodeEC
Joseph Halfmoon

今回からいよいよデジタル信号処理らしい「手習ひ」に入れます。その最初はFIRフィルタです。まずは素直な「直接形」の実装でその威力をシミジミ味わえ、という感じでありましょう。アイキャッチ画像に振幅特性を示しましたが、いい感じじゃないでしょうか。こちらは書いてあるとおりにやっただけなのですが、ちょっと感動。

“手習ひデジタル信号処理(9) STM32F446、FIRフィルタその1、直接形” の続きを読む

忘却の微分方程式(22) 対数関数、MathematicaとMaxima

MAX_LOGplotY
Joseph Halfmoon

前回は極座標でしたが、今回は対数関数、Logです。改めて使わせていただいてみると、Mathematica、Maximaともにクセがあり、似ているようで似ていない感じもチラホラと。まあ実用的に一番お世話になっているのは対数グラフくらいですかね。あんまり数学という感じでもない。

“忘却の微分方程式(22) 対数関数、MathematicaとMaxima” の続きを読む

ブロックを積みながら(44) Node-RED、Dashboard、Chartノード

chart_EC
Joseph Halfmoon

Node-REDのDashboardのノード群には、常々お世話になっているのでありますが、よくわからないまま「成り行き」で使ってしまっています。今回はグラフを描くときに使うchartノードについて、使い方を確かめて行きたいと思います。ついでにRandomノードについてもチャッカリとテスト。

“ブロックを積みながら(44) Node-RED、Dashboard、Chartノード” の続きを読む

MicroPython的午睡(51) ATOMLite、BMP280の補償計算大変なのね

BMP280_EC
Joseph Halfmoon

前々回、温度と湿度を測ってNode-REDに報告しました。今回は気圧も測るべしということで、定番の圧力センサBosch BMP280をMicroPythonから制御してみることに。ただし読み取りは自前のコードで実施。簡単に圧力読めるものと思っていたら、補償の計算大変なのね。自分でやってみないと身にしみませぬ。

“MicroPython的午睡(51) ATOMLite、BMP280の補償計算大変なのね” の続きを読む

IoT何をいまさら(100) ATSAMD51、アナログコンパレータ AC を使ってみる

AC_EC
Joseph Halfmoon

Microchip社 ATSAMD51は、ADコンバータ、DAコンバータだけでなくアナログコンパレータ(AC)も搭載しています。2つの電圧を比較して大きい、小さいを判断できる回路。各種設定はソフトウエアですが、完全ハードウエアのコンパレータ的動作も可能。ただし今回は諸般の事情あり、割り込み受けです。

“IoT何をいまさら(100) ATSAMD51、アナログコンパレータ AC を使ってみる” の続きを読む

鳥なき里のマイコン屋(145) ラズパイPico、C/C++SDKでDMAを使ってみる

PicoDMA_DUT_EC
Joseph Halfmoon

今回はラズパイPicoのDMAC(Direct Memory Access Controller)を使ってみるために、前回の母艦PCのArduino環境から母艦ラズパイ4のC/C++SDK環境に戻ってまいりました。とりあえず最低線ということでソフトウエアトリガのメモリ間転送をやってみたのですが、ラズパイPicoのSDK楽です(別シリーズでやったDMAC実験に比べ。) “鳥なき里のマイコン屋(145) ラズパイPico、C/C++SDKでDMAを使ってみる” の続きを読む

ソフトな忘却力(10) RPi4、Pthreadの実験をOpenMPで書き換えてみた

ompGraph
Joseph Halfmoon

前回は、Pthreadを用いた実験プログラムを最適化したものとしないもの、RPi3とRPi4でスレッド数を変えて走らせて比べました。今回はそのときのプログラムを「無理やり」OpenMP化してみました。スレッド数が同じなら、PthreadでもOpenMPでも似たような結果でないかい、と思いましたが、結果は微妙。こだわる人はコダワル? “ソフトな忘却力(10) RPi4、Pthreadの実験をOpenMPで書き換えてみた” の続きを読む

ぐだぐだ低レベルプログラミング(37) RISC-V、無条件JMPもRETも皆CALL

callret_EC
Joseph Halfmoon

今回は、CISC風に言うと 無条件JMP、CALL、RETといった制御転送系の命令です。しかし例のごとくで、RISC-Vには CALL に相当する JALとJALRしかありません。「ジャル」一つでJMPもRETも皆やってしまう。清々しいというのはこういうものを言うような気がします。書き方は結構なんでもあり、なんだけれども。 “ぐだぐだ低レベルプログラミング(37) RISC-V、無条件JMPもRETも皆CALL” の続きを読む

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

STM32F446_DUT
Joseph Halfmoon

前回から引き続きの「巡回型移動平均」今回の3回目で完了であります。目出度い、ようやく次回はFIRフィルタに進めます。しかし、3回目、見た目は前回とほとんど同じ画像ばかり。2回目と3回目、唯一の変化は、積分を浮動小数点で計算するか整数で計算するかの違いのみ。信号処理的には「大きな一歩」に思えますが、見た目は同じ。 “手習いデジタル信号処理(8) STM32F446、巡回型移動平均3/3” の続きを読む

忘却の微分方程式(21) 極座標表示、MathematicaとMaxima

Polar_EC
Joseph Halfmoon

Mathematicaのチュートリアルを読みながら、同じことをMathematicaとMaximaでやってみております今回は極座標であります。例によって「よきにはからって」くれるMathematicaに対し、ちゃんと指定しないと思ったように動いてくれないMaximaの性格?の違いが現れております。Maximaを深く分かっている人にはどうということないのでしょうが。

“忘却の微分方程式(21) 極座標表示、MathematicaとMaxima” の続きを読む