趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。※サイト移転しました(tomono.eleho.net ⇒ tomono.tokyo)
RSS icon
  • ESP32を動かしてみた

    投稿日 2017年 2月 6日 1つのコメント

    ふと秋月のWebサイトをみていたら、ESP-WROOM-32が発売になっていました。早速、秋月へ行ってゲットしてきました。

    で、とにかく動かしてみます。すでに先達もいるようなので、参考にさせてもらいながら、なるべく手抜きして動かします。開発環境はESP-WROOM-02の時と同様にArduinoで動かします。

    使用した部品

    使用した部品は以下の通りです。

    • ESP-WROOM-32
      まずこれがないと、ですね。
    • FT-232RQ USBシリアル変換キット
      最近のお気に入りのUSBシリアル変換基板です。Linuxでも安定して動作するのでGoodです。
    • NJU7223DL1
      3.3Vのレギュレータです。データシートの回路図だと入出力のコンデンサが小さくて済みそうなので、選びました。
    • 0.1uF 1608 チップコンデンサ✕3
      三端子レギュレータの入出力に各1個、USBシリアルのRTS端子とEN端子の間に1個
    • 22uF 1608 チップコンデンサ✕1
      ESP-WROOM-32の資料では電源入力に10uFが付いているので、手持ちの22uFのチップコンを使用
    • 10kΩ 1608 チップ抵抗✕2
      1個はEN端子のプルアップ、もう1個はIO0端子のプルアップ
    • 0.022uF 1608 チップコンデンサ✕1
      EN端子の入力とGND間に接続
    • 適当なタクトSW✕1
      IO0端子をGNDに落としてダウンロードモードに移行させるのに使います
    • ユニバーサルプリント基板
      これを使いました。最近は軽量化を目指して薄めの基板を使ってます。この基板は両面なのですが、内面がスルーホール処理されていないので表裏の接続ができていない箇所があってハマリました。
    • その他
      適当なピンヘッダ・ピンソケット、ポリウレタン被覆線、スズメッキ線

    ハードウェアの組み立て

    こちらの回路を参考に手抜きして作りました。

    • GND端子はUSBシリアル基板のGNDに接続
    • 3V3端子は三端子レギュレータの出力端子に接続
    • EN端子は10kΩでプルアップ、GNDとの間に0.022uF、USBシリアル基板のRTS端子との間に0.1uFを接続。この0.1uFによりPC側でRTSを制御するとESP-WROOM-32側にリセットがかかります。
    • IO0端子はプルアップ、および、タクトスイッチを接続して、ボタン押下でGNDに落ちるようにします。ボタンを押しながらArduino IDEで書き込み操作をすることで、書き込みモードへ移行できます。
      (注:IO0のプルアップは不要らしい。タクトスイッチによるIO0のコントロールがうまく行かなかった際につけたが、外してOKかは試していない。ちなみに、タクトスイッチでIO0がコントロールできなかった原因はノンスルーホール基板を使ったので基板の表裏で接続ができてなかったため。)
    • TXD0端子はUSBシリアル基板のRXDへ接続
    • RXD0端子はUSBシリアル基板のTXDへ接続

    回路図はこんな感じです。15ピンのGNDは手抜きで接続していませんが、動いています。

     

    こんな感じになりました。

    ESP-WROOM-32は裏返しに両面テープで基板に貼り付けてあります。基板を作りなおす時も多分無事に剥がせると思います。

    無計画に作ったので、裏側は汚いですw。左上のレギュレータ周りがどうしようもないですね。

    まずはハードウェアの動作確認

    Arduinoで書き込みをする前に、ハードウェアの動作確認をしておきます。
    といっても、よくよく結線を確認した後、電源を投入(USBケーブルで接続)するだけです。
    電源を投入したら、スマートフォンのWiFiアナライザなどアプリケーションで、「ESP-xxxxxx」というSSIDが見えることを確認しておきます。SSIDが見えればとりあえずESP-WROOM-32はアクセスポイントとして動作しているはずです。(注:Arduino環境の構築ができていれば、Arduinoのシリアルモニタで /dev/ttyUSB* を115200bpsでモニタすればブートローダなどの表示も確認できます)

    Arduino開発環境の構築

    PCはLinux Mint 18の64bit版です。

    まず、arduino IDE をインストールします。その前に、古いバージョンをアンインストール。

    arduino.cc から最新版の arduino-IDE をダウンロード。今回ダウンロードしたファイルは arduino-1.8.1-linux64.tar.xz です。

    次に、arduino-esp32 をインストール。このページのコマンドをコピペ。

    いよいよ起動します。デスクトップ上のArduino IDEのアイコンをダブルクリックして、Arduino IDEを起動。
    起動したら、「ツール」→「ボード:xxx」→「ESP32 Dev Module」を選択でESP32モジュールを選択します。

    サンプルを動かしてみる

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

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

    書き込み完了後はこんな感じ。

    書き込みが終わると、シリアルモニタの方に表示が始まります。

     

    こんな感じでSSIDのリストが表示されれば成功です。


  • ESP8266でSmartConfigを試してみた

    投稿日 2016年 11月 5日 3個のコメント

    長らく放置していたESP8266基板ですが、やっと動かしました。前回の記事から数えて約1年(ぉぃ)。回路図の定数に不適切な部分があってブートローダから先に進んでなかったのと、秋月のFT234X搭載の超小型UART変換基板だとなぜかLinux側が固まってしまうという事象に悩まされたためです(汗)。

    で、まだ最低限の機能しか試してないのですが、回路図はこんな感じです。回路図の電源周りにいろいろわけのわからないFETが入っていますが、これはソフトウェア制御で電源OFFできるようにするのと、電池使用時に電源電圧を自身で測定できるようにするためです。電池を使えば Amazon Dash Button 相当のことができる予定です。

    回路図

    UART変換基板は結局秋月のAE-TTL-232Rを使いました。

    開発環境はArduino IDE 1.6.12を使っています。昔調べた方法でボードマネージャでESP-8266を使えるようにして、ボードはGeneric ESP8266 Module、FlashメモリサイズはESP-WROOM-02に合わせて1M(64K SPIFFS)を選択しました。

    2016-11-05-02-29-33

    さらに1年間の進化は素晴らしいもので、smartconfigというWiFi周りの設定をAndroidスマートフォンでやる仕組みが登場していました。ArduinoのコードはGitHubのここから持ってきました。少しこの基板にあわせて修正したのが以下のファイルです。

    修正したのは起動時のGPIO12のLEDの点灯と、ステータスのGPIOをGPIO16からGPIO13に変更、初期化が完了したら電源OFFする制御を追加したことです。これをコンパイルしてボードに書き込んでやります。

    シリアルモニタで動作を確認しながら、スマートフォンで「ESP8266 SmartConfig」というアプリを動作させてESP8266モジュールに接続させる先のSSID(スマートフォンがつながってるSSIDが勝手に表示されます)と、パスワードを入力してCONFIRMを押してしばらく待つとESP8266側の接続設定がされるという便利なものです。

    設定したSSIDとパスワードはフラッシュメモリ内に保存されて、次回は勝手にロードしてくれます。(上記のソースでは、起動後2秒たった瞬間にGPIO0がLレベルだと設定をクリアして再度設定待ちになります)

    上記は電源投入〜SmartConfigによる設定〜APへの接続〜シャットダウンまでのシリアルコンソールのログです。楽でいいですね!


  • 普通にはadbで認識できないAndroid機を認識させる

    投稿日 2016年 9月 10日 コメントはありません

    通常のAndroid機は /etc/udev/rules-d/51-android.rules にベンダIDを追加してやるとadbで操作できるようになるのですが、coviaのFLEAZ F4s/F4s+は認識することができません。いろいろ試してみたところ、わかってきたことをメモしておきます。環境は LinuxMint18 MATE edition 64bit です。

    まずはUSBのデバイスIDを調べます。(必要なもの以外は結果から削除しています)

    BroadcomのチップのベンダIDそのままのようです。(これはF4sのもの。F4s+はデバイスIDはe681になるようです)
    とりあえず、/etc/udev/rules-d/51-android.rules にベンダIDを記載して再読み込みさせてみます。

    この状態で、USBを抜き差ししてから adb コマンドを叩いてみても、

    となって、デバイスが見つかりません。
    いろいろググると、~/.android/adb_usb.ini にベンダIDを書くとよい、というような記載をいくつか見つけたので試してみます。

    状況が変わりました。この状態で TCP/IP 接続でデバッグする設定にしてみます。

    パーミッションで蹴られてしまいました。ルート権限で試してみます。

    端末上にデバッグ接続可否のダイアログが出ていたので、許可してみます。

    となって無事にインストールできました。

    改めて /etc/udev/rules-d/51-android.rules を削除してやってみました。
    どうも、/etc/udev/rules-d/51-android.rules は必要ないようです。
    一般ユーザー権限では、

    となってパーミッションエラーになりますが、通常の Android機はルート権限で adb server を起動すると認識できるようです。

    さらに、今回の covia FLEAZ F4s/F4s+ のようになにもしないと認識しない機種でも、 ~/.android/adb_usb.ini にベンダIDを書いてやれば認識できるようです。

    ここで F4s+ を外して F4s を接続してみます。

    となり、無事に認識しました。


  • AndroidタブレットをLinuxのサブディスプレイにする

    投稿日 2016年 8月 9日 コメントはありません

    外出時にノートPCで作業していると、1366×768の画面ではどうしても狭く感じます。・・・で、ぐぐってみたところ、AndroidをLinuxのサブディスプレイにする方法がある模様。どうやらVNCを使うようなので、やってみました。

    環境は以下の通り。

    • サーバ側はLinutMint18 x64
    • クライアント側はNexus7(2012) + Android4.4.4

    です。

    作業にあたってはこちらのサイトを参考にさせていただきました。

    1.Linux側(サーバ側)

    Synapticでvnc4serverをインストールします。vnc4serverを使うのはSynapticにあるからです。

    インストールしたらVNCサーバを起動します。

    起動したら接続用のパスワードを設定します。パスワードは8文字までで、8文字を超える長さの場合には最初の8文字が使われるようです。

    2.クライアント側(Android側)

    クライアント側はGoogle PlayストアでVNC viewerをインストール。

    起動したら、接続先として「Linux側のIPアドレス:5901」、接続名を適当な名前を設定します。接続するとパスワードを聞かれるので、vncserverを起動する際に設定したパスワードを入力します。ポート番号の5901は5900に:1の1を足して5901となっています。

    3.x2vncのインストール

    Synapticでx2vncをインストールする。インストールしたら以下のようにして起動する。

    として起動します。この状態でマウスは行き来できるようになっています。
    が、ウインドウは行き来できません。ウインドウマネージャがいないような雰囲気です。しかし、サブディスプレイ側(Android側)ではコンソールウインドウが開いているので、そこでfirefoxを起動するとサブディスプレイ側にブラウザを開くことができました。とりあえずWebを参考にしながら何か作業したり、viやxedで設定ファイルを編集したりする分には十分です。

    ここで一旦終了させます。

    VNCのパスワードを変更します。

    4.まとめ

    インストールが完了したら、以下の手順で起動できます。

    画面サイズはNexus7(2012)の画面サイズです。Android側でフルスクリーンにしておけばちょうどよくなります。

    IMG_20160809

    サブディスプレイとして使っている様子はこんな感じです。USBケーブルは電源供給専用で、接続はモバイルルータ経由です。


  • Nexus7(2012)のファームウェアをLoliPopにアップデート

    投稿日 2016年 5月 21日 コメントはありません

    手元にあるNexu7(2012/3Gモデル)をAndroid 5.1.1(LoliPop)にアップデートしてみます。
    手順はFactory Images for Nexus Devicesに書かれているとおりです。下の方の使用条件に同意してチェックすると具体的なイメージやアップデートの方法が表示されます。

    下記にLinuxMint17(64bit)での手順を記載しておきます。言うまでもないことですが、ファームアップデートは自己責任で。

    1)ツールのインストール

    2)Android端末を開発者モードに変更する

    Android4.4.4ではUSBでPCに接続しても、PC側では認識されません。現在入っている
    設定→タブレット情報をタップして、タブレット情報を表示させ、ビルド番号を連打すると「開発者モードになりました」という表示がされ、設定メニューの中に「開発者向けオプション」が現れます。開発者向けオプションの中の「USBデバッグ」にチェックを入れてからPCに接続します。

    3)Android端末のUSBデバイスIDを確認する

    この場合、最初の18d1:d002がNexus7(2012)デバイスIDです。(18d1がベンダID、d002がデバイスID)

    4)udevルールを作成

    内容はこんな感じ

    5)パーミッションを変更して、udevを再起動

    6)イメージのダウンロードと検証

    以降は、公式サイトの手順の「Flashing instruction」に沿って進めていきます。

    まずはイメージのダウンロードと検証です。適当なディレクトリにイメージをダウンロードして、

    $ md5sum nakasig-lmy47v-factory-b2d44613.tgz
    c30e5d3bd7cef9edde38ce58bf741857 nakasig-lmy47v-factory-b2d44613.tgz

    としてファイルの正当性をチェックします。正しいファイルがダウンロードできたら、展開しておきます。

    7)イメージの書き込み

    Nexus7をPCに接続して、ターミナルから

    でリブートさせます。初回はNexus側にUSBデバッグを許可するか表示されますので、「常に許可する」のチェックボックスにチェックを入れてOKを押します。
    Nexus側にブートローダの画面が表示されますので、

    として、ブートローダをアンロックします。自分の場合は、以前5.0.2から4.4.4に戻した際にアンロックしてありましたので、上記のように「already unlocked」となりました。

    引き続きファームウェアアップデートに入ります。当然ですが、端末に保存されている情報はすべて消えてしまいますので、十分注意してください。また、不慮の事故等で端末が文鎮化するかもしれませんので、自己責任で。

    完了すると、勝手に再起動します。
    最初しばらくは倒れたドロイド君の上に赤三角内に「!」が表示されていて動きがないのでびっくりしますが、しばらくすると画面が変わって起動時の画面(Googleカラーのつぶつぶがぐるぐる廻る)に変わります。この状態が長く(5〜10分位?)続いた後、Welcome画面とともに言語選択する画面に遷移します。


  • LinuxMint17.2でUSBメモリ環境を構築

    投稿日 2015年 8月 29日 コメントはありません

    久々にUSBメモリにLinux環境を構築しました。作業的には慣れたもののはず・・・と思ったのですが、すっかり忘れてました。なので、作業ついでにメモを作り直します。

    1.環境

    PCはCore2Duo E7400(VT-x未対応版。E7400はVT-xは途中から対応しているので、初期のものはVT-xがOFFになっていて仮想化支援機能が動かないんです。)で、メモリは4GB、HDDにはWindows8.1が入ってますが、全然使ってない。
    LinuxMint17.2をインストールするUSBメモリはSanDisk Cruzer Fit 16GB。遅いUSBメモリですが、小さいので邪魔になりません。

    2.インストールイメージの準備

    とりあえず、LinuxMint17.2の32bit版をダウンロード。UNetBootinで別の4GBのUSBメモリにインストールイメージを書き込みました。(ライブCDの代わりとして使うならこのままでもいいんでしょうが・・・)
    他の環境ではUSBイメージライタを使ってUSBメモリに書き込む、あるいはDVD-Rにイメージを焼いて・・・でも構わないでしょう。ただ、SATAを禁止する関係で内蔵DVDROMドライブは使えないので、DVDROMに焼いて起動する場合には外付けのUSB-DVDドライブが必要になります。

    3.インストール環境のブート

    4GBのUSBメモリを接続して、電源ON。BIOSを起動して

    • SATAインタフェースをDisable(内蔵HDDを見えなくする)
    • 起動順序をUSB-HDDを最初にする(しなくてもいいと思うけど、癖で設定)

    とします。CTRL-ALT-DELでリブートさせて、USBメモリからブートさせます。ブート時にUNetBootinのメッセージが出ますが、DefaultのままでLinuxMint17.2のライブイメージを起動します。

    4.インストーラの起動

    ライブ環境起動後にターゲットのSanDisk Cruzer Fit 16GBを接続して、インストーラをダブルクリックして起動。

    5.パーティションの設定とOSインストール

    パーティションの設定はカスタムにしました。メモリ4GBあるのでSWAPパーティションがなくても問題ありません。なので、パーティションテーブルを初期化して、1パーティションをext4で作成、マウントポイントは / にします。インストールを継続しようとすると、「スワップパーティションがないよ」と警告されますが、そのまま継続。あとはインストーラの指示通りにインストール。ブートローダーは /dev/sdb (HDDが認識されていなければ、これがSanDisk Cruzer Fit 16GBのはず)に書き込みます。

    6.再起動とアップデート

    インストールが完了したら、インストーラの指示に沿って再起動する方を選択します。再起動したら、アップデートマネージャを起動して、ひたすらアップデートします。

    7.設定ファイル編集による追加設定

    1)内蔵HDDを見えなくする

    SATAドライバを禁止して内蔵HDDを見えないようにします。SATAで接続されているDVDROMドライブも見えなくなってしまいますが、代わりに内蔵HDDを誤って書き換えてしまったりする可能性が大幅に減少します。作業としては、 /etc/default/grub を開いて、 「GRUB_CMDLINE_LINUX_DEFAULT」の起動時オプションに「libata.force=disable」を追加します。
    修正後は、

    としてgrub.cfgファイルを自動生成させて反映させます。
    この後、BIOSのSATA禁止を解除して再起動して、PCの内蔵HDDが見えないことを確認します。

    2)USBメモリへのアクセス高速化

    HDDアクセス時のアクセス時刻の記録を停止してアクセスを減らすとともに、/tmpをtmpfsにより確保してHDDへのアクセスをなくします。/etc/fstab をのもとからある行にnoatimeオプションを追加し、さらにtmpfsで始まる行を追加します。

    3)システム時計が狂うのを直す

    /etc/default/rcS の中の「UTC=yes」を「UTC=no」に修正します。

    ここで一旦再起動します。

    8.その他、追加設定

    1. 背景の変更
      明るい背景が苦手なので、適当な暗めの背景に変更しました。
    2. テーマの変更
      青系の色が好きなので、Mint-X-Tealにテーマを変更しました。
    3. FireFoxの設定変更
      ・起動時のホームページを自分の設定に修正
      ・履歴の記憶を「一切記憶させない」に変更
    4. Chromeブラウザのインストール・設定
      Chromeのダウンロードページへ行ってDebian32bit版をダウンロード、Package Installerでインストール。インストール後、「アプリケーション」⇒「インターネット」⇒「Google Chrome」で起動できますが、自分はまずは右クリックして「プロパティ」を表示し、コマンドの部分に「–incognito」のオプションを追加して、常にプライベートモードで起動するようにしています。
    5. 日本語設定
      日本語の設定を忘れていました。「設定」⇒「言語」でLanguage/RegionともにJapanese,Japan UTF-8になっていることを確認して、System localeのところで「システム全体に適用する」を押します。
      上のほうにある「Input Method」を押して、「Add support for IBus」を押してIBusをインストールします。インストール完了後、上の方にある「Input Method」をNoneからIBusに変更します。
      変更したら一旦ログアウトしてログインし直すと、右下にキーボードのアイコンが出てくるので、これを左クリックしてMozcを選択します。テキストエディタなどを開いてみると日本語入力できるはずです。

    こんなところでしょうか。

    あとは、好きなアプリをインストールするなり、何なりすればと思います。


  • ESP-8266用ArduinoIDEでサンプルを動かす

    投稿日 2015年 7月 11日 1つのコメント

    環境構築とサンプルを動かす話を一つの記事にしたら長くて読みにくくなってしまったので、2つに分割します。この記事は環境構築の続きです。

    ESP8266自身で動かすWebサーバーサンプルのテストと、ESP8266をNTPクライアントにするサンプルのテストです。

    サンプルのコンパイルと書き込み

    以下の手順でサンプルの動作を確認しました。

    1. 「ファイル」⇒「スケッチの例」⇒「ESP8266mDNS」⇒「mDNS_Web_Server」を選択してみます。
    2. 23行目にSSIDを、24行目にパスワードを設定する箇所がありますので、そこにそれぞれの環境に応じた設定をします。
    3. 「ファイル」⇒「名前をつけて保存」で適当なディレクトリを作って保存します。
      (あたり前といえばあたり前ですが、保存しないとうまく動作しません)
    4. ESP8266ボード側はブートローダの起動状態にしておきます。(GPIO0をGNDに落とした状態でリセットをかけて、リセット解除しておきます。リセット解除後はGPIO0はGNDに落ちていても落ちていなくても構いません。なお、ESP8266のファームウェアバージョンはv0.9.5のものを使用しています。)
    5. 「ツール」⇒「シリアルモニタ」でシリアルモニタを起動しておきます。速度は115200bpsです。
    6. 「スケッチ」⇒「マイコンボードに書き込む」でコンパイルと書き込みを行います。
    7. 書き込みが終わると自動的に実行されます。
      screen8
    8. シリアルモニタ側にIPアドレスなどの情報が表示されます。
    9. ブラウザからそのIPアドレスにアクセスすると、ESP8266上で動作するWebサーバからのメッセージ(「Hello from ESP8266 at 192.168.xxx.xxx」)が取得できます。
      下記はAndroid上のブラウザからIPアドレス指定でアクセスした後のシリアルコンソールの表示内容です。
      screen9

    同様にNTPClientなども動作しました。

    Windowsだけではなく、Linuxでもこれだけお手軽に動かせるようになってきています。かなりお手軽にESP8266を動かす環境が整ってきていることを感じますね。

    ※上記の動作確認は接続先のアクセスポイントを含め、シールドルーム内で実施しています。早く技適対応済みのモジュールが入手できるようになって欲しいものです。


  • Linux版ESP-8266用ArduinoIDEのインストール

    投稿日 2015年 7月 10日 1つのコメント

    Linux版のESP8266対応のArduinoIDEのインストールが簡単になっていましたので、その方法でLinux32bit環境(LinuxMint17環境)にインストールしてみました。
    ArduinoIDEの1.6.4からボードマネージャ(Boards Manager)を使ってサードパーティのプラットフォームパッケージのインストールができるようになったようです。そこで、ESP8266用のプラットフォームパッケージが準備された、ということみたいです。
    このプラットフォームパッケージを使うと、超簡単にArduinoIDEからESP8266を使うことができます。現時点ではWindows,MacOS、Linux(32bit/64bit)のパッケージが準備されているようです。

    (7/15に64bit版Linuxでもサンプルのコンパイルまで確認してみました。手順は概ね同じですが、若干の記載漏れを加筆しました。また、64bit版ではファイル名などで32になっているところが64になったりします。)

    このプラットフォームパッケージの特筆すべき点は「AVRマイコンなど他のマイコンを必要とせず、ESP8266モジュール単体でArduinoとして動作しつつ無線LANでの通信ができる」ということです。

    大事なこと(すごいこと)なのでもう一度書きます。Arduinoとして動作させるのに、(書き込み時は別として)ESP8266モジュールと電源以外の部品は必要ありません

    たぶん、ArduinoIDE自体で依存するモジュールがあると思います。build-essentialやdefault-jdkなどは事前にインストールしておくほうが良いかと思います。

    ArduinoIDEのインストール

    arduino.ccからLinux32bit版のArudino IDEをダウンロードしてきます。ダウンロードが完了したら、アーカイブを展開します。

    端末(コンソール)を開いて、ホームディレクトリから

    として、開発環境を起動します。
    (ダウンロード場所はディストリビューションなどに応じた場所を指定してください。上記ではホームディレクトリ直下にarduino-1.6.5というディレクトリができて、そこに展開します。)

    screen1

    「ファイル」⇒「環境設定」にて、環境設定の画面を開きます。開いたら、「Additional Boards Managers URLs:」に「http://arduino.esp8266.com/package_esp8266com_index.json」と入力し、OKを押します。

    ※追伸:安定版と開発版のバージョンができているようです。
    安定版は「http://arduino.esp8266.com/stable/package_esp8266com_index.json」、開発版は「http://arduino.esp8266.com/staging/package_esp8266com_index.json」を入力してください。
    どちらを選べばいいかわからない場合は当然安定版の方を選びましょう。

    「ツール」⇒「ボード」⇒「Board Manager …」を選択します。

    screen3

    一番下に、「esp8266 by ESP8266 Community」というのがありますので、ここをクリック(選択)すると、右下に「Install」ボタンが現れますので、「Install」ボタンを押します。

    screen4

    すると、40MBくらいダウンロードした後、Installedになります。

    screen6

    確認したら、「閉じる」でインストールは完了です。
    ESP-8266が使えるかどうかを「ツール」⇒「ボード」で確認します。

    screen7

    メニューに「Generic ESP8266 Module」「Olimex MOD-WIFI-ESP8266(-DEV)」「NodeMCU(ESP8266 ESP-12 Module)」が増えているのが確認できました。

    今回は「Generic ESP8266 Module」で動作させてみます。
    選択すると、「ツール」の下に「CPU Frequency」「Flash Size」「Upload Speed」「ポート」などの設定ができるようになっていました。今回はそれぞれ「80MHz」「512K(64K SPIFFS)」「115200」「/dev/ttyUSB0」としています。

    サンプルの動作確認は次の記事です。


  • ESP8266はIoT界のPICマイコンになれるか?

    投稿日 2014年 12月 10日 2個のコメント

    最近、無線LANコントローラチップESP8266が盛り上がってきているように感じます。ESP8266の概要については以前こちらでざっと記事に書いたのでそっちを参照してもらうとして、とにかく面白そうです。

    1. なんと言っても安い。モジュール1個で$5程度。前回の記事の時は500円位だったのが、今では600円になってしまいましたが、それでも安い。
    2. お手軽にUART経由でATコマンドで制御することができる。つまり、Arduinoやその他のマイコンと簡単につながる。
    3. さらにSDKが用意されていて、内蔵CPUのプログラムの開発ができる。GPIOにつないだデバイスを無線LAN経由で外付けチップ無しで制御できる。

    といったところでしょうか。しかも、今日は3のSDKを使ったオリジナルプログラムの作り方についてHackadayで記事になっているのを見つけてしまいました。開発環境はLinuxで必要なソフトウェアはgitにあるようです。しかも、そのセットアップの方法とサンプルプログラムのビルドまでの手順をXtensa用gccツールチェーンのセットアップ方法も含めてビデオで細かく解説してくれています。

    もうここまでくると、もう無線LAN/IoTの世界のPICマイコンになりそうな勢いなんではないかと思ってしまいます。

    技適の問題さえなければすぐにでもポチりたいところなのですがねぇ・・・。


  • Linuxで有線LANを禁止する

    投稿日 2014年 10月 22日 コメントはありません

    USBメモリにインストールすることでPC本体環境に影響を与えることなくLinuxを使うことができますが、そのままではPC本体のHDDにが見えているので、誤操作や悪意のあるプログラムが動作したりするとHDDに影響する可能性が残っています。そこで、この記事で紹介したようにHDDを見えないようにすることで、そのリスクをさらに抑えることができます。

    しかしながら、ここまでではネットワークは既存の環境のものをそのまま使うので、万が一のことがあるとローカルネットワーク上に影響を与えてしまいます。今回はその対策を考えてみました。

    物理的に線があるLANでは接続先を変える=線をつなぎ直す、ということなので面倒です。しかし、無線LANならばESSIDを変えてやれば、ハードウェアをまったく変えることなく接続するネットワークを変えることが可能です。しかも、幸いな事にたいていのコンシューマ向け無線ルータではPC等を接続するネットワークとゲーム機等を接続するためのネットワークをESSIDで分ける機能をもっていることが多いです。これをうまく使えれば、USBメモリ起動のLinux使用時には既存の環境(HDD、LAN)への影響をさらに抑えられます。そこで、有線LANを禁止し、接続は無線LANのみで行うようにしてやります。

    具体的な方法ですが、有線LANのインタフェースの物理層を制御しているmiiモジュールのロードを阻止してやります。/etc/modprobe.d/blacklist.conf に以下の行を書き加えます。

    単純に「blacklist mii」としたのでは論理層のドライバがmiiモジュールに依存していて、論理層ドライバをロードするときにmiiモジュールをロードしてしまいますので、結局miiモジュールが読み込まれてしまいます。かといって、論理層ドライバを blacklist 指定していくのは個々のデバイス(LANコントローラ)を指定していくことになりとても面倒です。ここでは、ArchLinuxのKernel_moduleのドキュメントを参考にして、mii モジュールのロードを常時失敗するように設定しました。この記述を追加した後、「# sudo update-initramfs -u」として反映させます。

    これで再起動してやると有線ネットワークが表示されなくなったはずです。無線LANアダプタは必要ですが、安心してネットサーフィンができる環境になったはず・・・です。