X



MicroPythonのスレ Part 01
0001774ワット発電中さん
垢版 |
2020/02/09(日) 02:38:33.79ID:8pfKKO4u
無かったので立ててみました
0003774ワット発電中さん
垢版 |
2020/02/09(日) 03:25:14.83ID:8pfKKO4u
MaixduinoやMaixbit、M5StickVならRAMが6MBもあるので
これも大容量のヒープが扱えます
また、MaixPy、M5StickV専用のMicroPythonの派生版のMaixPyが使えます
MaixduinoならMaixPyからWiFiが使えます
Maxiduino、MaixBit、M5StickVはQVGAのカラー液晶LCDやカメラが標準装備なので
MaixPyから簡単にLCDやカメラが扱えます
0004774ワット発電中さん
垢版 |
2020/02/09(日) 04:54:21.52ID:8pfKKO4u
プログラム板に立てなかったのは電子工作も含めた内容にしたいからです
MicroPythonの派生版もここでOKです
0005774ワット発電中さん
垢版 |
2020/02/09(日) 06:26:58.09ID:jyZ9gt/2
--~~~-~-~~~--~---~~~-~---~---~-~~-~~-~~----~-~~~--~~--~-~-~~~-~-~~~~-~---~--
--~~~--~~~~~~~---~~~-~--~~---~~-~-~--~-~-~--~~-~~~-~~-~~~---~--~~-----~-~---
~-~--~~~-~~---~~~--~----~-~-~~-~--~~-~~----~---~~~~---~--~-~-~~-~-~---~~~~~~
-~-~~~~--~-~-~~-~-~~---~~~~-~--~-~~~-~-~---~----~~~--~~---~-~--~~-~~--~--~-~
--~-~~~-~-~---~-~--~~----~~~~-~-~~--~~~--~~~-~-~--~~~~~----~~~-~~--~----~-~-
~----~~-~~~~--~~--~~-~---~-~~~~~~-~---~~-~~-~-~~-------~-~~-~~~~~~-~----~---
~~---~-~~~~---~--~-~~~~~--~-~~~-~-~-~-~~~~~~---~-~-~~-~------~-~--~--~-~~---
~-----~--~~~~--~-~~~-~-~~--~-~~--------~~-~-~~~~~------~~-~-~~-~-~-~~~-~-~~~
-~~--~-~~--~~~-~-~~~-~~-~-~~--~---~-~~~~~--~--~---~~~-----~-~--~~~-~~--~-~--
~~--~-~--~-~~-~--~~--~---~~~---~---~-------~~~~~--~--~-~-~~~--~~~--~~~~~~-~~
-~-~~~---~--~-~~~-~~-~~~---~~~--~~~-~~-~--~~~~--~-~--~~-~---~~~~-~----~-----
~--~~-~~-~~-~~~--~~~--~-~----~---~--~~~--~-~--~~---~~~-~~-~~-~~-~----~-~~-~-
--~---~~--~---~--~~--~--~---~-~~~-~~~~~~----~~~~---~---~~~~~~--~~~~-----~~~~
----~~-~--~--~~-~~~~--~~~~----~~---~~---~-~-~~~-~-~--------~~~~--~~~~--~~~~~
-----~----~~-~~~~-~--~-~~-~---~~~~~~~--~-~~~~--~-~--~~~-~-~~~-~-~-~-~-~-----
~~--~-------~~~~~-~~-~~~---~~~--~~-~~~~------~~---~~-~~---~-~-~--~~-~-~~--~~
~~~~----~--~~~~-~-~~~-~~----~-~~-~~~~-~-----~--~~-~--~~----~~------~~--~~~~~
--~-----~~~~----~~-~~~~-~~-~-~~~~~-~~~--~~~-~-~-~-~-----~-----~-~--~~~-~-~-~
-------~----~~~---~~~----~~~-~~~-~--~~--~~--~---~---~~~-~~~~--~-~-~~~~-~~~~~
-----~--~-~--~--~-~~~~-~~~-~--~~~~--~-~--~--~-~-~~~~--~-~~~~-~-~-~~---~~-~--
-~-~~~~--~~~--~~--~-~~---~~~~--~-~-~~~--~--~~-~-~~~-~---~~~---~~~~---~------
-~~--~----~~-~~~-~--~~~--~-~~~~--~~----~---~~~~~---~~-~~-~--~---~-~---~~~-~~
--~--~~---~~----~~~-~~~~~~~--~~-~~-~---~~~---~~-----~-~-~~--~--~~~~-~--~--~~
-~~--~~~~-----~----~-~-~--~~~-~~-~~-~~~----~~~-~~--~~--~~----~~~---~~---~~~~
~-~-~-~----~~~~---~--~----~----~--~~~~-~-~-~---~~--~~-~-~~~-~~~~----~~~~-~~~
-~~~-----~-~~---~~-~~-------~~-~~-~-~--~-~~-~-~~~-------~-~~~~~~~~--~~--~~~~
---~~-~~-~-~~-----~----~~~~~~~~-~~~--~-~--~---~--~-~---~~-~~~--~~~~~--~---~~
-~~-~--~~~--~~----~~~~--~--~~~-~~~~-~~-~~~--~---~~----~~---~~-~-~-~~~~------
~--~--~~---~-~~---~-~--~~~-~~----~--~---~~~~---~-~~~~~~~-~~~-~~--~~~~-----~-
--~~--~~~~~~~~~~---~-~~~~~~-----~~~-~------~-~----~--~~-~~~~-------~-~~-~~~-
-~~-----~--~-~~-~-~---~~---~~~-~-~----~~-~~----~~~~~---~-~~-~--~--~~~~-~~~~~
-~---~~~~~~--~~-~~~~~~-~--~--~~-~~~-~~------~----~-~~--~-~-~--~~~-~~-~-~----
~--~~~---~~~~-~-----~-~~~~---~~~~-~~-~-~----~~-~---~~-~----~-----~-~~~~~~-~~
-~-~-~-------~-~---~~~-~--~~---~~-~~~--~-~--~~~~--~~-~-~~~-~-~---~--~~-~~~~~
----~-~----~--~~--~-~-~~~~~----~-~~~-~~~----~-~~-~-~-~~---~~-~~~~~~---~~--~~
--~~-~~------~--~---~~----~~--~~~---~~--~~~-~--~~--~~-~~-~~~~~~~--~~---~~-~~
~--~~-~~-~-~-~~~--~~~-~-~-~~~~~~~---~-~~-~~-------------~~~--~-~-~--~--~~-~~
~~~~-~----~~~~--~-~~--~~-~-~--~~-----~--~-~~~-~~~~-~-~~~--------~~~~~--~~---
~~--~--~~~~------~--~----~-~-~-~~----~~~~--~~~-~~-~~~~----~~-~--~~--~~~~--~~
~---~~~-~~~-----~-~-~-~--~~--~-~~-~~~--~-~-------~-~~-~~--~~-~--~-~~~~-~~~-~
~--~--~~------~-~~~-~~~-~--~~----~-~-~~-~------~~~--~~~-~~---~~-~-~~-~~-~~~~
~~~~~-~~-~~-----~~-~-~~---~--~~-~~~--~-~---~-~-----~-~-~~~-~--~~-~--~-~--~~~
--~~~-~--~-~~~---~~~~---~---~~--~~---~--~-~---~-~--~--~-~-~~-~~~-~~~~~--~-~~
~-~~-~~~~~--~-~--~~~~---~-~--~---~~~-~~~--~-~--~-~~-----~-~--~--~--~~~--~-~~
--~~-~-~-~~~~~-~-~~~-~---~-~----~-~~-~~-~--~-~~----~---~-~--~-~~~-~~--~-~-~~
~-~~~---~~~-~~~---~--~~~~~~-~~---~--~-~----~~~-~--~-~----~---~~~~~~~~----~--
-~----~--~~~--~---~~--~~-~~---~-~~---~--~-~~--~-~-~~~--~--~~~~~~--~~-~~--~~~
-~-~~-~~-~~~~-~-~-~--~~~~~~----~~-~~-~---~~~-~~~~--~~-~~--~-----~-~---~-----
~~---~--~-----~~~~~~~-~~-~-~~-~~-~~~~~~--~-~--~-~---~---~-----~~~-~----~-~~~
----~~~~~~-~~---~-~~~~~~~~--~~~---~-~~----~~~~----~~--~--~-~--~~~~-~-~------
0006774ワット発電中さん
垢版 |
2020/02/10(月) 17:42:01.09ID:jxcuslv4
オリジナルたるSTM32を忘れたらあかんて
0008774ワット発電中さん
垢版 |
2020/02/10(月) 21:34:41.47ID:VGb+uG12
素数を求めるプログラムです
ベンチマークとして使えます
https://pastebin.com/AxxVNxTB

