HMC5883L(GY-271)という電子コンパスを借りた。これをArduino Nanoにつないで使ってみる。
Kinectやってたときも思ったが、センシングにおけるチャレンジは、ひたすらキャリブレーションとノイズ除去なんだなぁと思う。つまり、センサーから生の値を拾うのは非常に簡単なのだが、そこから意味のある値を拾い出すのが格段に難しい。機器やプログラミングの知識よりも数学の知識がものを言う。
続きを読む前々回はESP-WROOM-02を初期状態のまま動作させるためだけの最低限の回路を説明したが、今回はさらに自作アプリケーションを動かすための基本回路を紹介する。ただし、これはあくまで私が私のアプリケーションで使い回すための「ぼくのかんがえた最強の基本回路」であり、誰にとっても・どんな場合でもベストだとは限らない。まずはこれを入口にしてもらったとしても、最終的には自分自身の目的やスタイルに合った「最強」を編み出してもらいたいと思う。
この「最強基本回路」の見た目と回路図はこんな感じだ。これを私が「最強」と呼ぶには理由がある。ひとつは抵抗等のパーツを動く限りで最低限まで省いていること(経験者は眉を顰めるかもしれない)。もうひとつはおそらく世界唯一「最強LED」を備えていること。以下順に説明していこう。
(写真の中央周辺の黒/赤/黄/茶の配線はアプリケーション回路なので基本回路外である。また電源回路はACアダプタージャック→5V→3.3Vと二段で降圧しているので図と少し違う。あとオシロスコープのフックを引っ掛けるためジャンパー線のリングを幾つか出している。)
前回「USB給電でESP-WROOM-02は動かない」と書いたが、改めて確認してみたらちゃんと動いた。最初試したときは回路が何か間違っていて余計な電流が流れていたのかもしれない。
USB変換モジュールに出てる+5Vのピンを、スイッチングレギュレーターまたは三端子レギュレーターを通して降圧、ESP-WROOM-02の電源につなぐ。この状態で、起動・ATコマンドによる基本WiF動作・HTTPによるLEDとFETの駆動あたりまで確認した。
続きを読むさてそろそろESP-WROOM-02の話に入ろう。まずはこれがなくては始まらない、電源とUSBシリアル変換モジュールについて。
買いたてほやほやの状態のESP-WROOM-02には、シリアル通信で対話的にコマンドを送ってWiFI機能を動かすことができるプログラムがあらかじめ書き込まれている。まるで昔のモデムのようなノリで、実際ここで使われるコマンドはそれらしく「ATコマンド」と呼ばれている。最終的には自分でプログラミングするつもりであっても、ESP-WROOM-02を買って来たら、まずはこれを叩いて動作確認をするのが常套手段である。そのために最低限必要なのは、電源と、PCと通信するためのUSBシリアル変換モジュールである。
続きを読む前回「Arduinoのソフトウェア開発はOSなしで実行されるC++プログラムを書くこと」と述べた。この「OSなし」が何を意味するのか、やったことのない人にはピンと来ないかもしれないので、簡単に説明してみたいと思う。
OSのある世界では、PCが起動するとブートローダーがまずOSを読み込んで実行し、次にOSがアプリケーションをファイルから読み込んで実行する。これがArduinoだとブートローダーが直接アプリケーションを読み込んで実行する。つまり普段空気のように当たり前に存在しているOSによるサポートを当てにせずにアプリケーションを書かねばならない。具体的には次のような違いが現れることになる。
続きを読む