手習ひデジタル信号処理(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” の続きを読む

トホホな疑問(42) ESP32-IDF、Hello world!でチョイとハマる

Joseph Halfmoon

1か月以上前にESP-EYEというAIカメラ的デバイスを手に入れたのに全然進んでおらなかったのが、その活用の前提となるESP32-IDF環境をセットアップするのを躊躇していたためであります。ハマりそうな予感がして逃げてたのですが、ようやく本日セットアップ。とりあえずDevkitCでHello worldできました。チョイとハマったけれども。

“トホホな疑問(42) ESP32-IDF、Hello world!でチョイとハマる” の続きを読む

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

dashboard_template
Joseph Halfmoon

前回Templateノードを試してみました。しかし手元のパレットにはもう一つTemplateノードがあります。前回は「機能」パレットでしたが今回は「Dashboard」パレットの中のノードです。Dashboardは人とのインタフェースを担いますが、その中でも入出力双方をできるTemplateノードはお役立ちか?

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

IoT何をいまさら(99) ATSAMD51、DMAで1バイト転送成功までの長い道

DMA_EC
Joseph Halfmoon

Microchip社のArm Cortex-M4コア搭載「近代的」ATSAMD51 マイコンの周辺機能をレジスタレベルでプログラムしてその操作を噛みしめておりますシリーズ、今回はDMACであります。昔からあるDMAですが、近代化したマイコンのそれは機能も増えていろいろできます。その分設定はメンドいです。たった1バイトの転送設定に大わらわ。

“IoT何をいまさら(99) ATSAMD51、DMAで1バイト転送成功までの長い道” の続きを読む

ぐだぐだ低レベルプログラミング(36) RISC-V、ロードとストア、素直に動かしてみる

loadStore_EC
Joseph Halfmoon

前回、メモリアドレスをロードする小技をやったので、今回のロード、ストアでそれを使うかと思っていたですが、その影もありません。単純な命令テストだな。だって時間無かったのだもん。すみません。まあ一応RV32Iが定義しているロードストア命令の全種類を網羅、といっても8個ばかりですが。

“ぐだぐだ低レベルプログラミング(36) RISC-V、ロードとストア、素直に動かしてみる” の続きを読む