ESP32系開発ボード用テストプログラム

更新:2023/08/28

ESP32系開発ボードで MicroPython の情報を読み出すプログラム


■ESP32開発ボードの Micropython 環境での情報を読み出す
・ネット通販で入手したESP32系開発ボードの死活を MicroPython で調べるプログラムです。
・ボードの情報をなるべく多く読み出すことで、トラブル時の不良や故障の発見にも役立ちます。
・このプログラムはネットでみつけたシンプルなテストプログラムを単純に1個につなげただけものです。
・ESP-23系開発ボード、ESP32-WR**, ESP32/C*/S* と互換ボードで使用できます。
・ESP-23系開発ボードに MicroPython のファームウェアをインストールすることで利用できます。
・ MicroPython のESP32 系ファームウェアは Thonny-4.4.1 からインストールできます。
・このプログラムの実行に必要な追加のライブラリーやモジュールはありません。
・プログラムはご自由に書き直してカスタマイズして下さい。
・実行してエラーが出たら、問題の行の行頭に#を入れて除外し再実行すれば結果を得られます。
・MicroPython のハードウェアI2C と SPI のデフォルト値を読み出して確認ができます。
・ソフトウェア I2C、SPI の設定値の確認はできません。
WiFi の動作確認は、最下部の WiFi_AP_List のプログラム部の行頭の # を削除して利用できます。

■ESP32 系開発ボード用のテストプログラム
 Get_ESP32_Board_Info-09.py

# Get Board Info. ESP32-09 #
# CPU Fre4qency, Firmware Name, Disk_Size, Free Space, CPU Tempareturs
# Print I2C & SPI Defaults for Pico
import os
import sys
import platform
import gc
import machine
import utime
from machine import I2C, SPI
import esp
import esp32

# Get MicroPython Version of board
print("MicroPython:", sys.version)
# CPU Frequency
print("CPU Frequency in MHz:", machine.freq() / 1000000)          # CPU の現在の周波数を取得
# Firmware Name in the board
print("Firmware Name:", os.uname().machine)
print("Flash size in Byte:", esp.flash_size())
fs_stat = os.statvfs('/')
print("Disk size in MB:", fs_stat[0] * fs_stat[2] / 1024 / 1024)
print("Free space in MB:", fs_stat[0] * fs_stat[3] / 1024 / 1024)
print("Free Memory in kB:", gc.mem_free() / 1024)
# Hall sensor value
print("Hall sensor value: ", esp32.hall_sensor())
# CPU Temperature in F
#print("CPU Temperature raw:", raw_temperature() )
print("CPU Temperature C:", round((((esp32.raw_temperature() - 32) / 1.8)), 1))

# i2C and SPI Default value
print("********")
print('Defauit value for Hardware I2C & SPI of ESP32') 
print('I2C(0):', I2C(0))
print('I2C(1):', I2C(1))
print('SPI(1):', SPI(1))
print('SPI(2):', SPI(2))

 

■Thonny-4.4.1 でのプログラム実行の画面

ESP32 ボードでのプログラム実行画面


■実行結果の例(1):Wemos ESP32-OLED ボードの実行結果

Wemos-ESP32-OLED でプログラムを実行した・・・・

MPY: soft reboot
MicroPython: 3.4.0; MicroPython v1.19.1-996-g783ddfc26 on 2023-04-04
CPU Frequency in MHz: 160.0
Firmware Name: ESP32 module with ESP32
Flash size in Byte: 4194304
Disk size in MB: 2.0
Free space in MB: 1.882813
Free Memory in kB: 105.5781
Hall sensor value:  46
CPU Temperature C: 41.1
********
Defauit value for Hardware I2C & SPI of ESP32
I2C(0): I2C(0, scl=18, sda=19, freq=400000)
I2C(1): I2C(1, scl=25, sda=26, freq=400000)
SPI(1): SPI(id=1, baudrate=500000, polarity=0, phase=0, bits=8, firstbit=0, sck=14, mosi=13, miso=12)
SPI(2): SPI(id=2, baudrate=500000, polarity=0, phase=0, bits=8, firstbit=0, sck=18, mosi=23, miso=19)
>>>

 

