04.CoreInkで日本語表示と単語帳


4.CoreInkで日本語表示と単語帳

efontライブラリのインストール

  1. Arduino IDE > スケッチ > ライブラリをインクルード > ライブラリを管理
  2. 「efont」を検索 > efont Unicode Font Data by TANAKA Masayukiをインストール(Ver1.04でした) > 閉じる
文字種ヘッダ名字数サイズ
(kB)
すべてefontEnableAll.h22k739
アスキーefontEnableAscii.h0.2k6
CJK漢字efontEnableCJK.h19k659
日本語efontEnableJa.h11k368
日本語ミニefontEnableJaMini.h4k140
中国語簡体字efontEnableCn.h18k615
中国語繁体字efontEnableTw.h14k461
韓国語efontEnableKr.h8k283
* https://github.com/tanakamasayuki/efontより

関数 printEfont(スプライト,文字,X,Y,サイズ,色);
  • スプライト:
  • 文字列:改行は\n
  • X,Y:カーソル位置。XとYに-1は前回のカーソル位置から描画(デフォルト)
  • サイズ:1=16ドット(デフォルト,1行12文字12行,行間を少し開けると1画面11行132文字,文字高さ約2mm)
    2=32ドット(1行6文字6行,行間を少し開けると1画面5行30文字,文字高さ約5mm)
  • 色:0=白地に黒字(デフォルト),
    1=黒地に白字
* 座標以下は省略可

スケッチ例
for (int i = 0; i <= 10; i++) {
  printEfont(&inkPageSprite, "こんにちは私は私ですよね\n", 0, 18 * i + 3, 1);
  // ( , 文字列, x, y, 16ドット(1行12字11行))
}
for (int i = 0; i <= 4; i++) {
  printEfont(&inkPageSprite, "私は私ですよ\n", 0, 41 * i + 3, 2);
  // ( , 文字列, x, y, 32ドット(1行6字5行))
}

注意点

  • 文字列中に自動改行すると字がずれ、行間が詰まっている。
  • 文字サイズが2種類しかない。
  • 16ドットでは字が少し小さく、32では大きい。
  • SDカードトラライブが無いので外部ファイルから読み込めない。
  • 電源をoffにすると、結果記録が残せない。

(参考)コクヨのキャンパスノートの罫幅
10mm極太横罫UL罫
8mm太横罫U罫
7mm普通横罫A罫
6mm中横罫B罫
5mm細横罫C罫
  • 高校の教科書は、10.5pt(3.7mm)~14pt(4.9mm)
  • 小学校の教科書は、22pt(7.7mm)~28pt(9.8mm)
  • 1ptは約0.35mm

中国語単語帳

  • 日本語→中国語→ピンイン→次の日本語を表示していく。
  • 画面は、類表示、単語一覧表示、1単語の表示画面があります。
  • 単語数は625語(メモリサイズから)
  • 学習記録は残せません。

操作

[1] 類表示時に
ボタンを上に回したら上の項目へ
ボタンを下に回したら下の項目へ
ボタンを押し込んだら[2]へ
上面ボタンを押したら何もしない
* タイトルはサイズ2,その下は半角・全角のサイズ1

[2] 単語一覧表示時に
ボタンを上に回したら前の面へ
ボタンを下に回したら次の面へ
ボタンを押し込んだら一覧表示の一番上の[3]へ
上面ボタンを押したら[1]へ
* サイズ1で表示

[3] 日本語表示時に
ボタンを上に回したら[2]へ
ボタンを下に回したら[4]へ
ボタンを押し込んだら
上面ボタンを押したら[1]へ
* サイズ2で表示

[4] 中国語も表示時に
ボタンを上に回したら[2]へ
ボタンを下に回したら[5]へ
ボタンを押し込んだら
上面ボタンを押したら[1]へ

[5] ピンインも表示時に
ボタンを上に回したら[2]へ
ボタンを下に回したら次の単語の[3]へ
ボタンを押し込んだら
上面ボタンを押したら[1]へ


スケッチ


// 単語は4類の途中まで
// 全てにクリック音を出したい
// 数値を表示したい
#include <M5CoreInk.h>            // 
//#include "efontEnableAll.h"     // all        739kB
#include "efontEnableJa.h"        // 日本語     368kB
//#include "efontEnableJaMini.h"  // 日本語ミニ 140kB
#include "efontEnableCn.h"        // 中国簡体字 615kB
#include "efont.h"                // この前にfont範囲を書く
#include "efontM5StackCoreInk.h"  // 
Ink_Sprite inkPageSprite(&M5.M5Ink);  //
int RuiNO = 1;         // 類番号1-6
char hanten[6] = "0";  // 類表示の選択,0=非反転,1=反転
int kosuumen = 9;      // 一覧1面内の個数
int Mmode = 5;         // 1=一覧,2=日本語,3=中国語,4=ピンイン,5=類表示時
int TangoNO = 1;       // 単語番号
int TangoSuu = 625;    // 単語数

