Skip to main content

Pebbleのメモ

http://getpebble.com

Pebbleは「スマートウォッチ」と言われる、2013年にこれから流行るんじゃないかと思われているガジェット。
スマートフォンと連携して情報を表示する腕時計です。
小型のスマートフォンのようなところもあり、アプリケーションが動作するあたりからスマートウォッチと呼ばれたりします。
加速度センサーが使われているので、手首をくいっとひねるとバックライトが点灯するなんて小技があるのが「スマート」な感じでしょうか。

 

実際はどうなのよ

大きさはちょっと大きめの腕時計。プラスチックなので高級感はまったくありません。
バッテリーはだいたい一週間はもちます。これはこの手のデジタルガジェットとしては優秀な方だと思います。
内蔵フォントには漢字が無いので日本語表示はできません。そのため、電話がかかってきた時やSMSを受信した時には「□□□ □□□」と表示されるので魅力は半減です。
iPhoneのミュージックプレイヤーの操作もできるのですが漢字の曲名が表示できないので使いづらいのが残念です。

良い点

  • 意外とバッテリーがもつ。約一週間もちます。過去のいろいろなモバイルガジェットを考えるととても優秀。
  • 防水。(水没等は試していないですけど)
  • シンプルなデザイン。小さい/軽い。(アメリカ人には小さすぎないのか心配)
  • 腕をひねると加速度センサによって点灯するバックライト。
  • 複数セットできるアラーム。
  • iPhoneへの電話/SMS/メールの着信が表示される。
  • 普通に「ちょっと変わったデジタル時計」として使えます。

欠点

  • 漢字が使えない。着信/SMSが文字化け。Musicの曲名も文字化け。
  • アラームがバイブのみで音が出ない。
  • ボタンが固い。
  • アプリを使う/作るには少なすぎるボタン。
  • メモリが少ない。(数MBかも)

その他

  • 充電が専用ケーブルなのが欠点ではあるけれど、それは防水との引替えなので悪くない。
  • USB専用充電ケーブルは充電のみで、通信はすべてBluetoothです。ファームのアップデートも無線。
  • 画面がE-Paperじゃなくて液晶じゃないか疑惑がある(笑)。電池が切れると白く(グレーというか)なるので液晶だと思います。グレースケールではないためフォントのジャギーが気になります。
  • 近年のApple製品を見慣れるとジャギーのあるフォントはちょっとありえない感じ。小さめのフォントはきたなく見えてしまいます。
  • バッグの中や、充電中のiPhoneへの着信がわかるので意外と便利です。仕事中はiPhoneを机の上に置いたりしているので。しかし漢字表示ができないのでかかってきたのがわかるだけなのが残念です。SMSも同じく。
  • ミュージックの操作も文字化けで使えません。洋楽だけの方ならまぁいいかもしれません。前後の曲に移動できるだけなのでこれもバッグやポケットの中のiPhoneを取りださずに現在の曲名が確認できるという感じでしょうか。シャッフル再生の時に便利そうです。

スマートウォッチ

App Storeから httpebble をiPhoneにインストールして、pebbleの方に Futura Weather をインストールしました。
数分たつとpebbleに天気と気温が表示されてます。なんか笑えます。
httpebbleの方で勝手に現在地情報を取って気象情報サイトからデータを引っ張ってきます。httpebbleにはほとんど操作する部分が無く、「Connect」ボタンしかないっす。
pebbleには他にも天気表示アプリがありますが、これがシンプルで、気温も摂氏(°C)なのでいい感じです。アメリカのアプリだと華氏(°F)のものが多くて日本人向きではないんですよね。
全然当たらない天気予報ですがいいんです。スマートウォッチっぽいから。かなり微妙です。

91 weather というpebbleのフェイスもあるのですが、これはうまく天気表示ができませんでした。時刻と天気の他に着信数、SMS数、日の出、日の入なども表示できるようなのですが。なにかエラー処理が違うのかな?
「CW27」という表示が意味がわからなかったのですが、「Calendar Weeks」という値で今週が今年の何番目の週かという表示です。日本ではあまり使われない値ですね。

いまのところスマートウォッチのキラーアプリのようなものは出てきていないようです。ちょっと前の携帯電話の背面液晶程度のものですね。とにかく漢字表示ができない点がマイナスです。

まだまだ開発中で機能の追加が続いています。2013年8月にiOSとの連動でメールの表示ができるようになりました。(andoroidは以前から)
(2013/07/08)

(2013/08/05)

追記

「Smartwatch Pro」というiOSアプリをインストールしてみました。
iPhoneのカレンダー情報、リマインダー、Twitter等と連携します。
しかし、iPhoneとpebbleの連携はしばらくたつと切れてしまうんだよなぁ。httpebbleもそうなんだけど、メール等の他の通信があると切れてしまう場合が多いような感じ。
なかなか上手くいきませんね。

