Electronics

2015.08.12

レクサスのように自動駐車するラジコンカー

Text by David Scheltema
Translated by kanai

car

自動運転に関するニュースは毎日聞こえてくるが、私の予算ではなかなか手が届かない。だが、今日それが変わった。

たしかに、この車は小さすぎて乗ることはできないが、自動運転車だ。なにより、ぜひ作ってみたいプロジェクトだ。

Most of the parts used should be familiar to fans of Arduino
ほとんどのパーツは、Arduinoファンにはお馴染みのものだろう

この車は、ヨーテボリ大学の学生 Dimitris Platis を始めとするMakerチーム、Yilmaz Caglar、Aurélien Hontabat、David Jensen、Simeon Ivanov、Ibtissam Karouach、Jiaxin Li、Petroula TheodoridouからなるTeam Pegasusの作品だ。彼らの仕事は素晴らしい。GPLv3ライセンスで公開し、製作資料も大変に充実している。十分に熟したプロジェクトなので、どのMakerもすぐに飛びついて自分なりのプロジェクトにできるだろう。

もともとは、Platisの大学の課題で、シングルボードコンピューターとウェブカメラと高精度なシミュレーションソフトウェアのOpenDaVinciと、美的な魅力に欠けるシャシーを使って何かを作ることになっていた。しかしどれも彼にとってはパッとしない。そこで、彼とその仲間たちは、指示された部品をすべて捨てて、彼らなりのアプローチで攻めることにしたのだ。

プロジェクトの概要は次のとおり。

Layout of the car's electronics system
ドライブシステム以外のエレクトロニクスのレイアウト

車の内部のエレクトロニクスのレイアウトは、Arduinoを使ってプロジェクトのプロトタイプを作ったことのある人なら、お馴染みの感じだろう。Arduino MEGAに3つの超音波センサーが接続され、そのうち2つは前方に、ひとつはリアバンパーに配置されている。3つの赤外線センサーもMEGAに接続され、同じように配置されている。ジャイロスコープと9軸慣性計測装置がセンサーパッケージを締めくくっているが、それらは車のシャシーに搭載されている。

Android phone mounted to the car handles computation of sensor data passed to it via Bluetooth
Androidの携帯電話が車に積まれている。これがセンサーのデータを集めてBluetoothで送信する

舵の方向は、車に搭載された画像処理プログラムが走るAndroidからBluetoothで送信され、電気速度調整(ESC)機とAdafruitのモーターシールドが車の速度を管理する(図には描かれていない)。

修正:最初、Adafruitのモーターコントロールシールドが使われていると書いたが、違っていた。Dimitris Platisが間違いを指摘して、こう教えてくれた。「この車にはモーターシールドもSmartcar Coreライブラリも使われていません。ESCだけです。Smartcar Coreライブラリーは、別の学生グループが作った車に使われていました(それにはモーターシールドを載せていました)。それもとても面白い車なので、いずれ紹介したいと思います」

そして、これも図にはないのだが、ATtiny85マイクロコントローラーが搭載されていて、独自のスケッチでプログラムされ、ブレーキランプ、ウインカー、ヘッドライトなどの LED をコントロールしている。

コードには、Team Pegasusが独自に開発したライブラリー、AndroidCar.hが使われている。これがセンサーのデータを集め、Bluetoothでオンボードのスマートフォンに送信する。

そして、スマートフォンが計算したステアリングのコマンドをAPIで送り、サーボの位置を決める。API に関する詳細はSmartcar Coreのスケッチの例を見てほしい。ArduinoのコードとAndroidの電話機をつなぐコードについては、Android-Car-duinoレポジトリーを見るといい。これらのライブラリーのセットを自作の車に使う場合は、このwikiが役に立つ。

原文