char koumoku[625][4][43] = {  // [単語数][4項目][14文字*3]
  {"1", "爱", "ài", "愛する"},  // (1)
  {"2", "八", "bā", "八"},
  {"3", "爸爸", "bàba", "お父さん"},
  {"4", "杯子", "bēizi", "コップ"},
  {"5", "北京", "běijīng", "北京"},
  {"6", "本", "běn", "ノート"},
  {"7", "不", "bù", "ではありません(否定)"},
  {"8", "不客气", "bù kèqì", "どういたしまして"},
  {"9", "菜", "cài", "料理"},
  {"10", "茶", "chá", "お茶"},
  {"11", "吃", "chī", "食べる"},
  {"12", "出租车", "chūzū chē", "タクシー"},
  {"13", "打电话", "dǎ diànhuà", "電話をする"},
  {"14", "大", "dà", "大きい"},
  {"15", "的", "de", "の"},
  {"16", "点", "diǎn", "点、時"},
  {"17", "电脑", "diànnǎo", "パソコン"},
  {"18", "电视", "diànshì", "テレビ"},
  {"19", "电影", "diànyǐng", "映画"},
  {"20", "东西", "dōngxī", "事、物"},
  {"21", "都", "dōu", "全て"},
  {"22", "读", "dú", "読む"},
  {"23", "对不起", "duìbùqǐ", "すみません"},
  {"24", "多", "duō", "もっと"},
  {"25", "多少", "duōshǎo", "どの位"},
  {"26", "儿子", "érzi", "息子"},
  {"27", "二", "èr", "二つ"},
  {"28", "饭馆", "fànguǎn", "レストラン"},
  {"29", "飞机", "fēijī", "航空機"},
  {"30", "分钟", "fēnzhōng", "分"},
  {"31", "高兴", "gāoxìng", "幸せ、嬉しい"},
  {"32", "个", "gè", "個"},
  {"33", "工作", "gōngzuò", "仕事"},
  {"34", "狗", "gǒu", "犬"},
  {"35", "汉语", "hànyǔ", "中国語"},
  {"36", "好", "hǎo", "良い、とても"},
  {"37", "喝", "hē", "飲む"},
  {"38", "和", "hé", "と"},
  {"39", "很", "hěn", "非常に"},
  {"40", "后面", "hòumiàn", "後ろ"},
  {"41", "回", "huí", "帰る"},
  {"42", "会", "huì", "できる"},
  {"43", "火车站", "huǒchē zhàn", "鉄道駅"},
  {"44", "几", "jǐ", "どのくらい"},
  {"45", "家", "jiā", "家"},
  {"46", "叫", "jiào", "呼ぶ"},
  {"47", "今天", "jīntiān", "今日"},
  {"48", "九", "jiǔ", "九つ"},
  {"49", "开", "kāi", "開ける"},
  {"50", "看", "kàn", "見る"},
  {"51", "看见", "kànjiàn", "見かける"},
  {"52", "块", "kuài", "塊"},
  {"53", "来", "lái", "来る"},
  {"54", "老师", "lǎo shī", "教師"},
  {"55", "了", "le", "過去形を表す"},
  {"56", "冷", "lěng", "冷たい"},
  {"57", "里", "lǐ", "〜の中"},
  {"58", "零", "líng", "ゼロ"},
  {"59", "六", "liù", "六"},
  {"60", "妈妈", "māmā", "お母さん"},
  {"61", "吗", "ma", "疑問を表す"},
  {"62", "买", "mǎi", "購入する"},
  {"63", "猫", "māo", "猫"},
  {"64", "没", "méi", "ではない(過去形の否定)"},
  {"65", "没关系", "méiguānxì", "気にしないで"},
  {"66", "米饭", "mǐfàn", "米"},
  {"67", "明天", "míngtiān", "明日"},
  {"68", "名字", "míngzì", "名前"},
  {"69", "哪", "nǎ", "どの、どんな"},
  {"70", "哪儿", "nǎ\'er", "どこ"},  // 特殊文字の'は\'にする
  {"71", "那", "nà", "その"},
  {"72", "那儿", "nà\'er", "そこ"},
  {"73", "呢", "ne", "疑問を表す表現"},
  {"74", "能", "néng", "できる"},
  {"75", "你", "nǐ", "あなた"},
  {"76", "年", "nián", "年"},
  {"77", "女儿", "nǚ\'ér", "娘"},
  {"78", "朋友", "péngyǒu", "友人"},
  {"79", "漂亮", "piàoliang", "美しい"},
  {"80", "苹果", "píngguǒ", "リンゴ"},
  {"81", "七", "qī", "七"},
  {"82", "钱", "qián", "お金"},
  {"83", "前面", "qiánmiàn", "前"},
  {"84", "请", "qǐng", "してください"},
  {"85", "去", "qù", "行く"},
  {"86", "热", "rè", "熱い"},
  {"87", "人", "rén", "人々"},
  {"88", "认识", "rènshì", "知っている"},
  {"89", "日", "rì", "日"},
  {"90", "三", "sān", "三つ"},
  {"91", "商店", "shāngdiàn", "お店"},
  {"92", "上", "shàng", "上の"},
  {"93", "上午", "shàngwǔ", "朝"},
  {"94", "少", "shǎo", "少ない"},
  {"95", "谁", "shéi", "誰"},
  {"96", "什么", "shénme", "何"},
  {"97", "十", "shí", "十"},
  {"98", "时候", "shíhòu", "~の時"},
  {"99", "是", "shì", "~である"},
  {"100", "书", "shū", "本"},
  {"101", "水", "shuǐ", "水"},
  {"102", "水果", "shuǐguǒ", "果物"},
  {"103", "睡觉", "shuìjiào", "寝る"},
  {"104", "说话", "shuōhuà", "話す"},
  {"105", "四", "sì", "四"},
  {"106", "岁", "suì", "歳"},
  {"107", "他", "tā", "彼"},
  {"108", "她", "tā", "彼女"},
  {"109", "太", "tài", "かなり"},
  {"110", "天气", "tiānqì", "天気"},
  {"111", "听", "tīng", "聞く"},
  {"112", "同学", "tóngxué", "同級生"},
  {"113", "喂", "wèi", "もしもし"},
  {"114", "我", "wǒ", "私"},
  {"115", "我们", "wǒmen", "私たち"},
  {"116", "五", "wǔ", "五"},
  {"117", "喜欢", "xǐhuān", "好き"},
  {"118", "下", "xià", "下"},
  {"119", "下午", "xià wǔ", "午後"},
  {"120", "下雨", "xià yǔ", "雨が降る"},
  {"121", "先生", "xiānshēng", "〜さん"},
  {"122", "现在", "xiànzài", "今"},
  {"123", "想", "xiǎng", "したい"},
  {"124", "小", "xiǎo", "小さな"},
  {"125", "小姐", "xiǎojiě", "若い女性"},
  {"126", "些", "xiē", "一部"},
  {"127", "写", "xiě", "書く"},
  {"128", "谢谢", "xièxiè", "ありがとう"},
  {"129", "星期", "xīngqí", "週"},
  {"130", "学生", "xuéshēng", "学生"},
  {"131", "学习", "xuéxí", "勉強する"},
  {"132", "学校", "xuéxiào", "学校"},
  {"133", "一", "yī", "1"},
  {"134", "衣服", "yīfú", "服"},
  {"135", "医生", "yīshēng", "医者"},
  {"136", "医院", "yīyuàn", "病院"},
  {"137", "椅子", "yǐzi", "椅子"},
  {"138", "有", "yǒu", "持っている"},
  {"139", "月", "yuè", "月"},
  {"140", "在", "zài", "どこどこで"},
  {"141", "再见", "zàijiàn", "さようなら"},
  {"142", "怎么", "zěnme", "どのように"},
  {"143", "怎么样", "zěnme yàng", "どうですか?"},
  {"144", "这", "zhè", "これ"},
  {"145", "这儿", "zhè\'er", "ここに"},
  {"146", "中国", "zhōngguó", "中国"},
  {"147", "中午", "zhōngwǔ", "正午"},
  {"148", "住", "zhù", "住んでいる"},
  {"149", "桌子", "zhuōzi", "机"},
  {"150", "字", "zì", "字"},
  {"151", "昨天", "zuótiān", "昨日"},
  {"152", "做", "zuò", "する"},
  {"153", "坐", "zuò", "座る"},
  {"154", "吧", "ba", "でしょ?"},  // (2)
  {"155", "白", "bái", "白"},
  {"156", "百", "bǎi", "百"},
  {"157", "帮助", "bāngzhù", "助ける"},
  {"158", "报纸", "bàozhǐ", "新聞"},
  {"159", "比", "bǐ", "比較して"},
  {"160", "别", "bié", "しないでください"},
  {"161", "长", "zhǎng", "長い"},
  {"162", "唱歌", "chànggē", "歌を歌う"},
  {"163", "出", "chū", "出る"},
  {"164", "穿", "chuān", "着る"},
  {"165", "船", "chuán", "船"},
  {"166", "次", "cì", "次"},
  {"167", "从", "cóng", "〜から"},
  {"168", "错", "cuò", "間違う"},
  {"169", "打篮球", "dǎ lánqiú", "バスケットボールをする"},
  {"170", "大家", "dàjiā", "みんな"},
  {"171", "但是", "dànshì", "しかし"},
  {"172", "到", "dào", "〜へ"},
  {"173", "得", "dé", "得る"},
  {"174", "等", "děng", "待つ"},
  {"175", "弟弟", "dìdì", "弟"},
  {"176", "第一", "dì yī", "最初の"},
  {"177", "懂", "dǒng", "分かった"},
  {"178", "对", "duì", "正しい"},
  {"179", "房间", "fángjiān", "部屋"},
  {"180", "非常", "fēicháng", "非常に"},
  {"181", "服务员", "fúwùyuán", "店員"},
  {"182", "高", "gāo", "高い"},
  {"183", "告诉", "gàosù", "伝える"},
  {"184", "哥哥", "gēgē", "兄"},
  {"185", "给", "gěi", "与える"},
  {"186", "公共汽车", "gōnggòng qìchē", "バス"},
  {"187", "公斤", "gōngjīn", "kg キログラム"},
  {"188", "公司", "gōngsī", "会社"},
  {"189", "贵", "guì", "値段が高い"},
  {"190", "过", "guò", "過ぎる"},
  {"191", "还", "hái", "さらに"},
  {"192", "孩子", "háizi", "子供"},
  {"193", "好吃", "hào chī", "美味しい"},
  {"194", "号", "hào", "番号"},
  {"195", "黑", "hēi", "黒"},
  {"196", "红", "hóng", "赤"},
  {"197", "欢迎", "huānyíng", "歓迎する"},
  {"198", "回答", "huídá", "答える"},
  {"199", "机场", "jīchǎng", "空港"},
  {"200", "鸡蛋", "jīdàn", "卵"},
  {"201", "件", "jiàn", "着(上着類の数を数える)"},
  {"202", "教室", "jiàoshì", "教室"},
  {"203", "姐姐", "jiějiě", "お姉ちゃん"},
  {"204", "介绍", "jièshào", "紹介する"},
  {"205", "进", "jìn", "入る"},
  {"206", "近", "jìn", "近い"},
  {"207", "就", "jiù", "すぐに"},
  {"208", "觉得", "juédé", "思う、感じる"},
  {"209", "咖啡", "kāfēi", "コーヒー"},
  {"210", "开始", "kāishǐ", "始める"},
  {"211", "考试", "kǎoshì", "試験"},
  {"212", "可能", "kěnéng", "かもしれない"},
  {"213", "可以", "kěyǐ", "できる"},
  {"214", "课", "kè", "授業"},
  {"215", "快", "kuài", "速い"},
  {"216", "快乐", "kuàilè", "幸せ"},
  {"217", "累", "lèi", "疲れる"},
  {"218", "离", "lí", "〜から"},
  {"219", "两", "liǎng", "二つ"},
  {"220", "路", "lù", "道路"},
  {"221", "旅游", "lǚyóu", "旅行"},
  {"222", "卖", "mài", "売る"},
  {"223", "慢", "màn", "遅い"},
  {"224", "忙", "máng", "忙しい"},
  {"225", "每", "měi", "それぞれ、各々"},
  {"226", "妹妹", "mèimei", "妹"},
  {"227", "门", "mén", "扉"},
  {"228", "男人", "nánrén", "男"},
  {"229", "您", "nín", "あなた(敬語)"},
  {"230", "牛奶", "niúnǎi", "牛乳"},
  {"231", "女人", "nǚrén", "女"},
  {"232", "旁边", "pángbiān", "隣"},
  {"233", "跑步", "pǎobù", "走る"},
  {"234", "便宜", "piányí", "安い"},
  {"235", "票", "piào", "チケット"},
  {"236", "妻子", "qīzi", "妻"},
  {"237", "起床", "qǐchuáng", "起きる"},
  {"238", "千", "qiān", "千"},
  {"239", "晴", "qíng", "明確な"},
  {"240", "去年", "qùnián", "昨年"},
  {"241", "让", "ràng", "させる"},
  {"242", "上班", "shàngbān", "出勤する"},
  {"243", "身体", "shēntǐ", "体"},
  {"244", "生病", "shēngbìng", "病気になる"},
  {"245", "生日", "shēngrì", "誕生日"},
  {"246", "时间", "shíjiān", "時間"},
  {"247", "事情", "shìqíng", "事"},
  {"248", "手表", "shǒubiǎo", "腕時計"},
  {"249", "手机", "shǒujī", "携帯電話"},
  {"250", "送", "sòng", "送る、届ける"},
  {"251", "所以", "suǒyǐ", "だから"},
  {"252", "它", "tā", "それは"},
  {"253", "踢足球", "tī zúqiú", "サッカーをする"},
  {"254", "题", "tí", "書き記す"},
  {"255", "跳舞", "tiàowǔ", "ダンス"},
  {"256", "外", "wài", "外"},
  {"257", "完", "wán", "完成する"},
  {"258", "玩", "wán", "遊ぶ"},
  {"259", "晚上", "wǎnshàng", "夜"},
  {"260", "为什么", "wèishéme", "なぜ"},
  {"261", "问", "wèn", "尋ねる"},
  {"262", "问题", "wèntí", "問題"},
  {"263", "西瓜", "xī guā", "スイカ"},
  {"264", "希望", "xīwàng", "望む"},
  {"265", "洗", "xǐ", "洗う"},
  {"266", "向", "xiàng", "へ"},
  {"267", "小时", "xiǎoshí", "時間"},
  {"268", "笑", "xiào", "笑う"},
  {"269", "新", "xīn", "新しい"},
  {"270", "姓", "xìng", "姓、名字"},
  {"271", "休息", "xiūxí", "休憩"},
  {"272", "雪", "xuě", "雪"},
  {"273", "颜色", "yánsè", "色"},
  {"274", "眼睛", "yǎnjīng", "目"},
  {"275", "羊肉", "yángròu", "羊肉"},
  {"276", "药", "yào", "薬"},
  {"277", "要", "yào", "要求する"},
  {"278", "也", "yě", "さらに"},
  {"279", "已经", "yǐjīng", "もう既に"},
  {"280", "一起", "yīqǐ", "一緒に"},
  {"281", "意思", "yìsi", "意味"},
  {"282", "阴", "yīn", "陰"},
  {"283", "因为", "yīnwèi", "なぜなら"},
  {"284", "游泳", "yóuyǒng", "泳ぐ"},
  {"285", "右边", "yòubiān", "右"},
  {"286", "鱼", "yú", "魚"},
  {"287", "元", "yuán", "中国のお金の単位"},
  {"288", "远", "yuǎn", "遠い"},
  {"289", "运动", "yùndòng", "運動"},
  {"290", "再", "zài", "再び"},
  {"291", "早上", "zǎoshang", "朝"},
  {"292", "张", "zhāng", "枚"},
  {"293", "丈夫", "zhàngfū", "夫"},
  {"294", "找", "zhǎo", "探す"},
  {"295", "着", "zhe", "着る"},
  {"296", "真", "zhēn", "本当に"},
  {"297", "正在", "zhèng zài", "まさに〜している"},
  {"298", "知道", "zhīdào", "知っている"},
  {"299", "准备", "zhǔnbèi", "準備をする"},
  {"300", "自行车", "zìxíngchē", "自転車"},
  {"301", "走", "zǒu", "歩く"},
  {"302", "最", "zuì", "最も"},
  {"303", "左边", "zuǒbiān", "左"},
  {"304", "昨天", "zuótiān", "昨日"},
  {"305", "做", "zuò", "する"},
  {"306", "坐", "zuò", "座る"},
  {"307", "阿姨", "āyí", "叔母さん"},  // (3)
  {"308", "啊", "a", "はい,ええ"},
  {"309", "矮", "ǎi", "短い"},
  {"310", "爱好", "àihào", "趣味"},
  {"311", "安静", "ānjìng", "静か"},
  {"312", "把", "bǎ", "握る、つかむ"},
  {"313", "班", "bān", "授業"},
  {"314", "搬", "bān", "動く、運ぶ"},
  {"315", "半", "bàn", "半分"},
  {"316", "办法", "bànfǎ", "方法"},
  {"317", "办公室", "bàngōngshì", "事務所"},
  {"318", "帮忙", "bāngmáng", "助ける"},
  {"319", "包", "bāo", "包む"},
  {"320", "饱", "bǎo", "満腹"},
  {"321", "北方", "běifāng", "北"},
  {"322", "被", "bèi", "〜によって〜される"},
  {"323", "鼻子", "bízi", "鼻"},
  {"324", "比较", "bǐjiào", "比較する"},
  {"325", "比赛", "bǐsài", "試合"},
  {"326", "必须", "bìxū", "しなければならない"},
  {"327", "变化", "biànhuà", "変化"},
  {"328", "表示", "biǎoshì", "表現する"},
  {"329", "表演", "biǎoyǎn", "演じる"},
  {"330", "别人", "biérén", "別の人"},
  {"331", "宾馆", "bīnguǎn", "ゲストハウス"},
  {"332", "冰箱", "bīngxiāng", "冷蔵庫"},
  {"333", "才", "cái", "〜だけ"},
  {"334", "菜单", "càidān", "メニュー表"},
  {"335", "参加", "cānjiā", "参加する"},
  {"336", "草", "cǎo", "草"},
  {"337", "层", "céng", "層、階"},
  {"338", "差", "chà", "違い"},
  {"339", "超市", "chāoshì", "スーパーマーケット"},
  {"340", "衬衫", "chènshān", "シャツ"},
  {"341", "成绩", "chéngjī", "成績"},
  {"342", "城市", "chéngshì", "街"},
  {"343", "迟到", "chídào", "遅れる"},
  {"344", "出现", "chūxiàn", "現れる"},
  {"345", "厨房", "chúfáng", "キッチン"},
  {"346", "除了", "chúle", "〜以外、〜を除いて"},
  {"347", "春", "chūn", "春"},
  {"348", "词语", "cíyǔ", "単語"},
  {"349", "聪明", "cōngmíng", "賢い"},
  {"350", "打扫", "dǎsǎo", "掃除する"},
  {"351", "打算", "dǎsuàn", "するつもり"},
  {"352", "带", "dài", "持って"},
  {"353", "担心", "dānxīn", "心配"},
  {"354", "蛋糕", "dàngāo", "ケーキ"},
  {"355", "当然", "dāngrán", "当然、もちろん"},
  {"356", "地", "de", "地面"},
  {"357", "灯", "dēng", "光"},
  {"358", "低", "dī", "低い"},
  {"359", "地方", "dìfāng", "場所"},  // 85%残193k
  {"360", "地铁", "dìtiě", "地下鉄"},
  {"361", "地图", "dìtú", "地図"},
  {"362", "电梯", "diàntī", "エレベーター"},
  {"363", "电子邮件", "diànzǐ yóujiàn", "Eメール"},
  {"364", "东", "dōng", "東"},
  {"365", "冬", "dōng", "冬"},
  {"366", "动物", "dòngwù", "動物"},
  {"367", "短", "duǎn", "短い"},
  {"368", "段", "duàn", "長いものの一部分を数える量詞"},
  {"369", "锻炼", "duànliàn", "鍛える、鍛錬"},
  {"370", "多么", "duōme", "どのように"},
  {"371", "饿", "è", "空腹"},
  {"372", "而且", "érqiě", "さらに"},
  {"373", "耳朵", "ěrduǒ", "耳"},
  {"374", "发烧", "fāshāo", "熱"},
  {"375", "发现", "fāxiàn", "発見"},
  {"376", "方便", "fāngbiàn", "便利"},
  {"377", "放", "fàng", "離す、入れる"},
  {"378", "放心", "fàngxīn", "安心する"},
  {"379", "分", "fēn", "分割"},
  {"380", "附近", "fùjìn", "近く"},
  {"381", "复习", "fùxí", "復習する"},
  {"382", "干净", "gānjìng", "清潔"},
  {"383", "敢", "gǎn", "敢えて"},
  {"384", "感冒", "gǎnmào", "風邪をひく"},
  {"385", "刚才", "gāngcái", "さっき"},
  {"386", "跟", "gēn", "とともに"},
  {"387", "根据", "gēnjù", "〜によると"},
  {"388", "更", "gèng", "もっと"},
  {"389", "公园", "gōngyuán", "公園"},
  {"390", "故事", "gùshì", "物語"},
  {"391", "刮风", "guā fēng", "風が吹く"},
  {"392", "关", "guān", "閉める"},
  {"393", "关系", "guānxì", "関係"},
  {"394", "关心", "guānxīn", "関心を持つ"},
  {"395", "关于", "guānyú", "に関して"},
  {"396", "国家", "guójiā", "国"},
  {"397", "果汁", "guǒzhī", "フルーツジュース"},
  {"398", "过去", "guòqù", "過去"},
  {"399", "还是", "háishì", "やはり、依然として"},
  {"400", "害怕", "hàipà", "恐れて"},
  {"401", "河", "hé", "川"},
  {"402", "黑板", "hēibǎn", "黒板"},
  {"403", "护照", "hùzhào", "パスポート"},
  {"404", "花", "huā", "花"},
  {"405", "花园", "huāyuán", "庭園"},
  {"406", "画", "huà", "絵"},
  {"407", "坏", "huài", "悪い"},
  {"408", "还", "hái", "さらに"},
  {"409", "环境", "huánjìng", "環境"},
  {"410", "换", "huàn", "変える"},
  {"411", "黄", "huáng", "黄色"},
  {"412", "会议", "huìyì", "会議"},
  {"413", "或者", "huòzhě", "もしくは"},
  {"414", "几乎", "jīhū", "ほとんど"},
  {"415", "机会", "jīhuì", "機会"},
  {"416", "极", "jí", " 極み、頂点"},
  {"417", "记得", "jìdé", "思い出す"},
  {"418", "季节", "jìjié", "季節"},
  {"419", "检查", "jiǎnchá", "検査"},
  {"420", "简单", "jiǎndān", "簡単"},
  {"421", "健康", "jiànkāng", "健康"},
  {"422", "见面", "jiànmiàn", "会う"},
  {"423", "讲", "jiǎng", "話す"},
  {"424", "教", "jiào", "教える"},
  {"425", "脚", "jiǎo", "足"},
  {"426", "角", "jiǎo", "角度"},
  {"427", "接", "jiē", "連結する、つなぐ"},
  {"428", "街道", "jiēdào", "道"},
  {"429", "结婚", "jiéhūn", "結婚"},
  {"430", "结束", "jiéshù", "終わる"},
  {"431", "节目", "jiémù", "出し物、プログラム"},
  {"432", "节日", "jiérì", "休日"},
  {"433", "解决", "jiějué", "解決する"},
  {"434", "借", "jiè", "借りる"},
  {"435", "经常", "jīngcháng", "いつも、しょっちゅう"},
  {"436", "经过", "jīngguò", "経過する、過ぎる"},
  {"437", "经理", "jīnglǐ", "マネージャー"},
  {"438", "久", "jiǔ", "長い"},
  {"439", "旧", "jiù", "古い"},
  {"440", "举行", "jǔxíng", "執り行なう"},
  {"441", "句子", "jùzi", "文"},
  {"442", "决定", "juédìng", "決める"},
  {"443", "渴", "kě", "喉が渇く"},
  {"444", "可爱", "kě'ài", "愛らしい"},
  {"445", "刻", "kè", "4分の1"},
  {"446", "客人", "kèrén", "客、ゲスト"},
  {"447", "空调", "kòngtiáo", "空調"},
  {"448", "口", "kǒu", "口"},
  {"449", "哭", "kū", "泣く"},
  {"450", "裤子", "kùzi", "パンツ"},
  {"451", "筷子", "kuàizi", "箸"},
  {"452", "蓝", "lán", "青い"},
  {"453", "老", "lǎo", "老いている"},
  {"454", "离开", "líkāi", "去る、離れる"},
  {"455", "礼物", "lǐwù", "ギフト"},
  {"456", "历史", "lìshǐ", "歴史"},
  {"457", "脸", "liǎn", "顔"},
  {"458", "练习", "liànxí", "練習"},
  {"459", "辆", "liàng", "車"},
  {"460", "了解", "liǎojiě", "理解する"},
  {"461", "邻居", "línjū", "隣人"},
  {"462", "楼", "lóu", "床"},
  {"463", "绿", "lǜ", "緑"},
  {"464", "马", "mǎ", "馬"},
  {"465", "满意", "mǎnyì", "満足する"},
  {"466", "帽子", "màozi", "帽子"},
  {"467", "米", "mǐ", "メートル"},
  {"468", "面包", "miànbāo", "パン"},
  {"469", "面条", "miàntiáo", "麺"},
  {"470", "明白", "míngbái", "理解する"},
  {"471", "拿", "ná", "取る"},
  {"472", "奶奶", "nǎinai", "祖母"},
  {"473", "南", "nán", "南"},
  {"474", "难", "nán", "難しい"},
  {"475", "难过", "nánguò", "悲しい"},
  {"476", "年级", "niánjí", "学年"},
  {"477", "年轻", "niánqīng", "若い"},
  {"478", "鸟", "niǎo", "鳥"},
  {"479", "努力", "nǔlì", "努力"},
  {"480", "爬山", "páshān", "山に登る"},
  {"481", "盘子", "pánzi", "大皿"},
  {"482", "胖", "pàng", "太っている"},
  {"483", "啤酒", "píjiǔ", "ビール"},
  {"484", "葡萄", "pútáo", "葡萄"},
  {"485", "普通话", "pǔtōnghuà", "標準語"},
  {"486", "其实", "qíshí", "実際"},
  {"487", "其他", "qítā", "他の"},
  {"488", "骑", "qí", "乗る"},
  {"489", "铅笔", "qiānbǐ", "鉛筆"},
  {"490", "清楚", "qīngchǔ", "明確な"},
  {"491", "秋", "qiū", "秋"},
  {"492", "奇怪", "qíguài", "奇妙"},
  {"493", "裙子", "qúnzi", "スカート"},
  {"494", "然后", "ránhòu", "それから"},
  {"495", "热情", "rèqíng", "熱意"},
  {"496", "认为", "rènwéi", "思う"},
  {"497", "认真", "rènzhēn", "真剣"},
  {"498", "容易", "róngyì", "簡単"},
  {"499", "如果", "rúguǒ", "もし"},
  {"500", "伞", "sǎn", "傘"},
  {"501", "上网", "shàngwǎng", "インターネット"},
  {"502", "生气", "shēngqì", "怒る"},
  {"503", "声音", "shēngyīn", "音"},
  {"504", "使", "shǐ", "使う"},
  {"505", "世界", "shìjiè", "世界"},
  {"506", "瘦", "shòu", "やせている"},
  {"507", "舒服", "shūfú", "心地よい、快適"},
  {"508", "叔叔", "shūshu", "叔父"},
  {"509", "树", "shù", "木"},
  {"510", "数学", "shùxué", "数学"},
  {"511", "刷牙", "shuāyá", "歯磨き"},
  {"512", "双", "shuāng", "2つの、対の"},
  {"513", "水平", "shuǐpíng", "レベル、水準"},
  {"514", "司机", "sījī", "運転手"},
  {"515", "虽然", "suīrán", "〜にもかかわらず"},
  {"516", "太阳", "tàiyáng", "太陽"},
  {"517", "糖", "táng", "砂糖"},
  {"518", "特别", "tèbié", "特別な"},
  {"519", "疼", "téng", "痛み"},
  {"520", "提高", "tígāo", "上げる、高める"},
  {"521", "体育", "tǐyù", "体育"},
  {"522", "甜", "tián", "甘い"},
  {"523", "条", "tiáo", "細長い物を数える量詞"},
  {"524", "同事", "tóngshì", "同僚"},
  {"525", "同意", "tóngyì", "一致する"},
  {"526", "头发", "tóufǎ", "髪"},
  {"527", "突然", "túrán", "突然"},
  {"528", "图书馆", "túshū guǎn", "図書館"},
  {"529", "腿", "tuǐ", "足"},
  {"530", "完成", "wánchéng", "完成する"},
  {"531", "碗", "wǎn", "お椀"},
  {"532", "万", "wàn", "万"},
  {"533", "忘记", "wàngjì", "忘れる"},
  {"534", "为", "wèi", "のために"},
  {"535", "为了", "wèile", "するために"},
  {"536", "位", "wèi", "地位"},
  {"537", "文化", "wénhuà", "文化"},
  {"538", "西", "xī", "西"},
  {"539", "习惯", "xíguàn", "習慣"},
  {"540", "洗手间", "xǐshǒujiān", "トイレ"},
  {"541", "洗澡", "xǐzǎo", "入浴"},
  {"542", "夏", "xià", "夏"},
  {"543", "先", "xiān", "先、最初"},
  {"544", "香蕉", "xiāngjiāo", "バナナ"},
  {"545", "相同", "xiāngtóng", "同じ"},
  {"546", "相信", "xiāngxìn", "信じる"},
  {"547", "像", "xiàng", "のような"},
  {"548", "小心", "xiǎoxīn", "気を付ける"},
  {"549", "校长", "xiàozhǎng", "校長"},
  {"550", "鞋", "xié", "靴"},
  {"551", "新闻", "xīnwén", "ニュース"},
  {"552", "新鲜", "xīnxiān", "新鮮"},
  {"553", "信", "xìn", "手紙"},
  {"554", "行李箱", "xínglǐ xiāng", "トランクケース"},
  {"555", "兴趣", "xìngqù", "関心、興味"},
  {"556", "熊猫", "xióngmāo", "パンダ"},
  {"557", "需要", "xūyào", "必要"},
  {"558", "选择", "xuǎnzé", "選択する、選ぶ"},
  {"559", "眼镜", "yǎnjìng", "眼鏡"},
  {"560", "要求", "yāoqiú", "要求する"},
  {"561", "爷爷", "yéyé", "祖父"},
  {"562", "一定", "yīdìng", "絶対"},
  {"563", "一共", "yīgòng", "合計で、合わせて"},
  {"564", "一会儿", "yīhuǐ'er", "しばらく"},
  {"565", "一样", "yīyàng", "同じ、同様である"},
  {"566", "以后", "yǐhòu", "以後、その後"},
  {"567", "以前", "yǐqián", "以前、これまで"},
  {"568", "以为", "yǐwéi", "認める、考える"},
  {"569", "一般", "yībān", "一般的な"},
  {"570", "一边", "yībiān", "一方、片方"},
  {"571", "一直", "yīzhí", "真っすぐ"},
  {"572", "音乐", "yīnyuè", "音楽"},
  {"573", "银行", "yínháng", "銀行"},
  {"574", "应该", "yīnggāi", "すべき"},
  {"575", "影响", "yǐngxiǎng", "影響を及ぼす"},
  {"576", "用", "yòng", "使う"},
  {"577", "游戏", "yóuxì", "ゲーム"},
  {"578", "有名", "yǒumíng", "有名"},
  {"579", "又", "yòu", "また"},
  {"580", "遇到", "yù dào", "出会う"},
  {"581", "愿意", "yuànyì", "〜したいと思う、喜んで〜する"},
  {"582", "月亮", "yuèliàng", "月"},
  {"583", "越", "yuè", "越える"},
  {"584", "云", "yún", "雲"},
  {"585", "站", "zhàn", "駅"},
  {"586", "长", "zhǎng", "長い"},
  {"587", "着急", "zhāojí", "心配"},
  {"588", "照顾", "zhàogù", "世話"},
  {"589", "照片", "zhàopiàn", "写真"},
  {"590", "照相机", "zhàoxiàngjī", "カメラ"},
  {"591", "只", "zhǐ", "のみ"},
  {"592", "中间", "zhōngjiān", "真ん中"},
  {"593", "终于", "zhōngyú", "遂に、最終的に"},
  {"594", "种", "zhǒng", "種類"},
  {"595", "重要", "zhòngyào", "重要"},
  {"596", "周末", "zhōumò", "週末"},
  {"597", "主要", "zhǔyào", "主要"},
  {"598", "祝", "zhù", "祝う"},
  {"599", "注意", "zhùyì", "注意を払い"},
  {"600", "字典", "zìdiǎn", "辞書"},
  {"601", "自己", "zìjǐ", "自分の"},
  {"602", "总是", "zǒng shì", "いつも"},
  {"603", "最近", "zuìjìn", "最近"},
  {"604", "作业", "zuòyè", "宿題"},
  {"605", "作用", "zuòyòng", "作用"},
  {"606", "爱情", "àiqíng", "愛"}, // (4)途中まで
  {"607", "安排", "ānpái", "あんばいする、段取りをする"},
  {"608", "安全", "ānquán", "安全"},
  {"609", "暗", "àn", "暗い"},
  {"610", "按时", "ànshí", "時間通りに"},
  {"611", "按照", "ànzhào", "〜によると"},
  {"612", "包括", "bāokuò", "含む"},
  {"613", "保护", "bǎohù", "保護"},
  {"614", "保证", "bǎozhèng", "保証"},
  {"615", "抱", "bào", "抱える"},
  {"616", "抱歉", "bàoqiàn", "すみません"},
  {"617", "报道", "bàodào", "報道する"},
  {"618", "报名", "bàomíng", "登録する"},
  {"619", "倍", "bèi", "時間"},
  {"620", "本来", "běnlái", "本来、元々"},
  {"621", "笨", "bèn", "愚か、バカ"},
  {"622", "笔记本", "bǐjìběn", "ノート"},
  {"623", "毕业", "bìyè", "卒業"},
  {"624", "遍", "biàn", "あまねく、くまなく"},
  {"625", "标准", "biāozhǔn", "標準"}
  /*
    {"626", "表达", "biǎodá", "表わす、示す"},
    {"627", "表格", "biǎogé", "表、フォーム"},
    {"628", "表扬", "biǎoyáng", "表彰する"},
    {"629", "饼干", "bǐnggān", "ビスケット、クッキー"},
    {"630", "并且", "bìngqiě", "その他に"}, //途中,終わりは1205
  */
};

