54
51

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

仮面ライダードライブベルトの赤外線信号解析

Last updated at Posted at 2015-01-11

チビが毎日遊んでいる仮面ライダードライブのベルト。腕のブレスと腰ベルト間で赤外線通信をしているようなので、チビが寝静まった夜中に信号を解析してみました。音量の調節機能が無いので深夜に鳴り響くのが微妙に辛かったです(笑。

Arduinoでやろうかと思ったのですが、手元に赤外線の送受信モジュールがなかったので、今回はIRKITを利用しました。

使用したもの

プログラム

ヘッダー ON(10T)->OFF(1T)に続いて「0」の場合はON(3T)->OFF(1T), 「1」の場合はON(1T)->OFF(3T)という感じの12bitのコマンド。必殺ボタン?を押した場合は、コマンドにつづいて装着されているシフトカーコードを送っていました。

最初は11bit+ストップビット1bitで網羅できたようなの気がしていたのですが、手元の「タイプスピードのてれびくん版」は最終bitがON(3T)で、ON(1T)の場合は別のものが発動するためよくよく調べてみると12bitのようでした。

どちらかというと最終bitが「1」の場合は一般的のもの、「0」の場合は「ウルトラ〜」のようなレアバージョンのコードが多いようですので、試してみると良いかと。

IRKITではon/off切り替え時間を送る方式なので取得したデータを元に調整してあります。おもちゃなのでそれほど厳密では無いとは思います。

さくっとcurlを呼んでいるので、コマンドラインを使いたく無い場合はnet/httpとかで書き換えると良いかと思います。

def makeIRData(code)
  bit0 = "3013,1073"
  bit1 = "1073,3013"
  bit_start = "11529,1111"
  data = bit_start
  code.chars{|ch|
    data += "," + bit0 if ch == '0'
    data += "," + bit1 if ch == '1'
  }
  data
end

def sendIRData(ip, code, hissatsu = false)
  if hissatsu
    # 必殺!
    data = makeIRData("001111111111")
    cmd = "curl -s \"http://#{ip}/messages\" -d '{\"format\":\"raw\",\"freq\":38,\"data\":[#{data}]}'"
    `#{cmd}`
    sleep(5)
  end
  data = makeIRData(code)
  cmd = "curl -s \"http://#{ip}/messages\" -d '{\"format\":\"raw\",\"freq\":38,\"data\":[#{data}]}'"
  `#{cmd}`
end

使用例

# IRKITが192.168.1.107にあり、タイプスピードの信号を出す場合
sendIRData("192.168.1.107","001000001011",false)

# IRKITが192.168.1.107にあり、タイプスピードの必殺!信号を出す場合
sendIRData("192.168.1.107","001000001011",true)

#送出コード一覧

12bitです。思ったより反響が大きく、ネタバレに関する懸念もあるため公開コードを少なくしました。ヒントとして最後は1の場合は標準のもの、0はバリエーションをつけた特別バージョンが多いようです。(1/13更新)

特殊コード

コード 種類
000000000001 シフトカー脱着
000111111111 シフトカー挿入
001111111111 ボタン押し下げ(シフトカー有)→この後シフトカーコードを送出
001100000000 ボタン押し下げ(シフトカー無)

#連動

コード 種類
000000000011 ハンドル剣
000000000100 ドア銃

##シフトカー

コード 種類
001000001011 タイプスピード
001000001101 タイプワイルド
001000001111 タイプテクニック
001000011011 タイプフルーツ
001000011101 タイプスペシャル

##タイヤ交換

コード 種類
001000101001 マックスフレア
001000101011 ファンキースパイク
001000101101 ミッドナイトシャドー
001000101111 ジャスティスハンター
001000110001 ドリームベガス
001000110011 ディメンションキャブ
001000110101 マシンモンスター
001000110111 ダンブルダンプ
001000111001 マッドドクター
001000111011 バーニングソーラー
001000111101 カラフルコマーシャル
001000111111 フッキングレッカー
001001000001 ファイヤーブレイバー
001001000011 ローリンググラビティ
001001000101 スピンミキサー
001001000111 デコトラベラー
001001001001 ロードウィンター
001001001011 アメージングサーカス

##その他?

コード 種類
001001110011 タイプスピード - テレマーカー
001001110101 メガマックスフレア - ようちえん
001001110100 ハイスピード - てれびくん 
001001110111 スペシャルカー

##謎?

コード 種類
001110001011 ライダー
001110110111 クウガ―

#ごにょごにょ

子供がシフトカーを集めるのも楽しみかと思うので、飽き始めた頃にこれで親の技術力をみせつけてあげると良いかと思います。「カラフルコマーシャル出して!」とか言われると結構めんどくさいので要注意です(笑。

あと、手元に無いので挙動がわからないのですがハンドル剣とかからも信号受け取るようなので、まだまだコマンドはあるかと思います。→追記しました(1/17)

54
51
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
51

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?