ソロでたのしむ

キャンプ、電子工作、DIY、乗り物などの趣味を紹介

ネット通販でタイヤ交換! 近所のガソリンスタンドで、楽して時間も節約できました

タイヤがすり減ってきたので、そろそろ新品タイヤに交換したくなりました。

ジムニーのタイヤを新品に交換したくなってきました

なるべく安上がりで、しかも簡単に交換したいと思い少し調べてみたところ、インターネット上でタイヤを選んで、購入から交換作業の予約まで一発でできるサイトがあることがわかりました。

タイヤの種類も豊富で、欲しいタイヤも見つかったので、早速試してみます。

ネット予約で簡単タイヤ交換

 

プロローグ

 私の車のタイヤは、少し特殊なサイズで、タイヤ量販店に常備されてはいません。

安売りの広告チラシでも、私の車のサイズは見かけたことがありません。

車を買ったディーラーで、定期点検をしてもらった時に、タイヤ交換の相談をしたところ、「ディーラーで交換すると高いですよ」と、優しくもアドバイスされてしまうほど、一般的ではない様子です。

タイヤ量販店で取り寄せてもらってもいいのですが、交換作業の時間を含めて2度も足を運ぶのは手間になる上に、すぐに人の話に納得したくなる癖があるので、自分の使い方にはオーバースペックなタイヤを勢いで予約して、後で後悔しかねません。

そこで、インターネット上でタイヤを買って、同時にタイヤ交換の予約もできてしまう!ような、販売業者さんのお世話になってみることにしました。

タイヤフッドさんで、交換作業も込みでインターネット予約してみます

決意が固まったところで、早速タイヤの選択と交換の予約をしてみます。

今回インターネットでタイヤを購入するにあたり、重視したのは

  • タイヤが安い
  • 交換作業の予約もできる
  • 有名メーカーのタイヤを取り扱っている

の3点です。

数あるインターネット販売業者さんを検討しましたが、全ての条件に合致するタイヤフッド さんを選びました。

他にも同様なサービスをしている業者さんがいくつかありますが、東南アジアなどからの輸入タイヤを専門で扱っていたりして、私のニーズとは少し合致しませんでした。

そんな中で、有名メーカーのタイヤを揃えているうえに、全国展開していて私の家の近くでも交換作業してもらえる点で、最も便利そうだと感じたのが、タイヤフッドさんでした。

また、無料のパンク保証もつくので、購入後も安心できる点も決め手の一つとなりました。

タイヤを選びます

タイヤフッドさんのサイトでは、自分の車に適合するタイヤのラインナップを、車種名と年式から選択することができます。

タイヤサイズがわかっている場合は、各数値を選択して適合タイヤを探すこともできます。

私の車のタイヤサイズは、175/80R16なので、

  • 購入したいタイヤの種類(サマータイヤやスタッドレスタイヤなど)
  • 幅175mm
  • 扁平率80%
  • ホイール径16インチ

を選択すると、有名メーカーの適合タイヤ一覧が表示されます。

(下の写真は、そのうち一部のイメージです)

レビュー評価も、星の数で一目でわかるので、選ぶときの参考になります!

10種類弱の適合タイヤ一覧から、お手頃価格になっていて、レビュー評価もいいタイヤを選択してみました。

取り付け予約をします

タイヤを選んだら、交換してもらうお店を選びます。

いくつか方法が選べますが、私は郵便番号を入力して、近隣のお店を地図上に表示してみました。

お店の詳細を表示すると、レビューも星の数でわかるので、初めてのお店選びの参考になって便利です。

また、タイヤフッドさんは、レビューの良い店舗のアワードを毎年実施しています。

全国4,000点以上のお店から近所だけを表示した後に、さらにアワード店舗だけに絞り込んで、最終的に近所のガソリンスタンドを選んでみました。

交換日時も、予約可能日カレンダーから選んで決定して、予約に関する作業完了です。

支払い情報を入力

支払い情報を入力するには、タイヤフッドさんのページへのログインが必要になりますが、フェイスブックなどのSNS会員情報でも代用できるので、簡単に済ませられます。

ログイン後に、クレジットカードなどでの支払い情報を入力して、注文と予約を確定したら、その日のうちに確認メールが2通届きました。

f:id:solocamptouring:20191110174323p:plain
f:id:solocamptouring:20191110174329p:plain

さらに数日後には、タイヤ発送完了の連絡メールも届き、あとは予約した日時にお店に行くだけです!

近所までタイヤ交換に行ってきます

あっという間に、タイヤ交換の予約日がきました。

発送連絡のメールを受信した後は、なにも連絡がなかったので、少し緊張しながら近所のガソリンスタンドに向かいます。

TIREHOODさんで買ったタイヤは交換作業店に届いていました

購入したタイヤは、しっかり届いていました!

ガソリンスタンドの方も、笑顔で迎えてくれて、サービス用の駐車スペースまで誘導してくれます。

お店に到着するまでの緊張感は一気に消え去り、もう安心してお任せすることにします。

TIREHOODさんで買ったタイヤを近くのGSで交換します

手慣れた無駄のない作業で、あっという間に交換完了!となりそうだったのですが、少しハプニングがありました。

送られてきたタイヤが、平積みで倉庫保管されていたものらしく、ホイールに密着する部分の左右幅が狭くなったままのクセがついているため、密閉性を保てる状態になりづらくて、なかなか空気が入りません。

私にとっては初めての事でしたが、ガソリンスタンドの方に聞いてみると、よくある事だそうです。

一旦タイヤ開口部の左右幅を広げて、少し天日干ししてから組んでいただきます。

平積みするとタイヤを組むのが大変

こんな事があるとなると、私のような素人が自分でタイヤを交換しようとするのは、やはり無謀ではないかと感じます。

そして、オイル交換などの依頼が次々に入ってきて忙しい中、難しいタイヤでも快く作業し続けていただける、このガソリンスタンドを選んでおいて本当に良かった!とつくづく思いました。

タイヤの変形を修正するための天日干し時間を除けば、30分ほどの作業時間で、新しいタイヤはホイールに取り付けられて、バランスも調整してもらえました。

TIREHOODさんで買ったタイヤのバランス取り作業

最後に、ハブナットの締め付けトルクを、トルクレンチを使って、目の前で適正化してもらい作業終了です。

ネット上でタイヤを購入した時に、交換費用もまとめてお支払いしているので、ここでは財布を出す必要はありません

交換終了確認のサインだけで済むので、便利ですね!

タイヤフッドさんでタイヤ購入して交換予約もしてみた!

車に乗り込む前に、空気圧についての説明もしていただき、満足感に包まれて新品タイヤでお店をあとにしました。

エピローグ

安上がりにタイヤを交換しようとすると、タイヤ購入と交換を別々に手配することになりがちです。

この2つの手間を、まとめて予約一回で済ませられるTIREHOOD さんのおかげで、今回はたいへん楽にタイヤ交換することができました。

安心して交換作業をおまかせできる提携ガソリンスタンドも、家の近くに見つけることができたので、次の交換でもお世話になりたいと思います!

ジムニー限定色のタッチアップペイントで、恥ずかしい思い出の傷を隠す

f:id:solocamptouring:20190311054152j:plain

やってしまいました!

海で遊んで疲れ果てた状態で、ルーフキャリアにカヤックを積んだ瞬間に、前後のバランスが悪かったため、カヤックはスローモーションで前に傾いていき.....なす術もなく、そのまま車のボンネットの前端部を擦りながら地面に滑り落ちていきました。

傷跡をそのままにしておくのは心苦しいので、素人レベルでボンネットの傷跡を目立ちにくくしてみます。

ジムニー限定色のタッチアップペイントを入手する

JB23ランドベンチャー限定色(ZVD)

私の車は、JB23ジムニーでは最後のランドベンチャー限定色です。

アウトドアに似合う濃いグリーン色のカラーコードは、「ZVD」です。

カヤックを滑らせて車に傷をつけてしまった帰路で、タッチアップペイントを入手するために近所の車用品店に行ってみました。

限定色のタッチアップペイントを注文

店頭に置いているタッチアップペイントから、私の車の色を探してみますが、見当たりません。

同じくスズキのハスラーにも使われている色なので、あっても良さそうなのに...と思いながら、諦めて帰ろうとした時に、

「店頭にない色は作りますので、スタッフに声かけを」

の看板が目に入りました。

傷をつけた日に慌てて塗っても失敗するだけなので、少しクールダウン期間をおくのも悪くないと思い、早速注文してみます。

私の車の色は、1千数百円で、次の日にはお店に届きました。

ジムニー限定色のタッチアップペイント

ハンバーガーショップにいきます

あるものを入手するために、ハンバーガーのセットをテイクアウトします。子供も喜ぶので、一石二鳥です!?

欲しかったのは、テイクアウトのドリンク固定に使う、紙でできたホルダーです。

このホルダーを、傷リペアの道具類を車のボンネット上で置いておくのに使います。

タッチアップペイントなどが倒れる心配が減るので、落ち着いて作業しやすくなりました。

傷跡をコンパクトでバリ取りします

カヤックの船艇に砂がついていたので、車の傷跡は、鋭くえぐられたようになっています。

最初にコンパクトで、傷跡のバリ取りをしておきます。

通常使用でドアハンドルの周りにできてしまうような薄い傷跡は、この磨き作業だけで目立たなくなります。

磨き終わったら、乾いたコンパクトを綺麗に拭き取り、タッチアップの準備をします。

擦り傷は、タッチアップペイントに付属する筆で作業するには細すぎるので、つまようじも準備します。

つまようじの先に、ほんの少しだけタッチアップペイントを付けたら、

傷の溝に染み込ませます。

一度に数ミリしか塗れないので、地道な作業の繰り返しになります。

傷が隣り合っているところは、塗り跡がくっついてしまいますが、少しはみ出しても気にせず作業を続けます。

とりあえず、白かった擦り傷は、目立たなくなりました。

ペイント後の作業は、慌てず時間をかけて

慌てずに作業したいので、この後の作業は毎週1日のみで、数週間かけて行います。

タッチアップペイントがしっかりと乾いたら、またコンパクトで磨いて、はみ出した塗料を削り取ります。

乾いた後の色が、ボディー色に合っていることが確認できたら、クリア色のタッチアップペイントで同じ作業を繰り返して、傷の凹凸を無くします。

追記;一か月後

 コツコツと作業を重ねて...と書きたいところですが、2週間に一度のペースで、削っては塗ることをして、近づかないと傷跡や色の違いに気付かないレベルになりました。

ボンネット面自体が微妙に凹んでいますが、ジムニーらしくていいかも?ということで、面修正はしないことにします。

カヤックを載せやすいルーフキャリア。タフレックのアルミキャリアをカスタマイズ

カヤックをルーフキャリアにする。タフレックのアルミキャリア


ルーフキャリアに、長さ3m以上で重さ30Kgほどの荷物(カヤック)を、頻繁に載せたくなりました。

今すでに使っているルーフキャリアを改造して、すこしでも楽に積載できるようにしたいと思います。

私が使っているルーフキャリア

最初に、ジムニーに使っているキャリアについて、簡単に紹介いたします。

横から見たデザインに力強さがある、タフレックのルーフキャリア を選んで、不満なく使っています。

天板部が鉄のものとアルミのものがありますが、写真はアルミ天板のものです。

私の使い方での剛性は充分にありつつ、軽いのでキャリア自体を車から脱着する時の持ち運びも一人でできます。

そして、これから紹介するプチ改造では、「このための構造では?」と思ってしまうほど重要なポイントですが、サイドバーが丸パイプなのも、このキャリアの特徴です。

ルーフキャリアに積みたい長尺物

タフレックのアルミルーフキャリアを入手した時には、載せるものを特に決めていませんでした。

キャンプ道具をルーフに積むことがあるかもしれない!くらいにしか考えてなく、実際には雨で濡れたタープを運んだりと、半年に一度活躍する程度です。

しかし、ここにきてカヤックを始めたくなり、このキャリアに長さ3.15m、重さ約30Kgのカヤックを、おそらく頻繁に載せることになりました。

これだけの重さがある長尺物だと、一人で載せたり降ろしたりするために、ルーフキャリアを上手に活用したくなり、そのために少し改造したくもなります。

