LoginSignup
0
1

More than 5 years have passed since last update.

点字をデータ化

Last updated at Posted at 2018-09-09

点字(指点字)のプログラムを作成しようと思い、点字の資料を探してみましたが、画像では結構見つかるもののデータ化されているものが見あたりませんでした。
そこで、こちらのサイトを参考にデータ化しました。
まだ作りはじめたばかりで足りない部分や間違った部分もあるかと思いますので、随時GitHubで修正を行っていく予定です

brille6data.h
#ifndef __BRAILLE6DATA_H
#define __BRAILLE6DATA_H
#include <avr/pgmspace.h>

typedef struct FBraille
{
   char keyJ[];
   char keyR[];
   uint16_t code;
} FBraille;

uint16_t BrailleToFinger(uint16_t _braille){
  uint16_t finger = 0;
  // (142536 = ) 543210 > 135420
  finger |= (((_braille>>(0+0))&1) << (0+0)); // 6>6
  finger |= (((_braille>>(1+0))&1) << (5+0)); // 3>3
  finger |= (((_braille>>(2+0))&1) << (1+0)); // 5>5
  finger |= (((_braille>>(3+0))&1) << (4+0)); // 2>2
  finger |= (((_braille>>(4+0))&1) << (2+0)); // 4>4
  finger |= (((_braille>>(5+0))&1) << (3+0)); // 1>1

  finger |= (((_braille>>(0+6))&1) << (0+6)); // 6>6
  finger |= (((_braille>>(1+6))&1) << (5+6)); // 3>3
  finger |= (((_braille>>(2+6))&1) << (1+6)); // 5>5
  finger |= (((_braille>>(3+6))&1) << (4+6)); // 2>2
  finger |= (((_braille>>(4+6))&1) << (2+6)); // 4>4
  finger |= (((_braille>>(5+6))&1) << (3+6)); // 1>1
  return finger;
}

