【Raspberry Pi 】Raspberry Pi(ラズパイ)3 B+でカーナビ作ろう!By「Crankshaft」

author picture

Enzo

· 2020/02/29 · 19 min read
INDEX

ご無沙汰してます、えんぞーです^^

年末にやっとラズパイを手に入れました・・・4 ではなくて 3 B+ですけども。

前々からラズパイ手に入れたらKodi入れてリビング用のメディアプレーヤーにしようと思っていたのですけど、他に何か面白いこと出来ないかな~って探していたら「Crankshaft」なるおもしろそうなディストリビューション(?)があったのでそっちに気持ちが持っていかれました。

というわけで、ラズパイをカーナビにしてしまってそっちで Kodi 使えるようにすれば面白そうとか思ったので早速実行。

Crankshaft - GNU/Linux for your car with Raspberry Pi and Android Auto

「Crankshaft」とは?

Crankshaft とは「Andorid Auto」を使用する事を前提に作られているラズパイ用のディストリビューションです。
根っこは Raspbian なのでディストリビューションと言ってしまうとちょっと違うのかも知れませんけど。

そもそもはOpenAutoというオープンソースの AndroidAuto ヘッドユニット・エミュレーターのプロジェクトがあって、そこから初期設定など色々と使いやすくしたものが今回の「Crankshaft」らしいです。
他にもOpenAuto PROというものがあり、こちらは有料です。

Crankshaft - GNU/Linux for your car with Raspberry Pi and Android Auto

Getting started with Crankshaft · opencardev/crankshaft Wiki

では、Android Auto(アンドロイドオート)とは何かと言いますとこちらは Google が開発したカーナビ機能を搭載したアプリになります。

昔はカーナビ用としてのものだったらしいですが、最近では普通に AppStore でダウンロード出来るようになっていて自分のスマホをカーナビに出来ます。

制作: Google LLC
評価: 3.9/5 個(2023/2/13)
価格:無料(2023/2/13)

ただ、自分のスマホに入れて表示させてもおそらくは「ん?微妙に使えない・・。」となるはずです。

スマホを Android Auto 対応のカーナビに接続することでスマホのナビ機能がカーナビディスプレイに表示され操作も可能となるようです。

ナビの他、音楽アプリ等にも対応しているので自分のスマホに入っている音楽をそのままカーステレオに流したりも可能です。

一応結果から言うと思っていたよりも使えるものが出来上がります ↓。

今回用意したもの

今回カーナビを作成しようとしているわけですが、まずラズパイ触るのも初めてなので全て手探りです。

ひとまずはラズパイが無いと話にならないですよね、このラズパイですが「4」の方だと電源要件が 3A(アンペア)となっていて少し不安だったので今回は 3B+を用意しました。
3B+の方は電源要件は 2.5A なので確保しやすいかなと。

それにしても 3B+の在庫が枯渇しているのか普通に売ってなかったのでヤフオクで落札しました。4000 円程。
(3 月過ぎると安定供給できるようになるって話もあります。)

カーナビを作ろうとしているのでタッチパネルモニタが必要ですね、ただのモニタでは駄目でタッチパネル必須です。
↓ のものは基盤むき出しなのでケースが必要になるようであれば作るか買うかになりそうです。
あと現状でコマンドラインからの Brightness 調整が確認出来ていません・・・このモニタは出来ないのかも。

ラズパイ本体の放熱対策という事でケースとファンが一緒になったものを購入してみました。
気休めかも知れませんが一応ケースはあったほうが良いかなって事で。

その他、車のヒューズボックスから電源を取るのでそれに必要なものも購入。

DCDC コンバータは何個か試してみたのですが ↑ が一番安定して電圧供給出来ました。

2 つ入りだったので 10A と 15A からそれぞれ電源を取り、一つは今回のラズパイ用にしてもう一つはスマホ充電用の USB ポートとして活用。

ヒューズボックスからの電源取り出しにはこれとかこれを使用しました。

あと音声コマンド用にマイクも用意。

こちら、値段が安めのマイクだったので期待してなかった(失礼)のですが結果として普通に音声認識での操作が可能でした。

モニタにはラズパイを固定するネジ穴があるのでそちらを利用してケースを無理やり固定する形で一体化を図りました。

その状態で下記画像のようになります(このときマイク接続していません・・・)

ラズパイオールインワンの図

手作り感満載ですが・・・その辺は色々思いついたときに弄って行けばいいかな程度に考えてます。

Raspberry pi(ラズパイ)に「Crankshaft」環境を構築する

さてさて、ものが揃ったら環境を構築して行きます。
今回は簡単な流れだけメモとして残す感じで音がなるまでを書いていこうと思います。

「Crankshaft」のイメージをマイクロ SD カードに書き込む

Crankshaft」のページからイメージファイルをダウンロードしてマイクロ SD カードに書き込みます。
イメージの書き込みには「Win32 Disk Imager」を使います。

この辺りというか、大体の流れは ↓ こちらのサイト様が詳しく書かれています。

【自作AndroidAuto】Raspberry PiでAndroid Auto [導入編1] : PROJECT KONPETO

イメージの書き込みが完了したら次の工程に進みます。

Boot パーティションの「config.txt」を編集

ここの設定に関しては使用するモニタ等、環境によって変わるようなので環境に合わせて変える必要があります。