とりあえずやりたいのが、横から積み込む時の支点となるサイドバーのローラー構造化です。

長尺物を載せやすいルーフキャリアに工夫する。タフレックのアルミキャリア

横側のパイプが回転してくれれば、カヤックを車の横に立てかけた後に、ルーフ上に持ち上げる時に、楽になること間違いありません。

そしてもう一点、手を加えておきたいのが、長尺物を積んだ時には不要になる、前後ガードパイプの取り外しです。

f:id:solocamptouring:20190210163611j:plain

このパイプは、もともと格納式ですが、格納状態がキャリアの天板の高さより、少しだけ飛び出します。

カヤックのような平らなものを載せた時には、このパイプに重量がかかってしまうので、積載物を一部だけで支持することを避けるためにも、取り去ってしまおうと考えました。

それでは、ルーフキャリアにこれらの改造をしていきます!

タフレックのアルミルーフキャリアを改造します

ルーフキャリアは、車から降ろした後に、ある程度バラバラにしておきます。

10mmおよび8mmのソケットツールと、プラスドライバーがあれば作業できます。

長尺物の積み込み用ローラーをつける

ホームセンターで、外形32mmのアルミパイプと、それに合うパイプクッションを入手してきました。

f:id:solocamptouring:20190210164427j:plain

アルミパイプは55mmの長さに切断して、切断面のバリをとるために、やすりをかけておきます。

切断したアルミパイプにパイプクッションを被せて、パイプの長さにあわせてハサミでクッションを切ります。

f:id:solocamptouring:20190210165223j:plain

このパイプを、タフレックのサイドパイプに被せるかたちで組み付ければ完成です。

私の場合は片側だけローラー化できればいいので、運転席側だけを改造しました。

なお、追加したアルミパイプの走行時ガタつき防止のために、結束バンドを使っています。

この部分については、もっといい方法を思いついたらバージョンアップしていきます。

前後のガードパイプの取り外し

サイドバーをローラー化するためにルーフキャリアをバラバラにした際に、前後のガードパイプも取り外しておきました。

すっきりとしたので、長尺物を載せてタイダウンベルトで固定する時にも、作業がしやすくなっています。

思いのほか簡単にできました

今回、カヤックという長尺物をルーフキャリアに載せたいという想いから、ルーフキャリアを改造してみました。

構想に数週間かけてしまいましたが、実際の作業は半日もかからずに終わる、簡単な改造でした。

アルミパイプが追加されましたが、もともとついていたガードパイプを取り外したので、どちらかというと軽くなり、キャリア自体の車への付け外しも楽になっています。

f:id:solocamptouring:20190301045134j:plain

サイドバーが丸パイプのタフレックのキャリアだからこそできた、少し重量がある長尺物を搭載しやすくするプチ改造ですが、一年以上使ってみて、その積みやすさに毎回助けられています!

あまり紹介されないJB64ジムニー の室内進化点。DIY好きのJB23ユーザー目線で紹介。

あまり紹介されないJB64ジムニー の室内変更点を、JB23オーナー目線でまとめます

大人気のJB64ジムニー、様々な雑誌や記事で紹介されています。

しかし室内をいろいろとカスタマイズしたいユーザー目線では、まだ情報が少なく感じます。

そこで、DIY好きのJB23オーナー目線で、新型ジムニーの室内の変更点(進化した点)を確認してみました。

JB64の室内、JB23からの変化点まとめ。天井部のインジケーター

 

JB64の室内

JB64のXCグレードJB23の特別仕様グレードを比較しています。

紹介する装備の一部は、JB64のグレードによっては設定されていないものもあります。

室内灯

前席用の室内灯は、ミラーステー一体式ではなくなり、今風のデザインのものが天井に設定されています。

JB64の荷室用の室内灯
JB64の室内灯。左の写真が前側、右の写真が荷室のもの

荷室の室内灯ですが、JB23の一部グレードには、天井の左の方に取り付けられていました。

JB64では、後ろのドア開口の上中央部に取り付けられています。

暗いところで後ろのドアを開けて作業する時には、荷室全体を照らすベストポジションです。

助手席バイザー裏のミラー

XCグレードの助手席側のサンバイザーには、チケットクリップ付きのバニティーミラーがついています。

JB64助手席バイザー裏のミラー

JB23の特別仕様車で、助手席に家族を乗せると、「鏡がない!」との意見がありましたが、新型のXCグレードはしっかり対応しています。

天井のインジケータ 

初めてJB64の室内写真を見た時に、天井に思わせぶりに付いているモニターらしきものを発見して、「これ何だろう?」と思いました。

f:id:solocamptouring:20181022053817j:plain

さっそく一名乗車でエンジンスタートしてみましたが、何も表示しません。

モニター面に目を凝らしてみると、どうやら後席シートベルトリマインダのインジケータのようです。

立派なオーバーヘッドディスプレイなので、他にもコンパスや傾斜計などの情報も表示してみたいです。

パワーウィンドウスイッチ

これについては、既に雑誌や記事でも紹介されています。

JB23ではドアについていたパワーウインドウスイッチが、ダッシュパネル下部に移動しました。

f:id:solocamptouring:20181022053840j:plain

しっかり凹凸が付いたスイッチなので、慣れれば操作性に問題なさそうですが、私としては、パワーウインドウ以外の普段は使わないスイッチ2個に、ミサイルスイッチ風のカバーをつけたいです。

スペースはあるので、少し工夫すればDIYでカバーがつけられそうです。

JB23のパワーウインドウスイッチは、ドアの膝が当たる位置についていましたが、JB64のドアはスイッチの出っ張りが無くなったので、前席の脚部スペースが快適になっています。

f:id:solocamptouring:20181025054336j:plain

ボルト風キャップ

JB64の室内は、いろいろな場所でボルトを見せるデザインになっています。

全部を確認してはいませんが、一部は柔らかいキャップでデザインボルト風になっています。

細かいところへのこだわりを感じられて、JB64の好感度アップです。

アシストグリップ

JB64の運転席には、JB23と同様にアシストグリップがありません。

JB64の運転席側にはアシストグリップが取り付けられない
運転席(左)と助手席(右)の天井アシストグリップの有無

JB23の運転席には、アシストグリップの取付位置に穴塞ぎのクリップが取り付けられていました。クリップを外せば、ボデーパネルに付いているアシストグリップ用のナットが使えたので、天井に棚をつけたり、イレクターパイプを通したりするDIYが簡単にできます。

JB64でも、天井の内張りの裏に、ナットかブラケットが準備されているかもしれないと思い、内張りを軽く押してみましたが、剛体がある感触はありませんでした。

助手席のオープンボックス

JB64の助手席の前方には、グリップが復活しました。

JB64(左)とJB23(右)

JB23ではペットボトルを横置きするのに十分な物置きスペースがありましたが、JB64はスマホを横置きできるくらいのスペースになっています。

それでもグリップがあった方が、クランプやクリップが取付けられるので、携帯やペットボトルなど各種のホルダーを使う幅が広がり、自分好みの便利な室内にカスタマイズしやすそうです。

上側のシートベルト取付け部

下の写真はJB64前席のシートベルト取付け部です。

f:id:solocamptouring:20181022054824j:plain

新型もJB23同様に、高さのアジャスターがありません。

絶対に必要というわけではありませんが、座高が低い私は、特に夏の軽装時にベルトが肌に直接当たるので、少しだけ位置を下げたくなります。

センターコンソール

JB64のセンターコンソールは、デザインは変わりましたが、小物入れとドリンクホルダーのレイアウトはJB23とほぼ同じです。

f:id:solocamptouring:20181022054944j:plain

XCグレードに設定されるシートヒーターは、運転席と助手席で独立して使えるようになり、スイッチはセンターコンソールに設定されました。

後席横

既に雑誌記事などでも紹介されていますが、荷室周りも写真で紹介いたします。

後席シートを倒せば荷室がフルフラットになることは、JB64のアピールポイントです。

側面は、上側の樹脂の内装パネルを無くして、代わりに片側5カ所づつのグロメットが付いています。

グロメットを外せばボルトを使えるので、DIYで荷室をカスタマイズする時に、たいへん便利です。

写真では、後席のシートベルトが上下方向に装着されていますが、シート側のサブバックルを外せば、シートベルトをほぼ全て巻き取らせたうえでピラー部に寄せておく事ができます。

スピーカー

前側のスピーカーの位置は、足元奥のボデーから、フロントドアに移動しました。

取付け可能なスピーカーの大きさも、10cmから13cmになったので、JB23よりは中低音域が聴きやすくなっています。

高音域まで聴きたいのであれば、ダッシュパネルの上にツイータを追加したいところです。

JB64リヤスピーカー取付位置
JB64フロントスピーカー取付位置
JB64のスピーカー取付位置

後ろのスピーカーは、純正用品の鉄ブラケットを使って、後席横の内装パネルの奥に13cmのスピーカーが取り付けられます。

ちなみにJB64では、リヤスピーカーがある部分の内装パネルは、後席シートを外さなくても脱着できそうです。

JB23はシートを外さないと内装パネルを脱着できなかったので、DIYをする時には嬉しい進化です。

旧型も同じでしたが、ドアもボデーも極力薄く設計されているので、純正用品よりも厚みがあるスピーカーを使いたい場合は、スピーカーの奥行き方向で他の部品に当たらないか注意が必要です。

また、前後共に10cmから13cmに大きくなったとはいえ、しっかり低音域が聴きたい人には13cmでは物足りないと思われます。

できれば16cmくらいのスピーカーが欲しいですね。

運転席の下に、小型サブウーファーがしっかり固定できそう

最後に、これもオーディオ音質に関連して、個人的に大いに興味があった、運転席下の床面についてです。

JB64の運転席下

JB23の運転席下は、小型のサブウーファーを置けるスペースはあるものの、床面が完全に平らではありませんでした。

そのためにサブウーファーを安定して設置する事ができず、満足の重低音が出しきれませんでした。
JB64の運転席下は、フラットな床面が広くなっているので、小型のサブウーファーをしっかり固定できそうです。

13cmのスピーカーでは十分に出せない低音域を、手軽に補強できるので、フロントシート下へのサブウーファー追加がお勧めです。

オーディオユニットからの距離が短いので、DIYで作業するのも楽ですね!

細かい変化点はまだまだありますが、JB23ユーザー目線で選んだ主要なものだけ、JB64の室内変化点を紹介させていただきました。

JB64を検討中や納車待ちで、室内カスタマイズを検討したいけど実物が手元にない!という場合などで、お役に立てていれば嬉しいです。

ジムニー純正サイズのタイヤを比較します!主要メーカーの175/80R16タイヤ一覧表

ジムニーの純正H/Tタイヤも性能は良いのですが、見た目からやる気がみなぎるA/TやM/Tタイヤにも魅力を感じます。

比較しながら選べるように、175/80R16サイズが設定されているタイヤを一覧表にしました

ジムニー純正サイズのタイヤを比較します!主要メーカーの175/80R16タイヤ一覧表

 

純正タイヤについて

ジムニーの純正タイヤは、ブリジストンのDUELER H/Tで、サイズは175/80R16です。

新型のJB64も同じタイヤサイズなので、以前のモデルから新型に乗り換える場合も、なにかと便利です。

純正タイヤは、4万キロちかく走っても、スリップサインには達していない溝が残っていて、ドライもウエットでもグリップ性能に不満はなく、また太平洋側の一年に一度の積雪程度ならチェーン無しで走れてしまう、頼もしいタイヤです。

タイヤ一本あたりの重量は約8.4Kgで、同じサイズのタイヤでは最軽量なので、JB23最後の特別仕様車の軽いアルミホイール(約5.5Kg)と相まって、走行燃費にも貢献しているはずです。

 

ちなみにアルミホイールのサイズは、

  • オフセット+22mm
  • リム幅5.5J
  • P.C.D139.7mm
  • 穴数5
  • ハブ径108mm(JB23) 

です。

次のタイヤを考える

サイズ

次も純正と全く同じタイヤにしてもよいのですが、オフロードタイヤの見た目で、少しかっこよくしたい気持ちもあります。

かといって、純正より大きなタイヤサイズまで選択肢を広げるために、車体を少しリフトアップするのは気が引けます。

純正サイズと同じ175/80R16が設定されている市販のタイヤのラインナップを調べてみます。

