受講生用マニュアル

ラジコン戦車の製作

1. RC戦車を組み立てる前に

1.1 部品チェック

名称
https://www.tamiya.com/japan/products/70168/index.html 1個
https://www.tamiya.com/japan/products/70157/index.html 1個
https://www.tamiya.com/japan/products/70100/index.html 1個
ジャンパワイヤ 0.65mm(赤・黒)
単三アルカリ乾電池 3本
microSDカード8GB以上 1枚
DRV8835使用ステッピング&DCモータドライバモジュール 1個
3軸加速度センターモジュール ADXL345 1個
モバイルバッテリー 1個
USBケーブルAオス-マイクロBオス 0.15m 1本
ブレッドボードEIC801 1個
電池ボックス単3X3本 リード線 1個
Raspberry Pi0 1個
SDカード変換アダプター 1個

1.2 共用道具

  • ハンダ
  • ハンダごて
  • ニッパー
  • プラスドライバー
  • ワイヤストリッパー
  • カベタックスポンジ両面

    1.3 デモ機

2. ラジコン戦車の車体を組み立てよう

2.1 ギヤボックスを組み立てよう

2.1.1 モータに配線をつけよう

A モーターのギア(紫色)を固い机などの上でモーターの軸の部分に押し込みます。

B モーターに電気を流すための配線をつけて、ハンダごてとハンダをくっつけてします。

2.1.2 ギヤボックスを組み立てよう

A ギヤがTypeCを選択する(114.7:1)(ギア比を確認画像不足)

B 黄色の小さの円筒形の部品と短い金属棒組み立てる

C 長いシャフトに金色のストッパーをはめ込んで、小さいネジを使用して六角レンチで固定する。

D ギアボックスのケースの穴に金色の金具を取り付けてから差し込んで、短いシャフトをケースの中央あたりの穴に差し込み、長いシャフトをケースの端あたりの穴に差し込みます。

E ギアを組み合わせる(4枚画像)

F ケースを合わせこんで、左右のネジ穴にネジをきちんと差し込みます。

2.1.3 モーターを装着する

A モーターの配線が外向きになるように装着する。

2.1.4 注意

2.2 シャーシを組み立てよう

2.2.1 プレートを準備する

A プレート端と2つ角をニッパーで切ります。

2.2.2 車輪を取り付ける

A 車輪のシャフトを通す土台を配置して、オレンジ色のビスを穴に差し込んで固定する。(2枚画像)

B 土台の穴に車輪シャフトを差し込み、それぞれの左右から、車輪を差し込んで取り付ける。

2.2.3 ギアボックスを取り付ける

A 細長い取り付け具がプレート裏側を狭み込む。

B ギアボックスのシャフトに突起のある小さい車輪を取り付ける。

C ギアボックスとプレートネジで固定する。

2.2.4 注意

2.3 キャタピラーを組み立てよう

2.3.1 キャタピラーをつなげる

A 長い部品+中く部品+中く部品+短い部品

B キャタピラーを装着する

C キャタピラーが回るか確認しよう

3. ラジコン戦車の制御部を作ろう(アシスタントのみ)

3.1 Raspberry Pi0を設定しよう

3.1.1 Win32 Disk Imagerをダウンロード、インストールする

3.1.2 RaspianをmicroSDカードに入れよう

3.1.3 microSDをRaspberry Pi0をセットしよう

3.2 ラジコン戦車にラズパイを搭載しよう

3.2.1 電池ボックスを加工する

3.2.2 電池ボックスを搭載する

A 電池ボックスに電池を入れる

B 電池ボックスに両面テープを貼る(非必須)

C 電池ボックスを搭載する

3.2.3 モバイルバッテリーを搭載する

A モバイルバッテリーに両面テープを貼る(非必須)

3.2.4 Raspberry Pi0を搭載する

A Raspberry Pi0に両面テープを貼る(非必須)

3.2.5 ブレッドボードを搭載する

A ブレッドボードに両面テープを貼る(非必須)

3.3 電子回路を作ろう

