« 2010年7月 | トップページ | 2010年10月 »

2010年8月19日 (木)

AVR実験室(15)

8月1日掲載のブロック崩しゲームの画面が乱れる件について、システムクロックが内蔵RCオシレータのために動作が安定していないのが原因ではないかと思いつきました。セラミック発振子が運良く入手できたので、こちらを接続してAVRマイコンの設定を外付け発振子を使用するように変更したところ、次の画面のように乱れが少なくなりました。最善は水晶発振器なのでしょうが、セラミック発振子でも大丈夫のようです。
P8190094_2

| | コメント (0) | トラックバック (0)

2010年8月 1日 (日)

AVR実験室(14)

ワンチップマイコンについては、直近の4月4日の記事から4ヶ月が過ぎてしまいました。そのときには、「次回は、プログラムの中で使用されている命令を説明したいと思います。」と書きましたが、今回は先日ウェブで見つけたブロック崩しゲーム(ブレークアウトゲーム)を実験してみましたので、その様子を報告します。
元々は「PICマイコン応用ハンドブック」に掲載されていたPIC用のゲームをAVRで実現できないかと考えていたのですが、すでにAVR(AT90S2313)へ移植されていたのをウェブで見つけましたので、それをさらにATtiny2313に対応する修正をして、手元の部品でブレッドボード上に組み、テレビのビデオ入力端子に接続してみました。AT90S2313はクロック発振器を外付けにする必要があるのに対して、ATtiny2313はRCオシレータを内蔵している点が大きな違いです。ATtiny2313を使用するに当たっては、RCオシレータの発振周波数を4MHzとして分周1/8をしないように設定しました。次の写真の左がブレッドボード上に組み立てた状態、右がゲームを表示したテレビ画面です。テレビ画面は縦の直線が波打っていますが、これはビデオ出力をシールド線で接続していないことが大きな原因と思われます。回路を基板に組み上げてきちんと配線すれば、もっときれいな表示となると思います。
P8010081_2 P8010087_2
ワンチップマイコン1つだけでこのようなゲームができることに感動です。応用としては、無線リグの周波数やパケットの受信データ等をテレビ画面で表示することも考えられますが、なかなか難しいように感じています。まずは今回参考とさせていただいたプログラムをハッキングして、テレビ画面への表示のノウハウを知りたいと考えています。
参考にしたウェブサイト:http://homepage2.nifty.com/SEIDENSYA/index.htm

| | コメント (0) | トラックバック (0)

« 2010年7月 | トップページ | 2010年10月 »