(2013/09/02)

 

Pebble その後

2013年11月のPebbleの話。

Firmware 1.13 がリリースされました。
iOS の通知に対応したのがポイント。メールもtwitterも表示されます。相変わらず日本語は未対応ですが。

そして次期バージョンのFirmware2.0の話が出てきました。
Pebble SDK Ver.2 と Firmware 2.0(Beta1) が用意されています。BETA2になったら入れてみようと思います。
さらに高機能になるようです。

しかし問題はそれなりにありそうです。
FW2ではWatchFaceは新バージョン用のものが必要です。これまでのものは使えないらしい。
また、本体メモリサイズの問題から日本語フォントが載る可能性は低いようです。

韓国語改造ファームがあるような話も見られますが日本語対応はあまり期待しないでおこう。

(2013/11/15)

Pebble さらにその後

2013年12月のPebbleの話。

Firmware 2.0を入れてみました。
まだまだBeta4ですが使いやすくデザインが変更されていると思います。
開発ツールも使えています。

(2013/12/30)

Pebble さらにその後

2014年11月のPebbleの話。
Firmware 2.8
安定して稼働中です。ラテン文字対応、絵文字対応が少しづつ進んでいますが日本語は相変わらずダメですね。
無理やり日本語の一部だけを表示できるように改造している方も出てきました。やはりメモリサイズのためかフォントが載らないようです。
Appleも半年後にはスマートウォッチを発売開始するということで、それに合わせたのか他社からもたくさん出てきました。しかしどれもバッテリーがもちません。

(2014/11/24)

Maker Fair Tokyo 2014

東京ビッグサイトで行われた Maker Fair Tokyo を見てきました。

ビッグサイトの西館の上という、コミケットで言えば企業ブースの場所です。昔はこのイベントは東工大の体育館でやっていたのだからだいぶ規模が大きくなったものです。
今回も子供と女性の多いイベントで、非常に不思議な空間ですね。Makerはかっこいいのか?

個人で出展している人の中に大学の後輩の名前があったのでなんとなく行ってみた。
25年ぶりに会うのだけどお互い見た目が変わってないのがなんだかおかしい。
謎な機械を作っていた。

そして、いつも出ている今江科学の今回のネタはスタートレックの宇宙船型ラジコン潜水艦。クリンゴン語で書かれたチラシを渡された(読めない)。
推進は水中モーターの代わりに電動灯油ポンプをバラして使っていた。水回りの処理を作るときには安くて効率よくできるらしい。簡易ポンプとしてはかなり優秀な製品のようだ。バック用のノズルもおもしろくできてる。

興味深かったのはマクニカのブースで展示していたBluetoothモジュール。技適を取ったモジュールが980円という激安だった。これならおもちゃとして何か遊べそうだ。

お土産としてはスイッチサイエンスにRaspberry Pi B+用のケースがあったので買って来た。本体はB+が出た時に買ったのだけどケースがまだ出ていなかったのだ。これできちんとケースにおさまった。

明和電機の社長が会場内を普通にウロウロしているのが面白い。

pebble の watchface を作ってみる

pebbleの開発情報は英語だけですがあります。
もともとそれほど複雑な機能は無いので英語でもなんとかなりそうです。
https://developer.getpebble.com/

サンプルを元にpebble の watchface を作ってみました。

デジタル時計のサンプルとしては一番シンプルなclassioがわかりやすかったですね。コメント含めても60行しかありません。指定した座標に時刻を表示するだけです。
ソースを見ると時刻をフォーマットして返すAPIがあるのでそれで文字列を受け取って画面に表示するだけでいいようです。これはとても簡単だ。
サンプルは以下の一行で一気に取ってきておしまいにしていました。これで「12:34:56」というような文字列が取れます。
strftime(time_text, sizeof(time_text), "%T", tick_time);r /> アナログ時計の場合は三角関数で針の長さを計算して表示しなければならないので敷居が高いと思います。が、サンプルを参考にすればなんとかなるでしょう。

UNIX秒を使おうと思っていろいろながめてみたのですが、どうやらUNIX秒は利用できないようでした。
pebbleでは時刻はローカル時刻のみを使っているので、タイムゾーンを持っていないのです。そのためにUTCを計算できません。
pebbleがタイムゾーンをサポートしない限り利用はできないでしょう。日本限定として時差を計算して作る事は可能ですがね。

SDKインストール

