言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Arduino

P1050432

私は昔からマイコン工作に興味があったのですが、周りに知っている人もおらず、マイコン用のプログラムを書いたりPROM を焼いたり、そういう基本的な事が全く分からず指をくわえておりました。最初 Arduino の事を聞いた時、オープンソースだとかフィジカルコンピューティングだとか、こりゃまた口当たりの良いセールストークを使った意味不明な奴らだと思っていたのですが、ふと、これは単にマイコン工作を簡単にした物だという事をちょっと前に知って、がぜん興味が湧いたのでした。で、ぽちっと通販してまったのです。

P1050420

これが買った奴。Adafruit Indstries の Arduino Starter Pack http://www.adafruit.com/index.php?main_page=product_info&products_id=68 です。写真の左下にある Arduino だけだったら 30 ドルです。Arduino のまず凄いのは純粋にこの本体を買っただけでも何か出来るという事です。電源は USB から供給出来るし、LED が一つ本体に付いていて、誰もがまずやる LED チカチカを実験出来ます。親切すぎてかえって残念な事に、最初っから LED チカチカ入りで出荷されています。最初の感動を味わえるように何も入ってない状態で出荷して欲しかったです。

本体だけで遊べるとはいえ、LED と 9V の四角い電池くらいはあった方が良いと思います。特に電池があると、パソコンから外しても動くので感動がひとしおです。私は怠惰なので一通りそろった 65 ドルの Starter Pack を買いました。他にも小さなブレッドボードと、万能拡張ボードと、パーツが沢山ついて来ます。拡張ボードはシールドと呼ぶらしいです。これが一般的な呼称なのか Arduino 業界言葉なのかは知りません。それから入門ページ http://www.ladyada.net/learn/arduino/lesson0.html の通りに勉強始めました。

  • http://www.arduino.cc/en/Main/Software から開発環境をダウンロードして展開
  • drivers ディレクトリにある USB ドライバをインストール
  • Arduino 開発環境を立ち上げて、Tools - Serial Port を /dev/tty.usbserial-A6006kI4 にする。 (MacOSX)
  • File -Sketchbook - Examples - Blink で Blink のサンプルを開ける。
  • File - Upload to I/O Board (cmd + U) でビルドして基板に転送される。

が、ここまでやって文章が多くてしんどいのでサンプルを上から順にやる事にしました。

ちなみに、よく Arduino は Processing 言語 で動くとありますが、Processing というのは言語では無く、開発環境の名前です。つまり、VisualStudio みたいなもんで、Arduino の開発言語は C です。 もしかして世の中には開発環境やライブラリの事を言語と呼ぶ流儀があるのかも知れませんが、Processing 言語という言葉に惑わされてしまったのでここに書いておきます。

サンプル

P1050452

Arduino 開発環境に付いてきたサンプルを紹介します。http://arduino.cc/en/Tutorial/ に詳しい説明があります。(本体のみ)と書いた奴は本体だけで遊べます。LED を刺すときは長い方が信号端子、短い方が GND で途中 1KΩ(茶黒赤金)の抵抗を挟みます。

  • Analog/ADXL3xx : よくわからんかった
  • Analog/AnalogInput : (可変抵抗の外側の端子に 5V と Gnd、内側に Analog2 を接続) 可変抵抗を回すと LED 点滅の速度が変わります。目医者の検査みたいです。
  • Analog/Fading : (LED を Digital9 に接続) ぼんやり LED が付いたり消えたりします。
  • Analog/Knock : (圧電ブザーとメガオーム抵抗、例えば3.3M(橙橙緑金)を Analog1 に接続) ブザーを叩くと LED が消えたりついたりするみたいですが、うまく動かなかった。
  • Analog/Smoothing : (可変抵抗の外側の端子に 5V と Gnd、内側に Analog0 を接続) Serial Monitor で見ると、端子の電圧によって 0 から 1023 まで数字が変わります。
  • Communication/ASCIITable : (本体のみ) Serial Monitor で見ると文字コードが出力されます。
  • Communication/Dimmer : (LED を Digital9 に接続) Serial Monitor で文字を入力すると文字コードに応じて明るさが変わります。Processing にサンプルをコピペするとドラッグで明るさを変えられます。
  • Communication/Graph : Smoothing と同じ? この Processing のサンプルは電圧がグラフ表示されるので便利そうです。
  • Communication/PhysicalPixel : (本体のみ) Serial Monitor で H を送ると LED が光って L で消えます。Processing デモもあるよ。
  • Communication/VirtualColorMixer : これはセンサが三つも居るので試してません。
  • Digital/Blink : (本体のみ) LED チカチカ
  • Digital/BlinkWithoutDelay : (本体のみ) タイマを使った LED チカチカ
  • Digital/Button : (5V と 10KΩ(茶黒橙金) を直列にボタン1へ、Digita2 をボタン端子1へ、GND をボタン端子2へ) ボタンを押すと LED が光る
  • Digital/Debounce : (Button と同じ配線) LED がトグルする。
  • Digital/Loop : (Digital 2 から 7 に LEDを接続) 6 つの LED の光が行ったり来たりする。

ADXL3xx と Knock と VirtualColorMixer 以外は手持ちのパーツで動きました。