MaixduinoでMaixPyのfirmwareをmaixpy_v0.5.0_12_g284ce83.binにして
import(Maix)
Maix.utils.gc_heap_size(3000000)
を実行して3Mのヒープを確保して実行したところ
260000桁まで計算できました
実行時間は3.3400秒でした

Maix.utils.gc_heap_size(3000000)はあまり大きな値を指定すると起動できなくなります
Maix.utils.gc_heap_size(4000000)では起動できなくなりました
復旧方法はここを参照してください
http://rio2016.5ch.net/test/read.cgi/denki/1573512764/67
0010774ワット発電中さん
垢版 |
2020/02/10(月) 21:44:09.25ID:VGb+uG12
ESP32-WROVER-Bモジュールで
本家MicroPythonのesp32spiram-idf3-20191220-v1.12.binで試したところ
52万3000桁まで計算できました
実行時間は44.5420秒です

26万桁で試したところ
実行時間は22.5000秒でした
0011774ワット発電中さん
垢版 |
2020/02/10(月) 21:57:05.76ID:VGb+uG12
ESP32-WROVER-Bモジュールで
本家MicroPythonのPSRAM版ではない通常版のesp32-idf3-20191220-v1.12.binで試したところ
1万6300桁まで計算できました
実行時間は0.7970秒です
0012774ワット発電中さん
垢版 |
2020/02/10(月) 22:05:34.57ID:VGb+uG12
Maixシリーズでヒープサイズ設定後、その設定が有効になるのはハードリセット後です
ソフトリセットでは有効にならないので要注意です
0013774ワット発電中さん
垢版 |
2020/02/11(火) 10:34:25.14ID:O7mzxHHL
ttps://cheeseshop.hatenadiary.org/entry/20080314/1236237562
ここのページの1番目のPIの計算プログラムを少しだけ改変して実行時間を計測してみました

