こんにちは。岩本です。今週もマウスやっていきます。
さて、前回作りたいマウスの妄想はできたので、次に部品の選定に入っていきます。
取り敢えず、マイコン何にするから決めていこうかと思います。
今回選定したのは、最近弊社のマウス部で使用率が高くなってきたESP32です。
BluetoothやWI-FIに接続できるので、リモコン操作のようなことが出来そう。。。と思い選定しました。
(補足:ESP32は、型番複数あり挙動が少し違うので、なるべくちゃんと型番分かる安定したやつ買った方がよいです。最初にアマゾンで適当なやつ買ったらよく分からない挙動して書き込みにめちゃくちゃ時間かかりました。。。)
全然、使ったこのないので取り敢えず、動作確認をしていきます。
ESP32のインストール手順は下記の公式サイトで結構詳しく書いており、Windows版にも対応しているのですが、どうやら公式サイトのVer4.0安定板は安定していないようで、私のPCには上手く導入することが出来ませんでした。
また、Windowsの記事がArduino関連ばかりで、見つけにくかったので、ほかの方と同様にubuntuに導入することにしました。
今回導入したのは、Xubuntu18.04です。Xubuntuの導入方法はここでは割愛します。
ESP-IDF Programming Guide
以下、ESP-IDFインストール手順を参考にスクリーンショット貼っておきます。
【インストール手順】
①バージョンはlastを選択します。(本来はlast(最新版)よりstable(安定版)の方がよいのですが、私が使用した時のv4.0のstableにはバグがあったようなので、lastを使用しています。)
その後、Get Startedからインストール手順に進みます。
②Step1
今回はUbuntuにインストールするので、Linux用の手順を参考にします。
③Step2
以下のコマンドをターミナルに入力して、ESP-IDFをインストールします。
④Step3
以下コマンドをターミナルに入力して、そのほかのツールをインストールします。
⑤Step4
以下コマンドをターミナルに入力して、環境変数を設定します。
このコマンドを実行するだけでは、ターミナルを開きなおすたびにこのコマンドを実行する必要があります。
そのため開き直して、Step7などのidf.py menuconfigをすると、コマンドがないと怒られます。
このステップを自動化すすには、ホームディレクトリにあるprofileにこのコマンドを追加してあげる必要があります。(.bash_profileある人はそっちでもいいようです。)
.profileファイルは隠しフォルダのため確認するには、ls -aを入力すると確認できます。
今回私は、geditを使用して編集しました。
ファイルをテキストエディタで開き、先程入力したコマンド. $HOME/esp/esp-idf/export.shを追記します。
これで、次回以降は、毎回. $HOME/esp/esp-idf/export.shを入力しなくて良くなります。
⑥Step5
以下コマンドをターミナルに入力して、ハローワールドのディレクトリコピーを行っていきます。
⑦Step6
ESP32とUSBで接続して、ポートを確認します。USBを指して以下のコマンドを打つと、現在刺さっているUSBの名称がわかります。
これはさした順番で変わるようなので、複数刺さっている場合は、挿す前と挿した後で比較すると分かりやすいです。
ls /dev/ | grep ttyUSB
また、下記コマンドを入力して、アクセス権限を変更します。(ttyUSB0の部分は上記コマンドで確認した名前になります。)
この変更によってこのUSBに対してすべてのユーザーが読み取りと書き込みができるようになります。
sudo chmod 666 /dev/ttyUSB0
変更できたかどうかの確認は下記コマンドで行えます。0 crw-rw-rw-となってれば、出来ています。
ls -ls /dev/ttyUSB0
⑧Step7
下記コマンドを実行して、メニューが開くか確認します。
idf.py: コマンドが見つかりませんなどと言われた場合は、おそらくStep4が上手くできてないので、もう一度やるとよいです。
⑩Step9
コマンドを実行して、書き込みを行います。ポートとバンドレートは適宜変更します。
なお、バンドレートはデフォルトでよいので下記のようなコマンドでよいです。(ttyUSB0の部分はステップ6で確認した名前になります。)
idf.py -p /dev/ttyUSB0 flash
⑪Step10
下記コマンドを実行してハローワールドが実行されていることを確認します。(ttyUSB0の部分はステップ6で確認した名前になります。)
monitorを終了したいときはCtrl+]をターミナルに入力します。
idf.py -p /dev/ttyUSB0 monitor
以上。本日はここまでです。