ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

AY-3-8500-1

2011年01月26日 23時24分40秒 | 電子工作
先日のガジェットカフェで、PONGの話が出たので。
ずいぶん前に物置から発掘したものがこれです。かなり汚い袋に入っています。


実はこれ、AY-3-8500-1 と言うICです。確か7,600円くらいだったと思います。
ファミコンなどのゲーム機が出る前のTVゲームICなのです。


日本橋に売っていなくて、通信販売で入手したものです。
何人かでまとめ買いして、私が製作見本を作ってみせたのです。

データシートは付いていましたが、TVのRF信号にするところで苦労しました。
Ball & Paddle と書いてありますが、要するにATARIのPONGです。


ちなみにATARIは日本語の「当たり」が元になっているのです。


Wikipediaにもありました。


これを作った頃、
トラ技の記事を見てMC6800(MC68000ではありませんよ)の「マイコン」も作っていました。
メモリは1KbitのDRAMを16個並べて2Kバイトです。
ROMは有りませんからアセンブラのプログラムのエリアがたったの2KBなのです。
もちろんプログラムは紙に書いたアセンブラのコードをハンドアッセンブルして
16進数にしてから手で1ビットずつトグルスイッチをパチパチやって入れていくのです。
せっかく入れてもRAMですから電源を切ると全部消えてしまいます。

こんな「マイコン」ですから画像出力など望むべくも有りません。
しょうがないので8ビットの出力ポート2個にR-2Rの抵抗ラダーを付けて
2つのアナログ信号を作りました。
これをオシロスコープのXとYに入力して、ランダムスキャンをしたのです。
で、出来上がったのがこのTVゲームと同じPONGだったのです。

かなりオリジナルに忠実に作り込んだ事を覚えています。
パドルの当たる場所によって反射角度を変えたり、点数を表示させたりしました。

Breadboard shield

2011年01月23日 19時52分45秒 | Arduino
8x8ドットマトリクスLEDの表示具合を見るため、ブレッドボードシールドを作ってみます。
材料は秋月のATMEGAボードと小さいブレッドボードとピンの長いピンソケットです。


ピンソケットをハンダ付けしてブレッドボードを貼り付け、LEDを載せ、配線をします。


これがグリーンのLED


こちらがブルーです。


色のせいもありますが、いずれも赤より少し暗めです。

動画はこれです。

タッチスイッチのスケッチ

2011年01月22日 09時18分07秒 | Arduino
タッチスイッチのスケッチをブログに貼ろうとしたら、見事に消えてしまったので
貼り方をググってみました。
簡易プレビューにはきれいに表示されるのに、
なかなかうまくいきません。

タッチスイッチのスケッチ

/*
Touch Switch Test
ikkei 2011.01.21
*/

#define LED 13
#define CLOCK 3
#define SENSE 6

byte input;
byte output;
byte count = 0;

void setup() {
pinMode(LED, OUTPUT); // LED optput
pinMode(CLOCK, OUTPUT); // Touch switch clock output
pinMode(SENSE, INPUT); // Touch switch sensor input
}


void loop() {
digitalWrite(CLOCK, HIGH);
delayMicroseconds(80);
input = digitalRead(SENSE);
delay(2);
if (input == 0){
count = 0;
}else{
if (count < 200){
count++;
}
}
if (count < 15){
output = 1;
}else{
output = 0;
}
digitalWrite(LED, output);
digitalWrite(CLOCK, LOW);
delay(2);
}

</pre>

タッチスイッチのテスト

2011年01月21日 22時57分18秒 | Arduino
昔々、HFに出ていた時にマイクのPTTをタッチスイッチにしてTTT(Touch To Talk)として使っていました。
このTTTについては同調回路のfズレなどを利用した回路を何度も試行錯誤しました。
この顛末についてはいずれHPに上げるつもりですが、最終的にたどり着いたのが
このような静電容量を利用した回路です。


タッチスイッチ部分だけを抜き出したらこのようになります。
ゲート保護抵抗R7を追加しています。

OSCの信号が通常はD-FFのD端子より少し送らせてCK端子に入っています。
touch plateに手を触れるとD端子の信号が遅れるので/QがHになります。
しかしノイズなどでバタバタ変化するので、積分しています。
この回路はインバータではありません。非反転バッファにコンデンサで帰還を掛けています。
これもいずれHPで解説しますが、以下の回路と同じような動作をします。

シュミットトリガのICを使わずに通常のゲート回路で作れるのがミソです。

これをマイコンで実現するのですが、OSC、D-FF、遅延回路、積分回路、シュミットトリガはすべて
ソフトで作ることが出来ます。
結局、残ったのはこれだけです。


ArduinoのサイトでCapSense (静電容量センサ)が有りますが、入力側の抵抗が有りません。
静電気などを考えると、抵抗が無いとラッチアップなどでArduinoが破壊されるリスクがあります。

実際に動作を確認してみます。

電池駆動の場合は、USBやACアダプタの場合より感度が低くなります。
感度はdelayMicroseconds(80)の80を小さくすると感度が上がりますが不安定になります。