タイヤのカテゴリー

ジムニーのような、オフロード走行を考えられている車用のタイヤは、使用する地面状況(Terrain)で主に3種類に分類されます。

  • H/T(Highway Terrain)= 主に舗装路を走る場合のタイヤ
  • A/T(All Terrain)= 舗装路も未舗装路も両立する性能をもたせたタイヤ
  • M/T(Mud Terrain)= 未舗装路や荒れ地の走破性を主体に考えられえたタイヤ

ブロックパターンの荒々しさをかっこいい基準とすると、

 M/T > A/T > H/T

の順にオフロード車らしくなります。

M/Tタイヤは、かっこいいのですが、走行距離の9割以上はアスファルトを走っている私の走り方には、あわないと思われます。

比較対象として残してはおきますが、A/TかH/Tカテゴリーを本命に、次のタイヤを選びたいと思います。

エコ(燃費への影響)

タイヤの低燃費性能を比較する情報として、JATMA(一般社団法人 日本自動車タイヤ協会)のラベリング制度があります。

転がり抵抗性能とウェットグリップ性能を等級付けし、さらに転がり抵抗性能の等級がA以上で、ウェットグリップ性能の等級がa~dの範囲内にあるタイヤを、「低燃費タイヤ」と定義して消費者に表示するものです。

f:id:solocamptouring:20180813153450p:plain

上のラベルを例にすると、

  • 右上の、転がり抵抗性能の等級;AA
  • 右下の、ウェットグリップ性能の等級;c
  • 左に、トータルで低燃費タイヤである事を示すマーク

が表示されています。

この指標を使わせてもらえれば、同じコンディションでタイヤのエコ度合いの比較ができるのですが、残念ながらこの制度は、「消費者が交換用としてタイヤ販売店等で購入する乗用車用夏用タイヤ」が対象になっており、ジムニーようなSUV用タイヤは適用されていません。

各社のカタログを見ても、今日現在でレーティングをJATMAに申請して認められている175/80R16サイズのタイヤは、TOYOタイヤのPROXES CF2 SUVだけが確認できました。

ちなみに、TOYOタイヤのPROXES CF2 SUVは、

  • 転がり抵抗性能の等級;A、
  • ウェットグリップ性能の等級;b

で、堂々と低燃費タイヤのラベリングがされています。

しかし、他のタイヤが等級化されていないので、比較することができません。

しかたがないので、次に低燃費に関係してくると思われる、タイヤの重さを比較することにします。

なお、紹介するタイヤの重さは、主にカタログ値やメーカーにヒアリングをした結果を記載していますが、私自身の実測値ではありません。

また一部にインターネット情報も使用していますが、それでも調べきれなかったものは「不明」としています。

それでは、175/80R16サイズのタイヤを比較します

紹介する表は、この記事のためにまとめた時点で安い順に並べています。時期により価格も順位も変動するので、その前提で参考にしていただけるといいかと思います。

表に、パターンのかっこよさがわかるような写真(商品リンク)と、一本あたりの重量をまとめました。

ジムニー用のH/T(Highway Terrain)タイヤ

ブリジストンのDUELER H/T 684は、JB23の純正タイヤです。

メーカー 品名 パターン 重さ
ブリジストン DUELER H/T 684 f:id:solocamptouring:20180813120628p:plain 8.4
TOYO CF2 SUV 9.0
ダンロップ GRANDTREK PT3 9.0
ヨコハマ GEOLANDAR SUV 8.9
ブリジストン DUELER
H/L850
8.4
グッドイヤー EfficientGrip SUV HP01 不明

H/Tカテゴリーは、アスファルトでの走行性能を考えているだけあって、タイヤ重量も約8キロ台前半~9キロと軽いタイヤばかりです。

各社とも、転がり抵抗の低減に力を入れており、商品説明でも「旧モデル比でー△△%の転がり抵抗を低減しました!」といった説明が多く見受けられます。

 

ジムニー用のA/T(All Terrain)タイヤ

見た目のかっこよさと、トータルでの性能のバランスをとると、 A/Tカテゴリーが本命でしょうか?

各社がジムニー用のサイズを用意しているので、品揃えも充実しています。

メーカー 品名 パターン 重さ
ATR SPORT DESERT HAWK
A/T
不明
ナンカン FT-7 9.0
ダンロップ GRANDTREK AT3 9.1
TOYO OPEN COUNTRY
A/T plus
9.2
ヨコハマ GEOLANDAR A/T G015 10.1
ブリジストン DUELER
A/T 001
10.2
グッドイヤー WRANGLER
AT/S
9.6

A/Tカテゴリーは、重量が9キロ台前半と比較的に軽いものも多いので、躊躇なく選ぶことができそうです。

ホワイトレターが選べるものもあり、足元のイメージチェンジもできますね!

ジムニー純正タイヤサイズのATタイヤ
 

ジムニー用のM/T(Mud Terrain)タイヤ

最後に、ブロックパターンが文句なしのかっこよさの、通称「マッテレ」タイヤです。

メーカー 品名 パターン 重さ
ナンカン FT-9 不明
ヨコハマ GEOLANDAR M/T G003 9.7
ヨコハマ GEOLANDAR M/T+ 10.0

純正タイヤと同じサイズのためか、思っていたより軽いです。

接地面の連続性があるナンカン FT-9ジオランダー M/T G003であれば、一般道のアスファルトでも音が気にならないレベルで走れそうです。

通販サイトなどのレビューでも高評価が多く、M/Tタイヤも選択肢にいれて検討の価値ありですね!

ジムニーにGEOLANDAR M/T G003

 

 

時間をかけて選んだタイヤを、時間をかけずにタイヤ交換!

新しいタイヤを装着したジムニーの姿を、想像するだけでも楽しめるので、タイヤ選びにしばらく時間を使いましたが、これだ!というタイヤも決まり、実際に交換しました。

なんでもネットで入手できる時代なので、タイヤの購入と共に、交換作業もネット通販を試してみます。

タイヤを持ち込む手間もなく、大満足だった交換当日の様子など、ネット予約でのタイヤ交換レポートは、別の記事で紹介しています。

www.solocamptouring.com

 

ガソリン1年分プレゼントキャンペーン実施中【タイヤフッド】

 ^

ドライブレコーダーは画質が大事!アクションカムを高画質なドラレコとして使う

いろいろな種類のドライブレコーダーを使ってきたなかで、最も画質が良く使いやすいドライブレコーダーだと感じている、アクションカム複合機の使い方を紹介いたします。

高画質なドライブレコーダーなら、1万円以下のアクションカム両用タイプをオススメ

ドライブレコーダーの用途

最初に、ドライブレコーダーの使命について、簡単にふれておきたいと思います。

ドライブレコーダーを装着する理由のうち、代表的なものをピックアップしてみます。

  1. もし事故にあった時に、揉めたくない
  2. 当て逃げされた場合などで、加害車両(加害者)を特定したい。また、録画をアピールすることで、そのようなトラブルの未然防止としたい
  3. ドライブや行楽の記録として残したい

他にも、社用車の安全運転促進などもありますが、個人用途では主に上記の3点だと思います。

ドライブレコーダー専用機の特徴

品揃えが豊富なドライブレコーダー専用機の、ほとんどのものに備えている基本機能は、

  • 電源ON/OFFが車に連動
  • メモリー容量を使いきったら、古い動画に上書きしていくループ録画

です。

機種によっては、

  • 衝撃(加速度)検知により、異常時の動画をループ録画とは別に保存
  • GPSによる自車位置と速度情報の記録
  • 複数のカメラで、車両周囲や室内も同時録画

が、できるものもあります。

衝撃検知複数カメラ機能が絶対に欲しい場合は、これから紹介するアクションカムは使えませんので、それらの機能付きのドライブレーコーダーを選択することになります。

これまで5種類以上を使ってみた経験からは、無名メーカーの安価なものは1年たらずで壊れるものが多いです。

信頼できる有名メーカーのものをお勧めいたします。

 

ドライブレコーダーとして使えるアクションカム

ドライブレコーダーとして使えるアクションカム

アクションカムについて

GoProに代表されるアクションカムは、コンパクトな録画機器で、人や乗り物、ドローンなどに装着して臨場感がある動画を撮ることができます。

その用途から、ほとんどのものが耐衝撃性や防水性を考慮して設計されています。

ドライブレコーダーモード搭載機

アクションカムには、ドライブレコーダーモードを搭載する機種が多くなってきました。

ドライブレコーダー専用機同様に、

  • 電源ON/OFFが車に連動
  • メモリー容量を使いきったら、古い動画に上書きしていくループ録画

の機能を備えていて、使用性は全く同じです。

ドライブレコーダー用途について考察

ドライブレコーダーモードを備えるアクションカムを、車両前側のドライブレコーダーとして使う場合に、前述の使命(用途)を満たしているかをまとめてみます。

1.もし事故にあった時に、揉めたくない

ドライブレコーダー同様に、車両前方を広い画角で録画できます。このあと比較結果を紹介しますが、画質はアクションカムの方が良いものが多いので、詳細な状況がわかります。

2.当て逃げされた場合などで、加害車両(加害者)を特定したい。また、録画をアピールすることで、そのようなトラブルの未然防止としたい

録画した動画から多くの情報を得るためには、画質が重要になります。

この記事を書いている時点で、有名メーカーの1万円前後のドライブレコーダー専用機は、

  • C社: 200万画素
  • P社: 200万画素
  • Y社: 350万画素

です。

 

一方でアクションカムであれば、同じ価格帯で

1080〜2000万画素

のものが入手できます。

実際にはレンズやセンサー性能とのバランスが重要なので、画素数=画質とは言い切れませんが、口コミなどで画質が良いと言われているものを選べば、ドライブレコーダーよりも多くの情報を得られる動画が撮れます。

この画像は、アクションカム複合タイプのドライブレコーダーで撮った動画から切り出しました。

日射により、フロントガラスに室内が映りこんでいますが、車外の画像を判別できるレベルです。

信号がない山間部で、対向車とは双方が50~60km/hですれ違うような道での切り出し画像です。

連休明けに友人から「連休中に、〇〇付近で、すれ違いましたよ」と言われて、ドライブレコーダーの動画を再生してみたら、上の写真(動画)にしっかりと映っていました。

友人の車なので隠しますが、ナンバープレートに大きな文字で刻印されている4桁の数字も、判別可能でした。

走行時でも対向車のナンバープレートがわかるレベルの動画が撮れるので、ドライブレコーダーとしての性能は充分です。

 

次に、アクションカムの大きさですが、ドライブレコーダーとは同じくらいのサイズです。

録画中であることのアピール度は同じくらいなので、トラブル防止効果も同程度と思われます。

3.ドライブや行楽の記録として残したい

ドライブレコーダーの場合、数分から10分程度の長さを一つの動画として保存する方式が一般的です。

そのため、楽しい思い出の記録として使う場合、一番いいところで動画が一瞬途切れてしまう可能性があります。

アクションカムのドライブレコーダーモードも、同様に細切れになりますが、通常の動画撮影モードに切り替えれば、好きな長さの動画を撮ることもできます。

また、内部に充電バッテリーを備えているので、行楽地などで車外での撮影もできます。

行楽の記録として残したい場合は、アクションカムの方が適しています。

満足のアクションカム

車とバイクで、アクションカムをドライブレコーダーとして、数年にわたり使っています。画質が良く、これまで壊れることもなく録画し続けてくれています。

GPSでの位置記録機能や衝撃検知での動画保存機能はありませんが、どちらも頻繁に使いたいものではなく、なくても特に困りません。

そうなると、

  • 画質
  • 携行性
  • 防水性

で優位なアクションカムをお勧めします。

メーカーによっては、豊富なアタッチメント類が同包されて1万円前後で入手できるので、自由度がある取り付けで、すぐに使いはじめることが可能です。

また、同価格帯でWiFi通信機能を備えたものもあり、スマホで簡単に動画再生確認できるのも便利です。 

電動でスライド格納するテーブルの自作。ジムニーの助手席をステッピングモーターで豪華にします

電動スライド開閉式テーブルの自作。JB23ジムニーの助手席を快適で豪華に

JB23ジムニーの助手席への固定式テーブル設置に失敗して、しばらく時間が経ってしまいました。

