BounceBall#01 Androidでカメラを使う
Androidでカメラを使ってみたいと思います。
今後画像処理をするためにOpenCVを使ってカメラアプリを作りました。
このブログを参考にOpenCVの環境を導入しました。
ソースコードはこのブログを参考に作成しました。
OpenCV for Android入門 – カメラ編 « Rest Term
作成したソースコードはgithubで公開してます。
https://github.com/imoto-yuya-1234/BounceBall
SHA: b29084765bd1cd7e69d9232158406e8b3eb56f8f
現状ではMainActivityクラス自体をRunCameraProcessクラスに渡しているのですが、このあたりがもやもやします。MainActivityクラスを渡さないようにクラス内で処理させるのか、もっと違うやり方があるのか...Android初心者なのでこの実装が一般的なのかはわかりませんが、上手く集約できてると思うので、これで良しとします。また何かわかったら修正するつもりです。
とにかく、このソースコードを動かすとカメラ画像がフルクスクリーンで描画されます。
ここでも問題があって、スマホ画面の上下に帯がでます。本当は画面いっぱいに描画したかったのですが、今の所やり方がわかりません。しかしながら、ここはやりたいことの本質ではないので、おいおい解決することにします。
ひとまず、Androidでカメラを使えるようになりました。このソースコードをベースにしてアプリを開発していきます。
次は四角形を検出します。
BounceBall#00 Androidアプリを作る
pebbleのことを先に書こうと思いましたが、今やっているAndroidアプリ作成について書こうと思います。
カメラで四角を検出して、その四角にボールが跳ね返るアプリを作りたい!
Androidアプリ初心者ですが頑張ります。
なぜこんなアプリを?というのはおいおい書きたいと思います。
ここで「カメラで四角を検出して、その四角にボールが跳ね返る」アプリを作るために必要な処理を考えます。
1. Androidでカメラを使う
2. 取得したカメラ画像から四角を検出し、その頂点の座標を取得する
3. ボールをAndroid画面上で動かす
4. ボールが四角に接触したことを検知する
5. 接触したら跳ね返す
こんな感じだと思います。
この5つの処理を順番にクリアにしていきます。
pebbleでHelloWorld
pebbleのwatchfaceを作ります。
まずはアナログ時計を作って見たいと思いましたが、今回はHelloWorldまでにしときます。
CloudPebbleにログイン
pebbleにはwatchfaceやwatchappを簡単に作るためのクラウド環境が用意されています。*1今回はそれで作ってみます。
pebbleのアカウントでログインできると思います。
HelloWorld
ログインできたら、CREATEを選択してプロジェクトを作成します。
PROJECT NAMEは適当にここでは SAMPLE01としました。
あとTEMPLATEはHelloWorldを選択しましょう。
これでプロジェクトが作成できました。
左側のCOMPILATIONを選択して、RUN BUILDされるとプロジェクトがbuildされます。それから下記のハードウェアを選択します。
- APLITE : pebble classic
- BASALT : pebble time
- CHALK : pebble time round
- DIORITE : pebble 2
- EMERY : pebble time 2
これであなたもpebbleプログラマです。
pebbleのwatchfaceを作りました
このタイミングでこんな記事を書くのもどうかと思いましたが、せっかくやったことなので書こうと思います。*1
去年(2016)のゴールデンウィークあたりにpebble time roundを購入して、watchfaceを3つ作りました。
この3つです。まだSDK4に対応していません。
pebble storeにて公開中。
https://apps.getpebble.com/applications/5773e5516c2104f4b3000411
https://apps.getpebble.com/applications/573879bc07033fc7cb000010
https://apps.getpebble.com/applications/572eb542bc4006126100000e
ソースコードはgithubにて公開中。
github.com
github.com
github.com
これらのwatchfaceの作成からpebble storeへの公開までを書きたいと思います。
大体こんな内容で書く予定です。ちょっと変わるかも。
Macのログイン画面でトラックパッドをカチカチしたくない
Mac(Mountain Lion)のログイン画面ではトラックパッドのタップが使えません。カチカチしないといけません。全然スマートじゃないので、ログイン画面でもタップできるようにします。
ターミナルで下記コマンドを入力します。再起動しないといけなかったような気がします。
$ sudo cp /Users/ユーザ名/Library/Preferences/com.apple.driver.AppleBluetoothMultitouch.trackpad.plist /var/root/Library/Preferences/ $ sudo chown root:wheel /var/root/Library/Preferences/com.apple.driver.AppleBluetoothMultitouch.trackpad.plist