https://pastebin.com/uZbrwhhJ

MaixduinoでMaixPyのmaixpy_v0.5.0_12_g284ce83.binで
8000桁で21.276秒

ESP32-WROVER-Bモジュールで
本家MicroPythonのesp32spiram-idf3-20191220-v1.12.binで
8000桁で217.121秒でした
0014774ワット発電中さん
垢版 |
2020/02/11(火) 11:34:25.92ID:O7mzxHHL
なぜか、ボードのリセットボタンを押してハードリセットしたらどちらも早くなりました

MaixduinoでMaixPyのmaixpy_v0.5.0_12_g284ce83.binで
8000桁で5.595秒

ESP32-WROVER-Bモジュールで
本家MicroPythonのesp32spiram-idf3-20191220-v1.12.binで
8000桁で31.904秒でした
0015774ワット発電中さん
垢版 |
2020/02/11(火) 11:45:41.03ID:O7mzxHHL
ESP32-WROVER-Bモジュールで
本家MicroPythonのPSRAM版ではない通常版のesp32-idf3-20191220-v1.12.binで
ハードリセット後実行して
8000桁で20.385秒でした

PSRAM版は多くのメモリを扱えますが多少遅くなることもあるようです
0016774ワット発電中さん
垢版 |
2020/02/11(火) 11:56:25.92ID:O7mzxHHL
ESP32-WROVER-Bモジュールで
通常版とPSRAM版でハードリセット直後のgc.mem_free()の値を見てみました

通常版(esp32-idf3-20191220-v1.12.bin)           114320
PSRAM版(esp32spiram-idf3-20191220-v1.12.bin)    4093584
0017774ワット発電中さん
垢版 |
2020/02/11(火) 12:54:14.18ID:UXBR/mIk
電子工作ネタを一つ

気温、気圧、湿度センサーのBME280です

BME280モジュールはスイッチサイエンスや秋月で売ってます

https://www.switch-science.com/catalog/2236/
https://akizukidenshi.com/catalog/g/gK-09421/

BME280はSPIとI2Cを選べるのですがI2Cで接続での使用です

ここのサイトに接続方法が詳しく載ってます
秋月のでもJ3をはんだでショートしなくてもI2Cで使えるようです
ttps://iot-gym.com/bme280-obniz/
https://github.com/SWITCHSCIENCE/BME280
スイッチサイエンスのPython用のサンプルコードを改変して
MaixPyで使えるようにしたものをESP32で使えるようにしてみました
(ほんの少し修正しただけです)


