2013/02/16

iPhoneのアラームに連動して部屋の明かりを点ける装置(追記)

 去年作ったものの回路図とソースをアップ。全然たいしたものではないですが,記録を残す練習ということで。(iPhoneのアラームに連動して部屋の明かりを点ける装置のつづきです)

回路図

ソースコード
// iPhoneアラーム検知&サーボ制御(AVR ATTiny13A)
#include <avr/io.h>

int main(void)
{
 unsigned long i;
 unsigned char cnt;

 // IO設定
 DDRB = 0B00000001;
 // PWM設定
 TCCR0A = 0B10000011; // 8bit高速pwm
 TCCR0B = 0B00000011; // φ/64 = 1.2MHz/64 = 18.75kHz -> 0.053ms
 // 0.053ms * 255 = 13.6ms

 // A/D変換設定
 ADMUX = 0B00100010; // 基準電圧Vcc,左揃え(8bit),ADC2
 ADCSRA = 0B10100010; // A/D許可,自動起動許可,φ/4
 ADCSRA |= 1<<ADSC; // AD start

 OCR0A = 27; // スイッチOFF

 cnt = 0;
 for(i=0;i<100000;i++); // 接続時の誤動作対策
 while(cnt < 10){
  if(ADCH > 25){cnt ++;}
 }
 OCR0A = 37; // スイッチON
 while(1);
}
↑SyntaxHighlighter使ってみました。いい感じ!

 マイコンはAVRのATTiny13Aを使用。開発環境はAtmel Studio(旧AVR Studio)です。Visual Studioベースとなって,起動にやたらと時間がかかるとっても便利なソフトになりました。たぶん。

 Dockコネクタのピンアサインは下記のサイトを参考にしました。

 今回,iPhoneのDockコネクタから3.3 Vの電源を取りましたが,この3.3 Vは常に供給されているわけではないようです。確認できた範囲では,iPhoneの画面が表示されている間(スリープモードでもまれに数秒間供給される場合あり。タイミング不明)と,コネクタを繋いでから数秒間は3.3 Vが供給されていました。

 Dockコネクタの11番ピン(Audio Switch)をGNDに繋ぐと,3番・4番ピンから音がでるようになり,iPhoneの内蔵スピーカからはでなくなります。しかし,アラーム音だけは別で,3番・4番ピンと内臓スピーカの両方から音がでるようになっています。はじめはこの仕様を知らず,マイコンで音を検知したら11番ピンをオープンにするような回路にしないとダメかなと思っていたのですが,なんとも都合のいい仕様になってるもんです。
 なお,使用したiPhoneはiPhone 4SでiOSは5.1.1です。

 明かりが自動でつくのはいいのですが,毎回コネクタを繋ぐのがだんだん面倒になってきました…。しかも充電できないし。iPhoneアプリの自作はハードルが高そうなので,それ以外で,なんとかうまく無線でつなぐ方法ないかなあ。