ESP-WROOM-02をArduinoとして使ってみた

前回はPCからATコマンドをESP-WROOM-02へ送信してサーバからデータを取得してみました。 今回はESP-WROOM-02をArduinoとして動作させてみたいと思います。 外部機器を必要とせずArduinoとして自立して動作するので、センサーのデータを継続的に送信するデバイスの作成等が容易にできるようになるはずです。

まずBoards ManagerをサポートしているArduino IDEが必要なので 公式サイト から最新の1.6.6をダウンロードしてインストールしておきます。 手元の環境は古いままで1.0.6がインストールされていました。

Arduino IDEを起動したらBoards ManagerにESP8266のサイトを登録します。 ソースはgithubの esp8266/Arduino で管理されていて手順が記載されていました。

  1. Arduino -> Preferences -> Additional Board Manager URLs を開いて http://arduino.esp8266.com/stable/package_esp8266com_index.json を追加します。
  2. Arduino IDEを一度再起動して、 Tools -> Board -> Boards Manager を開きます。 自動で一覧が読み込まれ、 esp8266 by ESP8266 Community が表示されているはずなので選択してインストールします。 (現時点では2 ...
more ...

ESP-WROOM-02を試してみた

ESP-WROOM-02を試してみました。 ESP-WROOM-02はデフォルトではATコマンドで操作を受け付けるファームウェアが書き込まれています。 それ以外にArduinoやNodeMCUとして使えるファームウェアも使用することができるみたいです。

今回試したのはATコマンドでの動作です。 これはPCとUSBシリアルで接続してシリアルコンソールからATコマンドを送ることで操作します。 今回使ったものは以下。

USBシリアルは今後もよく使うと思うのでこのような変換基板を作ってみました。 今回は使わないけれど、リセットボタンと5V/3Vの切り替えスイッチ付き。

image

上記のUSBシリアル変換基板とESP-WROOM-02を次のように接続するだけで動作確認できます。 ESP-WROOM-02への電源は消費電力の問題から、USBシリアルの3.3Vは使用せず、5Vを三端子レギュレータを介して入力するようにします。 (ESP-WROOM-02を使ってみる3 -そんな電源で大丈夫か-)

image image

次にPCとの接続にはUSBシリアルのドライバをインストールしなければいけないので、FTDIのページからVCP Driverをダウンロードしてインストールしておきます。

PCと接続したらArduino IDEを起動して Tools -> Serial Port から認識されているデバイスを選択します。 選択したら Tools -> Serial Monitor をクリックしてシリアルモニタを起動します。

image

シリアルモニタが起動したら ...

more ...

ATmega328を取り外して動作させる

Arduino Uno を使って動作確認をした回路をなにかのケースに組み込んで使いたいときに
Arduino をそのまま組み込むのは大きすぎるし、高いしあまり現実的ではないので
Arduino に使われている ATmega328 を取り外して単体で使えることを確認してみた

まず購入直後の ATmega328 には Arduino として動作させるためのブートローダが書き込まれていないので
Arduino Uno を使ってブートローダの書き込みをしなければいけない
Arduino に搭載されている ATmega328 は 16MHz / 5V で動作しているが、これには外部クロックが必要
それ以外に ATmega328 の内部に搭載されている 8MHz のクロックを使う方法がある
これを使う場合、部品点数が少なくなるし、 5V もしくは 3.3V で動作させることができる
今回は速度は必要ではないしそれで十分なので簡単な 8MHz / 5V を選択
その場合ブレッドボード等は既に持っているので追加で必要なものは ATmega328 と 10μF のコンデンサだけ

参考にすべきページは

more ...

Arduinoをリモコンにしてみる

秋月電子で赤外線の受信モジュールとLEDを購入して学習リモコン的なものを作ってみた
今回使用したのは以下の部品

  • Arduino Uno
  • 赤外線リモコン受信モジュール GP1UXC41QS x1 1個50円
  • 5mm赤外線LED OSI5LA5113A x3 10個100円
  • タクトスイッチ DTS-6 x1 1個10円
  • プルダウン用の抵抗1KΩ x1

それぞれを以下のように接続した

Arduino 部品
2 GP1UXC41QSのVout
GND GP1UXC41QSのGND
5V GP1UXC41QSのVcc
5V タクトスイッチの2番
3 タクトスイッチの4番 (プルダウン抵抗をつける)
4 OSI5LA5113A x3 の+
GND OSI5LA5113A x3 の-

GP1UXC41QSのデータシートの 6. 製品の実装について の項に CRフィルターを実装してください とあるけれど
お試しなので今回は省略して回路を組んだ
手元の環境では特に問題は起きていないけれど誤動作する可能性があるので注意

実際に接続するとこのようになる

image

ソースコードは ...

more ...

AquesTalk pico LSIをI2Cで接続する

ArduinoとAquesTalkをI2Cで接続してみました
配線は以下の通り

Pin AquesTalk -> Arduino
1 /RESET RESET
4 SMOD0 GND
5 SMOD1 5V
7 VCC 5V
8 GND GND
20 VCC 5V
22 GND GND
27 SDA A4
28 SCL A5

SMOD0SMOD1 については技術資料の 表9.1 通信モード を参照
I2Cで接続するには SMOD0 = 0SMOD1 = 1 にする必要があります
あとは12番の AOUT をアンプの IN ...

more ...

AquesTalk pico LSIの動作確認

以前購入していたATP3011F1-PU(秋月で850円)の動作確認をしてみました
紹介動画にもありますがArduino UNOに挿してアンプ付きのスピーカと接続、
PCからシリアルモニタで文字を送信するだけで音声を出すことができます
(技術資料 13.4. Arduinoボードを利用した簡易動作 を参照)
通常Arduinoから使う場合はI2C接続で使うことになると思いますが、
I2C接続は後日試すとして今回はこの方法で動作確認をしてみました

まずうちにはアンプ付きのスピーカなんて無いのでそれを用意するところから
せっかくなのでこれも秋月で買ってきて組み立ててみました
といっても個別にパーツを揃えたわけでなく

これらを接続しただけです
今回試した手順を以下にまとめておきます
後半は技術資料に書いてあるものそのままで、どちらかと言うと前半が僕には必要でした

  1. ArduinoのLSIを取り外し、AquesTalkを取り付け
  2. Arduinoの デジタル6番 をアンプの IN+ に接続
  3. Arduinoの GND をアンプの IN- に接続
  4. アンプの +VGND をそれぞれ電池に接続
  5. アンプの SPK ...
more ...