i2c_addressにはBME280のアドレスを入れます(このプログラムでは0x76になってます)

ESP32本家MicroPython用
https://pastebin.com/f6gjgYM0

MaixPy用
https://pastebin.com/QyV9qssY
M5StickVでもSCL=34 SDA=35もしくはSCL=35 SDA=34にすればおそらく使えると思います
0021774ワット発電中さん
垢版 |
2020/02/13(木) 19:59:20.90ID:P9LhW72B
MicroPythonのLoborisのPSRAM版ですが
基本的には下記URLのwikiに書かれたとおりにビルドすればいいのですが
https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo/wiki/build
その通りにビルドしただけでは
usslのussl.wrap_socket()を使うとエラーが出るようです
これはhttpsでアクセスするときに使います

BUILD.sh menuconfigで設定するときに

→ Component config → mbedTLS → SDK (8192) TLS maximum message content length
この値を16384に設定することで正常に動作するようになります

ここに書いてあり、実際にやってみてSSLの通信ができることを確認しました
https://loboris.eu/forum/showthread.php?tid=61



また、デフォルトではヒープサイズが512KBになってるのでデフォルトでビルドしても
PSRAMを512MBしか使ってくれません

→ MicroPython → System settings → MicroPython heap size (KB)
ここを変更することで多くのメモリを確保できます
(最大で3840まで設定可能で3840で起動できることを確認しました)

3840KBに設定してビルドした時のハードリセット後gc.mem_free()を実行したところ
3835168
と出ました
0022774ワット発電中さん
垢版 |
2020/02/13(木) 20:18:35.38ID:P9LhW72B
SSLの通信のテストプログラムとしてSipeedのMaixGo用のサンプルプログラムを引用しました
https://github.com/sipeed/MaixPy_scripts/blob/master/network/demo_http.py

ESP32のMicroPython用に改変してあります
本家MicroPythonのPSRAM版とLoborisのPSRAM版で動作することを確認してあります
JPEGの画像をダウンロードしてSPIFFSに保存するだけのプログラムです
ファイルはAlice.jpgという名前で保存されます
https://pastebin.com/TzM2fAeh
0025774ワット発電中さん
垢版 |
2020/02/13(木) 21:09:08.73ID:P9LhW72B
MicroPython lobo版はWindowsからではビルドできなかったです
Linuxなどからビルドしてください
ESP-IDFのインストール方法はここを参照してください
https://docs.espressif.com/projects/esp-idf/en/stable/get-started/index.html

VMware上のLinuxでビルドする場合は仮想マシンにシリアルポートを追加して
ESP32のUSB SerialのCOMポートへ割り当ててください
flashへの書き込みは下記のようにシリアルポートを指定してボーレートを115200にして下さい

./BUILD.sh -p /dev/ttyS1 -b 115200 erase
./BUILD.sh -p /dev/ttyS1 -b 115200 flash
0026774ワット発電中さん
垢版 |
2020/02/14(金) 08:06:49.85ID:fdTAGVW6
画像を扱う場合はESP32だとPSRAMがないときついね

だからM5CameraにはPSRAMがついてるんだろうね
https://www.switch-science.com/catalog/5207/
送料区分 500
税込単価 1,815 円

M5StickVやUNIT V、MaixduinoやMaix BitならRAMが6Mもあるから画像扱うのも楽
K210搭載モジュールはどれもスペックが似てるね

M5StickV
https://www.switch-science.com/catalog/5700/
送料区分 500
税込単価 3,080 円

UnitV AI Camera
https://www.switch-science.com/catalog/6212/
送料区分 150
税込単価 2,145 円
0030774ワット発電中さん
垢版 |
2020/02/14(金) 08:29:32.32ID:fdTAGVW6
K210用にはMicroPythonのloboris版もあるようです
https://github.com/loboris/MicroPython_K210_LoBo

K210でWiFiが使えるMaixduinoを買う場合に注意が必要なのは
MaixPyではWiFiアクセスポイントとしては使えないことと、
現時点ではSSLの通信に対応してないこと
Loboris版は試してないのでわかりません