■esptool.py でハードウェアの仕様をチェックする
 このプログラムでは、その開発ボード上の Micropython で認識された情報を知ることができます。
さらに開発ボードの物理的な仕様を知るには esptool.py を利用できます。
 Espresshif 社の ESP8266、ESP32 系チップについては、esptool.py を使ってボードの物理仕様などを調べることができます。esptool.py は、調べたい開発ボードに MicroPython が入っていてもいなくても使用できます。

ボードを(Windows)PCに接続して、黒画面のコマンドプロンプトで以下のコマンドを入力する。

・esptool.py  flash_id
・esptool.py  chip_id

以上

 

■ESP8266 系開発ボードと,Wemos_D1-Mini,NodeMCU 用テストプログラム

■ESP8266 系開発ボード,Wemos_D1-Mini,NodeMCU 用テストプログラム

ESP8266系の開発ボードのMicroPython 情報を読み出す方法

 

更新日 2023/08/23
■ESP8266 系,Wemos_D1-Mini,NodeMCU 用テストプログラム

・ネット通販で入手したESP8266系ボードの死活を調べる目的の MicroPython のプログラムです。
・ESP-8266系開発ボード、WeMos_D1-Mini, NodeMCU-V2&V3 、互換ボードで使用できます。
・このプログラムの実行に必要な追加のライブラリーやモジュールはありません。
・ MicroPython は 最新版の Thonny-4.4.1 でESP8266 系ファームウェアをインストールできます。
・このプログラムはネットでみつけたシンプルなテストプログラムを単純に1個につなげたものです。
・ボードの情報をなるべく多く読み出すことで、トラブル時の不良や故障の発見にも役立ちます。
・プログラムはご自由に書き直してカスタマイズして下さい。
・実行してエラーが出たら、問題の行の行頭に#を入れて除外し再実行するとだいたい結果を得られます。
・I2C と SPI の設定確認ができるのは ハードウェアI2C、SPI のデフォルト値だけです。
・ソフトウェア I2C、SPI の設定値の確認はできません、公式ドキュメントを読んでください。
WiFi の動作確認は、最下部の WiFi AP List のプログラム部の行頭の # を削除して利用できます。

■使い方
1, PC(Windows10)にThonny の最新版をインストールして、Thonny を起動する。
2, ESP8266 系開発ボードをUSBケーブルでPCに接続する。
3, 開発ボードが認識されない場合は、USBチップのドライバーを入れる。
4, Thonny で ESP8266 系ボードの MicroPython ファームウェアを入れる。
5, Thonny とボードを USBで接続してプログラムを実行します。
6, 実行エラーが出た場合、エラーメッセメッセージの出た行を # コメントアウトして再実行する。

■ESP8266系ボード (ESP8266-DevKit, NodeMCU-v2,v3, Wemos D1-Mini など)で、以下のプログラムを実行する。

Get_Board_Info-ESP8266-08.py ( コピペで入力する。 )

# Get Board Info-ESP8266-08 #
# CPU Fre4qency, Firmware Name, Disk_Size, Free Space, CPU Tempareturs
# Print I2C & SPI Defaults for Pico
import os
import sys
#import platform
import gc
import machine
import utime
from machine import I2C, SPI
import esp
#import esp32
import network

# Get MicroPython Version of board
print("MicroPython:", sys.version)
# CPU Frequency
print("CPU Frequency in MHz:", machine.freq() / 1000000)          # CPU の現在の周波数を取得
# Firmware Name in the board
print("Firmware Name:", os.uname().machine)
print("Flash size in Byte:", esp.flash_size())
fs_stat = os.statvfs('/')
print("Disk size in MB:", fs_stat[0] * fs_stat[2] / 1024 / 1024)
print("Free space in MB:", fs_stat[0] * fs_stat[3] / 1024 / 1024)
print("Free Memory in kB:", gc.mem_free() / 1024)

