【AVR】Arduino Pro Mini を使ってみた

デスクワーク等で座っている時間が一日に11時間を超えると, 3年以内に死亡する確率は11時間以下の人と比較すると40%上昇することという記事をみてからビビってます…
ということで, 少しでも体に負荷をかけないために [Ergohuman] エンジョイ(ENJOY-H)ハイブリッドを買いました。

ダンボールの中です。

右のイスが新しいイスです。

完成まで30分弱です。確実にゴミ処理の方が時間がかかります。

本題ですが, ラッキーなことに半値でArduinoを手に入れたので, とりあえずMacBookAirでの開発環境構築のメモを書いておきます。


$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.8.2
BuildVersion:	12C60

USB-シリアルドライバとArduino IDEをDLします。

ここからFT232RLのドライバをインストールします。
ここからIDE (エディタ, コンパイラ, ライタ, シリアルモニタ)をダウンロードします。

中身はArduino Pro Mini (AVRマイコン)とセンサなどのスターターキットです。

基板の内容
・ 1 x Arduino Pro Mini 328 5V 16MHz
・ 1 x FT232RL搭載小型USB-シリアルアダプタ 5V
・ 1 x ブザー
・ 1 x フルカラーLED Triple Output LED RGB – SMD
・ 1 x 光センサ TEMT6000
・ 1 x タクトスイッチ
・ 1 x プロトタイプ基板

USB-MiniBケーブルはついてませんでした…

IDEの設定を変更します。

マイコンボード設定 => Arduino Uno
シリアルポート => /dev/tty.usbserial

初期状態の周辺部品とI/Oピンの関係です。

Button 7
Light Sensor A0
Green LED 5
Blue LED 6
Red LED 3
Buzzer 2

Arduinoのプログラムを書きます。


int button = 7;
int buzzer = 2;
int light = A0;
int red = 3;
int blue = 6;
int green = 5;

void setup() 
{    
Serial.begin(9600);// シリアル通信のボーレート
pinMode(buzzer, OUTPUT);  
pinMode(red, OUTPUT);  
pinMode(green, OUTPUT);  
pinMode(blue, OUTPUT);
pinMode(button, INPUT);
}

これは簡単ですね。


digitalRead(button) == LOW;// ボタンの状態
digitalWrite(red, HIGH);// LED点灯
digitalWrite(buzzer, HIGH);// ブザー鳴らす
int temp = analogRead(light);// 光センサ値読み取り
Serial.println(temp);// シリアル通信

例えば、光センサは10bitで値が取れます。部屋の蛍光灯: 10~20, iPhoneのフラッシュ: 200~1000 でした。

Arduino言語は, 抽象化されている分, 今までに使ったことがある 78OR, SHマイコンより簡単でよかったです。
(国産マイコンも頑張って欲しいですが, そもそもターゲット層が違うのでしょうね)
ハードに触れる敷居が低くなるのはいいことだと思います。

先日, XBeeを頂いたのでつなげてみようと思います。