MicroPython的午睡(115) ESP32版、mpy-crossの利用

ESP32supportedMPY
Joseph Halfmoon

前回はヒープ・メモリの使用状況をちょいと観察しました。上限が小さいRAM領域は貴重。ターゲット機のESP32DevKitCの場合、まだFlash領域の方が余裕があるのでなるべくFlashに「追い出したい」デス。そこで今回はMicroPythonの中間コードにクロスコンパイルしてくれるmpy-crossを使用してみます。

“MicroPython的午睡(115) ESP32版、mpy-crossの利用” の続きを読む

MicroPython的午睡(114) ESP32版、ヒープ・メモリの使用状況

ConstGlobal
Joseph Halfmoon

今回はMicroPythonのメモリの使い方の話を若干。C言語などではconst扱いのオブジェクトをFlash上に配置して貴重なRAMをセーブするということがあります。馬鹿なのでMicroPythonも同じようなもんかい、と思っていたら違いました。Flashに置くことはできるのですがそれはまた別の話みたいっす。

“MicroPython的午睡(114) ESP32版、ヒープ・メモリの使用状況” の続きを読む

MicroPython的午睡(113) ESP32版、hashlib使ってsha256を計算

ImportHashlib
Joseph Halfmoon

MicroPython上でも使えるCPython(フルのPython実装)のサブセット・モジュールを見てます。今回はhashlibとな。この年寄はMD5計算できればいいんじゃね、くらいのいい加減さ。ESP32版のMicroPythonみたらばMD5は割愛されてました。SHA256使え(SHA1もある)ということみたい。
“MicroPython的午睡(113) ESP32版、hashlib使ってsha256を計算” の続きを読む

MicroPython的午睡(112) ESP32版、heapqで乱雑タプルを昇順にとりだす

heapqScriptEC
Joseph Halfmoon

前回は先入れ先出しが可能なデータ構造 deque を使ってみました。今回は入れる順序には関係なく、入れたデータの大小関係によって取り出しの順番が変わる heapq を使ってみます。まさにヒープソートのアルゴリズムみたいです。端からデータをしまっていけば、取り出すときには大小関係順序通りに取り出せるので便利。ホントか? “MicroPython的午睡(112) ESP32版、heapqで乱雑タプルを昇順にとりだす” の続きを読む

MicroPython的午睡(111) ESP32版、乱数をdequeにつめて非同期タスク

AsyncIODequeSRC
Joseph Halfmoon

今回使用してみるMicroPythonモジュールは、collections, randomそしてuasyncioです。uasyncioで非同期動作のタスク間を、collections.dequeで作ったFIFOで橋渡し、randomモジュールで生成した乱数を受けわたそうというのです。ありがち。短いコードで動作確認。

“MicroPython的午睡(111) ESP32版、乱数をdequeにつめて非同期タスク” の続きを読む

MicroPython的午睡(110) ESP32版、btree + json が一番お楽?

Restored
Joseph Halfmoon

前回、MicroPythonで使えるキーバリュー型のデータベースbtreeを使用。いつものPythonの辞書型と似た操作方法でお楽です。ただ一点メンドクセーのが、「bytes型ライクな」オブジェクトでないと格納できない制限です。直接格納できないデータがあったときにどうするのがお楽か。やっぱりJSON化がいいんじゃない。
“MicroPython的午睡(110) ESP32版、btree + json が一番お楽?” の続きを読む

MicroPython的午睡(109) ESP32版、btreeモジュールで連想配列永続化?

ESP32_Python_Btree_EC
Joseph Halfmoon

フルPython処理系でデータベース的なものを使いたいとき「お手軽な」SQLite使うことが多いデス。一方スタンドアロンなMicroPython単独でSQL系DB使うのは現実的ではないかと。しかしMicroPythonには固有の実装としてbtreeモジュールあり、標準辞書型に近い形の連想配列を「永続化」可能であります。

“MicroPython的午睡(109) ESP32版、btreeモジュールで連想配列永続化?” の続きを読む

MicroPython的午睡(108) ESP32版、「自前制作」タッチセンサをセンス