# i2C and SPI Default value
print("********")
print('Defauit value for Hardware I2C & SPI of ESP8266/ESP32') 
#print('I2C(0):', I2C(0))
#print('I2C(1):', I2C(1))
print('SPI(1):', SPI(1))
#print('SPI(2):', SPI(2))
print("********")
### WiFi Scan around & print AP by MicroPython #2023/04/06
#wlan = network.WLAN(network.STA_IF)
#wlan.active(True)
#aplist = wlan.scan()
#print('WiFi-AP List:', aplist)
#print("********")
# Print the Functions of Board on MicroPython
# MicroPython for Pico, RP2040, ESP32, ESP8266 
#import machine
help(machine)

 

●実行結果 @WeMos_D1-Mini の場合

・MicroPython のFirmware 「ESP8266 with 2MiB+ flash」を入れると4MB が認識されます。

WeMos_D1-Mini での実行画面


■<実行結果の画面の例>

MPY: soft reboot
MicroPython: 3.4.0; MicroPython v1.19.1 on 2022-06-18
CPU Frequency in MHz: 80.0
Firmware Name: ESP module with ESP8266
Flash size in Byte: 4194304
Disk size in MB: 2.98047
Free space in MB: 2.71094
Free Memory in kB: 34.375
********
Defauit value for Hardware I2C & SPI of ESP8266/ESP32
SPI(1): HSPI(id=1, baudrate=80000000, polarity=0, phase=0)
********
object <module 'umachine'> is of type module
  __name__ -- umachine
  mem8 -- <8-bit memory>
  mem16 -- <16-bit memory>
  mem32 -- <32-bit memory>
  freq -- <function>
  reset -- <function>
  soft_reset -- <function>
  reset_cause -- <function>
  unique_id -- <function>
  idle -- <function>
  sleep -- <function>
  lightsleep -- <function>
  deepsleep -- <function>
  disable_irq -- <function>
  enable_irq -- <function>
  bitstream -- <function>
  time_pulse_us -- <function>
  RTC -- <class 'RTC'>
  Timer -- <class 'Timer'>
  WDT -- <class 'WDT'>
  Pin -- <class 'Pin'>
  Signal -- <class 'Signal'>
  PWM -- <class 'PWM'>
  ADC -- <class 'ADC'>
  UART -- <class 'UART'>
  I2C -- <class 'SoftI2C'>
  SoftI2C -- <class 'SoftI2C'>
  SPI -- <class 'HSPI'>
  SoftSPI -- <class 'SoftSPI'>
  DEEPSLEEP -- 4
  PWRON_RESET -- 0
  HARD_RESET -- 6
  DEEPSLEEP_RESET -- 5
  WDT_RESET -- 1
  SOFT_RESET -- 4
>>> 

 

■esptool.py でハードウェアの仕様をチェックする
 このプログラムでは、その開発ボード上の Micropython で認識された情報を知ることができます。
さらに開発ボードの物理的な仕様を知るには esptool.py を利用できます。
 Espresshif 社の ESP8266、ESP32 系チップについては、esptool.py を使ってボードの物理仕様などを調べることができます。esptool.py は、調べたい開発ボードに MicroPython が入っていてもいなくても使用できます。

ボードを(Windows)PCに接続して、黒画面のコマンドプロンプトで以下のコマンドを入力する。

・esptool.py  flash_id
・esptool.py  chip_id

以上

プログラムは実行環境にあわせて適当に編集してください。Have a nice day!



 

Rpi-Pico でインベーダーゲーム

Raspberry Pi-Pico に OLED SSD1306 を接続し、MicroPython のインベーダー・ゲームを動かすビデオの紹介です。
Lチカに成功したら、OLED でインベーダーゲームチャレンジしてみてください。

