2023年12月04日11時45分 / 提供:ニコニコニュース
今回紹介するのは、ニコニコ動画に投稿された『【解説動画投稿祭】QRコードを肉眼で読み取ろう!』というきっちーさんの動画です。
投稿者メッセージ(動画説明文より)
解説動画投稿祭のことを昨日の夜に知ったので、ノリと勢いで動画作りました。意外と何とかなるんですね。
株式会社デンソーが開発した『QRコード』。スマホのカメラなどで読み込むと目当てのサイトに飛べるなど便利な二次元コードです。
投稿者のきっちーさんは、時刻をQRコードで表示する変わった時計を作りましたが、一つ問題点があります。それは……。
時刻をQRコードで表示する時計。LEDが仕込んであり、消灯と点灯で「時刻を示すQRコード」を表示してくれるようになっている。なお、時刻を確認する場合、わざわざカメラでQRコードを読み込む必要がある
スマホを無くしてしまった時にQRコードが読めない
という欠点が存在します。
こちらはマイクロQRコードと呼ばれる規格で、通常のQRコードと基本的な読み取り方は同じ
そんないざというときのために、きっちーさんがQRコードの読み方を解説してくれました。
今回は先ほど紹介したQRコードを例に使用します。
左上の大きな四角が「位置検出パターン」。これのおかげで、コードの上下左右を正しく認識できる
最初は紙で作られた部分に注目。まず「位置検出パターン」を見つけます。これによりQRコードの向きが決定。さらにその右と下側にある白黒の部分が「タイミングパターン」で1マスの大きさとQRコード全体のサイズが分かります。外周の余白はQRコードとして認識するために必要な部分となっています。
ここまではQRコードにエンコードされた時刻情報とは無関係です。ちなみにこの部分は変化しないので、LEDではなく紙で作っています。
黒(消灯)が1、白(点灯)が0を示す。オレンジ色の部分を→↑の順に読むので、この場所は「101101011110111」となる
オレンジ部分は型番やマスクパターンなどが表示されています。
色を塗ったマスの値を読むときは白黒を反転させて読む必要がある
ここからはメインの領域となり、時刻のデータが含まれています。この部分の読み方ですが、右下からスタートして2列ずつジグザグに読んでいきます。
54
32
1★
※★から開始し、以降は上記の数字の順番のように2列ずつ読んでいく
データの最初にはモードと呼ばれるものが書かれており、今回は0【※】なので数字モードであることが分かります。
※黒(消灯)=1だが、マスクで反転するのため0となる
4つの赤枠部分には、何ビットごとに確認すればいいかが表示されており、今回は1010【※】のため10ビットとなります。
※黒(1)、白(0)、黒(1)、黒・反転(0)
そのため、10ビットずつ読んでいきます。
※1秒以内に読まないと表示が変わってしまう
コードを読み進めた結果、このQRコードが示す数字は1104214336となります。そのため、時計が表していた時刻は、11月4日21時43分36秒となります。
ちなみに、まだQRコードの読んでいない部分がありますが、隙間を埋める部分と誤り訂正符号と呼ばれるものが並んでいます。
今回の読み方を実践すれば、運悪くスマホを無くしていても問題なくQRコードを読むことが事実上可能に!?
最後は、一般的なQRコードの読み方を確認します。
左上、右上、左下に四角があることで、万一QRコードをカメラで逆さに読んでしまった場合でも正しく読み取ることができる
緑の部分が位置検出パターンやタイミングパターンになります。そして、最初の4ビットを読むと8ビットモードであることが分かり、次の8ビットを確認すると今回のQRコードは文字数が40文字であることが分かります。
上記のコードは http://www.nicovideo.jp/mylist/69214758 を示す。1個前のコードを実際に読み取ることでこのURLに飛べる
あとは8ビットずつジグザグに読んでいくと中身の文字列が見えてきます。今回のやり方を駆使すれば、事実上読み取ることができるようになっているはずなので、スマホを忘れた際には肉眼QRコード解読にチャレンジしてみてはいかがでしょうか!
視聴者のコメント
なるほどわからん
読めるかw
読める、読めるぞ・・・(グルグル目
見えてこない
ちょうど必要になったから助かるぜ
▼動画はこちらから視聴できます▼
『【解説動画投稿祭】QRコードを肉眼で読み取ろう!』
https://www.nicovideo.jp/watch/sm42984705
―あわせて読みたい―
・芝浦工大の鉄道研究会が作った自動改札装置がガチすぎる! 学祭で体験エリアに人を誘導する統合システムとしても機能
・ホロライブのVTuber・獅白ぼたんの「ししろんゴーグル」を電子工作を駆使して作ってみた!