ESP32touchDUT
Joseph Halfmoon

前回はESP32独特な「任意波形」を生成できるRMTを使ってみました。どの端子が使えるんだか記述が見当たらないので試行錯誤。今回は同じESP32ユニーク周辺でも使える端子がバッチリ記述されてます。タッチセンサ機能です。しかしターゲットのESP32 DevKitC機にはタッチセンサは不在。どうする?

“MicroPython的午睡(108) ESP32版、「自前制作」タッチセンサをセンス” の続きを読む

MicroPython的午睡(107) ESP32版、RMT、どこの端子が使えるの?

ESP32_RMT_BB
Joseph Halfmoon

ESP32シリーズ用のMicroPythonに固有の機能の多くがesp32という名のモジュールに格納されています。その中に周辺の制御用にユニークな機能が一つ、RMTです。もともと赤外線リモコン用の送受信のために搭載されているハード機能を制御するためのクラスです。面白そうなのだけれども、だいたいどのピンが使えるの? “MicroPython的午睡(107) ESP32版、RMT、どこの端子が使えるの?” の続きを読む

MicroPython的午睡(106) ESP32版、DHT11を接続してみる

DHT11_ESP32_DUT
Joseph Halfmoon

別シリーズのRubyちゃん(RX631上のmruby)にラズパイPico用に自前作成のフルMicroPythonのDHT11インタフェース関数を移植しましたが苦戦中です。今回はESP32版のMicroPythonでDHT11接続を行ってみます。ESP32版にはDHT用のモジュール装備されとります。これを使えば一撃と。
“MicroPython的午睡(106) ESP32版、DHT11を接続してみる” の続きを読む

MicroPython的午睡(105) ESP32版、インターバルタイマ2本使ってみる

ESP32Timer_DUT
Joseph Halfmoon

Rubyちゃん(mruby)にはタイマAPIが見当たらないとブー垂れ、ESP32版のMicroPythonでタイマを使ってみることに。MicroPythonでのタイマの利用は過去記事でやってます。STM32マイコン版ではいろいろと。しかしタイマAPIはマイコン・ハードウエアの依存性が強いです。ESP32版ではどこまで?
“MicroPython的午睡(105) ESP32版、インターバルタイマ2本使ってみる” の続きを読む

MicroPython的午睡(104) ESP32版、改めてModule群を眺めてみる

esp32micropythonModulesEC
Joseph Halfmoon

このところ前日の別シリーズ「Rubyちゃん」と似たことをMicroPythonでやってみる流れです。今回はRubyちゃんでは見当たらないとブーたれていたAPIについて、使用中のESP32版のMicroPythonでどうなっているのか調べてみました。ドキュメントには書いてないことも多いので最後は「マシンに聞く」のが確実。

“MicroPython的午睡(104) ESP32版、改めてModule群を眺めてみる” の続きを読む

MicroPython的午睡(103) ESP32版、12bit ADC、アッテネータ設定と読み取り

DevKitC_ADC_DUT
Joseph Halfmoon

最近別シリーズの「Rubyちゃん」の次に「MicroPython」する巡りあわせ。RX631マイコン上のmruby処理系で動作させたものをほぼそのままESP32のMicroPython処理系でもやってみる展開です。今回はADC(アナログデジタルコンバータ)。処理系の違いというよりマイコンの考え方の違い、割り切り? “MicroPython的午睡(103) ESP32版、12bit ADC、アッテネータ設定と読み取り” の続きを読む

MicroPython的午睡(102) ESP32版、8 bit のDAC使えた

ESP32_DAC_DUT
Joseph Halfmoon

別シリーズ記事のルネサスRX631マイコン上のRubyでDAC出力をやってみたので、こちらESP32版のMicroPythonでもDAC出力をやってみます。でもね、いつもお世話になっておりますMicroPythonの「ESP32用クイックリファレンス(日本語)」ページにはDACのこと書いてないです。でも使えると。

“MicroPython的午睡(102) ESP32版、8 bit のDAC使えた” の続きを読む