Invaders Game on Pico



■Pico+MicroPython のインベーダーゲーム・デモプログラム
・MicroPython と SSD1306 のOLED液晶モジュールが必要です。
・Pico とOLED SD1306 だけつないでも動きます。
・スピーカーとボリュームがあればデモ・ゲームとしてプレイできる。
・インベーダーが攻撃しないデモ・ゲームモードをループします。
・使用したSSD1306 モジュールは、Thonny の「モジュール追加」で入れた micropythonSSD1306 でした。
・SSD1306 モジュールの投稿者の「もっと見る」の紹介リンクは消えてました。
・Pico や OLED を購入して動作確認する場合、テストプログラムにおすすめです。
・デモプログラムは microPython-v1.19.1 で動作検証しました。

YouTube ビデオ
・この投稿ビデオは英語だが、字幕スーパー表示設定を日本語にすると吉。
Python プログラムの説明が簡潔になされています。

How to use an SSD1306 and Potentiometer on the Pico to make a Video Game! #PicoInvaders
Print 'N Play

www.youtube.com

Pico Invaders:
https://github.com/printnplay/Pico-MicroPython/blob/main/picoinvaders.py

その他の MicroPython-Pico プログラム
https://github.com/printnplay/Pico-MicroPython

 

■使い方
・Pico と OLED SD1306 をブレッドボード上で接続する。
・PC上で Thonny を起動してUSBで Pico に接続する。

・Thonny でライブラリ micropythonSSD1306 を追加する。
・picoinveders.py をThonny のエディタにコピーして Pico に保存する。

■SSD1306 接続
    SSD1306        Pico(I2C0)
    VCC         3v3
    GND       GND
    SCL        GP9
    SDA        GP8

●ボリューム接続(10KΩ B)
 ボリューム    Pico
 +1        3v3
  2        GP26
 ー3        GND

●ピエゾスピーカー(秋月@秋葉原で以前買ったモノ?)
 ピエゾスピーカー    Pico
 +        GP18
 ー        GND


■動かない?
・プログラムが起動しない場合、原因はI2Cの設定があります。
・オリジナルのプログラムを次のように変更します。
    12c(0) --> i2c = I2C(0, sda=Pin(8), scl=Pin(9) )   
 I2C のピン設定をデフォルト値設定から明示的に教えてあげれば動いてくれます。

 

Have a nice day!

英語版キーボードはゲーミング・キーボードがいい

英語版キーボードはゲーミング・キーボードがいい

昔から英語キーボードを使っている。
英語キーボードは、秋葉原でも種類がが少ないので買い替える時は毎回苦労していた。いままででいちばん快適だったのが、HHKB(ハッピーハッキング・キーボード)だった。
しかし困ったことに、こいつに一度慣れてしまうと会社の日本語キーボードがひどく使いにくく感じる。ショートカットキーなども、固有の操作で快適にできるが、会社では無意識に使ってしまうのでよく失敗した。
今回もHHKBはパスしたが、Linux マシン操作の時だけは使ってみたいものだ。

今回の買い替えでは、最近のゲーミング・キーボードを偶然に知って良かったので買ってみた。ゲーミング・キーボードといえば、ゲームを盛り上げる派手なLED電飾がウリのようだが、ほとんどが英語キーボードだ。aki秋葉原のショップの店頭でキーを触ってみると、HHKBのようなタッチで快適だった。ショップの店員さんにに聞くと、電飾には数モードありオフにもできるという。電飾をオフにしたら、ただの英語キーボードになった。
ここから、急にゲーミングキーボードを英語キーボードの新カテゴリーと考えるようになった。の沼に沈んでいくことになった・・・。