const PROGMEM FBraille Braille[] = {
  {"あ", "a", ((B100<<3) + B000)},
  {"い", "i", (B101<<3) + B000},
  {"う", "i", (B110<<3) + B000},
  {"え", "i", (B111<<3) + B000},
  {"お", "i", (B011<<3) + B000},
  {"か", "ka", (B100<<3) + B001},
  {"き", "ki", (B101<<3) + B001},
  {"く", "ku", (B110<<3) + B001},
  {"け", "ke", (B111<<3) + B001},
  {"こ", "ko", (B011<<3) + B001},
  {"さ", "sa", (B100<<3) + B101},
  {"し", "si", (B101<<3) + B101},
  {"す", "su", (B110<<3) + B101},
  {"せ", "se", (B111<<3) + B101},
  {"そ", "so", (B011<<3) + B101},
  {"た", "ta", (B100<<3) + B110},
  {"ち", "ti", (B101<<3) + B110},
  {"つ", "tu", (B110<<3) + B110},
  {"て", "te", (B111<<3) + B110},
  {"と", "to", (B011<<3) + B110},
  {"な", "na", (B100<<3) + B010},
  {"に", "ni", (B101<<3) + B010},
  {"ぬ", "nu", (B110<<3) + B010},
  {"ね", "ne", (B111<<3) + B010},
  {"の", "no", (B011<<3) + B010},
  {"は", "ha", (B100<<3) + B011},
  {"ひ", "hi", (B101<<3) + B011},
  {"ふ", "hu", (B110<<3) + B011},
  {"へ", "he", (B111<<3) + B011},
  {"ほ", "ho", (B011<<3) + B011},
  {"ま", "ma", (B100<<3) + B111},
  {"み", "mi", (B101<<3) + B111},
  {"む", "mu", (B110<<3) + B111},
  {"め", "me", (B111<<3) + B111},
  {"も", "mo", (B011<<3) + B111},
  {"や", "ya", (B010<<3) + B100},
  {"ゆ", "yu", (B010<<3) + B011},
  {"よ", "yo", (B010<<3) + B110},
  {"ら", "ra", (B100<<3) + B100},
  {"り", "ri", (B101<<3) + B100},
  {"る", "ru", (B110<<3) + B100},
  {"れ", "re", (B111<<3) + B100},
  {"ろ", "ro", (B011<<3) + B100},
  {"わ", "wa", (B000<<3) + B010},
  {"を", "wo", (B000<<3) + B101},
  {"ん", "nn", (B000<<3) + B111},
  {"っ", "xtu", B001000},
  {"ー", "-", B001100},

  {"が", "ga", (B000100<<6) + (B100<<3) + B001},
  {"ぎ", "gi", (B000100<<6) + (B101<<3) + B001},
  {"ぐ", "gu", (B000100<<6) + (B110<<3) + B001},
  {"げ", "ge", (B000100<<6) + (B111<<3) + B001},
  {"ご", "go", (B000100<<6) + (B011<<3) + B001},
  {"ざ", "za", (B000100<<6) + (B100<<3) + B101},
  {"じ", "zi", (B000100<<6) + (B101<<3) + B101},
  {"ず", "zu", (B000100<<6) + (B110<<3) + B101},
  {"ぜ", "ze", (B000100<<6) + (B111<<3) + B101},
  {"ぞ", "zo", (B000100<<6) + (B011<<3) + B101},
  {"だ", "da", (B000100<<6) + (B100<<3) + B110},
  {"ぢ", "di", (B000100<<6) + (B101<<3) + B110},
  {"づ", "du", (B000100<<6) + (B110<<3) + B110},
  {"で", "de", (B000100<<6) + (B111<<3) + B110},
  {"ど", "do", (B000100<<6) + (B011<<3) + B110},
  {"ば", "ba", (B000100<<6) + (B100<<3) + B011},
  {"び", "bi", (B000100<<6) + (B101<<3) + B011},
  {"ぶ", "bu", (B000100<<6) + (B110<<3) + B011},
  {"べ", "be", (B000100<<6) + (B111<<3) + B011},
  {"ぼ", "bo", (B000100<<6) + (B011<<3) + B011},
  {"ぱ", "pa", (B000001<<6) + (B100<<3) + B011},
  {"ぴ", "pi", (B000001<<6) + (B101<<3) + B011},
  {"ぷ", "pu", (B000001<<6) + (B110<<3) + B011},
  {"ぺ", "pe", (B000001<<6) + (B111<<3) + B011},
  {"ぽ", "po", (B000001<<6) + (B011<<3) + B011},

  {"きゃ", "kya", (B010000<<6) + (B100<<3)+ B010},
  {"きゅ", "kyu", (B010000<<6) + (B110<<3)+ B010},
  {"きょ", "kyo", (B010000<<6) + (B011<<3)+ B010},
  {"しゃ", "sya", (B010000<<6) + (B100<<3)+ B101},
  {"しゅ", "syu", (B010000<<6) + (B110<<3)+ B101},
  {"しょ", "syo", (B010000<<6) + (B011<<3)+ B101},
  {"ちゃ", "tya", (B010000<<6) + (B100<<3)+ B110},
  {"ちゅ", "tyu", (B010000<<6) + (B110<<3)+ B110},
  {"ちょ", "tyo", (B010000<<6) + (B011<<3)+ B110},
  {"にゃ", "nya", (B010000<<6) + (B100<<3)+ B010},
  {"にゅ", "nyu", (B010000<<6) + (B110<<3)+ B010},
  {"にょ", "nyo", (B010000<<6) + (B011<<3)+ B010},
  {"ひゃ", "hya", (B010000<<6) + (B100<<3)+ B011},
  {"ひゅ", "hyu", (B010000<<6) + (B110<<3)+ B011},
  {"ひょ", "hyo", (B010000<<6) + (B011<<3)+ B011},
  {"みゃ", "mya", (B010000<<6) + (B100<<3)+ B111},
  {"みゅ", "myu", (B010000<<6) + (B110<<3)+ B111},
  {"みょ", "myo", (B010000<<6) + (B011<<3)+ B111},
  {"りゃ", "rya", (B010000<<6) + (B100<<3)+ B100},
  {"りゅ", "ryu", (B010000<<6) + (B110<<3)+ B100},
  {"りょ", "ryo", (B010000<<6) + (B011<<3)+ B100},

  {"ぎゃ", "gya", (B010100<<6) + (B100<<3)+ B001},
  {"ぎゅ", "gyu", (B010100<<6) + (B110<<3)+ B001},
  {"ぎょ", "gyo", (B010100<<6) + (B011<<3)+ B001},
  {"じゃ", "ja", (B010100<<6) + (B100<<3)+ B101},
  {"じゅ", "ju", (B010100<<6) + (B110<<3)+ B101},
  {"じょ", "jo", (B010100<<6) + (B011<<3)+ B101},
  {"びゃ", "bya", (B010100<<6) + (B100<<3)+ B011},
  {"びゅ", "byu", (B010100<<6) + (B110<<3)+ B011},
  {"びょ", "byo", (B010100<<6) + (B011<<3)+ B011},
  {"ぴゃ", "pya", (B010001<<6) + (B100<<3)+ B011},
  {"ぴゅ", "pyu", (B010001<<6) + (B110<<3)+ B011},
  {"ぴょ", "pyo", (B010001<<6) + (B011<<3)+ B011},

  {"いぇ", "ye", (B010000<<6)+ (B111<<3)+ B000},
  {"しぇ", "sxe", (B010000<<6)+ (B111<<3)+ B101},
  {"じぇ", "je", (B010100<<6)+ (B111<<3)+ B101},
  {"ちぇ", "cxe", (B010000<<6)+ (B111<<3)+ B110},
  {"うぃ,ゐ", "wi", (B001001<<6)+ (B101<<3)+ B000},
  {"うぇ,ゑ", "we", (B001001<<6)+ (B110<<3)+ B000},
  {"うぉ", "wo", (B001001<<6)+ (B011<<3)+ B000},
  {"くぁ", "kxa", (B001001<<6)+ (B100<<3)+ B001},
  {"くぃ", "kxi", (B001001<<6)+ (B101<<3)+ B001},
  {"くぇ", "kxe", (B001001<<6)+ (B111<<3)+ B001},
  {"くぉ", "kxo", (B001001<<6)+ (B011<<3)+ B001},
  {"ぐぁ", "gxa", (B001101<<6)+ (B100<<3)+ B001},
  {"つぁ", "txa", (B001001<<6)+ (B100<<3)+ B110},
  {"つぃ", "txi", (B001001<<6)+ (B101<<3)+ B110},
  {"つぇ", "txe", (B001001<<6)+ (B111<<3)+ B110},
  {"つぉ", "txo", (B001001<<6)+ (B011<<3)+ B110},
  {"ふぁ", "fa", (B001001<<6)+ (B100<<3)+ B011},
  {"ふぃ", "fi", (B001001<<6)+ (B101<<3)+ B011},
  {"ふぇ", "fe", (B001001<<6)+ (B111<<3)+ B011},
  {"ふぉ", "fo", (B001001<<6)+ (B011<<3)+ B011},
  {"ゔぁ", "va", (B001101<<6)+ (B100<<3)+ B011},
  {"ゔぃ", "vi", (B001101<<6)+ (B101<<3)+ B011},
  {"ゔぇ", "ve", (B001101<<6)+ (B111<<3)+ B011},
  {"ゔぉ", "vo", (B001101<<6)+ (B011<<3)+ B011},
  {"ゔ", "vu", (B000100<<6)+ (B110<<3)+ B000},
  {"てぃ", "txi", (B010000<<6)+ (B101<<3)+ B110},
  {"でぃ", "dxi", (B011000<<6)+ (B101<<3)+ B110},
  {"とぅ", "txu", (B001001<<6)+ (B110<<3)+ B110},
  {"どぅ", "dxu", (B010000<<6)+ (B110<<3)+ B110},
  {"てゅ", "tyu", (B010001<<6)+ (B110<<3)+ B110},
  {"でゅ", "dyu", (B010101<<6)+ (B110<<3)+ B110},
  {"ふゅ", "gxa", (B010001<<6)+ (B110<<3)+ B110},

  {"数", "NUM", B010111},
  {"0", "0", B011100},
  {"1", "1", B100000},
  {"2", "2", B101000},
  {"3", "3", B110000},
  {"4", "4", B110100},
  {"5", "5", B100100},
  {"6", "6", B111000},
  {"7", "7", B111100},
  {"8", "8", B101100},
  {"9", "9", B011000},
};

#endif //__BRAILLE6DATA_H
0
1
0

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
0
1