Linux
Debian
Arduino
Ubuntu
ESP32

Debianでesp32の環境構築をしてLチカするまで

経緯

秋葉原に行ったときに友人に進められて買ったESP32の開発ボードを使ってなかったのでそろそろ何かやろうと思ってとりあえず環境構築とLチカをしてみた話です。
ご察しの通り電子工作とか組み込み系とか初心者なので、間違っているところがあればご指摘いただけるとありがたいです。

環境構築

基本的にはこのサイトの通りにやったのですがところどころつまずいたとこがあったので書いて行こうと思います。

arduinoIDE

このサイトで最新のarduinoIDEをダウンロードしてきます、自分は1.8.5でした、寄付を求められますがJustDownloadを押せば無料で手に入れることができます。

ダウンロードできるファイルは圧縮されているので下記のコマンドで解凍します、バージョンのところはダウンロードしてきたものにあわせてください

  xzcat Downloads/arduino-1.8.5-linux64.tar.xz | tar xvf -  

インストール、自分はなんとなくsudoで実行したのですがそのままでもいけるかも。

  cd aruduino-1.8.5
  sudo ./install.sh

arduino core for ESP32

github
インストールはここにあるコマンドを実行するだけです
{}で囲まれてる部分は自分であとから追加した部分です

  sudo usermod -a -G dialout $USER && \
  sudo apt-get install git && \
  wget https://bootstrap.pypa.io/get-pip.py && \
  sudo python get-pip.py && \ 
  sudo pip install pyserial && \
  mkdir -p ~/Arduino{-1.8.5}/hardware/espressif && \
  cd ~/Arduino{-1.8.5}/hardware/espressif && \
  git clone https://github.com/espressif/arduino-esp32.git 
  esp32 && \
  cd esp32 && \
  git submodule update --init --recursive && \
  cd tools && \
  python{2} get.py

arduinoディレクトリではなくarduino{バージョン}ディレクトリでした、これはgithubに書いてありました。

私はpython = python3,とエイリアスを貼っているのですがそれでつまりましたubuntu,debianではデフォルトではpythonはpython2系がよばれてしまうんですよね...python2なんてなくなってしまえばいいのに

渋々python2で実行することで解決しました

サンプル動かしてみた

参考にしたサイトのとおりwifiscanを実行してみたのですがそこでもいくつかつまずくことがあたので書いておきます

GUIの説明ってめんどくさいからこれは参考にしたサイトのとおりなのでまるまる引用します

WiFiScanを動かしてみます。
「ファイル」→「スケッチ例」→ESP32 Dev Module用のスケッチ例の下の「WiFi」→「WiFiScan」選択すると、サンプルプログラムが表示されます。「ツール」⇒「シリアルポート」⇒「/dev/ttyUSB0(環境によって変わります)」でシリアルポートを選択した後、「ツール」⇒「シリアルモニタ」でシリアルモニタを起動しておきます。

準備ができたら「⇒」ボタンをクリックして、書き込んでみます。「⇒」をクリックする際にはIO0に接続したタクトスイッチを押しながらクリックすることでダウンローダを起動します。「Wrting … 」という表示が出たら、タクトスイッチのボタンを離します。
ESP32を動かしてみた @ ともの技術メモ

書き込むときにこんなエラー吐かれました
シリアルポート「/dev/ttyUSB0」を開く際にエラーが発生しました。次のドキュメントを参考にしてください。http://playground.arduino.cc/Linux/All#Permission

リンク先に行って解決方法をやっていたのでやってみたのですがうまくいかず...
sudoでarduinoIDEを実行することで解決しました。

無事書き込めて動かしてみたのですがシリアルモニターが文字化けしてました、ここにあるとおりビットレート(?)をプログラムとシリアルモニターで合わせることで文字化けしないようになりました

Lチカ

マイコンとかラズパイとかってLチカから始めるイメージがあるのでとりあえずLチカやってみた

ファイル→新規ファイルから新しいファイルを作って

   void setup() {
     pinMode(4, OUTPUT);
   }
   void loop() {
     digitalWrite(4, HIGH);
     delay(250);
     digitalWrite(4, LOW);
     delay(250);
   }

上と同じ手順で書き込む
io4 → LED → 抵抗 → GNDで繋げば