青軸・赤軸・茶軸ってなんじゃ?
ゲーミング・キーボードの説明を読むと、きまって青軸、赤軸、茶軸、・・・のどれかが記載されている。今回はじめてキースイッチの種類だとわかった。このx軸とは、キースイッチとキーキャップの間の結合軸の色ことだった。ドイツの大手キーボードメーカー「チェリー社」の商品区分で、青軸はメカニカルな打音とカチカチというキータッチ、赤軸は音無しでわづかなキータッチ、茶軸は青軸と赤軸の中間ということだ。

こちらのセンチュリー社の製品サイトでは、軸色と打音のちがいがわかってよかった。

メカニカルキーボード BLACK PAWN 株式会社センチュリー

とはいえ、秋葉原のショップの店頭のデモ機を触ってみると、赤軸は別として青軸と茶軸にはバリエーションが広い。同じ青軸と言えども、製品ごとにタッチして違いを知る必要がある。
さらに、黒軸、クリア軸、緑軸、・・・というオリジナル軸?もある。ネット記事を読むと、チェリー社のいくつかの特許が切れたので、キーボードやスイッチ系の同業他社が、その技術を使えるようになったらしい。そして、各社からさまざまな新製品が発売されるようになったことが分かった。とりわけ、中国のスイッチとキーボードのメーカーはたくさんの製品を発売している。


中国ネット通販を調べたら
国内の通販だけでなく、グーグル検索でゲーミングキーボードを調べると中国製品がたくさんヒットする。秋葉原の専門ショップには@1万5千円以上の高級で高額品が多いが、Aliexpress には$100以下で良さそうな製品がたくさん売っている。しかし、いい製品だったとしても、実物が触れないので品質を確認できないのが残念だ。
Motoseeed CK104


上海問屋 の薄型メカニカルゲーミングキーボードを買ってみた
ただし、1つだけ秋葉原上海問屋本店?の店頭にあったデモ機の Motospeed CK97 を自分で試すことができた。

上海問屋 DN-915446 薄型メカニカルゲーミングキーボード(Kailhショートスイッチ採用)

内臓LED電飾をファンクションキーでオフにすると、シンプルな英語キーボードに変身?してタッチも快適だ。
USBケーブルが、マイクロUSBの接続で取り外しになっているのがNGだ。
商品説明によると、USB接続で英語101配列キー、、超薄型ボディーでコンパクトサイズ、青軸系でキーストロークは浅めの3mm、日本語マニュアル付きとのこと。@7999円+税。


中国製品 Hexgears K735を注文した
じつは今回 上海問屋のMotospeed CK97 を買う前に、アマゾンで同社の Ck104 という製品が出品されていたので注文した。しかし、在庫切れということで、2日後に注文を解約したが、どうも中国出展者の広告出品のようだった? 入庫予定もないのにまだ出品し続けているのもおかしな話だ。カスタマーレビューもなかった。

ゲーミングキーボード メカニカル 青軸 RGBバックライト 104キー USB接続 機械式 有線キーボード 日本語取扱書付き Windows XP/7/8/10/VISTAなど対応 (ホワイト)


今回ネット検索では、英語配列キーボードとして良さそうな製品を発見したので、ダメ元で注文してみた。約@$69

HEXGEARS Gaming Mechanical Keyboard Backlight Clavier Gamer PBT Key Cap for csgo Dota 2 USB RGB Kailh Box Switch Gamer Klavye


どんなキーボードが到着するのやら・・・おたのしみだ。

Windows7 で WindowsUpdate ができないトラブルの対策

Windows7 で WindowsUpdate ができないトラブルの対策

今年の10月ごろから、パソコンのリカバリー後に「 Windows Update がまったくできないトラブル」が発生した。

リカバリー作業では、以前に作成した「 Windows7がインストールされた C:\ ドライブ全体をバックアップしたファイル」をリストアした。リストア後、Windows7 とその上で動くソフト・アプリは問題なく使えるのに、なぜか Windows Update を実行させてもアップデートが1つもできないという症状が続いた。

