その他運営に関わるマニュアル

はじめに

この章では、Raspberry PiのOSであるRaspbianをインストールするところから、実際にラジコン戦車プログラムを動かすまでの手順を説明していきます。

ラジコン戦車は、ラズパイゼロでも動かすことが出来ます。 ラズパイゼロを使えば消費電力は小さく、購入価格も安く済むので、バッテリも小さくて安いもので十分動作するわけです。

ということで、ラズパイゼロで動かしてみました。

とはいうものの、単純に、この本に書いてあるようにサポートページから入手したイメージファイルをインストールしても、ラズパイゼロは起動すらしま せんでした。これはイメージファイル作成時のRaspbianのバージョンが古く、ラズパイゼロとの互換性がないからでしょう。しかたがないので、最新 バージョンのRaspbianである、Raspbian Busterをラズパイゼロにインストールして動かしてみました。

ラズパイゼロの初回設定をするにあたって必要なもの

元ネタの本で は、サポートページから入手したイメージファイルをインストールすればラジコン戦車を動かせたので、マウスやキーボードなど、周辺機器を準備する必要があ りませんでした。今回、ラズパイゼロで動かすにあたって、ラジコン戦車のプログラムを入れたりする必要があるため、元ネタの本に書いてあるもの以外にも用 意する必要があります。基本的には、スターターキットにあるものと、マウスなどの周辺機器を用意すればいいです。

スターターキットにあるもの以外には、HDMIケーブル、マウス、キーボード、ディスプレイといったとこでしょうか。このスターターキットでは、Micro-SDカードに既にRaspbianが書き込まれているので、次の項は飛ばして構いません。

Raspbianのインストール

ここでは、元ネタの本のように、Raspberry Piの公式ホームページからRaspbianをダウンロードし、 Micro-SDカードに書き込みました。

以下のサイトのようにNOOBSでインストールすることもできます。 NOOBSでインストールすれば、インストールに時間がかかりますが、操作がわかりやすいですし、「Win32 Disk Imager」のようなソフトは必要ありません。

https://qiita.com/henjiganai/items/2b39dd8cbc3cc3cbe4a4

初期設定ツールでの設定

インストールできたらターミナルを開き、以下のコマンドを入力します。

raspi-config

「 Advanced Options 」から「 Expand Filesystem 」を選択します。

今回のラジコン戦車ではI2C通信を使うため、「I2C」を有効にします。

デスクトップにあるスタートボタンから、設定→Raspberry Piの設定と進み、ホスト名を変更します。

ここで一旦再起動しておきます。

ここからはBluetoothサービスの設定を行っていきます。

Bluetoothのインストール

Bluetoothサービスをインストールします。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install bluetooth

Bluetoothサービスの設定ファイルに変更を加えます。

sudo nano /etc/systemd/system/dbus-org.bluz.service

「ExecStart」が書かれている行に

--compat

を付け加えます。

hci0を有効にします。

sudo hciconfig hci0 up

hci0が起動時に自動的に有効になるファイルを新しく作成します。

sudo nano /etc/udev/rules.d/10-local.rules

以下のように記述します。

# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"

Bluetoothを常に待ち受け状態にします。

sudo nano /etc/bluetooth/main.conf

「DiscoverableTimeout」と「PairrableTimeout」の行の「#」を削除します。

次はラジコン戦車を動かすプログラムをラズパイに入れたいと思います。

まず、ラジコン戦車を動かすプログラムやそれを自動起動させるシェルスクリプトが入っているフォルダをサポートページのイメージファイルから抜き出します。そのためにサポートページにアクセスし、「Raspberry Pi 3に指すSDカードメモリのイメージファイル」をダウンロードします。

ダウンロードしたファイルは圧縮されたイメージファイルですが、7-zipを使えばその中のファイルやフォルダを抜き出すことができます。

7-zipを起動して、「RemoteControl」のフォルダを見つけ出し、USBメモリなどにコピペします。 「RemoteControl」 のフォルダは

\\RasPiTank_rasbian20170415.zip\\RasPiTank_rasbian20170415.img\\1.img\\home\\pi

の中にあります。

この 「RemoteControl」のフォルダをラズパイゼロに移します。移す場所は\home\pi下です。

次に「RemoteControl」のフォルダの中にある「TankControl.c」のファイルをコンパイルし直します。まずは/home/pi/RemoteControlのディレクトリに移動します。

cd /home/pi/RemoteControl

「make clean」でRemoteControlの中にある実行ファイルなどを削除します。

make clean

「make」で再度、実行ファイルを作成します。

make

これでラズパイゼロに対応したラジコン戦車の実行ファイルができあがりました。

次にラジコン戦車プログラムを起動させるシェルスクリプトに変更を加えます。bluetoothctlコマンドがラズパイゼロだと実行されるまで時 間がかかるようで、変更しないと動作しませんでした。試行錯誤の末、「RemoteControl」の中にある「 register_rfcomm.sh 」のbluetoothctlの行の後に、sleepを入れることで動作しました。

#!/bin/sh

bluetoothctl -a NoInputNoOutput&
sleep 5
sdptool add --channel=7 SP
/home/pi/RemoteControl/TankControl&
hciconfig hci0 piscan

while true
do
rfcomm listen /dev/rfcomm0 7
done

本の中では書かれていなかったのですが、シェルスクリプトは動作させるのに権限を与える必要があります。

chmod 755 /home/pi/RemoteControl/register_rfcomm.sh

このシェルスクリプトを自動起動させるためにrc.localファイルに明記しました。「fi」と「exit 0」の間に以下を記述します。

/home/pi/RemoteControl/register_rfcomm.sh &

再起動すれば完了です。

sudo reboot

動くか確認

ラジコン戦車の車体と繋げて動くか確認します。ラズパイゼロのピン配列はラズパイ3と同じになっているので、本に書いてあるように繋げればOKです。

実際に動かしてみた動画です。小さいバッテリでも動いてます。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です