Arduboyで電卓ゲーム

2015/5/18に出資して、ようやく2016/5/15に届きました。

f:id:sira2005:20160519161035j:plain

開発環境の整備やゲームの使用感はこちらの記事が大変参考になります。

dvorak55.hatenadiary.jp

 

せっかくなので何か作らないと、と思ってお約束のHello,world!。サンプルそのままだと寂しいので、少し動かしてみた。

 

懐かしい電卓ゲームをお題に作ってみよう。

まずは、7セグ表示はどうやるのかな? 

APIにdrawBitmap, drawSlowXYBitmapが有るので試すと、1Bit/Pixelで1Row毎に左から右に走査するデータを作って、drawSlowXYBitmapに渡すと奇麗に表示された。でも、この関数は内部で1Pixel毎にdrawPixelを呼んでいて、関数名の通り動作がslowに思える。

同じデータをdrawBitmapに渡すと崩れる。適当に横線を示すデータを作って試すと、number_bitmap2が奇麗に表示された。と言うことは、X=0のY=7〜Y=0を1Byteに構成すればよさそう。

f:id:sira2005:20160522195036j:plain

手計算するのは大変なので、Numberで計算してみる。これをコピーペーストして使おう。

f:id:sira2005:20160522200118p:plain

 

少し動き出した。まだルールを実装していないけど、とりあえず敵をやっつけられるので、出来た気になれて満足。

youtu.be

リモコンNK

1月の終わりに衝動買いしたIRKit。標準アプリがシンプル過ぎるので、しばらく箱に入れたままにしていました。元々SDKが公開されていてアプリを自作出来るところが気に入って購入したので、アプリを自作しないと。

と言う事で、こつこつ作って3/29にApp Storeに並びました。その名も「リモコンNK」。そのまんまです。

専用H/Wがないと動作しないアプリの申請ってどうやるんだろう。と不安になったのでIRKit作者の@maashさんに尋ねると「IRKitとアプリの基本的な動作の映っている動画をとってyoutubeの限定公開にしてレビューのコメント欄にurlを書きました。特に質問もなくすんなり通りましたよ」との事。少し安心しました。

アドバイス通り動画を撮影してyoutubeにアップ、urlと簡単な説明をコメント欄に書いて、レビュー申請しました。私の場合も質問される事もなく通過しました。

リモコンNKでこだわったのは以下の点です。

  • 信号のバックアップ
  • データのエクスポートとインポート
  • オートリピー
  • マクロ
  • 複数ページ

 最近の家電はリモコンが無いと操作が出来ないので、リモコンが壊れてもIRKitで代わりになると安心出来ます。

 リモコンには結構多くのボタンがついていて、全部スキャンするのは面倒です。スキャン作業は1回で済ませて、家族みんなが持っているiPod touchiPadにコピー出来ると便利です。また、バックアップとしてファイル化して置いとけると安心です。

 ビデオレコーダはメニュー操作で複数のキーを押して機能を実行する様になっているので、ビデオ削除みたいな定型操作をボタン1つで操作出来ると便利です。

 我が家の居間にはテレビ、ビデオレコーダ、アンプ、エアコン、AppleTVや照明のリモコンがあり、これらをiPhoneに置き換えられると便利です。

 

f:id:sira2005:20140331214425p:plain

 こんな画面です。

App Storeのページはこちらからどうぞ。

説明動画はこちらです。


リモコンNK - YouTube

iOS6対応版は申請済みです。1週間くらいでリリース出来ると思います。

RAPIRO

 

前から在庫切れで注文出来なかったAdafruit I2C通信の8x8ミニLEDマトリックス基板の在庫が復活していたので、早速注文。

色々調べたら、この製品が小さくて配線も簡単で手ごろな値段で買える事が分かった。マトリックスLEDとマイコンを組み合わせて作ろうかと思ったけど、それだと大きくなるし、配線も大変。さほど安く出来ないし。

と言うことで、在庫が復活するまで待っていたのです。

f:id:sira2005:20140308155732j:plain

 

で、これを何に使うかと言うと。。。

 

 

目が変化すると表情が出ますね。

f:id:sira2005:20140308151029j:plain

f:id:sira2005:20140308161217j:plain

 

目の裏側に少しスペースが有ったので前からLEDを入れられないかな〜と思っていて、駄目元でやってみたらぎりぎり入りました。前にホームセンターで買ってきたアルミ板が有ったのを思い出して、LED固定用のステーを自作。これに時間がかかりましたが、それなりに付いたので満足です。ただ、消費電力が大きいのか、5VにつなぐとRaspberryPiがリセットするので3Vにつないでいます。あと、点灯するLEDの数が多いとリセットするので、もっと消費電力の少ないものの方がよさそうです。注意して使うと言うことで良しとしましょう。^^;

