ラズパイZero買ってきた
こちらのラジコンをつくる上で、軽量化が避けて通れなそうなので、ラズパイZeroを秋葉原で買ってきました。
tohutokonsome.hatenablog.com
5ドルで購入することができる、というラズパイZeroですが、発売されたばかりのせいか、単品売りしているお店は見当たらず、諸々のセット価格で3000円程度かかりました。
今現在(2017年3月末)のお店事情なので、もう単品の取り扱いは開始しているかもしれません。
この辺のネットショップで買ってみたい気もします。
https://raspberry-pi.ksyic.com/news/page/nwp.id/46
とはいえ、無線LANとBlueToothを内蔵したラズパイZero(W)もそろそろ出回るみたいです。
なのでそっちが出たら、Zeroを買っちゃおうかと思います。
セット内容
以下が、お店で買った際のセット内容です。
- ラズパイZero本体
- 電源
- microSD(4GB)
- マイクロUSBケーブル
- ミニHDMI変換アダプタ
- ピンヘッダー(写真だとすでに本体に装着済みです)
写真にはないけれども、SSHで接続するためにも、wifiドングルは必須!
ピンヘッダーの装着
ラズパイZeroですが、GPIO見ての通りピンヘッダーが本体とばらばらになっていました。
なので、これをはんだづけしてくっつける必要があります。
※作業後に気づいたのだけれども、はんだつげしなくてもいけたかもしれない。
GPIO Hammer Headerで検索すると、ピンヘッダーをとんかちで叩いてくっつける方法が紹介されています。
動画では、とんかちで叩く際に、ラズパイZero本体を固定する機器があるので、はんだづけしなくてもよい、ピンヘッダーセットなのか、固定さえできればピンヘッダーはなんでもいいのか、とかその辺がわかってないです。
www.youtube.com
2017/8/29 追記
動画の内容は、はんだ付け不要の専用キットを使用しています!
www.switch-science.com
ラズパイZeroのはんだづけは結構細かい作業になるので、不安であればこちらの使用をおすすめします。
はんだづけをした
ステッピングモーターを動かしてみた際にモータードライバのはんだづけをした経験があるので、余裕だぜ!と思ったのですが、大苦戦しました。
tohutokonsome.hatenablog.com
以前、はんだづけをする際にブレッドボードに固定してやってみて、これって危ないのかな、なんて思ってたのですが、はんだづけするのは、そこまで間違っていないみたいでした。
はんだづけ完了後の状態ですが、ものすごい下手くそです。
現時点で動作確認してないので、GPIOがそれぞれ無事なのかがかなり不安です。
※参考動画
www.youtube.com
microSDにOSを書き込み
ラズパイ3のときは、NOOBSを使って、GUI版の「RASPBIAN JESSIE WITH PIXEL」をインストールしました。
今回は、CUI版の一番最軽量の「RASPBIAN JESSIE LITE」を使います。
microSDが4GBで、imgファイルは1.3GBでした。
Download Raspbian for Raspberry Pi
ラズパイ3のときは、Windows環境でカードリーダーでmicroUSBを認識した後にimgファイルをドロップして完了!みたいな操作をした記憶があるのですが、今回はMac環境でイメージファイルを作成しました。
Terminalを起動して、コマンドでimgを書き込むとそれっぽい満足感を得られるのですが、一歩間違えるとOSやらなんやら消しかねないぞ!自信ないならこれをつかっとけ!という公式アドバイスに従って「Etcher」といツールを使用しました。
etcher.io
ラズパイZeroを起動
このへんは、ラズパイ3のときにすごく感動したのですが、二度目ともなると、大したこともないです。
HDMIをモニターに挿すことでコンソール画面が起動します。
が、sshの設定にものすごく時間が買ったので、ラズパイZero(W)購入の際に苦労しないようにメモをしておきます。
SSHで繋がるように設定する。
「ラズパイ ssh」で検索すると参考記事がたくさんでてくるので、簡単そうだったのですが
- キーボードとwifiドングルを同時に挿せない
- ラズパイ3にもwifiドングルが必須だという勘違い
の二重苦によってかなり苦労しました。
ifconfigでネットワークの状態を確認する
ifconfigでネットワークインタフェースの状態を確認する。
・ifconfgのコマンド
ifconfig 〜(IP)ネットワーク環境の確認/設定を行う:ネットワークコマンドの使い方 - @IT
ネットワークインタフェース(以降、NIC)は、コンピューターがネットワークに接続するために必要なもの。
無線LANを利用する場合も、それに対応したNICが必要になる。
最近のPCでは、有線のNICはもちろんのこと、無線のNICも内蔵している。
(ラズパイ3も無線のNICは内蔵しているのだよ!)
まず、ラズパイZeroを起動して、ローカライゼーションの設定を行った後、ifconfigを打ってみる。
pi@raspberrypi:~ $ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:256 errors:0 dropped:0 overruns:0 frame:0
TX packets:256 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:20736 (20.2 KiB) TX bytes:20736 (20.2 KiB)
usb0 Link encap:Ethernet HWaddr 消した
inet6 addr: 消した Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
※MACアドレスっぽいものや、なんとなくまずそうなものは消してます。
以下二つのみが存在していることが確認できる。
loは必ず存在しているみたい。
loは「ローカルループバック」と呼ばれる特別な仮想インターフェイスだ。ホスト自身を示しており、OSのプロトコルスタックが必ず提供することになっている。従って、まったくNICを設置していない場合でも、このloだけは存在する。そうした初期状態であっても、仮想的にネットワークのテストなどに使えるように用意されているのだ。また、対応するIPアドレスは必ず127.0.0.1が割り当てられる。当然、このIPアドレスを用いて外部と通信することはできない。
以下より抜粋
ifconfig 〜(IP)ネットワーク環境の確認/設定を行う:ネットワークコマンドの使い方 - @IT
usb0は今の段階ではよくわからないので飛ばす。
usbテザリングで使えるみたい。
kassyjp.ninja-web.net
wifiドングルをラズパイZeroに挿す
使えるUSBポートはひとつしかないので、wifiドングルとキーボードの両方を同時の使用することができません。
なので、キーボードを外すことになってしまいます。
仕方がないので、以下のようなシェルスクリプトを書いて実行した後に
キーボードを外して、wifiドングルを挿しました。
gistc58c215674b0c2e8e11f1c27a6c6d2b0
それぞれの結果を抜粋するとこんな感じでした。
lsusb
Bus 001 Device 005: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]
(確認点)
・wifiドングルが認識されていること。
lfconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:256 errors:0 dropped:0 overruns:0 frame:0
TX packets:256 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:20736 (20.2 KiB) TX bytes:20736 (20.2 KiB)
usb0 Link encap:Ethernet HWaddr 消した
inet6 addr: 消した Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 消した
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
(確認点)
・wifiドングルを挿すことで新たなインタフェースが増えていること
(大抵はwlan〜みたい)
iwconfig
突然でてきた「iwconfig」
ifconfigがNIC全体に対して、iwconfigは無線LANの専門みたい。
無線LANのESSIDとかの設定が確認できる。
Linuxコマンド集 - 【 iwconfig 】 無線LANインタフェースの参照・設定:ITpro
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
(確認点)
・見れることぐらい
ESSIDやパスの設定をしてないので、繋がっていない状態
iwlist
これは、無線LANのアクセスポイントを探すことができるコマンド。
sudo権限で実行しないと、そんなコマンドねえよっていわれるので注意。
$ sudo iwlist wlan0 scanning|grep ESSID
ネットワーク管理の基本Tips:端末からアクセスポイントの情報を調べるには? iwlistコマンド - @IT
ESSID:"これもなんとなく消したESSID1"
ESSID:"これもなんとなく消したESSID2"
ESSID:"これもなんとなく消したESSID3"
ESSID:"これもなんとなく消したESSID4"
(確認点)
・自宅のwifiルーターのESSIDが検出できていること
このへんまで問題なければ、次の設定へ進む。
無線LANの設定を行う
一旦、wifiドングルを外して、キーボードに差し替えて以下ファイルを編集する。
- interface
- wpa_supplicant.conf
/etc/network/interfaceの設定
wifiドングル(NIC名:wlan0)用の設定を追加する必要がある。
記載ルールはDebianの資料にあるけれども理解しにくい。
第5章 ネットワークの設定
また、IPをDHCP経由ではなく固定する場合の書き方は後で調べる。
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
#ここから追加 wlan0用の設定
#ラズパイ起動時に自動でwlan0を起動
auto wlan0
#ホットプラグ(USBを電源いれっぱで抜き差し)を検知して起動
allow-hotplug wlan0
#dhcpでIPの設定を行う。固定にする場合はstatic?dhcpcd.confに書くの?
iface wlan0 inet dhcp
#wifiのSSID等の設定は、こっちに書く
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
/etc/wpa_supplicant/wpa_supplicant.confの設定
以下のコマンドで、wpa_supplicant.confの設定を行う。
sudo sh -c "sudo wpa_passphrase SSIDの名前 パスワード >> /etc/wpa_supplicant/wpa_supplicant.conf"
そこからルーターの設定に応じて、kye_mgmt以降の設定を行います。
このへんは既にwifiで接続していたラズパイ3の設定をそのまま書くことにしました。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="rs500m-d6afa0-1"
#psk="暗号化前のpass"
psk=暗号化後のpass
#以下を追加
key_mgmt=WPA-PSK
proto=WPA2
pairwise=CCMP
group=CCMP
priority=2
}
ここまで来たら、設定が完了です。
なんとなく再起動して、設定前に実行したシェルスクリプトを実行して、wifiドングルを挿します。
ifconfigの実行結果のinet addr のあたりにIPアドレスが振られていれば成功です。
wlan0 Link encap:Ethernet HWaddr 消した
inet addr:192.168.1.6 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 消した Scope:Link
inet6 addr: 消した Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8645 errors:0 dropped:12 overruns:0 frame:0
TX packets:3175 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:870992 (850.5 KiB) TX bytes:503769 (491.9 KiB)
思ったこと
USBハブを購入したほうがよい。
※設定完了後、買いました。
GPIO制御のWringPiを使うまで
以下を追記しました。
tohutokonsome.hatenablog.com
IPアドレスの固定
アドホック接続の中で、行いました。
www.tohuandkonsome.site