助手席の人から「カップホルダーがない!」との悲痛な声が多くなってきたので、そろそろカップホルダー付きのテーブルを、初代よりも進化させて自作します。

初代の固定式テーブル

助手席からの評判も良かったのですが、短期間しか使わなかったテーブルです。

f:id:solocamptouring:20180616192634j:plain

初代のコンセプトは、

  • ペットボトルホルダー付き
  • 助手席の乗降の邪魔にならない

の2点でした。

固定位置を上下方向で2カ所設定して剛性を出そうとしたので、勢いで2階建てになっています。そのために上側のテーブル面が、エアバックの展開に影響しそうな位置になってしまい、すぐに外しました。

その後は、良いアイデアが思いつくまでペットボトルホルダーはあきらめて、ソーラーパワー腕時計の充電スタンドをつけた板を、テーブルの代わりに置いていました。

f:id:solocamptouring:20180616193309j:plain

今回の自作テーブルのコンセプト

今回は、先回の時に欠点となっていたエアバックへの影響は無くします。

また、蓋で密閉できるペットボトルは対象とせず、コンビニで手軽に買えるカップコーヒーが置ける事を目指します。

  • カップホルダー付き
  • 助手席の乗降の邪魔にならない
  • エアバックの展開を阻害しない

この3点をコンセプトとして、今回のテーブルを自作します。

テーブルの構造を決める

まず、カップホルダーはテーブル面上に市販のものを、最後に固定することにします。後から取り替えもできるので、テーブル自体が完成するまでは、あまりこだわらないことにします。

テーブル面は格納式にして、乗降性とエアバック展開の条件をクリアします。

さらに、高級感をだすために、電動スライド開閉式に挑戦します。

スライドテーブルの奥行き

JB23ジムニーのグローブボックス上にある凹形状の奥行きは、約10cmです。

グローブボックスの扉面から少し出ていても乗降性に影響しないので、テーブルの台座となる板の奥行きは15cmとします。

台座となる奥行き15cmの板を、MDFから切り出しました。

f:id:solocamptouring:20180616193357j:plain

テーブル面はアクリル板にして、その下に配置する機構部やArduinoなどのLED光が見えるようにします。家で何かないか探したところ、もう使わなくなっていたサンバイザーがでてきました。

f:id:solocamptouring:20180616193421j:plain

このサンバイザー、横幅もちょうどいいので、外形は加工せずにそのまま使います。

テーブルのスライドレール

テーブルを滑らかに動かすためのレールを、安価な引き出し用のスライドレールから探してみましたが、汎用品は20cm以上のものばかりでした。

スライド長さ10cm以下では、アルミの押し出し材を使ったものを唯一みつけたので、早速2個注文しました。

小さなスライド構造DIYに最適な約8cm長のスライドレール
取付用の小さなネジを別に入手しないといけませんが、レール自体は滑らかに動き、強度も充分にありそうです。

電動格納部の自作

ステップモーター28BYJ-48を使う

今回の作品のキモとなる電動開閉機構は、ステップモーター(ステッピングモーター)をArduino で制御するものを自作します。

ステップモーター28BYJ-48は、5Vと12V駆動のものがあります。今回は重力の影響を受けない水平方向の動きで、回転速度も遅くていいので、5V駆動のものを使ってみます。

ステップモーター28BYJ-48をArduino で制御して、電動開閉テーブルを自作

スライド機構

台座の両側に、電動開閉機構部と当たらない高さまで壁をつけて、スライドレールを取り付けます。

テーブルを取り付ける側は、L字断面のプラスチック押し出し材をつけておきます。

f:id:solocamptouring:20180624060332j:plain

台座となる板は、モーターとギヤ用のかさ上げ板を追加して、黒く塗装しておきました。

電動開閉機構

まずは、ステップモーターの出力をギヤで減速します。ギヤは、壊れたプリンターから外したものを、加工して使います

ステップモーター28BYJ-48に合うギヤを、廃品プリンターからリサイクル

不必要に長い軸や邪魔な出っ張りの部分を切り落として、ヤスリで表面を整えました。

減速したドリブン側のギヤにアームを付けて、開閉方向の動きに変えます。

ステップモーターで開閉する機構。電動スライド開閉式テーブルの自作

 

ArduinoとステップモータードライバULN2003を使う回路

Fritzingで回路図を作りました。

Arduinoと28BYJ-48を使う回路図。車用 電動スライド開閉式テーブルの自作回路図の右半分は、ステップモーター28BYJ-48と、そのULN2003ドライバーモジュールなので、安く購入できる完成品を使っています。

テーブルを電動開閉するアームの位置情報を得るために、全開と全閉時に押される位置にポジションスイッチ(リミットスイッチ)を使います。それぞれスイッチがオンの時はHIGH(5V)、オフの時はプルダウン抵抗でLOW(約0V)の信号をArduinoに送ります。

操作用のモメンタリースイッチも、別に1個使います。

LEDは、モーターを動かす間だけ光るようにスケッチ(プログラム)を書きます。

ブレッドボード上で動作確認してから、汎用基板で回路を作り台座に搭載しました。

Arduinoと28BYJ-48を使う。電動スライド開閉式テーブルの自作


ポジションスイッチ動画

制御方法

Arduinoで、テーブルの開閉をコントロールします。

開閉の状態切り替え命令は、モメンタリースイッチ使って、順番に

  1. 全閉。
  2. 開く方向に動かす。途中でスイッチが押されることなく全開したらに移行。
  3. (開作動中にスイッチが押されたら)止める。
  4. 閉じる方向に動かす。全閉したらに移行。
  5. 全開。
  6. 閉じる方向に動かす。途中でスイッチが押されることなく全閉したらに移行。
  7. (閉作動中にスイッチが押されたら)止める。
  8. 開く方向に動かす。全開したらに移行。

の状態に切り替えます。途中状態が多くなっていますが、 何か挟まった時等の非常時に、ボタンを押せば止められて、さらにボタンを押せば反転して動くようにするために、8パターンの状態を推移するようにしました。

電源投入時は、全閉/全開検出スイッチの状態によって、

  • 全閉状態なら
  • 全開状態なら
  • 途中状態なら 

から始めます。途中で止まっている状態で電源を入れた場合は、テーブル上に飲み物等があるかもしれないので、次に操作スイッチを押したら開く側の動きにします。

スケッチ(プログラム)は最後に紹介します。

完成!(動画あり)

スケッチをArduinoに書き込んだら、車に取り付けて動かしてみます。

定電圧で低回転速度をつくれるステップモーターだからできる、静かで力強い動きです。


Arduino project #4 「車の助手席用の電動格納テーブルをつくる」Making auto-open/close table for passenger seat of car

出力軸の形状が特殊なのでギヤの入手が難しいですが、それをクリアできれば28BYJ-48は、静かにゆっくり動かしたい物を自作する時に重宝するモーターです。

スケッチ(プログラム)の紹介

int operationledPin = 3;    //  operation indicator led output
int motorclosePin = 8;    // full close position sw input
int motoropenPin = 9;     // full open position sw input
int operationswPin = 10;    // operation sw input
int powerOnled = 12;    // power on LED

int motorPin1 = 4;    // Blue   - 28BYJ48 pin 1
int motorPin2 = 5;    // Pink   - 28BYJ48 pin 2
int motorPin3 = 6;    // Yellow - 28BYJ48 pin 3
int motorPin4 = 7;    // Orange - 28BYJ48 pin 4
                      // Red    - 28BYJ48 pin 5 (VCC)

int motorSpeed;  
int count = 0;          // count of steps made
int speedcontr = 0;
int countstop = 320; // counts to stop to avoid heat
int conditionNumber = 0; // 0:close  1:move to open  2:stop to close  3:move to close  4:open  5:move to close  6:stop to open  7:move to open
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};

void setup() { 
  pinMode(operationledPin,OUTPUT) ; 
  pinMode(motorclosePin,INPUT) ; 
  pinMode(motoropenPin,INPUT) ; 
  pinMode(operationswPin,INPUT) ;
  //declare the motor pins as outputs
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  Serial.begin(9600);

  if (digitalRead(motoropenPin) == HIGH){
  conditionNumber = 4; // table is open
  } else if (digitalRead(motorclosePin) == HIGH){
  conditionNumber = 0; // table is close
  } else {
  conditionNumber = 6; // table is middle next open    
  }
 digitalWrite(powerOnled , HIGH); 
}

