今回、Changeノードを使ってみて、その強力さをようやく理解しました。特にJSONata式を使うことでJSONオブジェクトに対してQueryをかける機能が良い感じです。この際、JSONataを勉強せねばと思いました。今まで Functionノードで書いていたもののかなりは Change ノードで代替可能に思えてきました。そして分かり易くて、書きやすい。今まで損していた?
MicroPython的午睡(45) MQTTでJSON-OBJ受信、M5ATOMLite
前回が「送信」であったので、今回は当然「受信」です。しかし受信で想定しているのは何か設定値がホストから指令されてくるというシーン。「設定値」ともなるとそれを保存しておく場所から用意しておかないとマズイ気がします。そこで、設定値はNode-REDからアクセスできるSQLiteのデータベースに記録しておき、それを取り出して送ることに。今のところ何も効果はないですが。
IoT何をいまさら(95) ATSAMD51、TRNG発EVSYS経由PORT行
周辺回路の動作完了をキッカケにメモリへ転送(DMA)とか、タイマのトリガでAD変換始めるとか、CPUの介在なしに装置間で制御を伝えることがあります。その中でもMicrochip社のATSAMマイコンが搭載しているEVSYSというものは極めて強力、ほとんどの周辺装置間でコミュニケーションがとれます。今回はTRNGでPort出力を制御してみます。
ぐだぐだ低レベルプログラミング(31) RISC-V、ADDとSUBも凸凹じゃけんの
前回は、論理演算 and命令を使って、オペランドによって生成される命令がRV32Iだったり、RV32Cになったりするのを目にしました。今回は算術演算 add と sub です。RISC-Vに「直交的な」エンコーディングを想像してはなりませぬ。今回は2つの命令の「割り切った」関係を観察したいと思います。割り算じゃないけど。
鳥なき里のマイコン屋(139) ラズパイPico、内蔵ADCから外付けDACへ「スルー」
前回は、ラズパイPicoにI2C接続の外付けのDAC、MCP4725を接続してノコギリ波など出力させてみました。今回はラズパイPicoの内蔵ADCで得たアナログ値をそのまま外付けDACに「転送」してアナログ波形を「再現」してみます。ぶっちゃけSTM32で昨日やった件のまねっこ。タイミングの取り方が異なるし、外付けDACは転送ネックだし、どうなることか。
ソフトな忘却力(4) 自動生成のCMakeLists.txtを改造して「自分の」にする
前回はVS Code拡張 ”CMake Tools” のクイックスタートを使ってみました。これでとりあえず空のディレクトリを「CMakeできる」ようにしてくれた、と。ここを出発点に自分でCMakeLists.txtを書き換えて「お好み」な感じにしてみます。CMake Tools自体、設定すればいろいろやってくれそうではあるのですが、CMakeのお勉強かねて直接。
手習ひデジタル信号処理(2) ADからDA、割り込み方式、STM32のハードの裏とり?
前回はADからDAへの「垂れ流し」ポーリング方式を勉強させていただきました。今回は割り込み方式です。そんな悠長に刻んでいたら死ぬまでに読み終わらない、とも思ったのですが、ちょっと立ち止まってSTM32F446REのハードを確認しておくことにいたしました。ロウレベルなところが気になると夜も眠れませぬ。
忘却の微分方程式(15) 因数分解、方程式、MathematicaとMaxima
今回は、代数、といっても式の入力と、方程式の根をもとめる方法の入り口付近をなでてみます。これだけでも十分便利だけれども。ただ、触っていると裏側に隠れている恐ろし気なもの、というか、衣の下の鎧がみえる感じがします。まだまだ奥に進んだわけでないのだけれど。
MicroPython的午睡(44) MQTTでJSON-OBJ送信、M5ATOMLite
前回 MQTT Subscribe ができたので、MicroPythonで動いているM5ATOM LiteとNode-REDを動かしているRaspberry Pi 3機で上り下りの通信がOKとなりました。今回は、通信内容をJSON化して後で拡張しやすいようにしてみたいと思います。まずはPublish側から。使用するMicroPythonモジュールはujsonです。
ブロックを積みながら(37) Node-RED、何でもあり?Functionノード、その1
前回はInjectとDebugノードでした。今回は「コア」ノードの中でも、「何でもありそうで」とても1回で覚えきれそうにないFunctionノードを使用してみたいと思います。以前から見よう見まねで使ってはいるのですが表面的。いろいろやってみたいと思うので今回は「その1」ということで。「その2」は他のノードも一巡した後でかな、何時やるんかい?
ぐだぐだ低レベルプログラミング(30) RISC-V、AND命令に隠された?凸凹
前回、RISC-Vにmv(move)命令は実は無いのだ、という衝撃?の事実をおさらいしました。今回は、and(論理積)命令です。andみたいなプリミティブな操作の命令に何か細工をする余地などあるのか?ま、当然「工夫」があるわけですが。でもね、andとorとxorは一緒、流石に。1回で3命令進捗!
ソフトな忘却力(3) リモートVS Code、CMake Toolsでcmakeするのだ
CMakeには随分昔からお世話になっているような気がしますが、よくわかっていないです。何かの折に「ディレクション」のまま走らせるばかりで、自分で積極的に使ったことが無いので身につきません。しかし、最近ラズパイPicoなどやっておりますとCMake必須。この際少し勉強しておこうという気になりましたです。 “ソフトな忘却力(3) リモートVS Code、CMake Toolsでcmakeするのだ” の続きを読む
鳥なき里のマイコン屋(138) ラズパイPico、外付けDAC、MCP4725接続
別シリーズにてSTM32マイコンのAD、DAを動かしているので、ラズパイPicoでもやってみるか、と思い立ちました。しかし、ラズパイPicoにはADの搭載はあるものの、DAはありません(PWMはあり。)また別件にてラズパイPico用の1ビットDACボードも頂いたのですが、今回は外付け12bit DAを接続してみます。
手習ひデジタル信号処理(1) ADからDA、ポーリング方式をなぞってみる
デジタル信号処理を学び直すべし、ということで三上直樹先生著のご本を購入、部品も購入し回路を作成、そして関連の雑誌記事発見、と準備に3回もかけてしまいました。いよいよネタバレにならない程度に本文を学んでいきたいと思います。まずはプログラムがビルドできるところからかな。インポートできるみたいだし、何もすることがない?