前回は2コア平行動作でコア間FIFO通信を使用。FIFOは制御がお楽。しかしその先を考えると排他処理など必要じゃないかと。一応PicoのRP2040にもPico2のRP2350にもSIOブロック内にハードウエアSpinlockというものがあるのだけれども、これってどうよ?その前に_ThreadモジュールのLOCKか?
お手軽ツールで今更学ぶアナログ(214) エンベロープ・ディテクタその5
アナデバ社(ADI社)のWeb記事『StudentZone』の2024年9月号(和文版)の実習5回目です。前回までダイオードがONする範囲で包絡線を得ていました。しかし振幅が小さくなり(変調が深くなると)ダイオードがONする範囲から外れてきます。そういう場合はちょいとバイアスを与えるのが良いみたい。
Lispと一緒(32) ラズパイPico2でもuLisp、SPIメモリ読み書き
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はSPIの出力波形を堪能。しかし波形を眺めているだけではSPIしたことになりませぬ。今回はSPI接続のSRAM、23LC512をターゲットにSPI経由での書き込みと読み出しを実験。uLispのコードもCのコードも変わらんぜよ。
Pico三昧(54) ラズパイPico2:RP2350、MicroPythonでコア間通信
MicroPythonメインの別シリーズがあるのに、こちらでやっているのはRP2350のハードを直接操作するような実験をしているため。何にしてもMicroPythonはお楽。ただしMicroPython処理系の予期せぬところを触ってヤバイことになることもあり。前回は2コア実行、今回はコア間の通信機能を使ってみます。
手習ひデジタル信号処理(161) Scilab、{IPCV}、アフィン変換とその眷属
今を去ること半世紀以上前、中学の幾何の先生が「アフィン変換」なる言葉をつぶやいた強烈な記憶アリ。しかしその時もその後も理解できたような気もせぬままに生きてきた老人です。さて今回手習ひしてみるのはアフィン変換です。画像を平行移動、回転、拡大縮小、せん断変形させるものです。変換関数だけでなく、眷属どもが意外と便利。
Lispと一緒(31) ラズパイPico2でもuLisp、SPI出力
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。先ごろからハードウエア制御に入いっとります。前回はPWM出力(関数名的にはanalogwrite)、今回はSPI出力を練習してみます。端子的にはキメウチだけれども、それなりに制御できるのでないかと。実機で波形を味わってみるの回です。
“Lispと一緒(31) ラズパイPico2でもuLisp、SPI出力” の続きを読む
ぐだぐだ低レベルプログラミング(194)x86(16bit)、LEA 実効アドレス
LEA、Load Effective Addressは孤高な命令と思いきや、メモリアクセスする命令共には裏で気脈を通じているみたい。そしてメモリアクセスするかのごときアセンブリ言語表記だけれども、決してメモリにアクセスすることなくレジスタ操作を行うだけの命令。必須なこともあれば、避けて通ることもできる?なんだそれ。
データのお砂場(163) R言語、barley、大麦の収量試験、{lattice}
R言語所蔵のサンプルデータをABC順に眺めてます。今回はlatticeパッケージのbarley、大麦の収量のデータです。かなり古い(戦前。第二次世界大戦前ってことね、念のため)データである上、ちょっといろいろケチがついてもいるデータらしいっす。でもま、処理例を適用してグラフを描くのには何の問題もないっと。
Pico三昧(53) ラズパイPico2:RP2350、MicroPythonで2コア実行
前回はイネーブルになっているデュアル・コアはそれぞれArmなんだかRISC-Vなんだかハッキリしろい、ということでステータスレジスタを読み出して確認しました。しかし、2コアの片方しか動かしてなかったです。今回は超簡単な実験スクリプトで2コアの両方が動いているところを確認したいと思います。手抜きだけれども。
お手軽ツールで今更学ぶアナログ(213) エンベロープ・ディテクタその4
アナデバ社(ADI社)のWeb記事『StudentZone』の2024年9月号(和文版)の実習4回目です。たかだが部品3個の包絡線検波回路、前回は積み残しのFFT結果を眺めて終わりました。今回は部品倍増、といっても6個ですが、の回路です。前回までの正の半波の包絡線に加えて負の半波の包絡線もとってみるっと。
Lispと一緒(30) ラズパイPico2でもuLisp、PWM出力
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はADコンバータ使って電圧を読み取るアナログ入力。今回は analogwrite。しかしPico2にはDAコンバータ不在。Arduino世界の通例によりPWM出力です。使えるAPIは2つだけ。それ以上やりたければ自分で制御せよと?
ブロックを積みながら(181) Scilab/Xcos、摩擦力計算をSuper Block化
前回は回転モデルと摩擦力モデルを合体させました。1枚のシート上に両方のフローを載せ、つなぐべきところを接続する作業でした。こういうケースでは1階層の方が分かり易いです。しかし、出来た合体モデルのブロックの数がちと多過ぎ。さらに新機能を追加しようとすると老眼の年寄は目を回しそうです。そこで合体したモデルの一部を階層化と。 “ブロックを積みながら(181) Scilab/Xcos、摩擦力計算をSuper Block化” の続きを読む
Pico三昧(52) ラズパイPico2:RP2350、MicroPythonでコア確認
前回RISC-Vモード用のMicroPythonをラズパイPico2にインストール。しかしRISC-Vだろうが、ArmだろうがMicroPythonなので見た目は変りませぬ。処理系自体はRISC-Vで走っていると表示してます。しかし疑り深いので、今回は本当にRISC-Vで走っているのだよね、と確認してみたいと思います。
“Pico三昧(52) ラズパイPico2:RP2350、MicroPythonでコア確認” の続きを読む
手習ひデジタル信号処理(160) Scilab、{IPCV}、Image fusion
前回はベクタライゼーション処理、今回は「画像の融合」です。フュージョンってやつ。お約束というか、例によってというか、ScilabのHelpファイルの処理例をそのまま動かそうとするとエラー。まあソフトウエアの更新とHelpファイルが一致してないのだと思います。一つ一つ動く条件を詰めていく?これも修行じゃ?そういうこと? “手習ひデジタル信号処理(160) Scilab、{IPCV}、Image fusion” の続きを読む