K210は全モジュールで6MのRAMが載ってるので性能は高い
なお、大容量のヒープを使えるようにするのにはMaixPyv0.5.0以上が必要です
ヒープは
import Maix
Maix.utils.heap_size(1000000)
のように設定できます
あまり大きい値を設定すると起動できなくなります
ヒープサイズの設定はSPIFFSに保存されるので
空のSPIFFSイメージを書き込まないとリセットできませんので要注意です
Maix.utils.heap_size(4000000)
では起動できなくなりました
0031774ワット発電中さん
垢版 |
2020/02/14(金) 08:32:15.12ID:fdTAGVW6
MaixPyのヒープサイズの設定はリセットボタンを押してハードリセットした後で反映されます
0033774ワット発電中さん
垢版 |
2020/02/19(水) 07:18:23.46ID:81xHIDaH
ESP32用のMicroPython lobo版は
→ MicroPython → Modules → SDK Enable framebuffer
→ MicroPython → Modules → Use Display module
→ MicroPython → Modules → Enable support for SPI TFT displays (NEW)
この3つにチェック入れてビルドすると
 ST7789
ILI9341
 ILI9488
 ST7735
 ST7735R
 ST7735B
 M5STACK
 ssd1306
これだけのLCDに対応してる模様

試しにこれを買ってみました
HiLetgo® 2.8 "TFT LCDディスプレイ タッチパネル SPIシリアル240 * 320 ILI9341 5V / 3.3V STM32 [並行輸入品]
https://www.あまぞん.co.jp/dp/B072N551V3/
0034774ワット発電中さん
垢版 |
2020/02/19(水) 07:18:50.53ID:81xHIDaH
ちなみにMicroPython lobo版はWindowsではビルドできない模様
VMware上のUbuntu 18.04でビルドすると簡単にビルドできました
esp-idfやtoolchainはMicroPython lobo版の中に含まれているので
別途インストールする必要はありません

cd MicroPython_ESP32_psRAM_LoBo/MicroPython_BUILD
でディレクトリを移動して
./BUILD.sh menuconfig
を実行してパラメーターを設定して
./BUILD.sh -v
でコンパイル
./BUILD.sh erase
でFlashをクリア
./BUILD.sh flash
でFlashに書き込みです
./BUILD.sh erase
./BUILD.sh flash
は下記のようにシリアルのポートとスピードを指定できます
(VMwareから書き込みする際に指定する必要がありました)
./BUILD.sh -p /dev/ttyS1 -b 115200 erase
./BUILD.sh -p /dev/ttyS1 -b 115200 flash
0035774ワット発電中さん
垢版 |
2020/02/19(水) 07:40:57.28ID:81xHIDaH
必要なパラメータの設定は

→ Component config → mbedTLS → SDK (8192) TLS maximum message content length
これを16384に設定(これを16384にしないとSSLを使うと失敗する)
https://loboris.eu/forum/showthread.php?tid=61

→ MicroPython → Modules → SDK Enable framebuffer
→ MicroPython → Modules → Use Display module
→ MicroPython → Modules → Enable support for SPI TFT displays (NEW)
これらをチェック

→ MicroPython → Use OTA partition layout
のチェックを外す

→ MicroPython → File systems
SPIFFSを使用できるようにする(デフォルトでなってる模様)



PSRAM版は下記設定も必要

→ Component config → ESP32-specific → Support for external, SPI-connected RAM
をチェック

→ Component config → ESP32-specific → SPI RAM config → SPI RAM access method
をMake RAM allocatable using heap_caps_mallocに設定

→ MicroPython → System settings → MicroPython heap size (KB)
ヒープサイズを設定。デフォルトでは512になってます
(上限は3840で私の場合、3840にしました)
0037774ワット発電中さん
垢版 |
2020/02/19(水) 09:37:02.47ID:aWtqkf6O
lobo版をPSRAMのないESP32で試したところヒープが確保できなくて起動できませんでした
lobo版はPSRAM必須なようです
本家MicroPythonなら使えます
本家MicroPythonでgc.mem_free()を実行したところ
113200でした
0038774ワット発電中さん
垢版 |
2020/02/19(水) 21:21:55.85ID:ooojpNg1
git clone https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo.git
でまっさらな状態からやり直したところ、
PSRAMのないESP32でもMicroPython loboris版が使えました

パラメーターで変更した点は下記のみです
→ Component config → mbedTLS → SDK (8192) TLS maximum message content length
これを16384に設定
→ MicroPython → Modules → SDK [*] Enable framebuffer n --->
→ MicroPython → Modules → Use Display module
→ MicroPython → Modules → Enable support for SPI TFT displays (NEW)
の3つにチェックを入れる
0039774ワット発電中さん
垢版 |
2020/02/19(水) 21:23:20.67ID:ooojpNg1
ビルド方法は
適当なディレクトリを作りその下で
git clone https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo.git
を実行(ファイル容量は1GB以上あります)

