2014年03月05日

計算尺

腕時計は、単に時を刻むだけの物ではない。特に男性の場合、数少ない身を飾る装備であり、その人の品位の現れる物である。・・・みたいな事を主張する人もいる。まぁ、わからないでもないのだが、品位云々はちょっと行き過ぎだと個人的には思わなくもない。

それはさておき、腕時計に欲しい機能とは何だろう。これは、人によって大きく異ると思われる。時刻が表示されれば良い人も居るだろう。その中でも秒針の要不要などの差もあるに違いない。天体観測をする人にとっては、月齢表示は重要な要素だろう。ジョギングをする人にはストップウォッチが必須機能かもしれない。色々な機能を必要あるいは不要とする人がいるからこそ、腕時計にも色々な盤面がある。小生はそう考える。

そんな腕時計の色々な機能、盤面の中で、根強い人気を持ち、見た目に派手な物の代表作と言えば、航空計算尺の類ではなかろうか。円形の腕時計があり、その外側に回転するリングがついている。そして、その両側に何やら奇妙な目盛が振ってある。要は円形の計算尺の一部を抜き出した物である。

言ってしまっては何であるが、この航空計算尺がついた時計、ある意味悲しい状態ではなかろうか。実際に腕時計として使っている人は多いと思われる。その半面、計算尺部分を使いこなしている人・・・いや、使ってる人がほどんど居ないのではなかろうか。そんな状態の物である。

いや、計算尺なんてぶっちゃけ何に使えるんだ、という疑問もあって当然かと。電卓が手帳に収まる現代では、確かにその疑問は正しいかもしれない。そういう意味では過去の遺物である。過去というなら、35年くらい前までは日本の中学校の教科書に計算尺の使い方が載っていたそうだし、確かに小生も小学校高学年の頃にそれを見た記憶がある。あぁ、歳がバレるなぁ。

歳の話はさて置こう。計算尺で何が出来るか。これは、円形だろうが定規型だろうが基本は一緒で、できる事は同じである。一言で言うなら「掛け算」。ただし、有効桁数は2桁〜4桁くらい。腕時計だと2桁プラス目視でもう1桁の精度が出るかどうかくらいであろうか。2桁×2桁の掛け算を概算するのが得意、くらいに思っておけばいいかもしれない。

例えば、15マイルって何kmだろうという疑問を思いついたとする。1マイルが1.6kmだと知っていれば、15×1.6で計算できる。こういう時、暗算しなくても計算尺があると「ああ、だいたいこのくらいだな」というのがわかるので(場合によって)便利である。・・・という程度の物である。

詳しくはよそのページに譲るとして、航空計算尺を含む円形計算尺を一例に、計算方法を紹介してみよう。おそらく、可動する部分の外側と内側に、1.0(あるいは10)から始まって、不均等な間隔で、ぐるっと一周すると1.0(あるいは10)の位置で10.0(あるいは100)、つまりちょうど10倍になるような目盛があるはずだ。この一対を使用する。

3×5なら、外側の「1.0」の目盛を内側の「3.0」の目盛に合わせて、内側の「5.0」に対応する外側の数字を読む。3×5の回答は10であるが、桁数こそ違うものの「1.5」という数字が読み取れるはずである。外と内の目盛は、それぞれ逆でも構わない。つまり、何も難しい事はない。掛ける数(あるいは掛けられる数)を「1」に合わせて、他方を読む。ただし桁の繰り上がりは自分で計算する。これだけである。

先のマイルの例ならば、1.6と1.0を合わせておけば何マイルでも計算できる。1.0の側で5マイルなり10マイルなり好きな数字を探して、1.6の側の数字を読めばマイルからkmへの換算が出来る。インチだろうがオンスだろうが尺だろうが同様である。逆に読めば、10kmが何マイルかもわかるわけだ。

ChronoPebbleShot.pngと、例によって前置きが長くなってしまった。この計算尺を、Pebbleに移植できないか。というわけで、やってみた

デジタル液晶で表示するが故に、計算尺部分を物理的に回すことは不可能であるとしても、ボタンで回転させる事は出来る。Pebbleの開発言語には対数を計算する関数はないので、近似値を計算する関数を作ってみたり(こんな作業は学生時代以来である)した。また、Pebbleの解像度は色々と余裕が無いので、1ドット単位で表示やレイアウトをいじってみたり、その他諸々の試行錯誤はあったものの、何とか画面に収まったという感じである。

