SONYデジタルカメラ用のリモコン信号

SONYのデジタルカメラのリモコンが発する赤外線信号をマイコンでシミュレートしてみます。信号については、Googleで「SONY α リモコン 解析」等で検索した結果と、手持ちのリモコンの信号をオシロスコープで観測した波形を元にしました。

分かったこと。

  • 搬送波 … 38kHz
  • リーダー … ON 2.5ms、OFF 0.5ms
  • 信号0 … ON 0.6ms、OFF 0.6ms
  • 信号1 … ON 1.2ms、OFF 0.6ms
  • データ … 20ビット
  • トレイラー … OFF 10ms

リモコンのシャッターボタンを押すと、(リーダー)10110100101110001111(トレイラー)の順に送出される。詳しくは他のサイトをあたってください。

まとまったら、後日記事にします。AVRを使ったリモコンを作る計画。

とりあえずArduinoでプロトタイプを作成。

Arduino用スケッチ

void setup()
{
  pinMode(13, OUTPUT);     
}

void pulse(bool f)
{
  int i;
  if (f) {
    for (i = 0; i < 24; i++) {
      digitalWrite(13, HIGH);
      delayMicroseconds(4);
      digitalWrite(13, LOW);
      delayMicroseconds(14);
    }
  } else {
    for (i = 0; i < 24; i++) {
      digitalWrite(13, LOW);
      delayMicroseconds(4);
      digitalWrite(13, LOW);
      delayMicroseconds(14);
    }
  }
}

void sendleader()
{            
  int i;
  for (i = 0; i < 100; i++) {
      digitalWrite(13, HIGH);
      delayMicroseconds(4);
      digitalWrite(13, LOW);
      delayMicroseconds(14);
  }
  for (i = 0; i < 24; i++) {
      digitalWrite(13, LOW);
      delayMicroseconds(4);
      digitalWrite(13, LOW);
      delayMicroseconds(14);
  }
}

void sendtrailer()
{
  int i;
  for (i = 0; i < 400; i++) {
      digitalWrite(13, LOW);
      delayMicroseconds(4);
      digitalWrite(13, LOW);
      delayMicroseconds(14);
  }
}

void sendbit(bool f)
{
  if (f) {
    pulse(true);
  }
  pulse(true);
  pulse(false);
}
void sendcommand(unsigned char data, unsigned short addr)
{
  int i, c;
  c = data;
  for (i = 0; i < 7; i++) {
    sendbit(c & 1);
    c >>= 1;
  }
  c = addr;
  for (i = 0; i < 13; i++) {
    sendbit(c & 1);
    c >>= 1;
  }
}

void shutter()
{
  int i;
  for (i = 0; i < 5; i++) {
    sendleader();
    sendcommand(0x2d, 0x1e3a);
    sendtrailer();
  }
}
void loop()
{
  shutter();
  while (1);
}
カテゴリー: 未分類   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA(画像認証)

上の画像の最初と最後を除いた3桁の数字を入力して、送信ボタンを押してください。