「MachiKaniaでI2C接続」の技術的なことに関するメモ。0.5に基づいて記述されている。I2C接続のBASICコードのSVNレポジトリーは、こちら。https://osdn.net/users/kmorimatsu/pf/kmbasic/scm/tree/head/applications/trunk/i2c/主に、I2Cnauplia.txtで記述しているコードについて、解説したい。以下の図の黒字で記述された部分は、I2C仕様書からの引用である。このシグナルを、BASICコードでどの様にして扱っているかについて(赤字での記述)、述べる。Zで使える、I2C接続のためのBASICコードを作成しました。実行中の動画は、次のリンク先で見ることが出来ます。https://twitter.com/kats_me/status/802376453098590209(MachiKaniaのディスプレイ上の表示が、若干異なる可能性があります。)I2C接続のためのテストには、Microchip社のMCP23017を使用しました。これは、汎用のI/Oポートを持ったICで、I2C接続で用いることが出来ます。回路図は、以下の通りです(2017-03-12、変更)。MachiKaniaへの接続は、PIC32MXのRB7及びRB10を用います。それぞれ、16番及び21番ピンで、down/upボタンに接続されています。MCP23017の使用方法については、Microchipの説明書(PDFファイル)を参照して下さい。Zでは、多次元配列をサポートしている。そのアルゴリズム及び実装方法についてのメモ。[MachiKania]2016年6月5日PIC32MXは、コンパレーター用のD/Aコンバーターを内蔵している。kHz)とあるのを見て、MHz単位でのシグナル変化が要求されるビデオシグナルには使えないことを知り、諦めた。timeは、音声出力には十分の筈である。kHzを、超えている。MachiKaniaで音声出力が出来ないか、調べてみた。CVrefoutは、28ピンのPIC32MXでは、25番ピン(RB14)に出力できる。MachiKaniaでは"Fire"ボタンの入力に用いられているものの、テスト目的であれば、ボタンを押さなければ出力にも使えるはずである。ここから、トランジスターのベースにつなぎ、エミッターフォロワーにして、スピーカー(もしくは、TVの音声入力)につないでみた。PCG機能を用いて、8x8ドットの任意のキャラクターを表示することが出来ます。この機能を用いて日本語を容易に表示するツールを作ってみました。Trekゲームを作成しましたので、紹介します。スタートレックゲームの歴史については、Wikipediaあたりを参照して下さい。私が始めてこのゲームを楽しんだのは、SharpのMZ-80K上で動く物でした。当時のパソコン(マイコンと呼ばれていた)のほとんどに移植されて、楽しまれていたゲームの一つです。互換ゲーム機)を公開します。これを使うと、MZ-80K用に作成されたゲームのうち、容量の小さな物なら、MachiKaniaで楽しむことが出来ます(ダウンロードのためのリンクは、記事の一番最後にあります)。MZ-80K用のフリーのゲームは、例えば下記のサイトからダウンロードできます。http://www.retropc.net/mz-memories/mz700/http://www.maroon.dti.ne.jp/youkan/mz700/zeplis/これらのファイルをSDカードから読み込んで楽しむことが出来ます。[MachiKania]2016年2月22日マチカニア用のBASICで書かれたアプリケーションとして、立体迷路を作成しました。敷地に作られた平面状の巨大迷路に人が入って探索するアレ(迷路自身が立体というのではなく)の、シミュレーションです。プログラムファイル(maze3d.bas)は、ここからダウンロードできます。0.5のどちらでも実行することが出来ます。実行すると、次のような画面になり、横29ドット縦27ドットの迷路が作成されます。webは実行が遅いので、時間をかけて少しずつ作成される様子が分かります。