追記

日々をアレコレ


2018年08月22日

ESP32の開発環境構築

ESP-WROOM-32を本格的に使うことになったので、そのための開発環境の構築方法。

Arduino IDEを使う場合

GitHub - espressif/arduino-esp32: Arduino core for the ESP32 に書いてあるとおり。

  1. Arduino IDEをインストールする。
  2. 「ファイル > 環境設定」を開き、「追加のボードマネージャのURL/Additional Board Manager URLs」に https://dl.espressif.com/dl/package_esp32_index.json を追加する。
  3. 「ツール > ボード > ボードマネージャ」を開く。
  4. 検索フィルタに「esp32」を設定すると、「esp32 by Espressif Systems」が表示されるのでそれをインストールする。
  5. ボードの各設定は利用するものに合わせる。
  6. 「ツール > 書込装置」は「USBasp」を選択する。

書き込み時に、接続待ちになる場合は「Boot/Program」、「Enable/Reset」の順にボタンを押して、「Enable/Reset」、「Boot/Program」の順に放して書込モードにすること。

ESP-IDFを使う場合

基本的にはGet Started — ESP-IDF Programming Guide v3.2-dev-518-g020ade6 documentationに書いてあるとおり。ただし、一部追加あり。

  1. ツールチェインのインストール。僕はWindowsでの開発なので、Standard Setup of Toolchain for Windows — ESP-IDF Programming Guide v3.2-dev-518-g020ade6 documentation このページに従って、MSYSのパッケージをダンロードして利用。
  2. ~/esp/ を作成し、その中に移動して、ツールチェインを git clone --recursive https://github.com/espressif/esp-idf.git でインストールを実行。
  3. export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf" でESP-IDFへのパスを設定。
  4. (追加作業) デフォルトのままだとpythonへのパスが通ってないので、 export PATH="$PATH:/mingw32/bin:/opt/xtensa-esp32-elf/bin" で追加でパスを通しておく。
  5. make menuconfigでシリアルポートを設定する場合はOSの設定に従うこと。

で、開発を楽にするためにVisual Studio Codeでビルド、書込を実行する方法が esp32-devenv-vscode/tutorial.md at master · VirgiliaBeatrice/esp32-devenv-vscode · GitHub で紹介されてた。プロジェクトごとに設定が必要になるけど、こちらのほうが楽っぽいような気はしてる。


2018年02月09日

WPFでリモートデバッグ

UWPのリモートデバッグは、実際に実行するPCにRemote Tools for Visual Studio を実行するPCに入れて、開発機から実行先をリモートPCを指定するだけで簡単に実行出来てしまうのだけども、WPFではちょっと面倒だった。

まず、Remote Tools for Visual Studioを実際に実行するPCにインストールして、リモートデバッガーを実行して待機するところまではUWPと同じ。ただ、WPF(というか、クラシックデスクトップアプリ?)の場合は、開発機でデバッグ実行するバイナリが同じパス構造がリモートPC側に必要となる。なので、ビルドに成功した場合には(プロジェクトフォルダ)bin/Debugといった、生成されるバイナリや参照するDLLなどの構造があるフォルダを同じフォルダにコピーするような処理が必要になる。ここでの2つの問題が出てくる。1つは、開発機のユーザーと実行するリモート側のユーザーが異なる場合、開発機のプロジェクトがユーザーフォルダにあったりするとコピー先の取扱がややこしい。なので、リモートデバッグをする場合は、C:\Projects みたいなフォルダで開発した歩がいいかもしれない。

もう一つは、実際のコピー処理。Visual Studioのビルドイベントではネットワークフォルダを直接参照することは出来ない。なので、一度ネットワークフォルダをドライブに割り当てる処理が必要なので、次のようなバッチファイルを作っておく。

rem W:は割り当てるドライブレター
rem その次のパスは参照するネットワークフォルダ(ここではPC名HogeのC:\Projectsを共有設定しているものとする)
rem その次は利用するユーザーのパスワード
rem その次の/user:User1はログインするユーザー名(ここではUser1とする)
net use W: \\Hoge\Projects password /user:User1
rem コピーするのはFooソリューション、Fooプロジェクトのバイナリ
robocopy C:\Projects\Foo\Foo\bin\Debug W:\Foo\Foo\bin\Debug /s /e
rem ネットワークドライブの割当を解除
net use W: /delete

もし、PC名やユーザー名などに日本語が使われている場合は、バッチファイルの保存はShiftJISで行うこと。UTF-8など違う文字コードで保存するとコピーに失敗するので注意。そして、このバッチファイルをビルドイベントで call copy2remote.bat などで実行してやるとリモートPCにコピーされる。これらの設定をした上で、プロジェクトのデバッグプロパティで「開始オプション > リモートコンピュータを使用する」にチェエックを入れて、リモートPCのリモートデバッガーに表示されているPC名とポート番号を入力をすると、デバッグ開始でリモートPCで実行される。ブレークを設定すると、リモートPC側の操作で条件が合えば停止して、再開することも可能になる。


2017年12月10日

3Dプリンタを買った

世間ではサイバーマンデーが騒がしいけど、先週末にAmazonのタイムセールで3Dプリンタが安かったので買ってみた。買ったのは、BIQU-Magician という中国製のデルタ型のもの。現在は29999円だけど、タイムセールの価格は19999円。10月から働いているところには3Dプリンタがあって、同僚がちょくちょくいろんなものを作っているのを横目で見ながらいいなーとか思っていたところにこのタイムセール。思わず買ってしまった。

仕様としては、造形サイズがΦ100mm x 150mmとあまり大きくないけど、その分250mm x 250mmくらいの中に収まる大きさなので、机においても邪魔にならない。精度としては0.1mmらしいので、そんなに高精度なものを作るのには向いてないけど、ロボットのための基板取付アダプタみたな精度が高くなくてもよさそうなら十分に使えそう。モデルを作って、その場で出力して問題点を確認できるのはとにかく便利。早速、スマートフォンの充電補助スタンドだったり、液晶ディスプレイのスタンドだったりを作ってみた。

あと、パラレルリンクが動くのは見ていてなんだか癒されるので、これからも何か作るものを考えて作っていきたい。

BIQU-Magician 3Dプリンター 初心者向け ホビー 家庭用 組立完成済品 直ぐに使用可能 軽量 安定 快適 高速印刷 柔軟な互換性 最大印刷サイズΦ100x150  2.8インチタッチスクリーン 32BITマザーボード Titan押出機 日本語操作 日本語マニュアル付

BIQU
¥ 29,999

Tags: tools

追記