void loop() {

if (digitalRead(operationswPin) == HIGH) { 
    if(conditionNumber<7){   
    conditionNumber++;
    }else {
    conditionNumber = 0;   
    }
    delay(50);
    while(digitalRead(operationswPin)==HIGH){}
}

if(conditionNumber == 0){
  if (digitalRead(motorclosePin) == HIGH){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;  
  } else {
  digitalWrite(operationledPin, HIGH);    
  speedcontr = (3*count);
  motorSpeed = (2000+speedcontr);
  anticlockwise();
  count++;  
  }

}else if(conditionNumber == 1){
  if (digitalRead(motoropenPin) == HIGH){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;
  conditionNumber = 4;
  } else {
  digitalWrite(operationledPin, HIGH);    
  speedcontr = (3*count);
  motorSpeed = (2000+speedcontr);
  clockwise();
  count++;  
  }

}else if(conditionNumber == 2){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;

}else if(conditionNumber == 3){
  if (digitalRead(motorclosePin) == HIGH){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;
  conditionNumber = 0;
  } else {
  digitalWrite(operationledPin, HIGH);    
  speedcontr = (3*count);
  motorSpeed = (2000+speedcontr);
  anticlockwise();
  count++;  
  }

} else if(conditionNumber == 4){
  if (digitalRead(motoropenPin) == HIGH){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;  
  } else {
  digitalWrite(operationledPin, HIGH);    
  speedcontr = (3*count);
  motorSpeed = (2000+speedcontr);
  clockwise();
  count++;  
  }

}else if(conditionNumber == 5){
  if (digitalRead(motorclosePin) == HIGH){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;
  conditionNumber = 0;
  } else {
  digitalWrite(operationledPin, HIGH);    
  speedcontr = (3*count);
  motorSpeed = (2000+speedcontr);
  anticlockwise() ;
  count++;  
  }

}else if(conditionNumber == 6){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;

}else if(conditionNumber == 7){
  if (digitalRead(motoropenPin) == HIGH){
  digitalWrite(operationledPin, LOW);    
  digitalWrite(motorPin1,LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  count = 0;
  conditionNumber = 4;
  } else {
  digitalWrite(operationledPin, HIGH);    
  speedcontr = (3*count);
  motorSpeed = (2000+speedcontr);
  clockwise();
  count++;  
  }
}
}

void anticlockwise() 
{
  for(int i = 0; i < 8; i++)
  {
    setOutput(i);
    delayMicroseconds(motorSpeed);
  }
}

void clockwise()  
{
  for(int i = 7; i >= 0; i--)
  {
    setOutput(i);
    delayMicroseconds(motorSpeed);
  }
}

void setOutput(int out)
{
  digitalWrite(motorPin1, bitRead(lookup[out], 0));
  digitalWrite(motorPin2, bitRead(lookup[out], 1));
  digitalWrite(motorPin3, bitRead(lookup[out], 2));
  digitalWrite(motorPin4, bitRead(lookup[out], 3));
}

スマホホルダー取り付けに最適な場所を選ぶ!JB23ジムニー

f:id:solocamptouring:20180605221939j:plain

私はいつも、車の中でスマートホンを充電しています。また、スマホの常に最新の地図アプリを便利に使っています。

最近では非接触式の充電器が装備されている車もありますが、そのような車を除いて、意外に悩ましいのが充電中のスマホの置き場所です。

中でもさらに選択肢が少ない、軽自動車のJB23ジムニーについて、スマホホルダーの最適な場所を考えてみました。

車中でのスマホの役割

走行中は運転に集中するので、スマホの画面操作は停車中に行う事が前提です。

その上で、車の中でのスマホの主な使い方をあげてみます。

  1. シガーソケットから充電する
  2. ハンズフリー機器と接続して電話をかける、受ける
  3. 地図アプリでナビとして使う

これらの使い方に合致したスマホ置き場を探します。

車内のスマホ置き場の一般解

  1. まずは充電したいので、シガーソケットやUSBソケットから遠くないところに置きます。
  2. 電話を受けることはハンズフリー機器でも簡単にできますが、電話をかけるにはスマホの画面操作が必要な場合があります。運転席から(停車中に)画面操作できる位置にスマホがあると便利です。
  3. 地図アプリでナビとして使う場合、なるべく視点移動の少ない場所で、前方視界を妨げずに、画面を運転手に向けて設置したいです。

これらの条件に合うスマホホルダーの位置を、JB23ジムニーの車内で探してみます。

JB23ジムニーに最適なスマホホルダー(スマホスタンド)の場所

スマホの地図アプリをナビとして使いたいので、運転席よりも前にスマホを置きますが、運転に必要な視界を遮りたくありません。

  • 正面ガラスの視界エリアはNG
  • 充電コードが煩わしくなるので、正面ガラスの上部もNG 

これらの理由で、候補範囲をダッシュパネルよりも下方に限定します。

さらに、消去法でエリアを絞ります。

  • エアコンの風を感じながら運転したいので、吹き出し口の前も候補から除外
  • 停車中に操作しやすいように手が届く範囲に設置したいので、助手席の正面も除外
  • 車の操作機器が見えなくなる、または使えなくなる位置も除外
JB23ジムニーにスマホホルダー取付け

赤枠部が、スマホ設置場所の候補から除外したエリアです。

スマホが置けそうなスペースは、青色のエリアしか残りませんでした。

スマホスタンドの取り付け

スマホの場所を決めましたが、この部分のダッシュパネルは複雑な形状をしていて、平面部がほぼありません。

吸盤タイプのスマホホルダーだけでなく、両面テープを使う市販のものも固定することは不可能です。

そこで、薄いアルミ板を細長く切ったものを、ダッシュパネルの凹溝部に両面テープで貼り付けて土台にしました。

スマホホルダーをスマートに取り付けよう!JB23ジムニー

土台のアルミ板にスマホホルダーを取り付けます。

これで、ネジ止めできる形のスマホホルダーであれば何でも使えるのですが、小型スピーカー用の壁掛けスタンドと、差し込み式のスマホホルダーが余っていたので、活用します。

スマホホルダーをスマートに取り付けよう!

スピーカースタンドはユニバーサルジョイントになっているので、向きと角度の調整ができます。

運転席の向きに合わせるとともに、充電コードがワイパー操作の邪魔にならないように調整しました。

f:id:solocamptouring:20180606055220j:plain

運転席から見てみると、ピンポイントの最適位置に設置できています。

スマホホルダーをスマートに取り付けよう!JB23ジムニー

所狭しと計器や操作パネルがあるJB23ジムニーのダッシュパネル部ですが、立体的な空間活用でねらい通りの場所に設置できました。

アルミ板をダッシュパネル上面まで延ばして両面テープで固定しているので、夏場でも両面テープがはがれることもなく、便利に使えています。

車検通過するLEDヘッドランプ。綺麗なカットラインがでるH4 LEDバルブの見分け方

私の愛車JB23ジムニーやバイクのヘッドライトは、世界中のどこでも入手できるH4タイプのハロゲンライトです。

しかし日本では、ハロゲン以外のバルブも簡単に入手できるため、それほどありがたみを感じません。

そこで、電力の節約と、今風の車の白い光にするためにLEDバルブに交換してみたいと思います。

相性が悪いと配光が上手くいきませんが、私の場合は一度安価なもので失敗した後に、車だけでなくバイク(H4の2灯)でも綺麗な配光を生み出すLEDバルブを見つけることができました。

対向車に迷惑になることもなく、車検も問題なく通過したので、その前に装着してみてダメだと感じたLEDバルブと比較しながら紹介いたします。

 

車検で必要なカットラインと配光

上の写真はLEDバルブで前方照射した写真です。写真でも植木に当たったヘッドライト光の境い目がくっきりとわかります。また境い目は、中央部から右側は水平に、左側は左上がりになっています。

この境い目がカットラインで、これがないと車検には通りません。

 そして、カットライン中央部の折れポイントが、最も光が強くなっています。写真では左右のバルブともに点灯しているので、左側に光の強さが寄っているようにみえますが、個別に光らせるとしっかり中央の折れポイントが明るくなっています。

この光り方が、車検を通す時に大事な配光です。実際にはその明るさ(光の強さ)も必要になります。

ハロゲンのフィラメント配置をLEDで再現している製品が〇

H4ハロゲンバルブとの互換性と「車検対応」をうたったLEDバルブが多数売られています。

まだLEDバルブが出始めた頃に、そのうちの一つを試してみましたが、カットラインと配光が得られずに失敗したことがありました。

カットラインも配光もないH4型LEDバルブ

左の写真が、使えなかったLEDバルブです。右のH4ハロゲンバルブの写真は比較のために並べました。
一見してお気づきのとおり、LEDの配置がハロゲンバルブのフィラメントとは違います

特に、ハロゲンバルブだと先端側にある、ロービームのフィラメントの位置には、LEDの粒がありません。

ちなみに、このLEDバルブは写真に写っている側だけにLEDが配置されており、反対側にはありません。

これではハロゲンバルブと同じカットラインがでるわけもなく、また特にハイビームの光量も足りないので公道では使えませんでした。 

車検を通したH4型LEDバルブ

車検が通ったH4型LEDバルブ(カットラインや配光など)

左の写真が、車とバイクで車検を通したLEDバルブです。

右のH4ハロゲンバルブのフィラメントを忠実に再現するLED配置です。ロービームの遮蔽板も壁で作られています。

このLEDバルブは、写真で写っている反対側にも、対称にLEDが配置されていて、一本あたり16個のLEDが使われています。

両面に対称配置されたLEDは、各面にハイビーム用4個とロービーム用4個のLEDを並べて、ハロゲンバルブのフィラメントを再現しています。

たまにLED3個づつでフィラメントを再現している製品も見かけますが、今回は写真の4個づつLEDの粒が配置されたもので車検を通しました。

満足の明るさです

LEDの白い光が見えにくくなると言われる雨の日に、写真を撮ってみました。

H4ハロゲンから交換して車検に通ったLEDバルブ
H4ハロゲンから交換して車検に通ったLEDバルブ

左の写真がロービーム、右がハイビームです。

日暮れ直後の、まだ暗くなりきっていない夕方に、運転席からiphoneで撮りました。

H4ハロゲンバルブにくらべて横方向の明るさが若干少ない気がしますが、気になるほどではありません。

車検ではチェックポイントとなる中央付近の明るさは充分で、感覚的にはハロゲンバルブより明るくなっているとさえ思います。

バッテリーにもやさしいLED

ハロゲンバルブのフィラメントと同じ配置にこだわったLEDバルブを選ぶことで、白く明るいヘッドライト光を入手して、車検にも通りました。

25Wx2とハロゲンバルブよりも省電力なので、他に電装品を追加して電力収支が厳しくなっている車やバイクにもおすすめです。

LEDサウンドレベルメーターの自作。RGB LEDをナイトライダー風に光らせる

LEDサウンドレベルメーターの自作。WS2812Bをナイトライダー風に光らせる

ナイトライダーのK.I.T.T.をご存知ですか?

私と同年代の方々は、頭の中でテーマソングの演奏が始まってしまったのではないでしょうか。

おさらいしておくと、ナイトライダーは80年代のアメリカのドラマで、主人公マイケル.ナイトと彼に仕える人工知能を搭載した車の話です。

K.I.T.T.は人工知能の名前で「キット」と呼ばれていました。調べてみてわかったのですが、Knight Industries Two Thousand(ナイト2000)の頭文字をとったものだったそうです。

今回再現するのは、キットが喋る時に連動するボイスインジケータ の光り方だけで、ディテールにはこだわりません。

ドラマでは「了解です、マイケル」などたくさん喋っていましたが、私は運転していて話しかけられても照れるので、キットの声は再現しません。

かわりに、車内の音の大きさに反応するようにして、音楽や人の声にあわせて光るようにします。

 

市販品があった!

 今回Arduinoで自作しようと決意する前に、市販品で同じようなものがないか探してみたところ、過去に販売されていました。

シガーソケットに差し込むタイプのUSB電源(2個)ですが、いくつかのパターンで喋るようです。

しかし、もう生産されていないようで、日本でもアメリカでもオークションサイトで高値で取引きされています。

簡単に入手できれば、ボックスだけ使って光り方はArduinoで制御したかったのですが、残念です。

Arduinoと接続するモジュール

 ボイスインジケータ を再現するにあたり、WS2812Bを8x8個並べたカラーLEDモジュールと、サウンドセンサーモジュールを使います。

LEDはバーグラフタイプのモジュールの方が実物に近いのですが、ちょうどいい大きさのものが見つからなかったので、使いやすいWS2812Bで進めます。

 サウンドセンサーで検知した音の大きさに応じて、キットのように上下方向にグラフを立てて、カラーLEDモジュールに表示します。

 表示イメージとパターン

 8x8マトリックスLEDのうち6x8個を使って、ボイスインジケータを再現します。

 実物同様の赤色だけで光るパターンの他に、他の色で光ったり、余っている2x8個を違う光り方で装飾したりするパターンにも切り替えられるようにします。

パターン① KITTを再現します(赤色)。

ナイト2000のボイスインジケータをArduinoとWS2812Bで再現

パターン② KITT風で、色を徐々に変化させます。

ナイト2000のボイスインジケータをArduinoとWS2812Bで再現

パターン③ パターン①に加え、3本のインジケーターの間の余っているスペースに光を流します。今回は上下ですが左右に流れる光こそナイトライダーのイメージそのものですね。

パターン④ パターン②に加え、3本のインジケーターの間の余っているスペースに光を流します。

f:id:solocamptouring:20180408122511j:plain
f:id:solocamptouring:20180408122530j:plain

パターン⑤ KARRも再現します(本当はアンバーですが、私の趣味で緑色)。

パターン⑥ KARR風で、色を徐々に変化させます。

KARRのインジケータをArduinoとWS2812Bで再現
パターン⑤(左)と、パターン⑥(右)

パターン⑦ パターン⑤に加え、3本のインジケーターの間の余っているスペースに光を流します。

f:id:solocamptouring:20180408123033j:plain
f:id:solocamptouring:20180408123048j:plain

 

回路図

ナイト2000のボイスインジケータをArduinoとWS2812Bで再現

Fritzingで回路図を作成しました。

マイクモジュールは、MAX4466を搭載したものを使っています。

可変抵抗(ボリューム)を使い、表示7パターンを切り替えられるようにします。

スケッチ(プログラム)は、記事の最後に掲載しておきます。

完成しました!

 まずブレッドボード上で回路を組んで、ipodタッチで出した音をマイクで拾いながら、マイク感度とLED残像調整をしてスケッチを完成させました。

ナイト2000のボイスインジケータをArduinoとWS2812Bで作成

 

完成後の作動状況は動画で確認できます。

7種類の光り方だけ見たい場合は、2:37くらいから確認してみてください。


Arduino project #3 「サウンドレベルメーターをWS2812Bでつくる」Sound level meter with WS2812B

 

 

今回作ったものは、車のオーバーヘッドコンソールに組み込んで光らせますが、その場所には既に、以前の記事で紹介した8x8LEDが搭載されていて、レインボーカラーなどで光っています。

www.solocamptouring.com

 今回のナイトライダー化は、既に搭載されているArduinoにマイクモジュールを追加して、スケッチ(プログラム)を書き換えるだけなので、車での作業はあっという間に終了しました。

f:id:solocamptouring:20180415185857j:plain

スケッチを紹介します

簡単なスケッチ(プログラム)で思い通りの光らせ方ができるGitHubのFastLEDライブラリを使います。

LED光の残像効果は、スケッチ内のfadeToBlackBy()の部分で調整しています。

#include "FastLED.h"
#define DATA_PIN    4
#define LED_TYPE    WS2812
#define COLOR_ORDER GRB
#define HEIGHT 8
#define WIDTH 8
#define NUM_LEDS HEIGHT*WIDTH
CRGB leds[NUM_LEDS];
#define BRIGHTNESS  3

const int sampleWindow = 20; // Sample window width in mS 
unsigned int sample;
int volts;
int micPin = 2;
int selectPin = 5;
int val = 0;
int numLedsToLight = 0;
int numLedsSide = 0;

void setup() {
  delay(3000); //delay for recovery
  FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  FastLED.setBrightness(BRIGHTNESS); 
}

// List of patterns to cycle through.  Each is defined as a separate function below.
typedef void (*SimplePatternList[])();
SimplePatternList gPatterns = { kittOriginal,  kittColor, kittOriginalWithSinelon,  kittColorWithSinelon,  karrOriginal,  karrColor,   karrOriginalWithSinelon };

uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current
uint8_t gHue = 96; // rotating "base color" used by many of the patterns
  
void loop()
{
   unsigned long startMillis= millis();  // Start of sample window
   unsigned int peakToPeak = 0;   // peak-to-peak level
   unsigned int signalMax = 0;
   unsigned int signalMin = 1024;
 
   // collect data for a while
   while (millis() - startMillis < sampleWindow)
   {
      sample = analogRead(micPin);
      if (sample < 1024)
      {
         if (sample > signalMax)
         {
            signalMax = sample;  // save the max levels
         }
         else if (sample < signalMin)
         {
            signalMin = sample;  // save the min levels
         }
      }
   }
   peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
   volts = (peakToPeak*5/130); // adjusting to the output of the mic 


 val = analogRead(selectPin); //check the volume to choose the pattern
      if (val < 150) {
    gCurrentPatternNumber = 0;
       } else if (val < 300){
    gCurrentPatternNumber = 1;
       } else if (val < 450){
    gCurrentPatternNumber = 2;
       } else if (val < 600){
    gCurrentPatternNumber = 3;
       } else if (val < 750){
    gCurrentPatternNumber = 4;
       } else if (val < 900){
    gCurrentPatternNumber = 5;
       } else {
    gCurrentPatternNumber = 6;      
       }

 
  gPatterns[gCurrentPatternNumber](); // Call the current pattern function once, updating the 'leds' array
  FastLED.show();  // send the 'leds' array out to the actual LED strip

  EVERY_N_MILLISECONDS( 300 ) { gHue++; } // slowly cycle the "base color" through the rainbow
}

void sinelon()
{
  fadeToBlackBy( leds, NUM_LEDS, 8);
  int pos = beatsin16(13,16,23);
  leds[pos] += CHSV( gHue, 255, 192);
}
void sinelonTwo()
{
  fadeToBlackBy( leds, NUM_LEDS, 8);
  int pos = beatsin16(13,40,47);
  leds[pos] += CHSV( gHue, 255, 192);
}

void onecolorsinelon()
{
  fadeToBlackBy( leds, NUM_LEDS, 8);
  int pos = beatsin16(13,16,23);
  leds[pos] += CRGB::MidnightBlue;
}

void onecolorsinelonTwo()
{
  fadeToBlackBy( leds, NUM_LEDS, 8);
  int pos = beatsin16(13,40,47);
  leds[pos] += CRGB::MidnightBlue;
}

void kittOriginal() 
{
       if(volts < 4){
        numLedsToLight = volts; 
          if(volts < 1){
          numLedsSide = 0; 
          }else{
          numLedsSide = numLedsToLight-1; 
          }
       }else{
        numLedsToLight = 4;
        numLedsSide = 3;      
       }
        fadeToBlackBy( leds, NUM_LEDS, 20);
        for(int led = 4-numLedsSide; led < 4; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 4; led < 4+numLedsSide; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 12-numLedsSide; led < 12; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 12; led < 12+numLedsSide; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 28-numLedsToLight; led < 28; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 28; led < 28+numLedsToLight; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 36-numLedsToLight; led < 36; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 36; led < 36+numLedsToLight; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 52-numLedsSide; led < 52; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 52; led < 52+numLedsSide; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 60-numLedsSide; led < 60; led++) { 
            leds[led] += CRGB::Red; 
        }
        for(int led = 60; led < 60+numLedsSide; led++) { 
            leds[led] += CRGB::Red; 
        }
}

void kittColor() 
{
       if(volts < 4){
        numLedsToLight = volts; 
          if(volts < 1){
          numLedsSide = 0; 
          }else{
          numLedsSide = numLedsToLight-1; 
          }
       }else{
        numLedsToLight = 4;
        numLedsSide = 3;      
       }
        fadeToBlackBy( leds, NUM_LEDS, 20);
        for(int led = 4-numLedsSide; led < 4; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 4; led < 4+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 12-numLedsSide; led < 12; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 12; led < 12+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 28-numLedsToLight; led < 28; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 28; led < 28+numLedsToLight; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 36-numLedsToLight; led < 36; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 36; led < 36+numLedsToLight; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 52-numLedsSide; led < 52; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 52; led < 52+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 60-numLedsSide; led < 60; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 60; led < 60+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
}

void kittOriginalWithSinelon() 
{
  sinelon() ;
  sinelonTwo() ;
  kittOriginal() ;
}

void kittColorWithSinelon() 
{
  onecolorsinelon() ;
  onecolorsinelonTwo() ;
  kittColor()  ;
}
void karrOriginal() 
{
       if(volts < 4){
        numLedsToLight = volts; 
        numLedsSide = volts;  
        }else{
        numLedsToLight = 4;
        numLedsSide = 4;      
        }
        fadeToBlackBy( leds, NUM_LEDS, 20);
        for(int led = 8-numLedsSide; led < 8; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 0; led < 0+numLedsSide; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 16-numLedsSide; led < 16; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 8; led < 8+numLedsSide; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 28-numLedsToLight; led < 28; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 28; led < 28+numLedsToLight; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 36-numLedsToLight; led < 36; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 36; led < 36+numLedsToLight; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 56-numLedsSide; led < 56; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 48; led < 48+numLedsSide; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 64-numLedsSide; led < 64; led++) { 
            leds[led] += CRGB::Green; 
        }
        for(int led = 56; led < 56+numLedsSide; led++) { 
            leds[led] += CRGB::Green; 
        }
}
void karrColor() 
{
       if(volts < 4){
        numLedsToLight = volts; 
        numLedsSide = volts;  
        }else{
        numLedsToLight = 4;
        numLedsSide = 4;      
        }
        fadeToBlackBy( leds, NUM_LEDS, 20);
        for(int led = 8-numLedsSide; led < 8; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 0; led < 0+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 16-numLedsSide; led < 16; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 8; led < 8+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 28-numLedsToLight; led < 28; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 28; led < 28+numLedsToLight; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 36-numLedsToLight; led < 36; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 36; led < 36+numLedsToLight; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 56-numLedsSide; led < 56; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 48; led < 48+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192); 
        }
        for(int led = 64-numLedsSide; led < 64; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
        for(int led = 56; led < 56+numLedsSide; led++) { 
            leds[led] += CHSV( gHue, 255, 192);
        }
}
void karrOriginalWithSinelon() 
{
  sinelon() ;
  sinelonTwo() ;
  karrOriginal() ;
}

 

 

運転の邪魔にならない軽自動車用アームレストを自作(JB23ジムニー)

シフトチェンジの邪魔にならない軽自動車用アームレストを自作(JB23ジムニー)

軽自動車のJB23ジムニー、運転席の左側にはアームレストがなく、高速道路などの長距離運転では左手が疲れてきます。

ハンガリーのRati製のアームレスト"Armster 2" がネットでの評判が良く、作りも良さそうで喉から手が出るくらい欲しいのですが、私の小遣い額を上回っていて今すぐ入手できそうにありません。

まずはアームレストのうれしさを確かめてみよう!と思い、見栄えは二の次でサクサクと自作してみることにしました。

 

自作コンセプト

一番のねらいはシフトチェンジしなくていい高速道路での走行時にヒジを置けることです。自然な位置にヒジを置けて、その時の手のひらはトップギアに入っているシフトレバー上に置けるようにします。
 
次に大事なのが、街中走行時のシフトチェンジの邪魔にならないようにすることです。シフト操作時にヒジが当たらないように設置します。
 
せっかくアームレストをつけるので、中に収納スペースも作ります。
 
そして急ブレーキなどでアームレストが車内で飛んでケガをする事がないように、しっかり固定します。ポリシーとして車両の見える部分に穴はあけないようにしているので、何かに引っかけるか両面テープを使って、固定を実現します。

構造を考える

構造を決めるにあたって、コンセプトの①と②を両立するために、アームレストの可動機構が必要になります。

アームレストを跳ね上げるかスライドするかの2択ですが、跳ね上げ式は急ブレーキでも落ちてこない構造実現に手間がかかると判断し、スライド式とします。

街中走行時の自作アームレストの状態
高速走行時の自作アームレストの状態
街中走行時(左)と高速走行時(右)のアームレスト状態

スライド式のヒジ置き面は、その下に設ける収納スペースのふたを兼ねるようにして、コンセプト③も実現します。


コンセプト④の固定については、減速Gに耐えられることを最重要項目とします。アームレストをコンソールの後面に固定できればいいので、下の図のようにコンソールと床面の間に金具を差し込みます。

f:id:solocamptouring:20180311082229p:plain

コンソール上面は両面テープで固定して、アームレストが前後左右にずれないようにします。

作ってみました

 工作レベルで作るので、簡単に加工できる木の板を使います。

車と人(=私)に合わせて寸法を決めてボックス形状を組み上げたら、缶スプレーで黒色に塗った後に見える面だけフェルトを貼り付けます。

 

ヒジ置き部のスライド構造には引き出し用のアイワのスライドレールを使いました。 

f:id:solocamptouring:20180311093050j:plain

 閉じている状態での固定には家具の磁石部品を使います。

f:id:solocamptouring:20180311093834j:plain
f:id:solocamptouring:20180311093839j:plain
下から写した閉状態(左)と開状態(右)

完成した全体写真も紹介いたしますが、普段見えない部位は多いに手抜きをして作っているので、見苦しい状態です。

軽自動車用アームレストを自作

裏面に木でつけた凸形状は、コンソールのカップホルダー凹形状に嵌るようにして、組付け後のズレ防止の役割を持たしています。

車に取り付けました

まずは、アームレストを使っていない時の状態を紹介します。

f:id:solocamptouring:20180311094342j:plain
f:id:solocamptouring:20180311094354j:plain
ヒジ置きが閉じた街中走行状態

上にのせているペリカンケースの底面には磁石をつけて、ヒジ置き面につけた鉄板に磁力で固定しています。

次に、アームレストを使うために前に出した状態です。

上と下の写真で、シートサイドとアームレストの位置関係の違いが見てとれます。

f:id:solocamptouring:20180311094407j:plain
f:id:solocamptouring:20180311094419j:plain
ヒジ置きを前に出した高速走行時の状態

ヒジ置きとして使う時は、磁力で固定しているペリカンケースも使って、ヒジがのる面の位置と高さを微調整しています。

 私の体形にあわせて作ったため、シフトチェンジスペースとアームレストの機能が絶妙な位置関係で両立しています。

高速道路での長距離走行でも腕が疲れにくくなったばかりでなく、軽自動車では貴重な追加の収納スペースをつくることができました。

内装を カーボン調にするお手軽DIY。JB23ジムニーのエアコン操作パネル

3MのダイノックでJB23ジムニーのエアコン操作パネルを豪華にするお手軽DIY

ちょっとプラスチック感が漂うJB23ジムニーのエアコン操作パネルを、簡単にカーボン調や木目調などの豪華仕様にするDIYを紹介します。

 

作業手順

年式によって仕様に差があるので作業内容に少し違いがありますが、作業の流れは同じです。

センターパネル取り外し

最初に、灰皿のスペース内にある3本のスクリューを外します。

f:id:solocamptouring:20180309083315j:image

灰皿スペースの鉄板が外れました。

f:id:solocamptouring:20180309083447j:image

センターパネルは、車両後ろ方向に引くとツメが外れます。下の灰皿の開口部から始めて、順に上のツメを外していくと簡単に外れます。

この時点ではシガーソケットとハザードスイッチのコネクターが繋がったままなので、あまり強く引く事はせず、センターパネルが数センチ浮くぐらいまでで止めておきます。

 

センターパネルのツメが全部外れたら、シガーソケットとハザードスイッチのコネクターを抜きます。

シガーソケットのコネクターは引き抜くだけで外れます。

f:id:solocamptouring:20180309092711j:image

ハザードスイッチのコネクターはツメでロックしています。白いコネクターのツメ根元の出っ張り形状を押しながら抜きます。

f:id:solocamptouring:20180309093033j:image

センターパネルが外れました。

f:id:solocamptouring:20180310211414j:plain

エアコン操作部のパネルを外す

エアコン操作ユニットを外してから作業してもいいのですが、壊さないように注意して作業すれば、操作ユニットは付けたままで今回模様替えするパネルだけ取り外せます。

まずは内外気の切り替えノブを車両後ろ方向に引き抜きます。

f:id:solocamptouring:20180310044419j:plain

今回豪華仕様にするパネルは、上3カ所と下3カ所のツメでユニットにとまっています。

上の端のツメから順番にマイナスドライバーなどで、優しく外していきます。パネルは力を入れすぎると壊れますが、反面たわみやすいので一度外したツメは手を離しても元に戻らず、順番にツメを外していくのは簡単です。

全てのツメが外れたら、パネルが外れます。

f:id:solocamptouring:20180309121616j:image

写真は完了状態ですが、外したパネルにカーボン調などのシートを貼ります。

最初に少し大きめに切り出したシートをパネルに被せて、凹凸部はドライヤーをあてて伸ばしつつ一旦貼ってしまいます。

その後で、外形と穴部分の余分なシートをクラフトナイフなどで切り落とします。

パネルにシートを貼り終わったら、外す時とは逆の手順で部品を組み付けて完成です。

カーボン調などのシートについて

今回のDIYはほぼ平坦面への貼り付けなので、カー用品店で売っているシートでも失敗しないと思います。

 

最初は簡単に貼れる部位でも、一カ所貼ってみて上手くいくと他の部位にもやってみたくなります。平坦面だけでなく曲面の部品も衣替えしたくなった場合には、3Mのダイノックを使うことをお勧めします。

ダイノックは種類が豊富で、カーボン調や木目調の他にもアルミ調などの多くの柄があります。

シート自体も(一部の柄を除き)よく伸縮するので、ドライヤーを当てて作業すると貼られる物の形状に追従させながら貼る事ができます。

さらに、粘着面と粘着面がくっていてしまったり折れ線が入ってしまっても、ドライヤーを当てることにより高い確率で再生可能です。

 色や柄も豊富にラインナップされています。一例です。

3M™ ダイノック™ フィルム

余ったシートは、スマホカバーの模様がえ等でも楽しんでいます。

天井の棚をイレクターパイプとカーゴネットで自作 (ジムニー)

JB23ジムニーの天井にイレクターパイプで棚をつくる

収納スペースの少ないジムニーの天井に棚をつけて、車内スペースを有効活用します。

車中泊用のベッドを自作する場合にもよく使われている矢崎化工のイレクターパイプで骨格をつくり、板やネットで収納スペースを生み出しました。

 

 棚のレイアウト

JB23ジムニーの天井にイレクターパイプで棚をつくる
棚の配置と、イレクターパイプの取付先となるアシストグリップ

イレクター パイプの車体への取り付けには、上右の写真のアシストグリップの取り付け穴を使います。

イレクターパイプは前から後ろまで1本で貫通させる人や、後ろだけ設置する人などに分かれますが、私は前と後ろで分割しつつ前後とも設置します。

パイプの長さは前側は30cm後ろ側は60cmを選択し、ちょうどいい感じでおさまりました。

イレクターパイプの取り付け方法

JB23ジムニーの天井にイレクターパイプをジョイントで取り付ける

ジョイント品番J-102Bを使います。ただしジョイントに元からある小さな取付穴(Φ3.6)は使いません。取り付け後に隠れる位置に、M6ボルト用の穴をドリルであけて使います。

Φ3.6の穴があいているフランジ部は切り落とした方が、車に取り付け後の仕上がりが綺麗ですが、残っていても少し天井に跡がのこるだけで私は気にならないのでそのままにしておきました。

M6ボルトは長さ25mmのものを使いましたが、20mmでも大丈夫です。

JB23ジムニーの天井にイレクターパイプで棚をつけるためのボルト

 10mmの工具は片口めがねレンチしか持っておらず、狭い隙間から少しづつ締めこんでいくのは大変でしたが、なんとか取り付け完了できました。

f:id:solocamptouring:20180218132611j:plain

 後ろ側のパイプにネットをはる

 使いたかったのは、ラリーカーのヘルメットハンモックのような、ベルトを編んだものです。しかし安価で入手できるものがなく、自作するのも大変そうだったので諦めました。

 第一希望のものが入手できなかったので、とりあえず100円ショップの自転車用ネットを4個つないで使っていました。

しかし、上に載せたサンシェードのような軽いものですら、走行中にトランポリン状態になる事が気になりました。

f:id:solocamptouring:20180218141533j:plain

 後日、カーゴネットを追加して使用したところ適度な弾力性となり、今ではサンシェードの他にもポロシャツや帽子等を載せて使っています。

前側のパイプにあう棚を作る

左右のパイプ間ピッチ(90cm弱)にあわせた棚板は、少しでも軽くしたかったので5mm厚の合板を20mmの角材で補強して作りました。

車両に仮付けしてみて気付いたのですが、ペットボトルなどの物入れとして使うとなると棚の高さが下がり目の前の圧迫感がでてきます。雑誌が入る程度の10cm弱の隙間だけを天井との間に設定することにしました。

棚の表面は内装色とほぼ同じ色の合皮を貼りましたが、無地では寂しい雰囲気です。

そのため他の記事で紹介しているミサイルスイッチやカラーLEDを追加していった結果、気付いたら豪勢なコンソールになってしまいました。

裏側は見栄え無視で作成したのでお見せするのは恥ずかしい状態ですが、表と合わせて写真公開します。

何度かの増改築で、裏側の見苦しさが倍増しています。4か所のスポンジは雑誌などの物を載せる部分のすべり止め効果をねらっています。

写真の棚の内側下端に、間接照明にしていたテープLEDの残骸が残っていますが、今は使っていません。

下側中央から少し右のベルトで留めた黒い箱には、カラーLEDを制御するArduinoや6V定電圧化回路が入っています。

前側のパイプに棚をつける

作った棚は、ジョイント品番J-113Aを使って固定しました。

f:id:solocamptouring:20180218144056j:plain

ここでも、 ジョイントに元から空いている穴を少し広げて、M6のボルトが貫通するようにしています。

オーバーヘッドコンソール(モニター)の取り付け方法

最後に、電動格納式モニターとLCDモニターがついているコンソールの取り付け手法について紹介いたします。

棚板よりも前に位置していますが、後ろ側は棚板に引っかけるだけで、前側は室内ミラーの取付穴から出したステー上の板に締め付けています。

f:id:solocamptouring:20180218113951j:plain
f:id:solocamptouring:20180128073528j:plain
左が締め付け用のステーと板。右がコンソールを横からみた写真

コンソールの上側は天井と接触しているので、締め付け一点だけでもしっかり装着されています。

f:id:solocamptouring:20180203123541j:plain

棚とコンソールに使った表皮が、ジムニーの内装色とほぼ同じなので天井に溶け込んでおり、「後からつけた感」が少なくなっています。

イザという時にそなえて車に常備しているグッズたち

緊急時に備えて車に積んでいるもの

私の車、平日は通勤、週末はキャンプにと、休むことなく動かしています。

今のところ出番は少ないか無いのですが、イザ!という時に備えて常備しているグッズを紹介いたします。

軽自動車(ジムニー)なので搭載スペースは限られており、緊急グッズはカーゴスペースのスピーカーボックスの上に載せて、カーゴネットなどで固定しています。

 

 牽引、救出ロープ類

 牽引、救出ロープ

 どれもまだ一度も使ったことがないのですが、気付いたら4種類のロープ類を持っていました。

  • 伸縮しない黄色のベルトが長さ違いで2本
  • 伸縮する青いベルト
  • 自在に端末に輪をつくれるオレンジ色のロープ

動画サイトでの4WD車の活躍っぷりに触発されて買ってしまいましたが、まだ大雪の経験はなく、普段は整備されたダートくらいの悪路しか走らないので、今のところ全く出番がなくて寂しいです。

ジャンプスターター 兼モバイルバッテリー

ジャンプスターター 兼モバイルバッテリー

 車のバッテリーがあがってしまった場合に使うジャンプスターターです。

といっても昔ながらのケーブルの両端に大きなクリップがついた物ではありません。

これは、他の人(車)に頼らずに自分だけでジャンプタートできる、とっても便利なものです。

さらに、乗らずに長期保管していたバイクのバッテリーが放電しきっていても、このジャンプスターターがあれば、車やバイクの移動をせずに楽にエンジンをかける事ができて、たいへん助かります。

 

そして購入の決め手になったのが、スマホ等のモバイルバッテリーとして使えること。 

せっかく車に常備していても、車のバッテリーがあがってしまった時に、こちらのモバイルバッテリーも放電しきっていては意味がないです。

私はキャンプに行く度に、このモバイルバッテリー部分だけ車から持ち出し、スマホやラジオの電源として使います。そして帰り道でシガーソケットから充電しなおせば、普段は満充電の状態を保てます。

キャンプではモバイルバッテリーとして使えて、普段は車やバイクのバッテリーあがりの保険になるので一石二鳥です!

f:id:solocamptouring:20181014164507j:plain

タイヤチェーン

JB23ジムニー用タイヤチェーン

 私のいるところは、雪は1年に数回降るだけなので、これも保険として積んでおり一度も使ってはいません。

数あるチェーンの中でも、比較的にコンパクトに収納できて軽い、SCCのケーブルチェーンを選択し、冬の間は車に積みっぱなしにしています。

 

エアーポンプ

JB23ジムニーに常備しているエアーポンプ

 このエアーポンプ(空気入れ)、シガーソケットから電源を取りピンク色のジャバラホースの先から空気を入れます。

もともとは、「スタック時にタイヤの空気圧を落として脱出するかもしれない」という妄想から購入したものですが、今まで一度もスタックすることもなく、自らタイヤの空気を抜いたこともありません。

しかし、車にかぎらずバイクのタイヤも、数か月メンテナンスしないと空気圧が落ちてきます。このエアーポンプは日常点検での空気入れとして活躍しています。

さらにアウトドアでエアーマットを膨らます時にも活躍しているエアーポンプですが、少し使いづらいのがシガーソケットに接続しないと使えない点。

自分の車のタイヤ4本に空気を充填する場合に、ポンプ本体をシガーソケットと各タイヤの中間地点に一回づつ移動させないといけまぜん。

エアーマットなども、車のそばで膨らませないといけないので、そのあとの歩行移動距離が長い場合は、使うのをためらってしまいます。

 

車のまわりだけではなく、いろんな場所で使いたい空気入れ。今のものが古くなってきたこともありコードレスタイプに心惹かれています。 

先に空気圧を設定しておけば、その空気圧で自動で停まる優れもの。

車に常備しておくならば、電源がシガーソケットだけのものより、断然こちらのタイプですね。

 

オーバーヘッドコンソール付けGPSディスプレイ完成(Arduinoでコクピット⑦)

オーバーヘッドコンソール付けGPSディスプレイ完成

Arduinoを使って自作したGPS時計や方位計のディスプレイですが、車のオーバーヘッドコンソールにお試しで装着(シリーズ記事⑥)してから一週間たちました。

前回の記事はこちらです。

www.solocamptouring.com

 問題なく作動しており、おおむね満足していますが、改善したい点がでてきました。

少変更を入れつつ、最終的に完成させます。

 

最終改善ポイント

「S」が「5」に見える対策

GPSモジュールが位置計算に使用している人工衛星の数をLCDの中央下に表示しています。

数字の後ろに衛星(サテライト)を意味する「Sats」を表示していますが、パッと見たときに「S」が数字の「5」に見えてしまいます。

f:id:solocamptouring:20180203095841j:plain

写真は、衛星7機を使って位置計算していることを表示している画面ですが、75っぽく見えてしまいます。

そこで、「S」を小文字に変更して「sats」と表示することで、見やすくします。

 

停止していると方位角度におかしな数値が出ることがある

GPSで得られる進行方向データを方位として代用しています。

しかし進行方向はGPSモジュールの位置(=車)を動かさないと計算できないため、車が停止している状態だと、稀におかしな数値を表示します。

進行方向を計算できていない時は方位角度を表示せず、「ACT. REQUIRED」と表示するようにスケッチ(プログラム)を変更します。

f:id:solocamptouring:20180203125501j:plain

最新のスケッチ全文は、最後に載せておきます。

 

オーバーヘッドコンソールへの取り付け

車に一週間装着してみて、ビビリ音もなく作動も安定しているので、透明パネルのままで手を加えていなかったディスプレイ取り付け面を仕上げます。

LCD表示部でない部位は、個人的に好きな黒カーボン柄のカッティングシートでブラックアウトします。

車のオーバーヘッドコンソールに取付けて、動作確認しました。 

自作オーバーヘッドコンソールの完成(Arduinoで表示する20x4LCDディスプレイ付き)


Arduino project #1「GPSマルチモニター 」Multi-information monitor with GPS module

最新のスケッチ(プログラム)

GPSモジュールは、tinygpsplusライブラリ、

温湿度センサーは、GitHub - adafruit/ DHT11用ライブラリを使っています。

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include<Wire.h>
#include <DHT.h>
#define DHTPIN 13
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd( 12, 11, 8, 7, 6, 5 );
byte upword[8] = {
  B00100,
  B01110,
  B11111,
  B00000,
  B00100,
  B01110,
  B11111,
};
byte downword[8] = {
  B11111,
  B01110,
  B00100,
  B00000,
  B11111,
  B01110,
  B00100,
};
byte righthand[8] = {
  B01000,
  B01100,
  B01110,
  B01111,
  B01110,
  B01100,
  B01000,
};
byte lefthand[8] = {
  B00010,
  B00110,
  B01110,
  B11110,
  B01110,
  B00110,
  B00010,
};
byte centerpoint[8] = {
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
};
TinyGPSPlus gps;
SoftwareSerial gpsSerial(9, 10); // RX, TX (TX not used)
const int serialTime = 200; // enough time to read all NMEA sentences once
const int MPU_addr=0x68;  // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;

void setup()
{
   Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B);  // PWR_MGMT_1 register
  Wire.write(0);     // set to zero (wakes up the MPU-6050)
  Wire.endTransmission(true);
  Serial.begin(9600);
  lcd.createChar(1, upword);
  lcd.createChar(2, downword);
  lcd.createChar(3, righthand);
  lcd.createChar(4, lefthand);
  lcd.createChar(5, centerpoint);
  lcd.begin(20,4);
  lcd.clear();  
  gpsSerial.begin(9600);
  lcd.setCursor(0,0);
  lcd.print("  CAPTURING         ");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print("  SATELLITES        ");
  lcd.setCursor(0,2);
  lcd.print("        Powered by  ");
  lcd.setCursor(0,3);
  lcd.print("           Arduino  ");
  delay(3000);
  lcd.clear(); 
  dht.begin();
  
} // end setup


void loop()
{
int start = millis(); // reference for starting timestamp
int now = millis();
do {
while (gpsSerial.available() > 0) {
gps.encode(gpsSerial.read());
}
now = millis();
} while ((now - start) < serialTime); // breaks out of read gps serial

  if (gps.altitude.isUpdated())
  {
    int h;
    h = (gps.time.hour()) + 9;
    if( 24 <= h ) {
    h = h - 24;
    }
       if (h < 10) {
       lcd.setCursor(0,0);
       lcd.print(" ");
       lcd.setCursor(1,0);
       lcd.print(h);
       } else  {
       lcd.setCursor(0,0);
       lcd.print(h);
       }

    lcd.setCursor(2,0);
    lcd.print(":");

    int m;
    m = gps.time.minute();
       if (m < 10) {
       lcd.setCursor(3,0);
       lcd.print("0");
       lcd.setCursor(4,0);
       lcd.print(m);
       } else {
       lcd.setCursor(3,0);
       lcd.print(m);
       }
       
   int sec;
    sec = gps.time.second();
       if (sec < 10) {
       lcd.setCursor(0,1);
       lcd.print("     ");
       } else  if (sec < 20){
       lcd.setCursor(0,1);
       lcd.write(5);
       } else  if (sec < 30){
       lcd.setCursor(1,1);
       lcd.write(5);
       } else  if (sec < 40){
       lcd.setCursor(2,1);
       lcd.write(5);      
       } else  if (sec < 50){
       lcd.setCursor(3,1);
       lcd.write(5);
       } else {
       lcd.setCursor(4,1);
       lcd.write(5);         
       }

  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B);  //starting with register 0x3B (ACCEL_XOUT_H)
  Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr,14,true);  // request a total of 14 registers
  AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)     
  AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
  Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
  GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
  GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
  GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)

    lcd.setCursor(16,2);  
    lcd.write(5);

     if (AcX < -5000) {
       lcd.setCursor(16,1);
       lcd.write(1);
       } else {
       lcd.setCursor(16,1);
       lcd.print(" ");
       }

     if (AcX > 5000) {
       lcd.setCursor(16,3);
       lcd.write(2);
       } else {
       lcd.setCursor(16,3);
       lcd.print(" ");
       }

     if (AcY < -5000) {
       lcd.setCursor(14,2);
       lcd.write(4);
       lcd.write(4);
       } else if (AcY < -2500) {
       lcd.setCursor(14,2);
       lcd.print(" ");
       lcd.write(4);
       } else  {
       lcd.setCursor(14,2);
       lcd.print("  ");
       }

     if (AcY > 5000) {
       lcd.setCursor(17,2);
       lcd.write(3);
       lcd.write(3);
       } else if (AcY > 2500) {
       lcd.setCursor(17,2);
       lcd.write (3);
       lcd.print(" ");
       } else  {
       lcd.setCursor(17,2);
       lcd.print("  ");
       }
  }
  
 if (gps.altitude.isUpdated())
  {
    lcd.setCursor(6,1);  
    lcd.print("Alt");
     int koudo;
     koudo = (int)(gps.altitude.meters()); 
     if (koudo == 0) {
     lcd.setCursor(9,1);
     lcd.print("----"); 
     } else if (koudo < 10) {
     lcd.setCursor(9,1);
     lcd.print("   "); 
     lcd.setCursor(12,1);
     lcd.print(koudo); 
     } else if (koudo < 100) {
     lcd.setCursor(9,1);
     lcd.print("  "); 
     lcd.setCursor(11,1);
     lcd.print(koudo); 
     } else if (koudo < 1000) {
     lcd.setCursor(9,1);
     lcd.print(" "); 
     lcd.setCursor(10,1);
     lcd.print(koudo); 
     } else {
     lcd.setCursor(9,1);
     lcd.print(koudo); 
     }
    lcd.setCursor(13,1);
    lcd.print("m");
  }

  if (gps.speed.isUpdated())
  {
        int satV;
        satV = (int)(gps.satellites.value());
        if (satV < 10){
        lcd.setCursor(8,3);
        lcd.print(" ");
        lcd.setCursor(9,3);
        lcd.print(satV);
         } else {
        lcd.setCursor(8,3);
        lcd.print(satV);
         }
        lcd.setCursor(10,3);
        lcd.print("sats");            
    
    int s;
    s = (int)(gps.speed.kmph());
       if (s == 0) {
       lcd.setCursor(0,3);
       lcd.print("---");
       lcd.print("Km/h");
       } else if (s < 10) {
       lcd.setCursor(0,3);
       lcd.print("  ");
       lcd.setCursor(2,3);
       lcd.print(s);
       lcd.print("Km/h");
       } else if (s < 100) {
       lcd.setCursor(0,3);
       lcd.print(" ");
       lcd.setCursor(1,3);
       lcd.print(s);
       lcd.print("Km/h");
       } else {
       lcd.setCursor(0,3);
       lcd.print(s);
       lcd.print("Km/h");
       }
  }

   if (gps.course.isUpdated())
  {
   int headDir = (gps.course.deg());
   
    if ((gps.course.deg()) <= 0) {
     lcd.setCursor(6,0);
     lcd.print("ACT. REQUIRED ");     
    }
    else if ((gps.course.deg()) > 360) {
     lcd.setCursor(6,0);
     lcd.print("ACT. REQUIRED "); 
    } 
    else if ((gps.course.deg()) < 11.3) {
     lcd.setCursor(13,0);
     lcd.print("W--N--E"); 
      if ((gps.course.deg()) < 10) {
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print("  "); 
      lcd.print(headDir);
      lcd.print(" "); 
      }else {
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(" "); 
      lcd.print(headDir); 
      lcd.print(" "); 
      }    
     }
    else if ((gps.course.deg()) < 33.8) {
     lcd.setCursor(13,0);
     lcd.print("--N");
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);
     lcd.print("--E"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(" "); 
      lcd.print(headDir); 
      lcd.print(" "); 
     }
   else if ((gps.course.deg()) < 56.3) {
     lcd.setCursor(13,0);
     lcd.print("-N-"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("-E-"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(" "); 
      lcd.print(headDir);
      lcd.print(" "); 
     }
   else if ((gps.course.deg()) < 78.8) {
     lcd.setCursor(13,0);
     lcd.print("N--"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("E--"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(" "); 
      lcd.print(headDir);
      lcd.print(" "); 
     }
   else if ((gps.course.deg()) < 101.3) {
     lcd.setCursor(13,0);
     lcd.print("N--E--S"); 
      if ((gps.course.deg()) < 100) {
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(" "); 
      lcd.print(headDir);
      lcd.print(" "); 
      }else {
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir); 
      lcd.print(" "); 
      }    
     }
  else if ((gps.course.deg()) < 123.8) {
     lcd.setCursor(13,0);
     lcd.print("--E"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("--S"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);
      lcd.print(" "); 
     }
 else if ((gps.course.deg()) < 146.3) {
     lcd.setCursor(13,0);
     lcd.print("-E-");  
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("-S-"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
 else if ((gps.course.deg()) < 168.8) {
     lcd.setCursor(13,0);
     lcd.print("E--");  
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("S--"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
 else if ((gps.course.deg()) < 191.3) {
     lcd.setCursor(13,0);
     lcd.print("E--S--W"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
 else if ((gps.course.deg()) < 213.8) {
     lcd.setCursor(13,0);
     lcd.print("--S"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("--W"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
else if ((gps.course.deg()) < 236.3) {
     lcd.setCursor(13,0);
     lcd.print("-S-"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0);   
     lcd.print("-W-"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
else if ((gps.course.deg()) < 258.8) {
     lcd.setCursor(13,0);
     lcd.print("S--"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0); 
     lcd.print("W--"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
else if ((gps.course.deg()) < 281.3) {
     lcd.setCursor(13,0);
     lcd.print("S--W--N"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
      }
else if ((gps.course.deg()) < 303.8) {
     lcd.setCursor(13,0);
     lcd.print("--W"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0); 
     lcd.print("--N"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
else if ((gps.course.deg()) < 326.3) {
     lcd.setCursor(13,0);
     lcd.print("-W-"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0); 
     lcd.print("-N-"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
else if ((gps.course.deg()) < 348.8) {
     lcd.setCursor(13,0);
     lcd.print("W--"); 
     lcd.setCursor(16,0);
     lcd.write(1); 
     lcd.setCursor(17,0); 
     lcd.print("N--"); 
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     }
else {
     lcd.setCursor(13,0);
     lcd.print("W--N--E");
      lcd.setCursor(6,0);
      lcd.print("Dir"); 
      lcd.print(headDir);  
      lcd.print(" "); 
     } 
    
  }

 int hmdt = dht.readHumidity();
 int tmpr = dht.readTemperature();

  if (isnan(hmdt) || isnan(tmpr) ){
     lcd.setCursor(0,3);
     lcd.print("UPDATING           ");
  }else{
   lcd.setCursor(0,2);
   lcd.print("Tmp");
   if (tmpr < 10) {
   lcd.setCursor(3,2);
   lcd.print(" ");
   lcd.setCursor(4,2);
   lcd.print(tmpr);
   } else {
   lcd.setCursor(3,2);
   lcd.print(tmpr);
   }
   lcd.setCursor(5,2);
   lcd.print("c ");
   lcd.setCursor(7,2);
   lcd.print("Hmd");
   lcd.setCursor(10,2);
   lcd.print(hmdt);
   lcd.setCursor(12,2);
   lcd.print("%");
  }

}