検索
連載

FPGA評価ボードに十字キーを付けてみた【後編】注目デバイスで組み込み開発をアップグレード(19)(3/3 ページ)

注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第19回では、前回作成したFPGA評価ボード「Tang Nano 9K」とつなげた十字キーとA/BボタンのUIによる「お絵描きソフト」を紹介する。

Share
Tweet
LINE
Hatena
前のページへ |       

お絵描きソフトを試してみよう

 まずはお絵描き心地を試してみましょう。十字キーでカーソルを動かしてその位置のドットをAボタンとBボタンを使ってオン、オフを決定します。十字キーの方はそのまま押し続けるとリピートします。十字キーの使い心地の決め手はキーのスキャンのタイミングなんですね。それを決めるのがリスト1の10行目にあるcounter[21]です。

10: always @(posedge counter[21]  or negedge rst)
リスト1の10行目を再掲

 もしもう少しキーの反応速度を速くしたい場合はこの値を1つ減らして20とします。すると現在の反応速度の2倍の速度でキースキャンを行います。キーの反応は良くなるのですが、キーを放すのが遅れると1回押したつもりが2回かそれ以上押したと判断されて思い通りにコントロールしづらくなってきます。一方、counter[21]ではキーの反応が速すぎると感じれば、この値を1つ上げて22とします。するとキーのスキャンスピードは先ほどとは2分の1となります。キーの反応は悪くなりますが、キーを放すのが遅れ2度押されたと判断されることは少なくなります。いずれもここは十字キーの操作の熟達度や長年の癖によるものですから、みなさんにあった値を見つけて設定してください。

 図2は試しに書いてみた絵です。ちょっと悲しいのが説明しないと分かりづらいところです。上下に2つの砲台が向かい合っており、互いに弾を撃ち合っているところですが、皆さんにはそう見えますか。ディスプレイの輝度を控えめにするか、液晶ディスプレイで御覧の方は斜めから見るとそれらしく見えるようになるかもしれません。

図2
図2 お絵描きソフトで試しに書いてみた絵。上下に2つの砲台が向かい合って、互いに弾を撃ち合っているところ[クリックで拡大]

おわりに

 いかがでしょうか。FPGAでもVerilogHDLで24行程度のコーディングでお絵かきソフトの最低限の機能は実現できるんですね。それはそれで驚きなのですが、今回お絵かきソフトを取り上げたのは、PCでTang Nano 9Kをプログラミング(コンフィギュレーション)した後に、FPGA内のレジスタの内容を編集する手段が欲しかったからです。前回も書きましたが、これらの機能を応用して連載「オリジナルCPUでバイナリコード入門」など他の記事でも役立てていきたいと思います。ご期待ください。

⇒MONOist編集部へのご意見はこちらまで

前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る