void Rui() {                                                  // 類表示の関数
  Mmode = 5;                                                  //
  M5.M5Ink.clear();                                           // 画像クリア
  if (inkPageSprite.creatSprite(0, 0, 200, 200, true) != 0) { // リフレッシュ
    Serial.printf("Ink Sprite creat faild");
  }
  for (int i = 1; i <= 6; i++) {                               // 全クリア
    hanten[i] = 0;                                             // 白地に黒字
  }
  hanten[RuiNO] = 1;                              // 黒地に白字 どれか1つのみ
  printEfont(&inkPageSprite, "中国語単語帳",          4,  6,  2,         2);
  printEfont(&inkPageSprite, "(1)   1~ 153", 15,  50, 1, hanten[1]);
  printEfont(&inkPageSprite, "(2) 154~ 306", 15,  74, 1, hanten[2]);
  printEfont(&inkPageSprite, "(3) 307~ 605", 15,  98, 1, hanten[3]);
  printEfont(&inkPageSprite, "(4) 606~1205", 15, 123, 1, hanten[4]);
  printEfont(&inkPageSprite, "(5)1206~2505", 15, 146, 1, hanten[5]);
  printEfont(&inkPageSprite, "(6)2506~5018", 15, 170, 1, hanten[6]);
  inkPageSprite.pushSprite();                                 // 1画面更新
}

