MicroPython的午睡(43) MQTTでSubscribe、M5ATOM Lite

subscribeEC
Joseph Halfmoon

前回別件に行ってしまいましたが、今回は前々回の流れに戻ってMQTTのSubscribeを行ってみたいと思います。使用するMicroPythonは ESP32用の”generic” portです。M5ATOM Lite上での運用ですが、”generic”なので他のESP32デバイスでも動くと思います。

“MicroPython的午睡(43) MQTTでSubscribe、M5ATOM Lite” の続きを読む

ブロックを積みながら(36) Node-RED、何気に深いInjectとDebugノード

Inject and Debug Node
Joseph Halfmoon

前回、折角Node-REDのバージョンアップをかけたのに、それっきりになっておりました。Node-REDエディタのパレットに追加でインストールしたものは多くないので、今のうちに「一通り」端から使ってみるべし、という目標であります。「必要に応じて」(泥縄式ともいう)でマニュアル読んでも分かってない機能がいっぱいあるのね。

“ブロックを積みながら(36) Node-RED、何気に深いInjectとDebugノード” の続きを読む

ぐだぐだ低レベルプログラミング(29) RISC-VでMV(MOVE)命令、本当は無い

StartDebug
Joseph Halfmoon

前回、RISC-Vのアセンブラを再開できたので、今回からは1命令づつ命令を動かしていきたいと思います。最初はMOVE(RISC-VのニーモニックではMV)命令です。単なるレジスタ間の転送。しかし、そこにある「仕掛け」をみるとRISC-Vのやり方というものが理解できる感じがします。単なるMOVE、されどMOVEか。クセが強いのう。

“ぐだぐだ低レベルプログラミング(29) RISC-VでMV(MOVE)命令、本当は無い” の続きを読む

IoT何をいまさら(94) ATSAMD51、ArmのWFI命令使ってみた

WioTerminal_WFI_DUT
Joseph Halfmoon

前回『初回が0なのはプログラムの仕様<バグともいう>です。』など勝手なことを書いて「逃げて」しまいました、すみません。今回はバグ修正版? ArmのWFI(Wait for Interrupt)命令を使って、割り込みが発生するまで「低消費電力で」待ちを入れたいと思います。まあこれとても根本的な対策ではないのでありますが。

“IoT何をいまさら(94) ATSAMD51、ArmのWFI命令使ってみた” の続きを読む

鳥なき里のマイコン屋(137) ラズパイPico、C/C++SDKでPIO、サイド出力

LOGANADUT
Joseph Halfmoon

前回は、ラズパイPicoのユニークなPIO(Programable IO)でパラレル入出力をやってみました。ただし、出力タイミングはCPUからの書き込み次第でした。今回は、CPUタイミングを排除し、ハード側の一定のタイミングで出力するとともに、パラレル出力には必須のストローブ信号を付加してみたいと思います。

“鳥なき里のマイコン屋(137) ラズパイPico、C/C++SDKでPIO、サイド出力” の続きを読む

ソフトな忘却力(2) ラズパイ4でCプログラミング、libconfig

libconfigEC
Joseph Halfmoon

前回はコマンドラインオプションの取得用ライブラリ getopt でした。今回は、ファイルに書き込まれたコンフィギュレーション設定を読み取るための libconfigを使ってみます。最近私はPythonではJSON形式使っていますが、libconfigも分かり易いのではないかと。勿論、読み書き両対応。C/C++にも両対応。

“ソフトな忘却力(2) ラズパイ4でCプログラミング、libconfig” の続きを読む

Literature watch returns(29) トラ技2021.10月号、あれ?

TraGi202110
Joseph Halfmoon

久しぶりのCQ出版さんの「トランジスタ技術」誌です。2021年10月号。特集も「お役立ち」ですが、ちょっと気になる新連載が始まりました。三上直樹先生、『STM32マイコンではじまるPC計測』です。あれ、何か見覚えあるような。そうです前回のデジタル信号処理のご本の著者による連載。ちょうど準備済なんですわよ。

“Literature watch returns(29) トラ技2021.10月号、あれ?” の続きを読む

忘却の微分方程式(13) 分数、小数の入力、MATHEMATICAとMaxima

fraction_example
Joseph Halfmoon

