GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
がじぇるね岡宮です。
製品リリースから1か月以上も経ってしまいましたが、スケッチリファレンスを作りました。
KURUMIからの相違点といえば、SPI2、SD2、INT2の追加、LED制御の違いぐらいです。モーターやセンサー回りの使い方は特設ページで使い方を増やしていこうと思っています。
ちなみに英語版はもう作ってありますが、製品ページ+特設3ページの英訳が終わり次第、公開いたします。
> 裏で別のperlが動いている(内蔵ROMのWAVテーブル生成とか)ため、
GR-KURUMI_WAVPROM_V1.13.zip と GR-KURUMI_Sketch_V1.13.zip の差分部分を小変更し、perl 等使用することなくビルドできるようしてみました。
GR-KURUMI_Sketch_V1.13.zip から新規作成したプロジェクトにアップロードするだけで ビルドできます。
同様のことは GR-SAKURA_MP3_WAVROM_V2.13.zip 等でも可能と思います。web コンパイラのテンプレートの数がやたらと多いですが、ボード毎にテンプレートはひとつにして、あとはサンプルプログラムとして分離して欲しいです。
(次の投稿のものに差し替え)
バイナリファイルを読み込むマクロ LoadBinFile() の機能と書式を変更
> wavの追加や削除でユーザー側はどうすればよいのか簡単に説明いただけないでしょうか?
若干整理しました。
ファイルを追加したい場合には .wav ファイルをプロジェクトにアップロードで追加し、b2ca_file_list.c に
LoadWavFile("se_maoudamashii_jingle01.wav"/*ファイル名*/, jingle01/*シンボル名*/);
を追加、b2ca_file_list[] の要素に
{"jingle01.wav"/*参照用ファイル名*/, jingle01/*シンボル名*/},
を追加します。
呼び出す場合には gr_sketch.cpp などの中から
wavp.play("jingle01.wav"/*参照用ファイル名*/);
とするだけです。
現状 Wavp ライブラリは
以上の問題があると考えており、ライブラリとしての汎用的な利用を考えるならば解決すべき問題があると思います。
> できることならgr_sketch.cppを編集するだけで実現できることがベターかと思っています。
例えば今回の gr_sketch.cpp と b2ca_file_list.c を、
gr_sketch.cpp: #ifdef __cplusplus #include #include //#define WAVDATA_8BIT Wavp wavp(16000); void setup() { } void loop() { wavp.play("sound24.wav"); delay(1000); } #else #include #include "loadwavfile.h" LoadWavFile("sound24.wav", sound24); const struct b2ca_file b2ca_file_list[] = { {"sound24.wav", sound24}, {"", 0} }; #endif
b2ca_file_list.c: #include "gr_sketch.cpp"
のように書けば、.wav ファイルの追加や変更等でも書き換えるのは gr_sketch.cpp のみにできますが、トリッキーであり全然良いとは思わないですね。
> ・圧縮フォーマットに非対応
ルネサスでは RL78 用に『M3S-S2-Tiny for the RL78 Family』(https://www.renesas.com/ja-jp/products/software-tools/software-os-middleware-driver/renesas-software-library/m3s-s2-tiny.html)というものがあるようなので、これの GCC 版(恐らくはサポートの関係かなんかで国内では非公開であろう)を持ってきて GR-KURUMI他で動作させるというのが良さげな感じですね。
> >音声再生中は処理が帰ってこない(バックグラウンド処理できない)
> これは割込みで停止処理ができます。
どのような用途に使用した場合としてどのやったら回避できるということでしょうか?
私は例えばしゃべるロボットのような音声を再生しながら動作する用途を想定し、音声を再生してる間は動作が止まるようでは話にならないという認識で上記を問題として捉えています。音声再生以外をタイマー割り込みで回すということですか?
藤田様、こんにちは。
fujita nozomu様wrote: said:> できることならgr_sketch.cppを編集するだけで実現できることがベターかと思っています。例えば今回の gr_sketch.cpp と b2ca_file_list.c を、...略... のように書けば、.wav ファイルの追加や変更等でも書き換えるのは gr_sketch.cpp のみにできますが、トリッキーであり全然良いとは思わないですね。引用終わり
試していて気付いたのですが、この話は『マクロの中で__farキーワードを使う必要があるけれども__farキーワードがcppファイルでは使えないというGNURL78の制限ゆえに別途cファイルを使わざるを得ない』ということを仰っている、のではないかという気がしたのですが、その認識であっているでしょうか?
現状のWavp ライブラリを極力改変せず、追加するマクロを簡単なものとする前提では .c の中で __far を使用するのが善策という考えです。マクロを複雑化しても良いという前提では .cpp にテーブルを書くことも可能ですし、Wavp ライブラリを改変する前提ではテーブルそのものを無くすことも可能です。
あぁ、なるほど、処理が返ってこないというより、再生しながら次の処理に進むということですね。それは現状無理かもです。
で、現状の Wavp ライブラリはどういった用途に利用できるというお考えでしょうか?
とあったとして、数字の若いものほど汎用性の高いものとして提供されるべきと思います。現状基本スケッチのひとつとして提供されている Wavp ライブラリが相応しい気はしません。