f:id:sira2005:20140308161718j:plain

 

 

声と合わせるとより表情が出ていい感じです。後は動きを付けると子供がよろこびそうです。

f:id:sira2005:20140308163116p:plain

RAPIRO

昨年gizmodo.jpで紹介されて速攻でポチったRAPIROが先日(2/6)届きました。

週末に組み立てようかなと思ったのですが、息子が待ちきれない様子だったので、その日のうちに組み立てました。

f:id:sira2005:20140206192331j:plain

説明書はついてなくて、手順にそって撮影された写真をネットで見ることができます。部品点数も多くないので、じっくり写真を見れば理解出来ました。

ただ、写真はここまでしかありませんでした。(今は全部そろっています。)

f:id:sira2005:20140206204557j:plain

ここまで来たら最後まで組み立てたくなります。よね。残りの部品を眺めて、はめて、眺めて、はめて。

f:id:sira2005:20140206220430j:plain

出来ました。RaspberryPiはまだ入れてないので、目が光るだけです。

組立自体は簡単で、2時間半ほどで出来上がりました。

今日はここまで。

 

2/8。

f:id:sira2005:20140208082955j:plain

RaspberryPiを入れて、BluetoothにPS/3コントローラをペアリングして、サンプルのrapiro_ps3.pyを動かすと、コントローラ操作で歩いたり、ポーズを決める事が出来ました。

 

2/13。

f:id:sira2005:20140213231428j:plain

満充電のeneloopだと1.4V以上有って動きますが、少し使うと1.3V台まで落ち、サーボモータが誤動作し始めます。RaspberryPiをいじっている間中電池を気にするのはストレスを感じるので、ACアダプターを買いました。

秋月電子通商の商品で、ラピロさんからOKをもらったので安心して注文できました。

 

f:id:sira2005:20140213231730j:plain

ついでにセンサー類をたくさん買いました。

 

2/15。

f:id:sira2005:20140220193006j:plainとりあえず距離センサーをつけました。

秋月電子通商GP2Y0A21YKです。サイズはピッタリです。RAPIROはこれ用に設計されてる様ですね。

せっせと基板を作って距離センサーをRaspberryPiにつないだのですが、RaspberryPiってアナログ入力が出来ない様なので、Arduino側で処理しないといけない様な。後回しです。。。

 

2/20。

f:id:sira2005:20140220193601j:plain

温湿度センサDHT11大気圧センサMPL115A2オーディオパワーアンプをつけてみました。

温湿度センサは「Dht11 | Raspberry piとArduinoの工作室

大気圧センサは「温度センサ(TMP102)と気圧センサ(MPL115A2)をつかってみた

を参考にしました。

RAPIROの頭は空洞があるので、基板の追加も簡単です。

オーディオアンプは、RaspberryPiのイヤホンジャックからの出力をスピーカーから鳴らすためです。最初5Vの電源につないだのですが、消費電力が大きい様でRaspberryPiがリセットしてしまいました。3Vにつなぐと安定して動作します。ボリュームをほとんど絞った状態でも十分な音量なので、もっと消費電力の小さいものの方がいいかもしれません。

RaspberryPiのカメラで撮影するとRaspberryPiがリセットする症状も出たのですが、Wi-Fiドングルを交換して改善されました。古いWi-Fiドングルだと消費電力が大きいのかもしれません。

1時間毎に気温、湿度、気圧の測定と写真撮影を行う様にして、結果をログファイルに残す様にしました。まだ数時間ですが、安定して動作しています。

ただ、気温は室温より15℃ほど高く出てしまいます。センサーを外に付けないと意味がなさそうです。;^_^A

あと、アンプを付けたので「AquesTalk Pi - Raspberry Pi用の音声合成」を入れてしゃべる様にしました。

電源を入れて、rapiro_ps3.pyが起動するとしゃべります。

 こんな感じ

日付シールを修正#enchantMOON

先日作った日付と時刻のシールですが、2.8.0になって動かなくなっていました。

修正しました。

ついでに、数字のストロークを作る部分をライブラリ化しました。

.jsの作り方がわからず挫折しそうになりましたがesmasuiさんのこの記事のコードを参考にさせて頂、作る事ができました。NK.jsです。

日付と時刻のシールのページのリンク先を入れ替えています。