pages/htdocs/2022-06-21_aqm0802a/index.html

35 lines
21 KiB
HTML
Raw Normal View History

2023-12-12 10:18:42 +00:00
<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>AQM0802A に文字を表示してみる | おこげ俱楽部</title><meta name="title" content="AQM0802A に文字を表示してみる | おこげ俱楽部"><meta name="description" content="『ゲーム電卓パイ』プロジェクトそのLCD キャラクタディスプレイモジュール AQM0802A を試してみる"><meta name="keywords" content="オコゲ,デスクトップアプリ版,オコゲ,blockly,プログラミング,上野学習塾"><meta name="author" content="ocogeclub"><meta name="robots" content="index, follow"><link rel="canonical" href="https://ocoge.club/2022-06-21_aqm0802a/"><link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png"><link rel="apple-touch-icon" href="/assets/img/apple-touch-icon.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Nunito:wght@500&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css2?family=Kosugi+Maru&display=swap" rel="stylesheet"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap"><script src="https://kit.fontawesome.com/73f7be0650.js" crossorigin="anonymous"></script><link rel="stylesheet" href="/assets/floatbox/floatbox.css"><script src="/assets/floatbox/floatbox.js" defer="defer"></script><link rel="stylesheet" href="/assets/css/ocmain.css"><link rel="stylesheet" href="/assets/css/main.css"><link rel="stylesheet" href="/assets/css/footer.css"><link rel="stylesheet" href="/assets/css/post.css"><meta property="og:image" content="https://ocoge.club/assets/img/ogp_aqm0802a.webp"><meta property="og:title" content="AQM0802A に文字を表示してみる | おこげ俱楽部"><meta property="og:description" content="『ゲーム電卓パイ』プロジェクトそのLCD キャラクタディスプレイモジュール AQM0802A を試してみる"><meta property="og:url" content="https://ocoge.club/2022-06-21_aqm0802a/"><meta property="og:site_name" content="おこげ俱楽部"><meta name="twitter:card" content="summary"><meta name="twitter:site" content="@ocogeclub"></head><body class="flex flex-col h-screen bg-white text-gray-800 break-words"><header id="header" class="header-shadow bg-white px-6 py-5 z-50 fixed w-full top-0 transition-all transform ease-in-out duration-500"><div class="max-w-5xl mx-auto flex items-center flex-wrap justify-between"><div class="sm:mr-8"><a class="flex items-center" href="/"><span class="text-xl text-teal-700 font-semibold self-center"><img src="/assets/img/ocoge_title_kogecha.webp" title="おこげ俱楽部" alt="おこげ俱楽部" id="site_title"></span></a></div><nav id="menu" class="order-last md:order-none items-center flex-grow w-full md:w-auto md:flex hidden mt-2 md:mt-0"><a href="/about" class="block mt-4 md:inline-block md:mt-0 font-medium text-gray-700 hover:text-teal-600 text-base mr-4">About</a> <a href="/tags" class="block mt-4 md:inline-block md:mt-0 font-medium text-gray-700 hover:text-teal-600 text-base mr-4">Tag List</a> <a href="https://cloud.ocoge.club/" target="_blank" rel="noopener" class="block mt-4 md:inline-block md:mt-0 font-medium text-gray-700 hover:text-teal-600 text-base mr-4">Cloud</a> <a href="https://mail.ocoge.club/" target="_blank" rel="noopener" class="block mt-4 md:inline-block md:mt-0 font-medium text-gray-700 hover:text-teal-600 text-base mr-4">Mail</a> <a href="https://git.ocoge.club/ocogeclub/pages" target="_blank" rel="noopener" class="block mt-4 md:inline-block md:mt-0 font-medium text-gray-700 hover:text-teal-600 text-base mr-4">ocogIt</a></nav><form id="search" action="/search" class="order-last sm:order-none flex-grow items-center justify-end hidden sm:block mt-6 sm:mt-0"><label class="visually-hidden" for="h
2023-04-02 08:31:07 +00:00
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
2023-04-02 12:15:58 +00:00
</code></pre><p>AQM0802A の I2C アドレスは 0x3e と分かりました。</p><details class="lesson"><summary class="blockprogram"><i class="fa-solid fa-computer-mouse"></i> 『オコゲ』ブロックプログラムI2C デバイスを開く</summary><div class="lesson"><div class="slide"><figure class="center"><img loading="lazy" src="/assets/img/game-dentak_i2copen.webp"><figcaption>GPIO を有効にして I2C デバイスに接続する</figcaption></figure><p>デバイスに限らず、何かに接続して使用可能な状態にすることをコンピュータ用語では「開く (open)」と表現します。</p></div></div></details><h2>コマンド書き込み</h2><p>レジスタ 0x00 にコマンドコードバイトを書き込むことで、AQM0802A にコマンド(命令)を送信することができます。</p><details class="lesson"><summary class="blockprogram"><i class="fa-solid fa-computer-mouse"></i> 『オコゲ』ブロックプログラム:コマンドを書き込む</summary><div class="lesson"><div class="slide">繰り返し使用するプログラムなので、関数として分離しておきます。<figure class="center"><img loading="lazy" src="/assets/img/game-dentak_func-command.webp"><figcaption>コマンド書き込み関数</figcaption></figure><p>コマンド書き込み毎に待ち時間が必要です。待ち時間の長さはコマンドの種類によって若干の違いがあるようですが、ここでは無視して100分の1秒で統一します。</p><div class="balloon_right"><div class="faceicon_right"><img src="/assets/img/mimmy.webp"><p></p></div><div class="chatting"><div class="says_right"><p>ちゃんと動いているから大丈夫!<br>たぶん!</p></div></div></div></div></div></details><h2>データ書き込み</h2><p>レジスタ 0x40 にバイトコードを書き込むことで、AQM0802A 内蔵の RAM (DDRAM/CGRAM) にデータを書き込むことができます。DDRAM にデータを書き込むと画面に文字を表示することができます。CGRAM は自作文字のデータを登録しておくことができます。</p><details class="lesson"><summary class="blockprogram"><i class="fa-solid fa-computer-mouse"></i> 『オコゲ』ブロックプログラム:データを書き込む</summary><div class="lesson"><div class="slide">こちらも繰り返し使用するので関数にしておきます。<figure class="center"><img loading="lazy" src="/assets/img/game-dentak_func-data.webp"><figcaption>データ書き込み関数</figcaption></figure></div></div></details><h2>初期化</h2><p><a href="https://akizukidenshi.com/download/ds/xiamen/AQM0802.pdf" target="_new" title="">秋月電子のデータシート <span style="color: gray; font-size: smaller;"><i class="fa-solid fa-arrow-up-right-from-square"></i></span> </a>に従って初期化します。</p><p>以下のコマンドコードを、順にレジスタ 0x00 に書き込みます。</p><ol><li>0x38 (機能設定:表示行数とか文字の大きさとか)</li><li>0x39 (拡張コマンドモード開始)</li><li>0x14 (内蔵発振器周波数)</li><li>0x70 (コントラスト)</li><li>0x56 (3V動作)</li><li>0x6c (フォロワ回路のオンオフと増幅率)</li><li>0x38 (拡張コマンドモード終了)</li><li>0x0c (ディスプレイオン・カーソルオフ)</li><li>0x01 (ディスプレイクリア)</li></ol><details class="lesson"><summary class="blockprogram"><i class="fa-solid fa-computer-mouse"></i> 『オコゲ』ブロックプログラムAQM0802A を初期化</summary><div class="lesson"><div class="slide"><figure class="center"><img loading="lazy" src="/assets/img/game-dentak_init.webp"><figcaption>初期化手順</figcaption></figure></div></div></details><h2>文字表示</h2><p>DDRAM にデータを書き込むと画面に文字を表示します。</p><h3>DDRAM アドレスを指定</h3><p>文字を表示するディスプレイ上の位置(2行目の3文字目とか)を指定します。</p><p>データ<EFBFBD><EFBFBD>
let disqus_config = function () {
this.page.url = 'https://ocoge.club/2022-06-21_aqm0802a/';
this.page.identifier = '2022-06-21_aqm0802a';
};
function loadComments() {
if (!disqusLoaded) {
disqusLoaded = true;
const d = document, s = d.createElement('script');
s.src = '//ocogeclub.disqus.com/embed.js';
(d.head || d.body).appendChild(s);
}
}
if(!!window.IntersectionObserver) {
const disqusEl = document.getElementById('disqus_thread');
const intersectionObserver = new IntersectionObserver(function(entries, observer) {
if (entries && entries[0] && entries[0].isIntersecting) {
loadComments();
observer.unobserve(disqusEl);
}
});
intersectionObserver.observe(disqusEl);
2024-01-01 16:09:59 +00:00
}</script></div></article></main><footer class="mt-20 px-10 py-8 bg-gray-200"><div id="footer-badge"><a href="https://git.ocoge.club/" target="_new"><img loading="lazy" src="/assets/img/git-ocogeclub.svg" class="footer-img"></a><a href="http://creativecommons.org/licenses/by-sa/4.0/deed.ja" target="_new"><img loading="lazy" src="/assets/img/License_BY-SA_4.0.svg" class="footer-img"></a></div><div class="max-w-5xl mx-auto text-gray-700 text-center">© 2024 <a href="/" class="font-medium" target="_blank" rel="noopener">おこげ俱楽部</a>. Made by <a href="https://ocoge.club" target="_blank" rel="noopener">ocogeclub</a> using <a href="https://www.11ty.dev" target="_blank" rel="noopener">Eleventy</a> and <a href="https://github.com/dafiulh/vredeburg" target="_blank" rel="noopener">Vredeburg</a>.<br></div></footer><script src="/assets/js/bundle.js"></script></body><script>window.addEventListener('load', (event) => {
2023-04-02 08:31:07 +00:00
document.getElementsByTagName('html')[0].style.display='block';
2023-04-02 12:15:58 +00:00
});</script></html>