せっかくのデジタル計算尺なので、いくつかプリセット値を用意してみた。先のマイル変換のような、特定の値をボタン一つで呼び出せれば便利なはずである、と考えたためである。

さて、ここまで作ってから今一度、上にある疑問に立ち返る。本当に腕時計についてる計算尺を使う場面があるだろうか。小生の場合、使うという結論に達した。というのも小生、まれに米国への出張がある。あの国は単位が日本と違う。故にマイルからkm、ポンドやオンスからグラム、チップの約15%の計算など、案外そういった計算をやった経験がある。こういう時に必要なのは概算であり、たいした精度は必要ない。そういう意味でも、これで十分な感じがする。

ちなみにこのChronoPebble、既にPebbleの公式マーケットに公開してある。AndroidあるいはiOSの端末で、Pebble 2.0のアプリを入れているのなら、こちらからダウンロード出来る(残念ながら、それ以外の環境ではリンクは働かないはず)。
posted by 管理人 at 08:53| Comment(0) | Pebble | このブログの読者になる | 更新情報をチェックする

2014年02月23日

小石

久しぶりの更新。更新していない間、一体何をしていたかっと問われると、まぁ色々と。具体的には、目新しいデバイスを手に入れてしまったので、そちらで遊んでいたというのが正しい所か。

何を手に入れたかと問われると、こちらで売っている「Pebble」なる腕時計。俗にいうスマートウォッチとか言う奴である。

これの何が良い、と問われると色々ある。が、何よりも大切なのは、「腕時計」として成立するスマートウォッチであるということ。画面の華やかさばかりを謳うスマートウォッチが売りに出されている昨今ではあるが、設置場所が腕時計の代替となる以上は腕時計としての機能を満たしてくれないと意味が無い。わかりやすい例なら1日や2日で電池が切れるようでは論外であるという事である。加えて、最近の携帯電話(特に日本製)は当たり前のように防水となっている。スマートウォッチの母艦が防水なのに、スマートウォッチが防水でないというのも、何かこう納得がいかない物である。

という訳で、一週間程度は電池が持ち、防水機能のある事。これが小生の考える最低限必要なスマートウォッチの機能である。Pebbleは、この条件を十分に満たしてくれる。

さて、最低限の腕時計としての機能は満たすとして、次は何を求めるか。普通に考えると、文字盤のデザインとか機能とかであろう。例えば「ムーンフェイズ」が欲しい人、「24時間針」が欲しい人、「回転式ベゼル」が欲しい人、「航空計算尺」が欲しい人などなど。ここからが、スマートウォッチの出番であると小生は考える。時計の外側やボタンの数などはどうしようもないが、少なくとも盤面は「解像度の範囲内」で、「プログラマの力量以内」ならば、自由にデザインする事ができる。うん。欲しい機能、ぜ〜んぶ放り込んでしまいましょう。まぁ、温度計とか気圧計とか、センサー類はどうしようもないのだが・・・。それでも母艦と通信すればGPSを使った高度計だとか、天気予報サイトを使った温度計くらいなら作れる訳である。

Pebbleの開発は難しいか、と問われると・・・ちょっと難しいかもしれないかな。少なくとも、癖はあると小生は考える。言語は昔ながらの「C言語」であるが故に、80年代90年代プログラマなら取っ付き易いかもしれないが、最近の子達には面倒かもという気もする。まぁ、その辺は慣れっちゃ慣れかとも思われるが。ただ、C言語(具体的にはANSI-CやGnu-C)の全ての機能を満たすわけではないので、場合によっては自分で近似値計算とかを行う必要があるかもしれない。

何はともあれ開発さえ出来るのであれば、自分の好みの盤面の腕時計が通販で150ドルで買えるわけである。これは、腕時計としては決して高くない部類かと。という事で買ってしまったのが昨年の秋である。それから開発関連を色々試し、試してる途中でファームのバージョンが2.0βに上がり、そっちに移行してゴチャゴチャやって今に至る、と。

何はともあれ、低解像度の画面で1ドット単位の調整をしながら思い通りの物を作っていく作業は、80年代プログラマとしては懐かしい限りである。最近のPCや携帯では、1ドットの隙間を「貴重」と思う事もなくなってしまったが、そうではない時代のやり方を思い出させると同時に、今のアプリを作る時にもこの感覚は思い出す必要があるんだなと再認識した次第である。
posted by 管理人 at 13:46| Comment(0) | Pebble | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。