MicroPython的午睡(57) ATOMLite、NodeREDからブザーを制御

ATOMLiteDashBoard_EC
Joseph Halfmoon

前回はM5ATOMLiteに接続したブザーをPWMで鳴らせるようにしました。今回は、ブラウザ画面からNode-REDダッシュボードを操作して、そのブザーを鳴らしてみようと思います。鳴らしたままだとウルサイので止める機能も仕込んでありますよ。それにしてもATOMLite用のダッシュボード、項目増えすぎか。

“MicroPython的午睡(57) ATOMLite、NodeREDからブザーを制御” の続きを読む

IoT何をいまさら(103) ESP-EYE、ESP-IDFでWiFi AP接続

ESP_EC
Joseph Halfmoon

前回、ESP-EYEをESP-IDF環境でプログラムできるように勉強しようとて、まずはWiFiアクセスポイント(AP)をスキャンしてみました。当然今回はAPに接続となります。接続そのものはサンプルコードをコピペすれば簡単、ではあるのです。が、前回に引き続き Config 関係を調べつつ動かしてみたいと思います。

“IoT何をいまさら(103) ESP-EYE、ESP-IDFでWiFi AP接続” の続きを読む

ぐだぐだ低レベルプログラミング(43) 64bitRISC-V、レジスタとレジスタ間転送

floatFormat
Joseph Halfmoon

前回は、まさかのトラブル勃発で、最低説明しておくべき項目を落としてしまいました。64bit かつ 単精度/倍精度の浮動小数点演算命令を備えたRISC-Vのレジスタセットと、レジスタ間転送についてです。今回はその補遺であります。ぶちゃけレジスタの図が1枚。

“ぐだぐだ低レベルプログラミング(43) 64bitRISC-V、レジスタとレジスタ間転送” の続きを読む

モダンOSのお砂場(30) FreeRTOS、タイマAPI対vTaskDelay

Seeeduino Xiao on BB
Joseph Halfmoon

前回は、自ら制御権を放棄するスケジューリングとプリエンプティブに取り出されるまで手放さないものを比べてみました。今回はタスクを決めた期間休ませるのに使っていたvTaskDelayを使わずタイマAPIを使って定期的に仕事をさせる方法と、今まで通りのvTaskDelayを使う方法を比べてみたいと思います。 “モダンOSのお砂場(30) FreeRTOS、タイマAPI対vTaskDelay” の続きを読む

ぐだぐだ低レベルプログラミング(42) 64bitRISC-V、単精度浮動小数点add

RPi4_MaixBit
Joseph Halfmoon

前回から64bitのRISC-V搭載のK210にターゲットを切り替えたのですが、今回はまさかの問題勃発。Flashに書き込めません。というか接続するとPCの挙動が不審。どうしたものか。そこで困ったときのラズパイ頼み、Picoの母艦のラズパイ4機にK210ボードへの書き込みをお願い。OK、単精度浮動小数点add命令動いています。

“ぐだぐだ低レベルプログラミング(42) 64bitRISC-V、単精度浮動小数点add” の続きを読む

Pico三昧(2) Pico C/C++ SDKで74HC595接続、PIO制御編単品

PIO595EC
Joseph Halfmoon

前回は、定番の74HC595シフトレジスタをフルソフト制御で扱ってみました。今回はラズパイPicoの特徴であるPIO(プログラマブルIO)を使って制御してみます。既にMicroPythonからPIOによる74HC595の制御はやってみているので、PIOアセンブラはPythonコードからの移植、という感じ。 “Pico三昧(2) Pico C/C++ SDKで74HC595接続、PIO制御編単品” の続きを読む

手習ひデジタル信号処理(13) STM32F446、IIRフィルタその2、Double型

DoubleBode
Joseph Halfmoon

前回は、IIRフィルタを単精度浮動小数(Float型)で動かして、「予定通り」計算精度の問題を目にすることができました。今回は、同じIIRフィルタを倍精度浮動小数(Double型)での計算に変更するだけで、その問題が消える件をしみじみ味わってみたいと思います。予定通りとは言え、前回結果と比べると魔法のよう。 “手習ひデジタル信号処理(13) STM32F446、IIRフィルタその2、Double型” の続きを読む

MicroPython的午睡(56) ATOMLite、パッシブ・ブザー接続

ATOMLite_wPassiveBuzzer
Joseph Halfmoon