cd MicroPython_ESP32_psRAM_LoBo/MicroPython_BUILD
でディレクトリを移動して

./BUILD.sh menuconfig
を実行

ここで上記パラメーターを変更します


./BUILD.sh -v
を実行してコンパイルをします

./BUILD.sh erase
を実行し、Flashの内容をクリア

./BUILD.sh flash
を実行しFlashにMicroPythonを書き込みます


./BUILD.sh -p /dev/ttyS1 -b 115200 erase
./BUILD.sh -p /dev/ttyS1 -b 115200 flash
のようにシリアルのポートと速度を指定することもできます

ハードリセット後のgc.mem_free()の結果は73504でした
0040774ワット発電中さん
垢版 |
2020/02/19(水) 23:13:14.70ID:ooojpNg1
HiLetgo 2.8 "TFT LCDディスプレイ タッチパネル SPIシリアル240 * 320 ILI9341 5V / 3.3V STM32 [並行輸入品]
https://www.あまぞん.co.jp/dp/B072N551V3/

このLCDが届いたのでPSRAMのないESP32で使ってみたのですが
文字を表示したり、図形を描画したり、
SPIFFSに置いた50KBくらいの大きさの640x480のJPG画像の表示もできました
ただ、複数の画像を扱いたい場合はPSRAMがあった方がよさそうです

>>22のプログラムでダウンロードした画像をLCDに表示するようにしてみました
https://pastebin.com/9KpLk6bi

こちらは線を表示するdemoプログラムです
https://pastebin.com/yNCXbEqV
0042774ワット発電中さん
垢版 |
2020/02/20(木) 06:10:23.98ID:WRrMvsef
PSRAMのないESP32でSPIFFSへのファイル転送を行うときは
uPyloaderは使わないほうがいいようです
途中でPCが固まることが何回かありました
ampyを使った方が無難です
0043774ワット発電中さん
垢版 |
2020/02/20(木) 06:47:54.71ID:WRrMvsef
ampyはバイナリファイルの受信ができないようです
MicroPython loboris版ではymodemというモジュールがあって
これを使うとバイナリファイルの転送ができます

例えば、SPIFFSにphoto01.jpgというファイル名があった場合に
import ymodem
ymodem.send("Alice0.jpg")
と入力し、送信が始まったら
シリアルに接続してる通信ソフトからYMODEMでの受信を開始すればOKです
私はTeraTermを使ってるのですがTeraTermの場合は
ファイル→転送→YMODEM→受信をクリックします
するとTeraTermのプログラムがあるディレクトリにファイルが転送されます

送信は
import ymodem
ymodem.recv("photo01.jpg")
と入力すると受信待ちになるので
TeraTermのファイル→転送→YMODEM→送信をクリックし
送信したいファイルを選択します
すると送信が始まります
0044774ワット発電中さん
垢版 |
2020/02/20(木) 23:13:13.62ID:bC9KRmky
>>40のプログラムでDC=17、Reset=16につないでいましたがどうやらPSRAMで使うようで
PSRAM付きのESP32では使えないようです
今後、もしILI9341互換LCDの出番があるときはDC=27、Reset=4でやっていこうと思います
tft.init(0, mosi=23, miso=19, clk=18, cs=5, dc=17, rst_pin=16, speed=40000000, bgr=True)
の部分は
tft.init(0, mosi=23, miso=19, clk=18, cs=5, dc=27, rst_pin= 4, speed=40000000, bgr=True)
でやっていきます
0045774ワット発電中さん
垢版 |
2020/02/29(土) 20:36:58.14ID:EyGs3dbd
ESP32のMicroPython Lobo版で
>>40のLCDの背面についてるSDカードスロットを使ってみました
LCDはmisoは19、LEDは3.3V、SCKは18、MOSIは23、DCは27、RESETは4、CSは5、VCCは3.3Vにつなぎます
SDカードの部分はSD_CSは13、SD_MOSIは15、SD_MISOは2、SD_SCKは14につなぎます

MicroPythonからのSDカードの使い方は
import uos
uos.sdconfig(uos.SDMODE_SPI, clk=14, mosi=15, miso=2, cs=13, maxspeed=8)
uos.mountsd()
この3行を実行すると
---------------------
Mode: SPI
  Name: SA16G
  Type: SDHC/SDXC
  Speed: default speed (25 MHz)
