今回はPWMを使ってみましょう。IchigoJamについてくる「圧電スピーカー(サウンダー)」を用います。
これは音を出すために必要なのですが、IchigoLatteを購入しても圧電スピーカーはついてきません。このため、別途購入する必要があります。
ちなみに、IchigoJamにはサウンド演奏機能があるのですが、IchigoLatteにはサウンド機能がありません。OUT端子からパルス出力を行うことで音を鳴らすことができます。今回はこの方法を使ってみましょう。
・圧電スピーカー(サウンダー)
http://akizukidenshi.com/catalog/g/gP-04118/
まず、圧電スピーカーをOUT4とGND端子に接続してください。圧電スピーカーの足が短くてOUT4に接続できないような場合は、OUT1〜3のいずれかに差し込んでください。
IchigoLatteでパルス出力を行うには、pwm()を使います。最初のパラメーターに出力するOUT端子の番号を、2番目のパラメーターに周期を指定します。pwm(4,1000)とすると、OUT4端子に1000の周期で出力を行います。
圧電スピーカーをOUT3端子に接続している場合は、pwm(3,1000)としてください。OUT2端子に接続したならpwm(2,1000)です。
周期を変えると音の高さが変わります。プログラムを作る前に、インタラクティブモードにして確認することができます。
シェルからmsと入力しリターンキーを押すと、インタラクティブモードになります。
lash>ms
ms>■
pwm(4,1000)と入力しリターンキーを押します。
ms>pwm(4,1000)
ms>■
すると、圧電スピーカーから音が鳴ります。音は小さいので、なるべく静かなところでテストしてみてください。
pwm(4,0)とすると音が鳴り止みます。周期を変えて音がどのように変化するか確認してみるとよいでしょう。
押された0〜9のキーに応じて音の高さを変えるプログラムは、以下のようになります。0のキーコードは48(16進数なら0x30)なので、入力されたキーの値から48を引いて周期(以下のプログラムでは1500)を乗算します。
0〜9以外のキーを除外していないので、他のキーを押した場合でも出力されます。気になる場合は、0〜9までのキーが押された場合のみ出力するように変更してみるのもよいでしょう。
while(1){
var k=inkey();
if(k>0){
var p=(k-48)*1500;
pwm(4,p);
log(p,"\n");
}
}
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
同じゲームを続けていると、どんどんプレイヤーが減っていくのがわかります。現時点ではイングレスをプレイする人口が減っていて、数人だけの争いになりつつあります。
人数が減るとこれまでのようにとにかく無差別に攻撃して、陣地を確保していく方法が採用できなくなります。まず、自分の陣地を維持するだけで大変です。
不要なポータルは捨てて、重要なポータルだけにエネルギーをチャージすることになります。そのうち陣地を広くとるのか、小さい範囲で確実に陣地を確保するかという選択になります。
まあ、見栄を張って広大なシェアを維持するか、見栄を張らずに地元で小さいけど確実なシェアを確保するか……。なんか、商売にも通じるようなゲームだなあと最近実感。
・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/
・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591
・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/
・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/
・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/
・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/