Raspberry Pi

Raspberry Piとは

Raspberry Piは、最近ではIoTを構築するための手軽なプラットフォームといった使われ方をしているが、もともとはARMプロセッサを使った安価な教育用コンピュータとして開発されたものだ。

Raspbian は Debianベースの Raspberry Pi 用の子供向けの教育用、および小規模な開発者向けのコンピュータOS(オペレーティング-システム) である。少ないリソースでも快適に動作するように設計されている。

DonkeyCar用Raspberry Piイメージファイル

自力でDonkey CarのコアとしてRaspberry Piを利用する場合、さまざまなPythonおよびTensorFlowライブラリをPiでネイティブに動作させるために大変な作業でした。

LinuxおよびPiの専門家によって3年間にわたって慎重に作成された、DonkeyCarに特化したRaspberry Piをディスクイメージを利用するとよい。

とくにGooole Colab に対応したFabo Donkey Carのディスクイメージがお薦めだ。Google Colaboraotoryと連携するために、DonkeyCar 2.5.8, TernsorFlow 2.0.0 Alpha0をインストール、プロジェクトの作成やWireless Joystick、マルチタブ化も実施したRaspberryPi用イメージになります。

Download

焼き込みには、Etcherを使い焼き込みます。 https://www.balena.io/etcher/

Raspberry PiにWiFi接続

Piに新しいSDを差込、モニターに繋いて起動した後、ログインして、

  1. WiFi設定
  2. 固定IP設定
  3. ssh 接続

してください。

 

WiFi設定

wpa_supplicant.confに無線LAN情報を追記

以下を実行

$ sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'

SSIDPASSPHRASEを自身の無線ルータ等の設定にしてください。

生パスワードを削除

/etc/wpa_supplicant/wpa_supplicant.confファイル内では、生パスワードがコメントアウトで記載されているので、確認してから削除しましょう。

/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB

network={
        ssid="SSID"
        #psk="PASSPHRASE" #消しておきましょう
        psk=xxxxxxxxxxx....xxx
}

固定IP設定

dhcpcd.confにネットワーク情報を追記

Raspbian Wheezyでは、固定IPアドレス設定には、/etc/network/interfaceのファイルを修正しましたが、Jessieからは代わりに/etc/dhcpcd.confファイルへ設定内容を追記します。

/etc/dhcpcd.conf
# 追記
interface wlan0
static ip_address=192.168.11.40/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

上記の設定はBuffalo無線ルータの場合の設定です。
routersというのはgatewayに当たります。

設定確認

シャットダウンしてLANケーブルが繋がっているならば抜き、再起動後、指定したIPアドレスで無線LANが設定されているかを確認します。

$ ip addr
(略)
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:82:1b:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.40/24 brd 192.168.11.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::dcdd:d297:5e54:2b4d/64 scope link
       valid_lft forever preferred_lft forever

これで無線LANを通じてSSH接続等ができるようになりました!

教訓

教訓1:シャットダウンしないて、電源コンセントをいきなり抜く

学生の初心者は、Raspberry Piの電源コンセントをいきなり抜くことが多発する。Headless状態でモニター画面がないけど、動いている。DonkeyCarを学習する際、原因不明のエラーで中止され、数日解決できない。

専門家の助けを求めたら、Raspberry Piを停電すると、ゴミファイル大量に発生する。DonkeyCarの学習に悪影響。手間をかけてゴミファイルをクリアしたら、DonkeyCarの学習はできた。

 

参考

  • https://qiita.com/momotaro98/items/fa94c0ed6e9e727fe15e

A DIY self driving platform for RC cars