金曜日の帰宅時に自宅近くでホタルを見かけたので、孫たちと一緒に歩いてホタルがりに出かけました。
去年より多いようで結構たくさん見ることが出来、子どもや孫たちも大喜びでした。
スマホ(iPhone)でホタルの写真を撮ろうとしましたが、真っ暗で何も写りません。何か方法があると思うのですがよくわかりませんでした。今度はカメラを持って見に行こうと思います。
マイコンを使って簡単な画像処理をしたい時に便利そうなマシンビジョンモジュール「OpenMVカメラ M7」をスイッチサイエンスで発見。
ARM Cortex M7搭載でカメラはOV7725、プログラミングは専用IDEで micro Pythonで記述するらしい。画像処理は名前からしてOpenCVライクなのではないかと想像。
マイコンで画像処理といえば、Raspberry Pi にUSBカメラを接続して OpenCVでプログラムするのが王道ですが、いかんせんLinuxの環境構築やコマンドラインでのコンパイルは初心者にはハードルが高過ぎます。
OpenMVなら専用IDEでmicroPythonでプログラミング出来るので、インストールしたらすぐに画像処理することが出来そうです。
とりあえずしたいことは、7セグ表示器の数字を認識したり、アナログ指示計の値を読み取ったり、QRコードやApriコードを読み取るなので、大した画像処理ではありません。
なぜそこでESP32かというと、まだ実機を入手していないので、手元にあるESP32で microPythonを動かして、Pythonに慣れておきたいということです。
ネットで調べてみると、Windows環境なら下記の手順で出来るらしい
1.microPythonのバイナリをダウンロード
http://micropython.org/download#esp32
2.ESP32ファーム書き込みツールをダウンロード & インストール
Flash Download Tools (ESP8266 & ESP32)
https://www.espressif.com/en/support/download/other-tools
3.ESP32 USB-シリアルドライバ(CP2102)をダウンロード & インストール
4.ESP32ファーム書き込みツールで、microPythonのバイナリを書き込む
http://iot-bits.com/esp32/esp32-flash-download-tool-tutorial/
注1:SPIDownload、スタートアドレスは、0x1000
注2:一度ERASEをしてから、ファームを書き込みました
注3:オリジナルのファームウェアに戻すには、下記のbinを書き込む
https://www.espressif.com/en/products/hardware/esp32/resources
5.TeraTermで microPythonコンソールに接続して実行
CP2102ドライバがインストールされたCOMポートに115200bpsで接続
パソコンが変わり、OSもWindows7からWindows10になったので、Arduino環境を再構築しています。
Arduino 1.8.5のZIPファイルをダウンロードして、Dドライブに解凍します。
Arduino IDEを立ち上げたら、まずはLeonardでLチカして環境が構築できていることを確認。
次に、Githubからarduino-ESP32をダウンロードして、指定されたフォルダに解凍します。そして、解説を参考にget,exeを起動してなにやら取ってくるのを待ちます。
準備が出来たので、スケッチ例からLチカを書き込んで動作することを確認します。さらに、サンプルソースに、BLEがあったのでとりあえずやってみました。iPhoneアプリのLightBlueから接続出来るので動いている様ですが、他には何も出来ません。
Wifiも試してみましたが、Wifiルータに接続出来ません・・・なぜだ?
ESP32は freeRTOSで動いているらしいので、こらから少しずつ触ってみます。
こんな全部入りのMCUモジュールが、ESP32-DevKitCでも秋月電子で 1,480円なんて安すぎます。
さて次は、Arduino DUEが高くて買えなかったので、在庫ありにつられて買ったDUE互換の 「Kuman Due SAM3X8E」を動かします。
Arduino IDEのツール→ボード→ボードマネージャからDUEのボード情報をインストールして、USBケーブルをプログラミングポートに接続、Lチカのサンプルプログラムを書き込もうとしますが、デバイスが無いと怒られます。COMは検出しているのに・・・
仕方ないので、ケーブルをNATIVE USBポートに繋ぎ変えてやると、ちゃんと書き込むことが出来て、LEDもチカチカしてくれました。
今日はここまでにして、次回はSTM32duinoを動かしてみたいと思います。
浴室のタイルが剥がれてきたので、触っても冷たく感じないLIXILのコルディアーレというタイルに貼り替えてもらいました。
前は昔ながらの小さいタイルでしたが、こんどは300角の大きいタイルになりました。
まだ目地が乾いていないところが黒く見えますが、気にしないで下さい。
現場の端末にWEBサーバーを立てて、機器の状態を他の端末から閲覧できる様にしようと、GithubからBrobinさんのSimple C# web server and script processorを導入しました。
このサーバは、コンソールアプリとして動作するので、現場の端末にコピーするだけで、WEBサーバーが出来てしまう優れものです。さらに、C#スクリプトでサーバーサイドのプログラムが書けるので、動的なページも作れてしまいます。
しかし、テストをしていると、CSSやJavaScriptに対応していないことが分かったため少し改造、更にデータベースにもアクセス出来るようにしました。
これで最低限の機能は動かすことが出来ましたが、データベースで抽出したデータをグラフ化したいという欲が出て、WEB APIの様にJSONを返すスクリプトを作成しました。
これが、Internet Explore 11だとJSONのパースがちゃんと出来るのに、Chromeだとパースでエラーになってしまいます。デバッガでみるとレスポンスはちゃんと返っている様なので、Chromeが意地悪してみたいです。
何か回避策があると思うのですが、まだ発見出来ていません。
XAMPPをインストールして動かせれば簡単だと思うのですが、インストール権限が無いのでゴリゴリ頑張るしかないですね。
追記:
xmlHttpRequest.responseType に 'json'を指定していたので、レスポンスがすでにパースされていることに気付かず、更にパースしようとしていたのが原因でした。ChromeでもInternetExploreでも動作させるためには、responseTypeに’text’を指定して、レスポンスをJSON.parseする処置が必要でした。
甲奴のカーターシビックセンターに、ロケットストーブ、手作りストーブの集いを見に行ってきました。
到着して受付をしていると講演会が始まったばかりだというので、まず講演会の方に顔を出してみました。
講演会は蓄熱式ヒーターの構造に関するものでした。2t〜4tぐらいのレンガで蓄熱する薪ストーブで、日本ではペチカが有名てす。伝統的な暖房装置と思われがちですが、省エネや排ガス規制で見直されているようです。講習の中で、二次燃焼の大切さ、ダンパーの効果、躯体の熱バランスを考慮することが記憶に残っています。また、話の中に籾殻ヒーター出て来たので、調べてみようと思います。
ウイングドームの展示ブースではいくつかストーブが展示されていました。
maki式薪ストーブさんのオーブンユニットを韓国式かまどに組み込める様にしたら、お湯を沸かしながらピザを焼いて、ついでにパスタも作れちゃうな~っと、妄想が爆発しています。
◆maki式薪ストーブさんのオーブンユニット
◆レンガの韓国式かまど