3.3.1 ジャンプワイヤを用意する

3.3.2 ICチップを配置する

モータードライバのICチップはVMを左上にして、ブレッドボードの3eに配置する

加速度のICチップはSCL右上にして、ブレッドボードの18hに配置する

3.3.3 ブレッドボードとRaspberry Pi0をつなぐ

A 電源をつなぐ

RaspberryPi 0の「1ピン」とブレッドボードの「+」とつなぎます。

RaspberryPi 0の「6ピン」とブレッドボードの「‐」とつなぎます。

「3ピン」とブレッドボードの「19i」とつなぎます。

「5ピン」とブレッドボードの「18i」とつなぎます。

「19ピン」とブレッドボードの「5g」とつなぎます。

「21ピン」とブレッドボードの「6g」とつなぎます。

「22ピン」とブレッドボードの「8g」とつなぎます。

「23ピン」とブレッドボードの「7g」とつなぎます。

B ICチップの配線をする

ブレッドボードの「3g」とブレッドボードの「+」とつなぎます。

ブレッドボードの「4g」とブレッドボードの「-」とつなぎます。

ブレッドボードの「8d」とブレッドボードの「-」とつなぎます。

ブレッドボードの「19c」とブレッドボードの「+」とつなぎます。

ブレッドボードの「20c」とブレッドボードの「-」とつなぎます。

ブレッドボードの「20i」とブレッドボードの「-」とつなぎます。

3.3.4 ブレッドボード内の配線をする

A モーター周りの配線をする

モーターの「左・赤」とブレッドボードの「6d」とつなぎます。

モーターの「左・黒」とブレッドボードの「7d」とつなぎます。

モーターの「右・赤」とブレッドボードの「5d」とつなぎます。

モーターの「右・黒」とブレッドボードの「4d」とつなぎます。

電池ボックスの「赤」とブレッドボードの「3a」とつなぎます。

電池ボックスの「黒」とブレッドボードの「-」とつなぎます。

モバイルバッテリーとRaspberry Pi0をつなぐ

4. コントローラアプリをダウンロード

4.1 APPをダウンロード

4.1.1 PLAYストアでRasPiTankをダウンロードする

4.1.2 RC戦車と端末をペアリングしよう

4.2 ラジコン戦車を操作してみよう

アシスタント用マニュアル

はじめに

このマニュアルは「当日または当日までにアシスタントがやることを書いたマニュアル」である。

当日までにやること

ラジコン戦車製作の予習

既存のデモ機をバラバラにして作り直す

受講生用マニュアルのラジコン戦車の製作を参考に、研究室にあるデモ機をバラバラにして、1から組み立てる。

はんだ付けの練習

余っている材料ではんだ付けの練習をする。

イメージファイルの書き込み

Raspberry Pi ZERO用のラジコン戦車のイメージファイルを、「Win32DiskImager」で各SDカードに書き込む。

Raspberry Pi ZERO用のラジコン戦車のイメージファイルは、このサイトのトップページまたはこちらからダウンロードできる。

ホスト名の変更

複数のRaspberry Piと同時にbluetoothで接続を試みると、電波干渉が起こりペアリングがなかなか行われなかった。それだけでなく、Bluetoothデバイスが ほかのBluetooth対応デバイスから見えるようにする「discoverable」モードに起動と同時になるように設定されていたのが、勝手に設定 が変わり、手動で「discoverable」モードにする必要が出てきてしまった。

そのため、事前にRaspberry Piのホスト名をそれぞれ別の名前にし、デバイスの区別をさせることで、電波干渉させないようにする必要がある(実際にやったことはないため、確認が必要)

お持ち帰り用袋の準備

例年、生協で「大原簿記」の袋を調達している。

当日やること

PCの設置

当日使う教室に、受講生が来る前から予めPCを受講生が座る各机に設置しておくとよい。

モバイルバッテリの充電

Raspberry Piに付けるモバイルバッテリは充電されていないため、予めバッテリを各机に置かれているPCのUSBポートで充電するよう受講生に促す。

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

はじめに

この章では、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です。

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