時刻を「QRコード」で表示する時計を自作、QRコードで表示された“時間”を自力で読み取る方法を解説!
今回紹介するのは、ニコニコ動画に投稿された『【解説動画投稿祭】QRコードを肉眼で読み取ろう!』というきっちーさんの動画です。
投稿者メッセージ(動画説明文より)
解説動画投稿祭のことを昨日の夜に知ったので、ノリと勢いで動画作りました。意外と何とかなるんですね。
株式会社デンソーが開発した『QRコード』。スマホのカメラなどで読み込むと目当てのサイトに飛べるなど便利な二次元コードです。
投稿者のきっちーさんは、時刻をQRコードで表示する変わった時計を作りましたが、一つ問題点があります。それは……。
スマホを無くしてしまった時にQRコードが読めない
という欠点が存在します。
そんないざというときのために、きっちーさんがQRコードの読み方を解説してくれました。
今回は先ほど紹介したQRコードを例に使用します。
最初は紙で作られた部分に注目。まず「位置検出パターン」を見つけます。これによりQRコードの向きが決定。さらにその右と下側にある白黒の部分が「タイミングパターン」で1マスの大きさとQRコード全体のサイズが分かります。外周の余白はQRコードとして認識するために必要な部分となっています。
ここまではQRコードにエンコードされた時刻情報とは無関係です。ちなみにこの部分は変化しないので、LEDではなく紙で作っています。
オレンジ部分は型番やマスクパターンなどが表示されています。
ここからはメインの領域となり、時刻のデータが含まれています。この部分の読み方ですが、右下からスタートして2列ずつジグザグに読んでいきます。
54
32
1★
※★から開始し、以降は上記の数字の順番のように2列ずつ読んでいく
データの最初にはモードと呼ばれるものが書かれており、今回は0【※】なので数字モードであることが分かります。
※黒(消灯)=1だが、マスクで反転するのため0となる
4つの赤枠部分には、何ビットごとに確認すればいいかが表示されており、今回は1010【※】のため10ビットとなります。
※黒(1)、白(0)、黒(1)、黒・反転(0)
そのため、10ビットずつ読んでいきます。
コードを読み進めた結果、このQRコードが示す数字は1104214336となります。そのため、時計が表していた時刻は、11月4日21時43分36秒となります。
ちなみに、まだQRコードの読んでいない部分がありますが、隙間を埋める部分と誤り訂正符号と呼ばれるものが並んでいます。
今回の読み方を実践すれば、運悪くスマホを無くしていても問題なくQRコードを読むことが事実上可能に!?
最後は、一般的なQRコードの読み方を確認します。
緑の部分が位置検出パターンやタイミングパターンになります。そして、最初の4ビットを読むと8ビットモードであることが分かり、次の8ビットを確認すると今回のQRコードは文字数が40文字であることが分かります。
あとは8ビットずつジグザグに読んでいくと中身の文字列が見えてきます。今回のやり方を駆使すれば、事実上読み取ることができるようになっているはずなので、スマホを忘れた際には肉眼QRコード解読にチャレンジしてみてはいかがでしょうか!
視聴者のコメント
なるほどわからん
読めるかw
読める、読めるぞ・・・(グルグル目
見えてこない
ちょうど必要になったから助かるぜ
▼動画はこちらから視聴できます▼
『【解説動画投稿祭】QRコードを肉眼で読み取ろう!』
https://www.nicovideo.jp/watch/sm42984705
―あわせて読みたい―