MachiKania

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

MachiKaniaでI2C接続 技術編 [MachiKania]

2017年3月12日

MachiKaniaでI2C接続」の技術的なことに関するメモ。なお、この記事はver 0.5に基づいて記述されている。

I2C接続のBASICコードのSVNレポジトリーは、こちら。
https://osdn.net/users/kmorimatsu/pf/kmbasic/scm/tree/head/applications/trunk/i2c/

主に、I2Cnauplia.txtで記述しているコードについて、解説したい。以下の図の黒字で記述された部分は、I2C仕様書からの引用である。

2017-03-04-I2C.png
このシグナルを、BASICコードでどの様にして扱っているかについて(赤字での記述)、述べる。

MachiKaniaでI2C接続 紹介編 [MachiKania]

2017年3月4日

MachiKania type N 及び type Zで使える、I2C接続のためのBASICコードを作成しました。実行中の動画は、次のリンク先で見ることが出来ます。
https://twitter.com/kats_me/status/802376453098590209(MachiKaniaのディスプレイ上の表示が、若干異なる可能性があります。)

I2C接続のためのテストには、Microchip社のMCP23017を使用しました。これは、汎用のI/Oポートを持ったICで、I2C接続で用いることが出来ます。回路図は、以下の通りです(2017-03-12、変更)。
2017-03-12-s1.png
MachiKaniaへの接続は、PIC32MXのRB7及びRB10を用います。それぞれ、16番及び21番ピンで、down/upボタンに接続されています。MCP23017の使用方法については、Microchipの説明書(PDFファイル)を参照して下さい。

MachiKania type Zで使われている多次元配列の実装について [MachiKania]

2016年10月23日

MachiKania type Zでは、多次元配列をサポートしている。そのアルゴリズム及び実装方法についてのメモ。

MachiKaniaで和音出力(ちょっと失敗編) [MachiKania]

2016年6月5日

PIC32MXは、コンパレーター用のD/Aコンバーターを内蔵している。以前、NTSCビデオシグナルの作成用に使えないかと色々調べた時、データーシートにsetting timeが10 μseconds(100 kHz)とあるのを見て、MHz単位でのシグナル変化が要求されるビデオシグナルには使えないことを知り、諦めた。

他方、100 kHzのsetting timeは、音声出力には十分の筈である。CDのサンプリングレートである44.1 kHzを、超えている。この機能を用いて、PIC32MX / MachiKaniaで音声出力が出来ないか、調べてみた。

CVrefoutは、28ピンのPIC32MXでは、25番ピン(RB14)に出力できる。MachiKaniaでは"Fire"ボタンの入力に用いられているものの、テスト目的であれば、ボタンを押さなければ出力にも使えるはずである。ここから、トランジスターのベースにつなぎ、エミッターフォロワーにして、スピーカー(もしくは、TVの音声入力)につないでみた。

2016-06-05-IMG_1337.png

MachiKaniaで日本語表示 [MachiKania]

2016年5月4日

MachiKania では、PCG機能を用いて、8x8ドットの任意のキャラクターを表示することが出来ます。この機能を用いて日本語を容易に表示するツールを作ってみました。
2016-05-05-canvas.png

Star Trek game for MachiKania (紹介編) [MachiKania]

2016年5月1日

MachiKania用に、Star Trekゲームを作成しましたので、紹介します。

2016-05-01-05klgn.png
スタートレックゲームの歴史については、Wikipediaあたりを参照して下さい。私が始めてこのゲームを楽しんだのは、SharpのMZ-80K上で動く物でした。当時のパソコン(マイコンと呼ばれていた)のほとんどに移植されて、楽しまれていたゲームの一つです。

KM-Z80 game ver 0.9 [MachiKania]

2016年3月19日

MachiKaniaに対応の、KM-Z80 game(MZ-80K 互換ゲーム機)を公開します。これを使うと、MZ-80K用に作成されたゲームのうち、容量の小さな物なら、MachiKaniaで楽しむことが出来ます(ダウンロードのためのリンクは、記事の一番最後にあります)。

MZ-80K用のフリーのゲームは、例えば下記のサイトからダウンロードできます。
http://www.retropc.net/mz-memories/mz700/
http://www.maroon.dti.ne.jp/youkan/mz700/zeplis/
これらのファイルをSDカードから読み込んで楽しむことが出来ます。

2016-03-16-canvas.png

3D Maze for MachiKania [MachiKania]

2016年2月22日

マチカニア用のBASICで書かれたアプリケーションとして、立体迷路を作成しました。敷地に作られた平面状の巨大迷路に人が入って探索するアレ(迷路自身が立体というのではなく)の、シミュレーションです。

プログラムファイル(maze3d.bas)は、ここからダウンロードできます

このBASICプログラムは、MachiKania 1.0及びKM-BASIC web 0.5のどちらでも実行することが出来ます。

実行すると、次のような画面になり、横29ドット縦27ドットの迷路が作成されます。MachiKaniaでは1秒もかからないのであっという間に消えますが、KM-BASIC webは実行が遅いので、時間をかけて少しずつ作成される様子が分かります。
2016-02-21-canvas.png

KM-BASIC web ver 0.5 [MachiKania]

2016年2月21日

MachiKania 1.0に搭載のBASIC KM-1120に対応した、KM-BASIC web ver 0.5を公開しました。

使い方は、以前のKM-BASIC for MIPSに同梱されていた物と同じです。KM-1120で新たに追加された命令、USEPCG, PCG, WAIT, SCROLLを使えるようにして、いくらか不具合修正をしています。

以下、KM-BASIC webを使う上での注意点です。主に、MachiKania 1.0との違いについてです。

・ 割り算を行なう場合は、演算結果を()で囲って下さい。これにより、演算結果が 必ず整数になります。
・ GOSUB()関数は、一つのステートメントの中で2回以上使わないで下さい。
・ INPUT$()関数の戻り値は、変数に代入して使って下さい。直接PRINT命令を使用す ると(そういうプログラムはほとんど無いと思いますが)、同じ内容が何回も画 面に表示されます。
・ パレット番号は、15迄が有効です。

KM-BASIC web 0.5の実行及びダウンロードは、ここから出来ます。
http://hp.vector.co.jp/authors/VA016157/kmbweb05/

MachiKania ver 1.00 の紹介 [MachiKania]

2016年2月6日

ケンケンさんと共同で開発したBASIC搭載カラーゲームシステム、マチカニア(MachiKania)が、公開になりました。こちらでも、紹介させて頂きます。

マチカニアは、ビデオ端子のあるテレビと、PS/2キーボードをつなぐことで、それ単体でBASICプログラムを作成したり、色々なテレビゲームを楽しんだりすることの出来る、小型コンピューターシステムです。
2016-02-06-MachiKania.jpg
私が製作した物は、6.5 cm x 9.5 cm x 4 cmほどの小さな筐体に収まっています。
使い方やソフトのダウンロードなどはケンケンさんが公開なさっているwebページに譲るとして、ここでは、私が担当したBASIC コンパイラー KM-1120 (KM-BASIC)の技術的なことに関して述べます。