ESP32+MicroPythonでPWMのdutyが反映されずにハマる

ESP32 + MicroPythonで、PWMオブジェクトを生成した直後にdutyをセットすると、なぜか反映されずにdutyが100% (常時HIGH) になってしまうという問題に遭遇し、ちょっと困った。再現性は不明。毎回ではなく何らかの条件が揃ったときに発生し、同じコードでも発生したりしなかったりする。原因はよくわからないが回避策がわかったので共有する。 なお、今回したMicroPythonのバージョンは1.19.1である。 ESP32+MicroPythonでPWM まずは基本の話。MicroPyth

続きを読む »

ESP32-DevKitC + MicroPythonを試してみた

Wi-FiもBLEも使えて開発もしやすいとっても素敵なマイコンESP32のプログラムを今までCとC++で書いていたけれども、MicroPythonという便利なものがあるということで試してみた。最初はけっこう面倒だったので記録を残しておく。すべてmacOS上でやっている。 今回使ったボードはこちら。 ESP32-DevKitC 秋月電子でも買えるよ! ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード 4MB MicroPythonというのはどんなものか まず、MicroPython

続きを読む »

USBasp 2.0 + avrdudeでATmega328PにArduinoプログラムを書き込む

Arduinoで開発したプログラムを素のATmega328pに書き込んで自作回路で動かしたい……という場合にどうするかについてのメモ。外部クリスタルなども含めてArduinoの青いボードと同じ構成にするならArduino IDE上で完結することも可能だが、実際にはヒューズビットなどを若干変える必要があったりする。そんな場合は とりあえずArduino IDEから書き込んでみて 書き込み時に実際に実行しているコマンドを把握して avrdudeのオプションを追加したものをコマンドラインから実行 という流れで大体

続きを読む »

ESP8266でmDNS (後編)

前編ではESP8266上でmDNSを動かして “http://esp8266.local” に接続してみたけれど、それに関してもうちょっと詳しい話をする。実際どんなふうに動いているのか、PC上とESP8266側の両方から眺めてみる。そして、OSごとのmDNS事情についても書く。 動いているところを見てみよう! クライアント編 前編でサンプルスケッチを試したときの様子をWiresharkでキャプチャしてみた。 クライアントとして使用したPCのIPアドレスが192.168.1.8で、ES

続きを読む »

ESP8266でmDNS (前編)

ESP8266にはmDNSライブラリがある。mDNSというのはローカルネットワーク内でお手軽にホスト名の解決をしてくれる仕組みであり、けっこう世の中のネットワーク機器でこっそり使われている。mDNSがあると何が嬉しいかというと、例えば ESP8266のIPアドレスを知らなくても “http://hoge.local” といったホスト名を使って簡単にアクセスできてしまうのだ。 ESP8266との通信をするためにはIPアドレスを知る必要があるわけだが、それをどうやって伝えるか? という問

続きを読む »

FRDM-KL25Zのピンソケットに貼るラベルを作ったよ / 白紙のラベルもあるよ

FRDM-KL25Zはmbedにも対応しててArduinoにもなって色々便利だし個人的にはProcessor Expertも大好きだしなかなか良いボードで、うちに5枚あるんだけど、配線のときに毎回ピンを調べるのがめんどくさいので、ピンソケットに貼るラベル作って印刷した。 一応裏面にカンペがついてるんだけれど、裏返して見るのが面倒くさいんだよね。 PDFで置いておくので、印刷して切って貼ってね。 [ダウンロード] frdm-kl25z_label.pdf (追記) 探したら意外となかったので、白紙のピンアウト

続きを読む »

Mac + Kinetis Design Studioでmbedプロジェクトのビルドとデバッグ

最近mbedを始めた。クラウドコンパイラからバイナリをダウンロードしてそのままボードにドラッグアンドドロップすれば書き込めるのは便利。ローカルでのコンパイル & デバッグもできる。 こちらもFRDM-KL25Zでちょっと遊んだあと、KL25Zの載ってるカスタムボードで色々やらなきゃいけないという事情があって、普段使ってるMac + Kinetis Design Studio + J-Linkでデバッグできるようにした。ここに手順を書いておく。 まず、mbedのクラウド開発環境からローカルのマシンにエ

続きを読む »

Windows 8以降でFRDM-KL25Zのファームウェアアップデートができない場合の対処法

ちょっと手持ちのFRDM-KL25Zをmbed化しようと思ったが、ブートローダをアップデートするにあたって困った事態が発生。 手持ちのボードに入っているOpenSDAのファームウェアが Version 1.11 未満の場合、Windows 7以前のマシンでないとブートローダをアップデートできない。この問題の解決法をなんとか見つけたので共有する。MacやLinuxについてはまだ試していないので御免。 まず結論 結論を書いておくと、以下のいずれかの方法で “System Volume Informa

続きを読む »