MicroPython的午睡(65) ラズパイPico、アナログコンパレータのトリップ電圧

RPiPico_MCP4018_NJU7031
Joseph Halfmoon

前回MicroChip社製MCP4018デジタルポテンショメータをラズパイPicoに取り付けて制御。I2Cで制御できる「可変抵抗」です。今回は応用例としてデータシートに載っているアナログコンパレータの閾値調整をやってみます。想定の応用はセンサなどからのアナログ信号がある閾値を超えたらマイコンに割り込むとか。

“MicroPython的午睡(65) ラズパイPico、アナログコンパレータのトリップ電圧” の続きを読む

手習ひデジタル信号処理(30) Weaver変調器による周波数シフタその3、入力BPF特性

DUT_EC
Joseph Halfmoon

前回は、Weaver変調器による周波数シフタの全体コード(三上先生のコードそのまま)をビルドして実際に周波数シフトが起こっていることを実機上で確認いたしました。今回は、要素部品のうち初段の帯域通過フィルタの特性を実機で確認してみます。処理対象の100Hzから4.5kHzまでの周波数のみを通すもの。

“手習ひデジタル信号処理(30) Weaver変調器による周波数シフタその3、入力BPF特性” の続きを読む

モダンOSのお砂場(42) Mbed OS6、Mail、allocちょっと気が咎めるけど便利

Result
Joseph Halfmoon

前回はスレッド間で通信するのにQueueを使ってみましたが、今回は似た「先入れ先出し」の構造でMailです。Mail便利です。こちらを使うとQueueには戻れない?便利なのは、詰め込むデータのためのメモリ領域の割り当て/解放の機能を含んでいるところ。alloc使うと後戻りできまっせん。

“モダンOSのお砂場(42) Mbed OS6、Mail、allocちょっと気が咎めるけど便利” の続きを読む

ぐだぐだ低レベルプログラミング(57) RISC-V、浮動小数点数のロード/ストア命令

RISC-V load/store float
Joseph Halfmoon

今回は珍しくメンドクない命令です。浮動小数のロード、ストアです。アドレスの指定は通常のロード、ストア同様に整数レジスタに12ビットのディスプレースメントを加える方式。これだけ。シンプル。RISCだもんね。

“ぐだぐだ低レベルプログラミング(57) RISC-V、浮動小数点数のロード/ストア命令” の続きを読む

MicroPython的午睡(64) ラズパイPico、デジタルポテンショメータを制御

MCP4018
Joseph Halfmoon

今回ラズパイPicoに取り付けてMicroPythonで制御してみるのは、ソフトウエアで抵抗値を設定できる可変抵抗、デジタルポテンショメータです。MicroChip社製MCP4018であります。ソフトで制御できるというと回路をいじらないでも何かいろいろ出来そうで嬉しい気もします。まあ使い道にもよりますが。

“MicroPython的午睡(64) ラズパイPico、デジタルポテンショメータを制御” の続きを読む

手習ひデジタル信号処理(29) Weaver変調器による周波数シフタその2 実機動作確認

FFT300Hz
Joseph Halfmoon

前回はWeaver変調器の原理を学ぶ、ということで三角関数の計算に突入してしまいました。しかし実際に計算したのはMaxima様で私は見ていただけですが。原理は分かった(ホントか)ということで、今回は実機にプログラムを書き込んでその特性を観察してみたいと思います。

“手習ひデジタル信号処理(29) Weaver変調器による周波数シフタその2 実機動作確認” の続きを読む

モダンOSのお砂場(41) Mbed OS6、Queue、いろいろ疑問あるんですが。

Result
Joseph Halfmoon

今回はQueueを使ってみたいと思います。第34回で似たお名前のEventQueueというものを使ってみましたが、全く異なるものです。QueueはスレッドやISR間の通信のための仕組みで、EventQueueはノンプリエンプティブな制御権の移動の仕組みです。「よくある」Queueだと思ってやってみたのだけれど疑問あり。何故?

“モダンOSのお砂場(41) Mbed OS6、Queue、いろいろ疑問あるんですが。” の続きを読む

ぐだぐだ低レベルプログラミング(56) RISC-V、浮動小数点数のClassify命令