SPI speed: 8 MHz
  Size: 14772 MB
   CSD: ver=1, sector_size=512, capacity=30253056 read_bl_len=9
   SCR: sd_spec=2, bus_width=5

のように表示されてSDカードが/sdにマウントされます
uos.listdir('/sd')
を実行するとSDカードの中のファイルのリストを見ることができます
SDカードのアンマウントは
uos.umountsd()
になります

>>40のダウンロードした画像をLCDに表示するプログラムを
リストで指定したURLの画像を連続してダウンロードできるようにしてみました
MicroPythonはLobo版です。
(PSRAMのないESP32でもダウンロードできる画像を選んでみました)

https://pastebin.com/F85G6pL6
0046774ワット発電中さん
垢版 |
2020/02/29(土) 20:40:18.07ID:EyGs3dbd
LCDの背面に付いてるSDカードスロットだと使いにくいので
これを買って付けてみました。使い方は全く同じです。
(VCCには5Vの電源をつなぐ必要があります
信号線は74VHC125のバッファをかませてあるようで5Vでも3.3Vでも使えます)

HiLetgo 3個セット Micro SD TFカードメモリシールドモジュール
Arduinoに対応 SPIマイクロSDアダプタ 6PIN
https://www.アマゾン.co.jp/gp/product/B010GXAFFU/

3個セットで500円だったのですが現在は品切れ中のようです
0047774ワット発電中さん
垢版 |
2020/02/29(土) 20:43:15.68ID:EyGs3dbd
もし、SDカードが認識されなかった場合はMOSI、MISO、CS、CLKの信号線を
10Kオームの抵抗で3.3Vでプルアップするといいかもしれません
0049774ワット発電中さん
垢版 |
2020/03/15(日) 06:28:52.23ID:Gm3vCHEC
CircuitPython 5.0のTeensy 4.0とMaixPy v0.5.0-22-g7ac6b09で
>>13のPiの計算の速度を計測してみました

CircuitPythonではutimeがなく時間計測にはtime.monotonic()を使うようです

CircuitPython用のPiの計算プログラム
https://pastebin.com/14GzFx6H

結果は
Maixduinoは5.517 秒
Teensy4.0は7.474 秒

Maixduinoの方が速い結果になりました

ArduinoでDhrystone 2.1で計測すると
Teensy4.0は2690347とMaixduinoより約2倍くらい速いのですが
MicroPythonではMaixduinoの方が速いようです
0050774ワット発電中さん
垢版 |
2020/03/15(日) 06:41:06.98ID:Gm3vCHEC
MicroPythonとは関係ないですが
Teensy 4.0のDhrystone 2.1の結果はRaspberry Pi Zeroの2127659.5より速いです
0051774ワット発電中さん
垢版 |
2020/03/25(水) 16:49:51.62ID:xKDlAvsc
先日、ESP32のmicropythonで素因数分解電卓作った。
10桁ぐらいの数も一瞬だからおどろいた。
すげぇな、ESP32。
0052774ワット発電中さん
垢版 |
2020/03/27(金) 04:22:10.58ID:fsD98lCE
ESP32は他のマイコンよりもRAMが多いからいいよね
特にPSRAM搭載のやつは4MB近くヒープを確保できる
PSRAM搭載のESP32-DevKitC-VBはmouserで税抜き1276円
ただし、mouserは税抜き送料6000円未満だと送料が2000円かかるけど
他のボード買うときについでにmouserでESP32-DevKitC-VBを買ってみたが
アメリカからの発送だった
0053774ワット発電中さん
垢版 |
2020/03/27(金) 04:23:35.00ID:fsD98lCE
× 税抜き送料6000円未満
○ 税抜き6000円未満

mouserは税抜き価格で6000円以上だと送料無料
それ以下だと送料に2000円かかる
0054774ワット発電中さん
垢版 |
2020/03/29(日) 05:13:11.18ID:PXzKtgWB
ESP32は単体でWiFiが使えるのがいい点
単純な計算能力ならMaixduino、MaixBitやM5StickVの方が上で
デフォルトでLCD、カメラ、SDカードスロットが付いてる
6倍くらい計算能力が高い
MaixduinoはMicroPythonからオンボードのWiFiが使えるがSSLが使えないのが欠点
Maixduino、MaixBitはArduinoも使えるがMaixduinoのオンボードWiFiはArduinoからは使えない
0055774ワット発電中さん
垢版 |
2020/03/29(日) 06:18:27.32ID:PXzKtgWB
https://pastebin.com/s6ye07e3
この素因数分解のプログラムをやってみたら結果はこうなりました

