1 2 3 4

自転車向け 自作デジタル勾配計① 加速度センサーのテスト

このエントリーをはてなブックマークに追加
2015/10/19 10:22 am
Blog Category / 制作ログ
 

dg1
以前、ロードバイク用のデジタル勾配計が売って無いので欲しいな作りたいな〜と書いていたけど、構想を妄想で終わらせないために加速度センサでのテストを開始する。
新たに購入した部品は、加速度センサAdafruit MMA8451 Accelerometer Breakout、arduinoの互換機Adafruit Metro Mini 328の2つ。どちらもスイッチサイエンスで購入した。これに加え、自宅に在庫してあるAdafruit Mini 8×8 LED Matrixとタクトスイッチを使用する予定。毎度Adafruitの製品を選んでいるのは、本家WEBでのチュートリアルが充実している、ライブラリの解説が見やすく、丁寧で理解しやすい。I2C通信により配線が簡単。などの理由から。
Adafruit商品ページ
配線図
dg3
Arduinoと加速度センサの図と名前が一致していないけど気にしないでね
現状はまだマトリクスLEDやスイッチを繋げていないけど、最終的には上記のようにする予定。加速度センサの配線は5V,GND,I2cのSDA,SCLのみで単純。僕みたいなアホにとってはこの簡単さが、凄くたすかる。
電源は単3電池2本をDC-DCコンバータで5Vに昇圧して…など色々考えたけど、以前の妄想編で書いた通り単純にモバイルバッテリーを使用する。
ライブラリのインストール
dg2
上記のスクリーンショットは目的の数値をシリアルモニタに表示しているもの。
まずArduinoに加速度センサのライブラリをインストールする必要がある。Adafruitの解説ページにダウンロードリンクが掲載されているのでダウンロード。Arduino IDEメニューの[スケッチ]-[Include Library]-[Add .ZIP Library]でダウンロードしたZIPファイルを指定すればいい。
コーディング
サンプルソースを実行してみると、シリアルモニタにX,Y,Z軸の移動量、加速度、センサの傾き判定が表示された。
mma.read();
で3軸の数値を計測できる。
mma.x
で計測した値を取出す。xの部分をy、zに置き換えれば各軸に応じた数値を得られる。
サンプルコードそのままの状態ではセンサはループ毎に移動量を計測しているため、数値の変化が敏感すぎて自転車の振動を拾い、まともに計測できなくなる事が想像できる。なので、2000回センサ値を読み取って、その平均値をシリアルモニタへ出力してみると、随分と変化が滑らかになった。
そして肝心の角度取得。センサを-90度〜+90度と傾けてシリアルモニタの数値を見てみると、-2000〜+2000の間で値が変化した。計4000の範囲で数値が変化するので、計測範囲180度とかんがえると、4000 / 180 = 22.22。この数値を係数として、センサの移動量を係数で割ってあげれば角度が計算できる。
最終的には角度を道路勾配に変換したいので、角度をラジアンに変換。角度 * 3.14 / 180 でラジアンに。
三角関数を使って tan(ラジアン)*100 で道路勾配となる。たぶん。もっとスマートな計算方法にしたいところだけど、残念ながら頭の出来がわるいのでこれが限界。
次回の予定
以上、基本となるコードができたので、次はマトリクスLEDを繋げて数字を出力したいと思う。Adafruits製マトリクスLEDの扱いは、DIY HUDの制作でノウハウを得ることができているので問題無く進行できるはず。
追記
書いてから気付いた。そもそも加速度センサだと、自転車につけて加速したら水平方向の加速度が加算されて角度が測れないじゃね?おれアホやん。

ロードバイク用のデジタル勾配計が欲しいので構想してみる

このエントリーをはてなブックマークに追加
2015/10/06 10:22 am
Blog Category / 制作ログ
 

dg3
ロードバイクで坂中心のルートを走っていると、自分が今登っているのか下っているのかが分からなくなる。今日は脚が回らない、えらく調子が悪いなと後ろを振り返ってみると、平坦だと思っていた道は、実際には結構な勾配がついていた。みたいな事がたびたびあって、自分の感覚と現実の剥離がストレスに繋がって気持ちが悪い。
そこで自転車用の勾配計が欲しいんだけど、GarminやSIGMAなどのハイエンドサイクルコンピューターには気圧勾配計が付いている機種があるものの大変高価で、他の安価なガジェットと言えば上の画像のようなアナログ勾配計が販売されている。
しかし、このアナログ勾配計は電源いらずで安価なものの、単純な構造ゆえに走行中に勾配を確認する用途には向いていないという事は明白なんだよな。勾配に特化した自転車用のメーターを探しても見つからないし、どうしたものかな。
無いなら作る
現在製作中の自作ヘッドアップディスプレイが完成間近なので、次の題材はこれや!という事でArduinoでロードバイク用のデジタル勾配計を作る事を考える。勾配が計測できるサイコンを買うのが最良の解決法だけど、そんな事は十分理解したうえで突き進みたい。
想像図
dg
あくまで妄想です
小型のArduinoと自宅に在庫しているマトリクスLED、3Dプリンタ製のケースで図のような感じに仕上げたい。電源は9V電池、もしくはモバイルバッテリー経由のUSB給電。Li-poバッテリーを使うことも考えたんだけど、非常に扱いが難しいバッテリーなので今回はパスということで。
道路勾配の計測方法