貧乏根性で、折角無料で使えるのだから”Wolfram Mathematica for Raspberry Pi” を使ってみる、ついでに使い方が分かっていないMaxima(PC上)でも同じことをやってみる、の第2回です。前回は入力で、どちらもクセが強いことがすこし分かってきました。今回は分数と小数です。似ているような、似ていないような。

“忘却の微分方程式(13) 分数、小数の入力、MATHEMATICAとMaxima” の続きを読む

ぐだぐた低レベルプログラミング(28) RISC-Vでアセンブラ再開、環境のレストア

Joseph Halfmoon

昨年は結構RISC-Vマイコンを動かしていたのですが、RISC-V debuggerをボードから外してしまった後「疎遠」となっておりました。今回開発環境をレストア(といってデバッガ取り付けるだけですが)し、再び取り組んでみたいと思います。目標はRV32I全命令を動かしてみること。全命令というと大変そうですがRISC-Vだもんね。

“ぐだぐた低レベルプログラミング(28) RISC-Vでアセンブラ再開、環境のレストア” の続きを読む

MicroPython的午睡(42) array.array、意外に小さい使える領域

M5ATOMLite_RaspberryPiPico
Joseph Halfmoon

別件でラズパイPico上のMicroPythonを使用して、arrayモジュールを使ってみたところ、バイト要素が高々16000個以下でエラーで落ちました。他のプログラム要素の使用分もあるので一概には言えないですが、ラズパイPico搭載のSRAM量からしたらかなり小さくて予想外。どういう書き方したらどのくらいの容量が使えるのだか気になって調べてみました。対象はラズパイPicoとM5ATOM LiteのMicroPythonです。

“MicroPython的午睡(42) array.array、意外に小さい使える領域” の続きを読む

IoT何をいまさら(93) ATSAMD51、内蔵ペリフェラルの割り込み受け

TRNG Interrupt Handler
Joseph Halfmoon

前回に続き、Microchip社ATSAMD51マイコンをローレベル(ハードに近いレベル)でプログラムしていきたいと思います。今回は内蔵ペリフェラルの発生する割り込みの受けです。「割り込み源」としては前回使用してみたTRNG(真性乱数ジェネレータ)を使います。今回は単なる割り込み源としての登場です。

“IoT何をいまさら(93) ATSAMD51、内蔵ペリフェラルの割り込み受け” の続きを読む

鳥なき里のマイコン屋(136) ラズパイPico、C/C++SDKでPIO、今度は入力

PIO002DUT_Schematic
Joseph Halfmoon

ラズパイPicoのPIO(Programable IO)、前回は任意のデータの8ビットパラレル出力を行ってみました。今回は、前回の8ビット出力に加えて、4ビットのパラレル入力を追加してみたいと思います。実験用に外付け回路を追加。でもまだまだPIOアセンブラは数行、極めてシンプルであります。

“鳥なき里のマイコン屋(136) ラズパイPico、C/C++SDKでPIO、今度は入力” の続きを読む

鳥なき里のマイコン屋(135) ラズパイPico、C/C++SDKでPIO、多ビット出力

PIO 8bit output
Joseph Halfmoon

ラズパイPicoのPIOですが、MicroPythonから使う方が簡単かな~などと思う今日この頃です。でもこちらのシリーズでは気を取り押してC/C++SDKでやります。さて、前回は単純bit-bangingでしたが、今回は任意の多ビットの値をPIO使って出力してみたいと思います。こんな進捗では何時までかかることやら。まあ急ぐ理由もなし。

“鳥なき里のマイコン屋(135) ラズパイPico、C/C++SDKでPIO、多ビット出力” の続きを読む

ソフトな忘却力(1) リモート接続でLinux Cプログラミング getopt

getoptDebug
Joseph Halfmoon

なんだかな~。老人の忘却力とて、使わなければ忘れるし、使わないものはもともと覚えていないし(当然か。)このところマイコンの「クロス」開発ばかりで、ホスト上の「セルフ」がないです。普通にCとかPythonとかのプログラミングも忘れてしまいそうなので、忘却いや記憶の鍛錬を。今回はコマンドライン引数の処理、C言語編。

“ソフトな忘却力(1) リモート接続でLinux Cプログラミング getopt” の続きを読む