ESP32 本家MicroPython PSRAMなし:17.811 秒
Teensy 4.0 CircuitPython 5.0:12.665 秒
Maixduino MaixPy v0.5.0-22-g7ac6b09:0.881 秒
0056774ワット発電中さん
垢版 |
2020/03/29(日) 08:50:36.60ID:PXzKtgWB
ESP32やTeensy 4.0は32bitの範囲を超える値の演算をすると演算速度はかなり落ちますが
MaixPyは32bit以上64bit未満の値の演算をしても
32bit以下の値の演算の場合とほとんど計算速度がかわらないので
32bit以上64bit未満の値の演算は内部的に64bitの演算命令で計算してると思われます
なのでMaixPyは64bitの範囲の演算は32bitの他のCPUの場合よりもかなり速くなるようです
0058774ワット発電中さん
垢版 |
2020/04/05(日) 07:33:32.28ID:3GzQZCKp
計算速度云々よりも
M5StickVのようにバッテリー内蔵でカメラ、LCDも付いてて簡単に持ち運べるようなのはいいね
WiFiも使えればさらに良かったけど
MaixPyはATコマンドのファームウェアを書き込んである8266をUARTでつなげば
とりあえず、MaixPyからnetwork.ESP8285を使うことでWiFiが使えるようにはなるね
(最新のファームウェアじゃないくて古いファームウェアの方がいいみたい)
ただし、MaixPyはSSLが使えないけど
もう一つ、Groveポートが付いてればよかったんだけどね
0059774ワット発電中さん
垢版 |
2020/04/05(日) 10:14:05.02ID:3GzQZCKp
ESP8266のATコマンドのファームウェアはここからダウンロードできます
https://www.espressif.com/en/support/download/at
私はMaixduino上のMaixPyで試したのですがESP8266でWiFi接続してサーバからデータを取ってくることはできました
使ったESP8266のファームウェアはESP8266 NonOS AT Bin V1.7.1です
0061774ワット発電中さん
垢版 |
2021/04/22(木) 07:06:17.11ID:M/OZbA/f
PicoのMicroPythonは本家のMicroPythonとの互換性は高いみたいだから
ESP32用のMicroPythonのプログラムでもピンの指定などをPicoに合わせて変更すれば
そのまま動く場合が多いよ
Lobo版のMicroPythonとは互換性は高くないので注意だけど

framebufモジュールを使うと画像の描画が可能です
ただし、framebufモジュールは円の描画には対応してないです
Raspberry Pi picoでMicroPythonでILI9341のLCDに画像を表示してみた例
RAMが足りなくて画面全体のframebuf用のバッファーを確保できなかったので
画面の一部分のみ(240x180)のバッファーを確保して描画してます
Raspberry Pi Pico MicroPython ILI9341 SPI demo random rect
https://pastebin.com/93EJpseN
Raspberry Pi Pico MicroPython ILI9341 SPI framebuf demo Cat
https://pastebin.com/RJrgtCFN
0062774ワット発電中さん
垢版 |
2021/04/22(木) 07:14:15.88ID:M/OZbA/f
上のプログラムの猫の画像はGIMPでRGB565でC言語形式で出力したものを
C言語でPythonのソースコードで使えるように整形して出力したものです
GIMPなら保存形式にC言語ソース形式を選択してRGB565を指定すれば
普通の画像をRGB565に変換したデータ出力ができるので便利ですね
0063774ワット発電中さん
垢版 |
2021/04/22(木) 08:39:07.56ID:zIfQgD3o
>>61
なるほど参考になります
pimoroniのpicodisplayを組み合わせてるのでpimoroniバージョンのmicropythonを使ってます
>>62
gimpすごいな!
pngで書き出して自前のpythonスクリプトでRGB565に変換してました…
0064774ワット発電中さん
垢版 |
2021/10/29(金) 08:37:29.46ID:Q3YMDdwV
wdt.feed() これ、効かないんだけど どうやってエサやるの?
0065774ワット発電中さん
垢版 |
2023/03/09(木) 11:22:41.41ID:3xCEj5+U
CircuitPythonって使いやすいね。Adafruitがしっかり管理してくれてる。しばらく遊んでみよっと。
レスを投稿する