道路勾配[%] = 100 x 垂直距離[m]/水平距離[m]

これだと、高度は気圧高度センサで取得すればいいものの、水平距離をGPSもしくは車輪のマグネット経由で計測する必要があるので仕組みが複雑になってしまいそう。もっと単純でいいんだ。なので、

加速度センサで角度を計測 → 道路勾配[%] = (tan角度°)×100

正確な道路勾配は計測できないだろうけど、目安としては十分なんじゃないかな。
さっそく部品を購入
dg2
だいたいの構想がまとまったので、早速AdafruitのArduino互換機と加速度センサをスイッチサイエンスで購入した。技術が低いので実現できるのかは不明だけど、とりあえずブレッドボード上でテストしていきたいと思います。

貧脚社畜のロードバイク記 2014-2015年Stravaデータ比較

このエントリーをはてなブックマークに追加
2015/09/29 9:30 am
Blog Category / 日記
Tags /
 

strava
ここ1年、とは言っても回数が少なすぎだけど、昨年2014年と今年2015年山ライドのStravaデータを比較してみた。
該当記事へのリンク
データ比較
ロードバイクを買った直後、2014年秋に登った際は体力もスキルも全く持ちあわせておらず、ただひたすら、がむしゃらに登っただけだった。50kmの折り返し地点に到着した時には既に限界が近く、山を降りて自宅近くの平坦路では15km/hほどのスピードでヘロヘロと漕いでいた事が記憶に残っている。
そして2015年秋、体力はリセットされているもののペダリングスキルは向上しているはずだと再び山ライドにチャレンジしてみると、一年前からいうと随分と楽に登る事ができた。時間は5時間45分から5時間13分へと大幅短縮。やったぜ。
更に間髪入れず再度同じコースを登ってみると、登り自体のタイムはあまり変わらなかったものの、復路は高い巡航スピードを持続できて前回から30分短縮。今まで登りが嫌で嫌でたまらなかったんだけど、現在は山が好きになりかけてきた。
  • 時間:初回ライド5:45:33 → 最新回4:41:18 1時間短縮
  • Av:初回ライド17.1km/h → 22.1km/h 5km/h向上
これでもまだまだ遅いんだけど、自分なりの成長が確認できるとモチベーション向上へ繋がるので、データの蓄積と比較は大事だなと思った。

貧脚社畜のロードバイク記 山ライドおかわり

このエントリーをはてなブックマークに追加
2015/09/24 9:30 am
Blog Category / 日記
Tags /
 

写真 2015-09-23 12 30 05
また登った
シルバーウィークは連休とはならなかったけど、日・水曜と自由な時間を確保できた。日曜はロードバイクで山ライド、そして2日空けて水曜も全く同じルートを走ってみた。
朝ごはんは大事
朝7時くらいに家を出発しようと思ったんだけど、外を見ると雨が振っている。一気にやる気が蒸発し、もう今日は家でダラダラとしようかと一旦履いたレーパンをステテコに履き替えて娘と猫とリビングで寝っ転がっていると、いつの間にか陽の光が差してきた。
ネットの雨雲レーダーで確認すると、夕方まで天気が持ちそうな様子だったので慌てて用意を行ない、家を出発。朝ごはんは食べていなかったけど、20km先のコンビニでおにぎりでも食べればいいやと考えた。
家を出て10km程進んだ頃にはエネルギー切れの様相が少しずつ現れ、コンビニ付近では完全にヘバってしまった。途中20km/hで巡航している僕を男女2人のペアが後ろからぶち抜くと同時に挨拶の声をかけてくれたけど、こっちはヘタレているので蚊の鳴くような声でしか返事をする事ができない。
回復のタイムラグ
20km地点のコンビニでバクダンおにぎりとフルーツスムージーを腹に収めたが、そう簡単に回復するわけがない。血糖値が上昇するまでにはある程度の時間が必要なので、折り返し地点までは全く脚が回らず、10km〜15km程度の巡航速度で力無く坂を登っていった。
折り返し地点ではウィダーinゼリーとカロリーメイト2本、350mlのコーラを補給。30分程休憩をして出発し、位置エネルギーをスピードに変えながら下るものの、まだ脚に力が入らない。回復に時間が掛かり過ぎるのは前回の疲労が残っているのか、それとも代謝が悪すぎるのか。
後半、絶好調
落ち返し地点から30km。ようやく脚に力が蘇ってくる。軽い下りでは30km〜40km/hオーバーで巡航でして、向かい風平地巡航でも30km/h前後、アウターギアでガシガシと踏んでいける。前回は左膝痛で後半は失速気味だったが、今回は膝の痛みは無く、前半の遅さをリカバリーしつつ一気に自宅まで気持よく走ることができた。
今回の総評
・ロングライド前には時間に余裕を持って朝ごはんをたべる。
・平地巡航はアウターで漕ぐほうが調子が良い。慣性が活きてる感。
・他のローディーに抜かれても気にしない方が精神衛生上良い。
・ずっと坂を登っていると、坂なのか平地なのか目では判別できなくなってくるので
 勾配の分かるサイコンが欲しい
yro
・タイム 前回5:13 → 今回4:41 34分短縮
・アベレージスピード 前回19.8km/h → 今回22.1km/h 2.3km/h向上
レベルの低い自分との戦いだなぁと思う。

  • 人気の記事
  • アーカイブ
  • カテゴリー
  • タグクラウド