具体的には、Windows Update を実行させると、延々とメッセージ「更新プログラムをさがしています・・・」が出て、丸1日続けても状態が変わらない症状だ。しかし、日常的に使っているパソコンでは今までどおり自動アップデートができているのに・・・??
ようするに Windows Update のシステム自体に問題の原因があるようだ?

ネット検索で調べたら、どうも「Windows Update Client」のパッチを手動で当てれば解決できることが分かった。Windows Update は通常は自動実行できるのだが、このパッチは手動でやらないとダメらしい?・・・この件は Windows Update の問題なのに、Windows Update で解決できないというおかしな事態だ!
パッチはこちらからダウンロードした。

 Windows 7 for x64-Based Systems 用更新プログラム (KB3172605) Windows7-64bit版用
 https://www.microsoft.com/ja-jp/download/details.aspx?id=53332

 32ビット用更新プログラム (KB3172605)
 https://www.microsoft.com/ja-jp/download/details.aspx?id=53335

パッチを当てる手順だが、今使っている Windows Update を完全に停止させないと完了しないので注意が必要だ。次の手順で行う。

1、Windows Update --> 設定の変更 と画面を開く
  
2、「更新プログラムを確認しない」に設定する
  

3、マシンを再起動する
ここでマシンを再起動しないと、インスタンスとして起動中の Windows Update Client を停止させられない。その結果、以降の手順でのインストールが正常に実行されないため「再起動」が必須。

4、再起動した Windows7 で、パッチ (KB3172605)のファイルをWクリックして実行する。
  
  
   実行終了後にマシンを再起動する。

5、マシン再起動後、再度 Windows Update --> 設定の変更 の自動実行の設定を元に戻して完了です。
  
  
6、動作確認のため Windows Update を手動で実行させてみてください。


困ったらおためしあれ。

ポラロイド社のサポートは?

ポラロイド社のサポートは?
リネージュを使い始めて困ったことは、製品付属の説明書があまりに簡素なことだ。わたしはリネージュを買ってはじめて「アンドロイド系の1年生」になった。基本的なことは、アンドロイド系スマホのムック本や雑誌を読んで理解したが、製品固有のことがわからなかった。

■ ヘルプセンターは期待しない方がいい?
公式サイトにある「ヘルプセンター」の「問い合わせフォーム」に、リネージュの画面に表示される表示やアイコンにについて説明した詳細な説明書はないのか質問してみた。

しかし、質問が受理されてから回答メールが送られてくるまでには20日以上かかった。質問は電話でした方がよさそうだ?

■ 明文化した詳細なマニュアルはない
回答をもらってわかったことは「詳細なマニュアル」はないということだった。

家族のうち、親がリネージュ買い、子供がポラスマを買って利用している場合、子供のポラスマの設定で困ったら迷わず「電話サポート」で問い合わせするのが正解のようだ?

ファームウェアを更新する

ファームウェアを更新する
ポラロイド社の公式サイトにあるリネージュのページには、最新ファームウェアがアップロードされていたので実行した。
ファームウェアアップデートのお知らせ
http://polaroid-smartdevice.com/help/?page_id=674

更新事項は次の2点ということだ。
・Simカード切り替えの不具合の改善。
・バッテリー駆動時間の改善。
最新のバージョン番号:V10B-linage-20140915

わたしのリネージュファームウェア・バージョンは V10B-linage-20140604 で古くなっているのでアップデートすることにした。
アップデートの手順はこのサイトにありPDF文書になっているので、パソコンならダウンロードして読めるが、リネージュでの小さな画面ではちょっと読みにくかった。
アップデートの手順
http://polaroid-smartdevice.com/help/wp-content/uploads/2014/08/FWupflow.pdf
「アップデート操作」自体はリネージュの画面を表記を読みながら指先でタップしてゆけば完了するので簡単だ。
アップデートの実行画面


アップデート実行中の画面

アップデート後は、バージョン番号を確認することで成功したか否かを確認する。

これでバージョン V10B-linage-20140604 が最新の V10B-linage-20140915 にアップデートが完了した。