このところM5ATOMLite側からNodeREDサーバーに「報告」するばかりで、逆方向のアクションがありません。そこでATOMLiteにPassive Buzzerを取り付けてみました。サーバーからブザーを鳴らせば「注意喚起」(何の?)が出来ると。今回はPWM駆動でブザーを鳴らすところまで。

“MicroPython的午睡(56) ATOMLite、パッシブ・ブザー接続” の続きを読む

IoT何をいまさら(102) ESP-EYE, ESP-IDFでWiFiスキャン

DEVKITC_ESP_EYE
Joseph Halfmoon

ATSAMマイコン関係がこちらへ移動したので、「跡地」にESP-EYEをESP-IDF環境で「やっつけよう」という試みが越してまいりました。AIとか、カメラとかまずは置いておいて、ESP32なんだからWiFiで通信できるところから出発すべきだろう、と。ESP-IDF、資料有りすぎ、読むのが辛いです。イケないけれども伝統の試行錯誤法でアプローチ? “IoT何をいまさら(102) ESP-EYE, ESP-IDFでWiFiスキャン” の続きを読む

モダンOSのお砂場(29) FreeRTOS、プリエンプティブなスケジューリング

StateDiag_EC
Joseph Halfmoon

前回はFreeRTOSのスケジューラを起動をしたものの、Taskは1個だけでスケジューラのご利益はありませんでした。今回はTaskを2個にして、Blocking APIを使って「自主的に」制御権を手放すのと「プリエンプティブ」に制御権を取り上げて再スケジュールするのと両方のケースを観察してみたいと思います。実験に使用するのは、前回に続きSAMD21マイコン搭載Seeeduino XAIOボードです。 “モダンOSのお砂場(29) FreeRTOS、プリエンプティブなスケジューリング” の続きを読む

AT SAMの部屋(2) SAMD21、GPIOのドライブ・ストレングス設定

PinWeakStrong
Joseph Halfmoon

前回はSAMD21で吉例Lチカだったですが、書きながら気になったことがありました。GPIOのピンコンフィギュレーションの中にDRVSTRというビットがあるのに気づいたからです。調べたら同じものがSAMD51にもありました。GPIO分かったような気でいて、ついつい見逃していたのね。

“AT SAMの部屋(2) SAMD21、GPIOのドライブ・ストレングス設定” の続きを読む

ぐだぐだ低レベルプログラミング(41) 64bitのRISC-Vでインライン・アセンブラ

ArduinoInlineASM_EC
Joseph Halfmoon

RISC-VインタナショナルがVectorなどの拡張命令セット多数を制定したとのニュースが流れるなか、こちらはようやく64ビット命令に入ります。前回まで32ビットのRISC-V、GD32VF103でしたが、今回からは64ビット、Kendryte社のK210です。前回同様VSCode+PlatformIOでのビルドは同じ、しかしプラットフォームが異なるのでまずはアセンブラ命令を走らせる環境の確認から。

“ぐだぐだ低レベルプログラミング(41) 64bitのRISC-Vでインライン・アセンブラ” の続きを読む

Pico三昧(1) Pico C/C++ SDKで定番74HC595接続、ソフト制御編

74HC595
Joseph Halfmoon

ラズパイPico関係の投稿が増えてきたので、総目次を新設し、あちこちに散在する投稿へのリンクを整理中です。ついてはラズパイPico専用で1シリーズを設けました。「Pico三昧」ですぞ。栄えある?第1回は以前Pico上のMicroPythonでやったことのある定番のシフトレジスタ74HC595の接続です(新味が無いな。)

“Pico三昧(1) Pico C/C++ SDKで定番74HC595接続、ソフト制御編” の続きを読む

手習ひデジタル信号処理(12) STM32F446、IIRフィルタその1、Float型

IIRdirBLK
Joseph Halfmoon

今回から、IIRフィルタに入ります。前回までのFIRフィルタに比べると、計算負荷(あるいは回路規模)は小さくなるけれども、「いろいろ」あって難しい、と。ちょっと上級生になった感じで嬉しいです。まずは、基本形を出発点に、さっそく計算精度の問題の一端を垣間見ることになるみたいです。浮動小数点処理でもグラグラするのね。

“手習ひデジタル信号処理(12) STM32F446、IIRフィルタその1、Float型” の続きを読む