ここで時間をさかのぼりSDKのインストールの話。
SDK2のBeta2が出たら試してみようと思っていたら、すぐに出てきた。そこで早速インストールしてみました。
ファームウェアVer.2では従来のWatchFaceは使えません。Ver.2用のWatchFaceが必要です。
Beta版ではありますが大きな問題は無く使えています。通知もそれなりに届いています。アラームに変なバグがあったものもBeta4では直っているようです。
まずは iPhone アプリと pebble 本体のアップデート。
BetaのiPhoneアプリをインストール。そしてpebbleのファームのアップデートはiPhone経由。PCを使わないのが新鮮です。手順は良く変更されるのでがんばって英語を読みましょう。
iPhoneの「設定」から「pebble」を探してみると「Developer Mode」という謎のスイッチがあるのでそれをオンにする。
作ったアプリは無線LANで転送するため、iPhoneをローカルの無線LANに繋ぎます。

次に開発機(PC)の準備。
まずはSDKのインストールをOS X Marvericksで試してみたのだけど上手くいかないのであっさりあきらめてVMware Fusionの上にUbuntuを作ってそこにインストールした。
とりあえずhello worldがビルドできた。(英語斜め読みでやっていたので失敗も多かったのだけど…)
iPhone の pebble アプリを起動してDeveloper Connection を Enabled にすると作ったアプリが転送できるようになります。転送コマンドで母艦からiPhone経由でpebbleにインストールされた。
hello worldが動いた。watchfaceかと思ったらアプリだった。ボタンを押すと表示が変わるものでした。

「Example」フォルダにあるものをbuildしてインストールしてみた。Big Time が好きなので追加しちゃう。

pebbleはエミュレータが無いので実機に入れて試すというなかなか野蛮な開発環境です。
この後の開発中にはクラッシュ画面を何度も見る事になるのだった。リブートなんかもしちゃう!
ノーコンになって再起動したりもしましたがpebble本体は無事です。

サンプルで練習

ビルド、転送、スクリーンショットは以下のコマンド。
最小限の引数で動きます。
スクリーンショットは表示されている画面を日付時刻の付いたPNGファイルで保存します。

$ pebble build
$ pebble install --phone 192.168.1.23
$ pebble screenshot  --phone 192.168.1.23

アプリ開発

$ pebble new-project hogehoge から始めるのが正しいのでしょうが、今回はclassioのサンプルソースから改造して作ってみました。
appinfo.json の中にUUIDがあり、他のアプリとかぶりんちょしては困るので、新規にnew-projectして作ったファイルのUUIDと入れ替えてみます。
このファイルの中にバージョンやファイル名を書くのですが、ここでVer.2用にするのでしょう。
適当にそれっぽく書き換えておけばよさそうです。

WatchFace、アプリのサイズの上限が24KBです。
一番単純なサンプルでサイズが3KBくらい。pebbleの画面サイズ(168×144)の白黒png画像が2KBくらいだからたくさんの画像を使ったものは作れなさそうです。
画面サイズが非常に小さいので、デザインはドット単位での試行錯誤が必要でしょう。
ファイルサイズの問題から日本語フォントを追加することも難しいでしょう。漢字の画像を用意して日付と時刻程度は表示できそうですが。

pebble を使っている日本語を使う方々。

日本にも何人かは pebble を買って、さらにアプリの開発までやっている物好きな方がたくさん(?)いるようです。

http://blog.makotokw.com
http://nozaki.com
http://marrone.jp/labo/
http://hitoriblog.com
http://awwa500.blogspot.jp/

pi で遊んでみる (Webカメラ)

Webカメラの準備

Raspberry pi にはUSBがあるので簡単に市販のWebカメラ(UVC)がつながります。今は純正のカメラもあるのですが手元にあるLogicool(Logitech)のC270というものをつないでみます。
経験上、Webカメラは激安のものよりは有名メーカーの最低グレードのものの方が良いような気がします。
Raspberry pi はCPUが弱いので動画にはあまり向きません。おとなしく静止画を撮影させてみます。
Raspberry pi では電源の心配があるのでセルフパワーのUSBハブにWebカメラを接続して電源はUSBハブに助けてもらいます。

$ sudo apt-get install … でソフトウエアの追加をします。
(今回使わないものも入ってますが)

  • fswebcam : Webカメラを使うためのツール
  • imagemagick : 画像処理用
  • nginx : webサーバ
  • bc : 計算
  • mrtg : MRTG
  • vim : エディタ
  • ttf-mscorefonts-installer : マイクロソフトのTrueTypeフォント

MRTGで以下のエラーが出るのでsedのスクリプトを一発流す。
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=36&t=13044
sudo sed -i 's|import\ Socket6;|Socket6->import\(qw\(inet_pton\ getaddrinfo\)\);|' /usr/share/perl5/SNMP_Session.pm