void Itiran() {                                               // 一覧表示の関数
  Mmode = 1;                                                  //
  M5.M5Ink.clear();                                           // 画像クリア
  if (inkPageSprite.creatSprite(0, 0, 200, 200, true) != 0) { // リフレッシュ
    Serial.printf("Ink Sprite creat faild");
  }
  printEfont(&inkPageSprite, "", 0, 0);                       // 原点に移動
  for (int i = TangoNO; i <= TangoNO + kosuumen - 1; i++) {   // 1面9単語
    for (int j = 0; j <= 3; j++) {          // No,中国語,ピンイン,日本語の4項目
      printEfont(&inkPageSprite, koumoku[i - 1][j]);          // 1項目分表示
      if (j == 3) {
        printEfont(&inkPageSprite, "\n");                     // 改行
      } else {
        printEfont(&inkPageSprite, "|");                      // 項目区切り表示
      }
    }
  }
  inkPageSprite.pushSprite();                                 // 1画面更新
}
void Nihon() {                                                // 日本語表示関数
  Mmode = 2;                                                  //
  M5.M5Ink.clear();                                           // 画像クリア
  if (inkPageSprite.creatSprite(0, 0, 200, 200, true) != 0) { // リフレッシュ
    Serial.printf("Ink Sprite creat faild");
  }
  printEfont(&inkPageSprite, koumoku[TangoNO - 1][0], 170, 2, 1); // 単語no.
  Serial.print("単語No=");                               // PCのシリアルモニタに表示
  Serial.print(TangoNO);                                 // PCのシリアルモニタに表示
  printEfont(&inkPageSprite, koumoku[TangoNO - 1][3], 10, 126, 2); // 日本語
  inkPageSprite.FillRect(0, 42, 199, 1, 0);                    // 横線 中国語-ピンイン間
  inkPageSprite.FillRect(0, 124, 199, 1, 0);                   // 横線 ピンイン-日本語間
  inkPageSprite.pushSprite();                                  // 1画面更新
}
void Chuugoku() {                                              // 中国語表示関数
  Mmode = 3;                                                   //
  printEfont(&inkPageSprite, koumoku[TangoNO - 1][1], 10, 10, 2); // 中国語
  inkPageSprite.pushSprite();                                  // 1画面更新
}
void Pinin() {                                                 // ピンイン表示関数
  Mmode = 4;                                                   //
  printEfont(&inkPageSprite, koumoku[TangoNO - 1][2], 10, 44, 2); // ピンイン
  inkPageSprite.pushSprite();                                  // 1画面更新
}

