プレイ日記
おちゃめ ochame_nako
新作QSP「簡易歩数計QSP」を作りました。歩数をカウントする機能に加えて歩幅を元にして歩いた距離を計測したり、簡易分度器QSPと組み合わせて電柱などの高い物体の高さを計算する機能も備えています。公開キーや詳しい説明や歩数カウントの仕組みの解説などはコメントにて。
10そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
これがプログラムリストです。公開キーは【 ND348394 】です。 RUNすればすぐに計測開始です。 プチコン3号を起動した状態でないと計測できないというプチコンそのものの仕様上の問題がありますが、その点は常に計測というよりは「ここからあそこまでの歩数」といった使用方法がベターだと思います。 QSPで可能な限界くらいまで計測精度を高めているので本体を両手で持って普通に歩けばカウントされます。画面を見ながら歩行するのは危険なのでやめてください。 基本的に使用方法や設定方法はプログラムの末尾のマニュアルに記載していますが、以下においてさらに補足をしておきます。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
簡易歩数計QSPの設定方法について書きます。 基本的に歩数を測るだけならばベターな状態に設定してあるので弄る必要はありません。 しかし、距離を測ったり高さを測ったりする場合は設定を変える必要があるし、人によって歩き方が異なるため標準設定が必ずしもベストなものではありません。 設定は基本的に最初の行の4つの変数の値で変えられます。 変数Hの値は使用者の身長です。初期値は150cmとなっています。これはプチコン3号の利用者で多いと推測される小学高学年から中学生の平均身長くらいを考慮しています。 変数Lは歩幅です。初期値は身長×0.4となっています。身長を変えることで歩幅も連動して変わるようにしているわけなので特に弄る必要はないのですが、「私の歩幅は約70cmある」とか分かっている場合はL=70と設定しておくと良いでしょう。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
変数Sは歩数計の感度です。初期値は0.07となっています。小さい値に設定するほど敏感になりますが誤動作しやすくなります。感度はやや高めだけど普通の使い方では誤動作が起きにくいけどベターな設定にしているものの初期値では「誤動作が多い」と感じる人は0.07よりも大きめの値(0.1~0.2程度)を設定しても良いでしょう。(大きくしすぎると派手に歩かないとカウントされなくなる) 変数Iは目線の高さ(自分の目がある高さ)です。初期値は身長-9cmとなっています。これは高さ計測をする時のみに必要な項目で例えば100cmの台の上に本体を乗せて角度を測った場合にはI=100にしておくとより正確な高さを求めることが可能になります。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
続いてこの簡易歩数計QSPの動作の仕組みを簡単に解説します。 この簡易歩数計QSPはQSPの範囲内で可能な限り精度を高めるようにしています。 歩数計を作るには内蔵の加速度センサー(ACCELで取得可能)を使用します。 本体をどんな向きで持っても同じように反応するようにX、Y、Xの合成値を生成します。 合成値はSQR(X*X+Y*Y+Z*Z)で求められ本体が動いてない時はその値は約1.0になります。 あとは本体を動かせばその合成値が変化するためその値から歩いているかどうかを判別することになります。 判別の方法には様々なものがありますが、私はしきい値を上下に設けてそれを使ってフラグ管理をする方法にしました。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
歩いた場合は上下に振動しますが、センサーの合成値をモニタリングした場合には下記のようになります。 赤線が基準値(値は1)で緑線と黄色線が判定用のしきい値をしめしています。しきい値は見ての通り下側が広く、上側が狭く設定することで誤動作を減らして精度を高めています。 上向きの加速度のしきい値を超えた場合にはフラグをONにします。そして、下向きの加速度のしきい値を超えた場合にフラグをOFFにして歩数を1プラスします。 ただし、歩く場合には細かい振動がそれに加わるためフラグがONになってから一定期間(ここでは20フレーム)はフラグONにしないようにしています。 これによって歩いた時に発生する細かく振動に対して対応ができ精度が高まっています。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
計測精度はQSPではこれがほぼ限界だと思いますが、QSPという制限を無くしさらなる精度向上を行うならば細かい振動か歩行の上下運動によって発生した振動かの判別をするなどの方法を行うとよいでしょう。 ただし、プチコン3号を起動していない場合は歩数計自体が動作しないのでポケットやカバンに入れて計測するというのを考慮する必要はあまりないかもしれません。 手に持った状態でどうすれば精度が高まるかを考えると良いかと思います。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
それから、使う人はほぼ居ないと思われる高さの計測方法について書いておきます。 物体の高さを計測したい場合はまず最初に目線から物体がどのくらいの角度で見えるかを計測しておく必要があります。 これには分度器が必要ですが、常時分度器を持参している人は少ない思うのでその場合は、簡易分度器QSPを使ってみてください。(この時、本体は水平に持つのがポイント) 簡易分度器QSP https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTplVgn7Q あとは簡易歩数計QSPを起動して角度計測場所から物体まで歩くだけでOKです。 物体の元でBボタンを押して角度入力すればその物体のおよその高さが分かります。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
簡易分度器QSPを使わずに長さから比例計算する方法もあります。 まずは自分の腕を伸ばした時の長さをあらかじめ測っておいてください。(単位はmmにしておくと後で計算間違えしにくい) そして物体の見た目の長さを測ります。 ものさしを常時持参している人は少ないと思うので簡易ものさしを使って計測します。 簡易ものさしQSP https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTpmfEhIA 簡易ものさしQSPは画面の幅までしか計測できないため高さを知りたい物体がある程度離れている必要があります。 あとは、物体の元まで歩いて下記の公式に当てはめて計算するだけです。(計算には簡易関数電卓QSPを使うと便利)  物体の高さ=物体までの距離÷腕の長さ×物体の見た目の長さ
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
プチコン3号を使って「高さ」を測るにはこういった間接的な方法だけではなくもっと直接的な方法もあります。 それは物体の上に登って本体ごと自由落下させる方法です。(プチコン3号を起動した状態の本体を単に落とすだけ) というのはあくまでネタですが、実際にやってみたいという人のために即興でQSPを作ってみました。 題して「超簡易高度計QSP」です。 使い方は簡単で本体ごと落とすだけで落下開始位置から落下した場所までのおよその高さが分かります。ただし、落下によって本体が壊れたら計測できないという不具合があります。 使用時は自己責任でお願いします。 即興で作ったものなのでまだ空きが多いためいろいろな要素を付け足してみてもいいかもしれません。
2そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
高さ計測モードにおいては角度を入力する必要がありますが、従来の簡易分度器QSPでは非常に誤差が大きかったため新しく作った簡易水準器QSPを使うと良いです。 簡易水準器QSP https://miiverse.nintendo.net/posts/AYMHAAADAAADV44ndYCEZw 簡易分度器QSPとは異なり水平、垂直を基準にした角度が正確に計測できるようになっています。
0そうだね
プレイ済み