追記

日々をアレコレ


2018年12月04日

Visual Studio Codeでdoxygen

個人が何かを目標を持って業務を取り組んでいるというよくわからない活動をしなきゃならなくったので、できるだけ深呼吸くらいの手軽さで実現できるものをと考えた結果、ソースファイルにコメント入れてDoxygenに食わせてソースの仕様を自動生成することにした。で、その時にやったことをざっくりとメモ。

まず、Dogygenの環境をインストール。今回はWindows向けのsetupファイルをダウンロードしてインストール。インストールしたのは少し前であまり覚えていないのだけど、多分デフォルトでインストール先をパス通すようになっているらしいので、とりあえずこれでどこからでもdoxygenコマンドが呼び出せるようになる。次に、出力ファイルの設定をする。ソースコードからドキュメントをDoxygenで生成する を参考に、doxywizardを使って、ファイルの保存先、ソースファイルのルートディレクトリ、出力先の設定や出力方法などの設定をウィザードで編集して保存する。今回は、ESP-IDFのプロジェクトメインフォルダを対象に、日本語でHTMLファイルを生成するような設定を作って保存した。念の為、実行して内容を確認。ここまででとりあえず、コメントから仕様を自動生成することができるように。

で、今やっているのはESP-IDFのプロジェクトをVisual Studio Code上で開発しているので、その設定もしておく。まず、VSCodeに拡張機能 Doxygen Documentation Generator - Visual Studio Marketplace をインストール。これで、/** と入力して開業すると直後の行のヘッダがテンプレートから作られる。ファイルの先頭だとファイルヘッダコメントになる。これがあるとだいぶと楽になる。次に、プロジェクトの「task.json」ファイルを編集して以下のタスクを追加する。

"label": "make doxygen",
"type": "process",
"windows": {
    "command": "doxygen",
    "args": [
        "(保存した設定ファイルのパス)"
    ]
}

コマンドパレットから「タスクの実行」を選択して、「make doxygen」を実行すると設定ファルに従って仕様が生成されるようになる。これで、VSCodeだけで仕様書まで生成できるように。


2018年11月06日

ESP32でBlutooth HID

個人的にメモ。

ESP32とBluetoothコントローラーをHID(Bluetooth Classic)で接続する簡単な方法 - Qiita の記事に従えてば、BluetoothなゲームパッドをESP32からbtstackを使って接続できるようになる。今回使ったのは8BITDOのBluetoothゲームパッドなので、その辺りも記事とほぼ一緒。流れとしては、

  1. ESP32が起動して、接続待ちになる。
  2. 「X+Start」長押しでゲームパッドをHIDモードで起動する。
  3. しばらくすると接続完了。

アナログスティックなしのモデルを使ったせいなのか、十字キーの状態変化が非常に面倒な感じだったけど、それ以外は特に問題なく素直な感じでデータも取得できそう。ややこしいのはStartボタンを長押しするとゲームパッドの電源が落ちちゃうこと。サンプルだと切断されると再接続しないので、そのへんの処理も実際には必要になるっぽい。


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 で紹介されてた。プロジェクトごとに設定が必要になるけど、こちらのほうが楽っぽいような気はしてる。


追記