インストールの処理に非常に時間がかかるようです。これがraspberry piの貧弱な性能なのか。

Webカメラの撮影

$ sudo fswebcam /var/www/html/test0001.jpg

これだけでとりあえず写真が撮れると思います。
パソコンのWebブラウザから http:/(RasPiのアドレス)/test0001.jpgで画像が表示できるでしょう。
ファイルの出力先をwebサーバのディレクトリにするとリモートで確認しやすいです。

$ sudo fswebcam -d v4l2:/dev/video0 -p YUYV -r 640x480 --top-banner -S 5 --font /usr/share/fonts/truetype/msttcorefonts/arial.ttf:16 /var/www/html/test0002.jpg

こんな感じで撮影時刻がついた画像ができました。
オプションはファイルに書いて読み込ませる事ができます。
テキストファイルに長いオプション名の–を取ったものと値を一行ずつ書いたものを作ればよいようです。コマンドが短くなって見やすくなりました。

$ sudo fswebcam -c fswebcam.conf /var/www/html/test0003.jpg

sudo で操作するのもめんどうなので、 vigr を起動して、video と audio に自分のユーザグループを追加しておきました。最近は最初から追加されているようです。
これをcronで回して、FTPやwebサーバと組み合わせればお天気カメラ、監視カメラになります。

nginxの設定

Webサーバは最近のドキュメントが多いnginxを入れてみました。
/var/www/html 以下が公開されます。

ディスク書き換え問題

Raspberry Pi は低価格の教育用コンピュータという点もあり、ストレージにSDカードを使っています。安いのはいいのですが、書き換えが多い処理をしているとSDカードがエラーを出してしまいます。(死にます)
30分ごとに写真を撮ってMRTGで温度を記録していたら、三ヶ月で使えなくなりました。
教育用として短期間使う場合は問題がありませんが、仕事に使うサーバは Raspberry Pi じゃなくてちゃんとしたマシンを使用しましょう。
今回はSDカードへの書き込みを少しでも減らすために Ram Disk を使用してみます。最近のLinuxでは最初から利用できるようになっているようです。
df -h で表示をみると /run/shm/ というものがRam Diskです。
Webカメラのファイルの出力先をRamディスクにして、webサーバのディレクトリへのシンボリックリンクを作っておきます。webサーバの設定でシンボリックリンクを有効にすれば使えるでしょう。(たぶんそのまま使える設定だと思う。)

起動スクリプト

/etc/rc.local に起動時の処理を追加します。
起動時にRAMディスクの中に必要なディレクトリを作成しておきましょう。

mkdir /run/shm/webcam
chmod 777 /run/shm/webcam

まとめ

以下のファイルを作り、調整するとブラウザで過去24時間の写真が見れる「監視カメラ」が作れます。
各種値を調整すればそれなりに目的のものになると思います。

(/home/pi/etc/fswebcam.conf)

device     v4l2:/dev/video0 
palette    YUYV 
resolution 640x480 
top-banner
skip       5 
font  /usr/share/fonts/truetype/msttcorefonts/arial.ttf:16

(/home/pi/bin/takepic.sh)

#!/bin/sh
# ファイル名は時刻
filename=`date +%H%M.jpg`
/usr/bin/fswebcam -c /home/pi/etc/fswebcam.conf /run/shm/${filename}

crontab -e でcronに登録。

# 60分毎に撮影
0 * * * * /home/pi/bin/takepic.sh

/var/www/webcamindex.html

<html>
<body>
<img src="/ram/0000.jpg"/><br>
<img src="/ram/0100.jpg"/><br>
...(略)...
<img src="/ram/2200.jpg"/><br>
<img src="/ram/2300.jpg"/><br>
</body>
</html>

この他に ZoneMinder という監視カメラのツールもあります。これでもっと高度な監視カメラになるようです。 ちゃんとマニュアルを読まないと使えなさそうなので使ってませんが。

Logitech QuickCam Orbit MP

Logitech (Logicool) のwebカメラで上下左右にカメラが動く珍しい機種がある。
長い間この機能のLinuxの使い方がわからないでいたがやっと判明した。
一応、UVC対応カメラなのでfswebcamで撮影できるようにするまでは普通のカメラと同じ。
追加で v4l-utilsとuvcdynctrlをインストールする。
v4l2-ctl -L で使用できるコマンドの一覧が表示される。ここにpan_relativeなどが出てきたらOK。
get install v4l-utils uvcdynctrl
v4l2-ctl -c pan_reset= でパンのリセット、v4l2-ctl -c pan_relative=1000で左に動く。右に動かしたい時は負の値。チルトも同様。
(2014/11/1)
(2016/3/21)