ちなみに「config.txt」の編集はイメージが書き終わったらそのまま「/boot/config.txt」をテキストエディタで開いて行います。

hdmi_cvt=1024 600 60 5
hdmi_group=2
hdmi_mode=87
hdmi_drive=1

あとラズパイ立ち上がったらすぐ Wifi 使えるようになりたいので「/crankshaft/crankshaft_env.sh」の Wifi 設定も変更しておきます。

# WiFiを使用する国を設定
WIFI_COUNTRY=JP3

# Wifi設定1つ目
WIFI_SSID="hogehogeSSID1"
WIFI_PSK="hogehogepass1"

# Wifi設定2つ目
WIFI2_SSID="hogehogeSSID2"
WIFI2_PSK="hogehogepass2"

マイクロ SD カードをラズパイに装着して立ち上げてみる

編集が完了したらカード入れて電源入れてみましょう。

初回は色々と設定等あるようなので立ち上がるまでに時間が掛かるようですが待ちます。

立ち上がったら設定画面(歯車アイコン)押して設定をざっと確認しておきます。

特に Wifi タブで正常に接続できているか確認しておき、正常に接続されていればローカル IP が割り振られているのでその IP に対して SSH で接続します。

この辺り・・・全然スクリーンショットとかなくて申し訳ないですが・・・。

SSH で接続して主な設定を行う

SSH で接続出来たらそのまま SSH で設定やらを行ってしまいたいので下記コマンドで書き込み許可を行います。

crankshaft boot unlock
crankshaft system unlock

もしくは

csmt boot unlock
csmt system unlock

で SD カードへの書き込み権限が発行されます。

カーナビという特性上電源をいきなり落とされる事を前提で考えられているためにデフォルトで書き込み出来ない仕様になっているようです。

「crankshaft」と「csmt」は同じコマンドなのでどちらか使いやすい方を使えばいいっぽいです。

boot パーティションへの書き込みが必要なければそちらはなくても大丈夫です。

個人的にシステムのアップデートはしておきたい性分なのでアップデートかけます。

sudo apt update
sudo apt upgrade

いらない人はそのまま進んでも問題ないとは思います。

基本的な設定を行いたいので下記のコマンドを実行。

sudo raspi-config

ここでロケールやらタイムゾーンを設定します。

詳しく知りたい方は ↓ こちらをご確認下さい。

raspi-config - Raspberry Pi公式ドキュメントを日本語訳

音声の設定を行う

ラズパイのヘッドフォンジャックにヘッドフォン接続しておきましょう。

下記コマンドを実行。

sudo amixer -c ALSA cset numid=3 1

この後に

aplay /usr/share/sounds/alsa/Front_Center.wav

上記コマンドを入力してヘッドフォンから「フロント、センター」と女性の声が聞こえたら OK です。

聞こえない場合は音量がゼロになっていないか確認してみて下さい。

amixer

↑ のコマンドで音量を変更する画面が表示されるかと思います。

あと、再起動したらまた聞こえなくなったという場合はロックかかったまま設定行ってるかと思いますので unlock コマンドでアンロックしてから再度設定してみて下さい。

カーナビとしての総評

Crankshaft仮組み

私の場合ですと、この後さらに kodi 入れたりブラウザ入れてみたりボタン押したら喋るようにしてみたりと色々やってみています。

その上でカーナビとして考えた場合の AndroidAuto はどうなのかと考えた場合、大雑把に言うと有りだなと思います。

このユニットを組んだとしてもスマホを繋げなければナビにはならないですし、まず組むまでに手間も時間もお金もかかりますがハンドメイドカーナビってだけでワクワクが止まらないですね。

前提としてこういう事が好きな人だったらっていうのはありますけど・・・。

AndroidAuto だけであれば対応したカーオーディオ等もあるのでそちらを購入するのも手かと思います。

金額に関しては・・・どうでしょう。

モニタ、ラズパイ、マイクロ SD、ケース、マイク、後はケーブルやら電源周りの出費合わせて全部で 2 万円って感じでしょうか。

メリット

  • そもそも構築が楽しい人は構築しているだけでワクワクする
  • 「こう出来たらいいのに」という部分がある程度できる(スキル依存)
  • 音声コマンドが意外に使える(ナイトライダー、サイバーフォーミュラ気分)
  • ナビゲーション自体普通に使える(GoogleMap でナビするよりもいい感じ)

デメリット

  • 普通に考えたら敷居が高い(PC に加えて車からの電源確保など)
  • 動作が時折不安定(Crankshaft が今ひとつ?)
  • 時間が掛かりすぎる
  • 手作り感が出てしまう(人による)
  • カーナビって Yahoo ナビが最強じゃね?(個人的に最強です)

とりとめのないまとめ

という訳で、趣味としてやれる人にはオススメ!(結局)

ホントに構築する前に考えていたよりはずっといいものが出来てしまってびっくりしました。

普通に使えるものが出来てしまうんだなぁ・・・という感じで。

ただ、実は Crankshaft 自体不安定になるようで USB 刺したときに再起動してしまったりする現象に見舞われました。

なので現在は「Openauto PRO」使ってますw
こちらも今度機会があればメモ程度に書かせてもらおうかと思います。

こういう場合は SD カード変えれば環境そのまま入れ替えられるから楽ですね。

# Android # Raspberry Pi(ラズパイ) # OpenAuto