前の記事
全体の目次
Longan Nanoを使ってみる 1 ~ビルド環境の構築~
Longan Nanoを使ってみる 2 ~デバッガの環境設定~
Sipeed RISC-V Debugger
Longan Nanoを使ってみる 3 ~デバッガの使用方法~
Longan Nanoを使ってみる 4 ~printfを使ったデバッグ~
Longan Nanoを使ってみる 5 ~ゲームのプロジェクトを作成~
Longan Nanoを使ってみる 6 ~文字出力~
Longan Nanoを使ってみる ~FONTX2ファイルを作る~
Longan Nanoを使ってみる 7 ~外枠とブロックを書く~
Longan Nanoを使ってみる ~謎の画像表示関数~
Longan Nanoを使ってみる 8 ~ボールを動かす~
Longan Nanoを使ってみる 9 ~A/Dコンバータから入力~
Longan Nanoを使ってみる 10 ~パドルを動かす~
Longan Nanoを使ってみる 11 ~ボタンの入力
Longan Nanoを使ってみる 12 ~ボールのロス~
Longan Nanoを使ってみる 13 ~ステージの遷移とゲームオーバー~
Longan Nanoを使ってみる 14 ~PWMとサウンド~
Longan Nanoを使ってみる 15 ~音楽を鳴らす~
Longan Nanoを使ってみる 16 ~とりあえずのまとめ~
まとめ
ここまでで、Longan-Nanoを買ってから、開発環境、デバッグ環境を構築し、簡単なゲームを作るまでを説明した。マイコンの機能としては、あまり大層なものではなく、製品付属のLED、LCD、内部タイマー類、PWM、ADコンバータ程度だが、これらは多くのプログラムで使う、最も一般的な機能である。
また、これらの使い方を通して、ドキュメント類の参照方法などがわかるだけで、ほかの機能も使用できる。
注意
このページは、quiita.com で公開されています。URLがqiita.com以外のサイト、例えばjpdebug.comなどのページでご覧になっている場合、悪質な無許可転載サイトで記事を見ています。正しい記事は、https://qiita.com/BUBUBB/items/7ce85ada67a3f6d1944d からリンクしています。
無許可転載サイトでの権利表記(CC BY SA 2.5、CC BY SA 3.0とCC BY SA 4.0など)は、不当な表示です。
正確な内容は、qiitaのページで参照してください。
プログラムの拡張
このプログラムでは、ボールを最大5個、パドルを最大2個まで増やすことができる。プログラムを改変し、特別なブロックを壊したときにボールが増える、などを実装することができる。
また、現在、ボールの速度が一定だが、これも、奥の壁にヒットすると速度が増える、といった処理を加えた方がよい。
プログラムのダウンロード
今回の記事で作成したコードは自由にダウンロードできる。バイナリは公開していない。別に公開しても構わないのだが、記事の趣旨として完成品を配るのは意味がないこと、そもそもLongan Nanoを使って他人が作成したゲームを遊ぶだけ、という人がいるとは思えないため。
環境構築ができれば、ビルドは簡単なのでぜひ試してほしい。
今回作成したプログラムのコード
今回作成したゲームのソースコードは githubで公開している。
https://github.com/HisayukiNomura/NanoBreakout
※inMicroSDのフォルダ内にあるフォントファイルは、microSDのルートにコピーして使用する。
最初に作ったコード
今回の記事を作る前に作成した、Longan Nanoでテストプログラム以外で作った最初のコードもgithubで公開している。
https://github.com/HisayukiNomura/Breakout
もとになったコードは、ファイルの分割があまりされておらず、1ファイルが長いなど、多少わかりにくくなっているが基本的な構造は同じ。フォントは、http://jikasei.me/font/jf-dotfont/ のJFドットK12 … JIS X 0213:2000 対応 を使用させて頂いた。
ボールが複数画面に出る、ボールの速度が変化する、ゲームの難易度が選択できる、デモ画面がある、など、ゲームとしての体裁がある程度整っている。
感想
小さいPICなど、マイコンでは遊んだことがあったが、メモリやプログラムの制約が厳しく、常に色々気にしながらのコーディングだった。(PIC16F88の場合、プログラムメモリが4Kワード、RAMが368バイト)
一方、Longan Nanoの採用しているGD32Vではプログラムメモリが128KBytes、RAMが32KBytesという広大な空間でプログラム可能であり、ほとんど困ることはなかった。(もちろん、PICも32MXシリーズでは類似のスペックを持ってる)
ただ、遊びとして考えると、制約が多い環境でのプログラミングも面白く、Longan Nanoまで来てしまうと、単に「ひと昔のパソコン」を使っているような気分になり、新しいものを触っているようには感じない。Longan Nanoはドキュメントが少なく、APIのソースコードを直接見たり、類似のアーキテクチャを持っているSTM32シリーズのドキュメントを参照せざるを得ないことも多かった。ユーザーもまだPICやArudiuno (←やったことはないが)のように多くはない。
ただ、液晶、USBなどが一通りそろって、デバッグ環境まで買って2000円、というのはお値打ちで、もし、遊んだことがない人がいたら、ぜひ遊んでみるとよいと思う。