void setup() {
  M5.begin();                         // E-Ink,RTC,I2C,ブザーを初期化
  Rui();                              // 類選択表示
}

void loop() {
  if (M5.BtnUP.wasPressed()) {         // ボタンを上に回したら
    switch (Mmode) {
      case 1:                          // 一覧表示時
        TangoNO = TangoNO - kosuumen;  // 前の面
        if (TangoNO < 1) {
          TangoNO = 1;
        }
        Itiran(); break;               // 一覧表示関数へ
      case 2:                          // 日本語表示時
      case 3:                          // 中国語表示時
      case 4:                          // ピンイン表示時
        if (TangoNO <= TangoSuu - (kosuumen - 1) * 2) {
          // 単語の配列を超えるとゴミが表示されるので少し手前まで
          TangoNO = TangoNO + kosuumen;  // 次の面
        }
        Itiran(); break;               // 一覧表示へ
      case 5:                          // 類表示
        if (RuiNO > 1) {               // 2類以上なら
          RuiNO--;                     // 上の類へ
          Rui(); break;                // 類表示関数へ
        } else {
          M5.Speaker.tone(100, 20);    // 100Hz,20m秒
          break;
        }
    }
  }
  if (M5.BtnDOWN.wasPressed()) {       // ボタンを下に回したら
    switch (Mmode) {
      case 1:                          // 一覧表示時
        if (TangoNO <= TangoSuu - (kosuumen - 1) * 2) {
          // 単語の配列を超えるとゴミが表示されるので少し手前まで
          TangoNO = TangoNO + kosuumen;  // 次の面
          Itiran();                    // 一覧表示関数へ
        } else {
          M5.Speaker.tone(100, 20);    // 100Hz,20m秒
        }
        break;
      case 2:                          // 日本語表示時
        Chuugoku(); break;             // 中国語表示関数へ
      case 3:                          // 中国語表示時
        Pinin(); break;                // ピンイン表示関数へ
      case 4:                          // ピンイン表示時
        TangoNO++;                     // 次の単語番号
        if (TangoNO >= TangoSuu) {     // 最後
          TangoNO = TangoSuu;          // 最後をもう一度
        }
        Nihon(); break;                // 日本語表示関数へ
      case 5:                          // 類表示
        if (RuiNO < 4) {               // 全部で6類あるがメモリ容量から3まで
          RuiNO++;                     // 下の類へ
          Rui();                       // 類表示関数へ
        } else {
          M5.Speaker.tone(100, 20);    // 100Hz,20m秒
        }
        break;
    }
  }
  if (M5.BtnMID.wasPressed()) {     // ボタンを押し込んだら
    switch (Mmode) {
      case 1:                       // 一覧表示時
        Nihon(); break;             // 日本語表示関数へ
      case 2:                       // 日本語表示時
        Chuugoku(); break;          // 中国語表示関数へ
      case 3:                       // 中国語表示時
        Pinin(); break;             // ピンイン表示関数へ
      case 4:                       // ピンイン表示時
        TangoNO++;                  // 次の単語番号
        if (TangoNO >= TangoSuu) {  // 最後
          TangoNO = TangoSuu;       // 最後をもう一度
        }
        Nihon(); break;             // 日本語表示関数へ
      case 5:                       // 類表示
        switch (RuiNO) {
          case 1:
            TangoNO = 1; break;
          case 2:
            TangoNO = 154; break;
          case 3:
            TangoNO = 307; break;
          case 4:
            TangoNO = 606; break;
          case 5:
            TangoNO = 1206; break;
          case 6:
            TangoNO = 2506; break;
        }
        Itiran(); break;          // 単語一覧表示関数へ
    }
  }
  if (M5.BtnEXT.wasPressed()) {   // 上面ボタンを押したら
    switch (Mmode) {
      case 1:                     // 一覧表示時
      case 2:                     // 日本語表示時
      case 3:                     // 中国語表示時
      case 4:                     // ピンイン表示時
        Rui(); break;             // 類表示関数へ
      case 5:                     // 類表示
        M5.Speaker.tone(100, 20); // 100Hz,20m秒
        break;
    }
  }
  if (M5.BtnPWR.wasPressed()) {    // 電源ボタンを押したら(電源off)
    M5.PowerDown();//しばらくすると上面緑LED消灯。電源onは電源ボタンを押す
  }
  M5.update();                     // ボタンとブザーを更新
}