fclassEC
Joseph Halfmoon

また、メンドクセー命令が出てきました。浮動小数点数のClassify命令です。無限大、デノーマル、NaNといった訳ありのモノドモを識別する命令。勿論、普通の(ノーマル)な数はノーマルと分類します。浮動小数点素人の私にはNaNの2種類あるビットパターンなど皆目見当がつかないです。

“ぐだぐだ低レベルプログラミング(56) RISC-V、浮動小数点数のClassify命令” の続きを読む

MicroPython的午睡(63) ラズパイPico, DTMFトーン生成IC制御その2

DTMFsignal
Joseph Halfmoon

前回、懐かしの三洋電機製LC7366NをラズパイPicoのMicroPythonから制御してDMTFトーン(プッシュホンのピポパポ音)を発生してみました。1音、それも波形のみ観察でした。今回はスピーカを取り付けて16音全てを「聞いて」みたいと思います。耳で聞くのは良いけれど、トーンをデコードしてくれる相手がいないです。

“MicroPython的午睡(63) ラズパイPico, DTMFトーン生成IC制御その2” の続きを読む

うさちゃんと一緒(4) Rabbit 4000 対 Python Scapy

scapyOnRPiGreeting
Joseph Halfmoon

前回はRabbit4000からラズパイに向かってPingかけるのを、ラズパイ上のWiresharkで覗き見してました。今回は、Rabbit4000とパケットをやり取りするトイメンとして、Python上のScapyを使ってみます。これでEthernetの両側をパケットレベルでプログラムできる筈。

“うさちゃんと一緒(4) Rabbit 4000 対 Python Scapy” の続きを読む

モダンOSのお砂場(40) Mbed OS6、EventFlags、便利なお知らせ

F401RE
Joseph Halfmoon

前回ConditionalVariableをヤバイなどと言ってしまいましたが、どうもそんなこと無いみたいです。メモリの使い方がOS2とOS6で違うだけだったみたい。ボードもOSも「2種併用中」で混乱してました。さて、今回はEventFlagsです。スレッド間、あるいは割り込みサービスルーチンからイベントを他に簡単に伝えることができるもの。

“モダンOSのお砂場(40) Mbed OS6、EventFlags、便利なお知らせ” の続きを読む

ぐだぐだ低レベルプログラミング(55) RISC-V、sign-injection命令「群」

fsgnBuild
Joseph Halfmoon

今回取り上げさせていただくのは、浮動小数点数の符号を操作するための命令「群」です。3命令「も」存在します。倹約を旨としてオペコード空間を割り当てているRISC-Vにしたら大盤振舞いにも見えましたが、例によって疑似命令という別名をみると「無いと困る」命令群でした。

“ぐだぐだ低レベルプログラミング(55) RISC-V、sign-injection命令「群」” の続きを読む

MicroPython的午睡(62) ラズパイPico、DTMFトーン生成IC制御その1

LC7366_DTMFgenerator
Joseph Halfmoon

別投稿で音声フォルマント周波数をとり扱いました。その「反対」で音声フォルマントを外した代表例?DTMF=Dual-Tone Multi-Frequencyトーン生成用のICをラズパイPico上のMicroPythonから制御してみる1回目です。DTMF、電話の「ピポパポ」音。スマホでも「まだ」使えるけれど使わないか?

“MicroPython的午睡(62) ラズパイPico、DTMFトーン生成IC制御その1” の続きを読む

手習ひデジタル信号処理(27) ヒルベルト変換器による周波数シフタその3 本丸ヒルベルト変換

PhasePlotEC
Joseph Halfmoon

今回は「本丸」ヒルベルト変換フィルタ(位相シフタ)を調べて行きたいと思います。前回同様、動作確認済の全体プログラムの中のヒルベルト変換フィルタの出力を外部に出力し、位相特性を観察してみようという試み。ただし、期待されるフィルタの特性はIに対してQがπ/2だけ遅れるというもの。入力に対してでないので測りづらいです。

“手習ひデジタル信号処理(27) ヒルベルト変換器による周波数シフタその3 本丸ヒルベルト変換” の続きを読む