2017/01/02

MUGBOT/Fabbotにセンサーを付けたい

2017/1/27: p19「USB-シリアルアダプタの接続」ピンの誤記を訂正しました。
 
PDFファイルが開きます:


2015/11/15

ESP-WROOM-02の Flash File System(FFS) を使ってみる

ESP-WROOM-02には32Mbit(4MByte)のFlashメモリーが搭載されています。このFlashメモリー内の最大3MByteをFlash File System(FFS)に割り当てることができます。(注あり)
音楽ファイルのような大きなファイルは格納できませんが、スケッチ実行時に使用するSSIDやパスワードなどのパラメータの保存に使うには十分な大きさです。

Flash File Systemについては、Referenceの「File system」に説明があります。
http://arduino.esp8266.com/versions/1.6.5-1160-gef26c5f/doc/reference.html

【続きを読む】

2015/11/02

Arduino時計をESP-WROOM-02でNTP同期させる

前記事の「Arduino+7Seg LED+RTCでデジタル時計」にESP-WROOM-02を接続して、NTP時刻同期します。
WROOMはWi-Fiアクセスポイント経由で60秒毎(正常動作が確認できたら間隔は長くする)にタイムサーバに接続し、標準時刻を受信します。受信した時刻情報はUART経由でArduino UNOに送出し時刻を同期させます。
Arduino UNO側のスケッチはそのままです。

Arduino+ESP-WROOM-02デジタルクロック全体写真

Arduino+ESP-WROOM-02

Arduino+ESP-WROOM-02

【続きを読む】

2015/11/01

Arduino+7Seg LED+RTCでデジタル時計

部品箱で眠っているArduinoに安い7Seg LEDを接続してデジタル時計を作ります。
簡単にするために4桁(12:34)のLED(4桁7セグLED表示器 [BW428G-E1-10MM])を使います。
Arduinoの内部クロックでは精度が得られないので高精度(月差13秒程度)のRTC(RX-8025NB使用 I2C接続リアルタイムクロック(RTC)モジュール)を接続しました。
*RTCを接続しなくても動きますが精度は悪いです・・

電源投入時は、00:00で計時開始します、時刻合わせは「YYMMDDhhmmss+CR(‘\r’)」の形式でUARTに書込めば同期します。

全体の写真

Arduino 7SEG 時計全体

Arduino 7SEG 時計全体

【続きを読む】

2015/09/18

Wi-FiラジコンカーをAndroid OSCアプリで操作する

前記事の「ESP-WROOM-02 Wi-Fiラジコンカー」ではApple Store AppのiOSCを使って操作しましたが、今回はAndroid携帯から操作するアプリを紹介します。
Android上でもOSCアプリは多くありますが、その中でラジコンのコントローラーっぽい操作画面に設定できるAndrOSCを使用します。(Android版でも同様にアクセスポイント無しで直接接続できます)

AndrOSCのダウンロードサイト(寄付アプリ)

AndrOSCで設定した操作画面

AndrOSC操作画面

AndrOSC操作画面

AndrOSCネットワーク設定画面

AndrOSCネットワーク設定画面

AndrOSCネットワーク設定画面

【続きを読む】

2014/08/06

Intel Galileo GEN 2 超音波距離センサーモジュール

Galileo GEN 2のポート操作が普通の速さになったので、気を良くして、超音波距離センサーモジュール(HC-SR04)を接続して、パルス幅を読取るファンクションpulseIn()を使ったスケッチを試したところ、あっさりと動いてしまいました。
(以前にはpulseIn()は非サポートとなっていました)

Galileo GEN2 + HC-SR04

Galileo GEN2 + HC-SR04

(more…)

2014/08/05

Intel Galileo GEN 2 ポート操作速度計測

昨年末に「Intel Galileo ポート操作が異様に遅い」という記事を書きましたが、Galileo GEN 2が発売になり、購入しましたので再計測しました。
ポート操作(digitalWrite)の処理速度を確認するために、前回と同じ下記のスケッチでポート操作に必要な時間を計測してみました。

(more…)

2014/03/09

Arch Pro & 2.6インチTFT液晶

mbed(LPC1768)仕様でフォームファクタがArduinoというseeedstudioのArch Proを購入、aitendoの2.6インチ液晶 for Arduino UNO[UNO026LCD7781TP]を接続してみました。

Arch Proのピン配列に少しイラッと(ピン配置のポリシーが理解できない)しながらもタッチパネルまで移植完了。
Arch Pro、TFT液晶どちらも価格の割には満足度は高いかも(^^)

2.6TFT & Arch Pro

2.6TFT & Arch Pro

Paint

タッチパネルテスト用のPaintアプリ

2014/01/26

Arduino UNO/Mega 2560 .WAVファイルの再生

Arduino UNO/Mega 2560で動作する.WAVファイル再生スケッチを作成しました。
.WAVファイルは、フォーマット変換アプリで「8000Hz/8bit/Mono」または「16000Hz/8bit/Mono」形式にして、SDカードにコピーします(サンプルスケッチでは「test0001.wav」です)。
UNOではD3pin、MegaではD9pinから出力されますので簡単なローパスフィルターを通してアンプに接続します。

(more…)

2013/12/31

Intel Galileo ポート操作が異様に遅い

液晶ディスプレイへの書き込みが気が遠くなるほど遅く、使い物にならないので調べてみました。
最初にポート操作(digitalWrite)の処理速度を確認するために、下記のスケッチでポート操作に必要な時間を計測してみました。

Arduino UNO(IDE:1.0.5)では、10,000回ループで82msでしたが、Galileo(IDE:1.5.3)では、1,000回で4,778msでした(Galileoでは、10,000回でなく、1,000回ループ)。
UNOが約4usで処理されているところを約2ms以上を要しています、約500倍遅いということになります。

次にポート設定(pinMode)の処理速度が気になったので、ポート設定をループ内部に移動して計測しました。

結果、Arduino UNOでは、10,000回ループで128msでしたが、Galileoでは、1,000回で23,840msでした(Galileoでは、10,000回でなく、1,000回ループ)。
Galileoでは、ポート設定に約10msを要しています。
普通に考えるとポート設定は、初期化の時に1回だけ実行するものと思いますが、実はこのポート設定処理が液晶ライブラリのポート出力を行うときに毎回呼び出されていました。
これが、液晶表示を異様に遅くしている原因のようです。

このポート設定をLiquidCrystal::init()に移動して、初期化時に1回だけ設定するように変更すると多少速くなります。
それでも、実用に耐える速度ではありません(-_-;)