読者です 読者をやめる 読者になる 読者になる

たかぴろの備忘録

忘れてしまう前にやったことを残しつつ復習、展開できたらいいなぁ。

【初投稿】【ラズパイ】ラズベリーパイセットアップ手順

はじめに

はてなブログ初稿になります。
とあるSI企業に勤めている、たかぴろです。
詳細はプロフィールをご覧ください。

初稿の記事で何を書こうかと考えていたのですが、
ちょっと前にセットアップしたラズパイがあるので、
手順を私の経験したままに記録していきます。

ラズパイ(Raspberry PI)はみなさん知ってますか?
こんなやつ↓↓

f:id:takapiroid:20170325143930j:plain

購入したきっかけは、IoT技術を開発を通じて学習しようと思ったからです。
私の現在のスキルは、JavaScript, NodeJS, Java, html5, css, KIICloud, AWSサービス
と何が得意なのかよくわからないですね。
大学では工学系を嫌っており、基盤のことを避けた講義のみ受けていました。
その為、基盤に関してはまったくの無知です。
ラズパイで何かを開発なんてできるのか不安ですね…
そんな私でも何かできるのなら、
本記事ご覧のみなさんでもできることでしょう!

さて、長くなりましたが本題に入ります。

環境 / 手順概要

ラズパイのセットアップというのも
今回は、ラズパイとPCを接続するところまで説明します。
接続ができると、ラズパイ上の console いじったり、
PCからラズパイへ resource を送れるようになります。

今回私が行ったセットアップ環境並びにラズパイ情報は以下の通りです。
Raspberry PI
 ・Pi3 ModelB
☆Develop PC
 ・macOS Serria version12.10.3
 ・Windows10

環境設定手順はざっくり以下になります。
1. ラズパイのOSを準備する
2. ラズパイ-PCを接続する
簡単そうですね♪

手順1. ラズパイOS準備

1. OSを以下からダウンロード

Raspberry Pi Downloads - Software for the Raspberry Pi
'NOOBS' はラズパイ上でセットアップ手順を
チュートリアルで説明してくれる初心者向けのようです。
'RASPBIAN' は上記を省いたものです。
LITE と名前が付いているものはDisplay表示ができないとか色々軽くしているそうです。
自分で設定方法調べて console 上で云々できれば問題ないですね。
'NOOBS' を選んだ場合のチュートリアルは画面と接続しないと見れないと思うので、
その環境があるかによりますかね。

他にも 3rd party のOSあるようですが、こだわりないので私は 'RASPBIAN' を使っています。
今後必要なパッケージ・versionが整っていないようなら考えます。

2. OS ImageをSDカードにコピー

ラズパイは購入時には、OSの入っていないただの基盤です。
コンピュータとして動かすには、OSが必要。
そのOSをラズパイでは、SDカードに入れることが主流です。
OSだけでなく、ストレージとしてもSDカードの容量を食うので、
やりたいことに応じたサイズのメモリを買いましょう。
8GBくらいあれば良いですかね。(私は身近に32GBあったので...)

この作業はmac で行なっていないので windows のみの紹介で失礼します。
1. SDカードをフォーマット(windows defaultでできる手段でOK)
2. SDカードにOS Image を書き込み
 参考:Raspberry Pi 2向けのOSイメージをSDカードに書き込む - できるかな?できるかな?

手順2. ラズパイ-PCを接続する

開発時にラズパイの操作(コマンド入力)、成果物の書き込み(ソースコードを入れるなど)を行うのですが、
ラズパイとPCを接続する必要があります。
最後にラズパイとしては以下2つがあるかなと思います。

SSH接続 ネット接続を利用する(遠隔操作のひとつ) TELNETの暗号化有verの認識
シリアル接続 コードをつないで接続する

ラズパイ-PCを接続せずとも、
ラズパイにディスプレイ、マウスを接続すればラズパイ上で開発できますが、
開発ツールなどラズパイ上に残したくないかな… と私は思います。

上記のうちどの接続方法にするかは、開発する環境によると思います。
私の場合はネット環境のない場所での作業も考え、
シリアル接続ができるようにしています。
最近は通信容量気にすること多いですからね...

ではそれぞれの接続方法を説明します。

SSH接続

1. ラズパイの電源ON(microUSB接続でOK)
2. ラズパイにLAN接続(PCと同じルータで)
3. ネットワーク上のラズパイのIPを探す
 ラズパイにディスプレイ繋げたなどで直接 console 開けるなら ‘ifconfig’ で調べる。
 めんどいと思うので、同ルータ上のPCの console で ‘arp -a’
 表示されているうち、MACアドレス
 ‘ベンダーID(b8:27:eb) + CPUシリアル番号の下6桁’
 のものがあればそれがラズパイ
4. ラズパイIPに対してssh
 windows:TeraTerm使うのがよろし(私が使い慣れているだけ)
 mac:Terminalで ‘ssh -l {user_name} {ラズパイIP}’
 ラズパイのdefaultのアカウントは以下の通り。

 username: pi
 password: raspberry

☆補足
・“2016-11-25版からsshがデフォルトで無効になりました。”
 と書かれた記事がありましたので、接続できない場合はこちら参照
 raspbian 2016-11-25 をインストールしてssh接続まで - Qiita

・IPの割り振り固定化
 DHCPサーバの設定によっては定期にIPアドレス変わりますよね…
 毎度IP調べるのもめんどくさいので固定化しましょ↓↓
 /etc/network/interfaces がそこら辺の設定しているぽいので見てみると

pi@raspberrypi:~ $ vi /etc/network/interfaces

# 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

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

 ‘# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf’’
 っていかにもですね。
 
  ‘man dhcpcd.conf’ このファイルの使い方を見てみると

   Here is an example which configures a static address, routes and dns.
         interface eth0
         static ip_address=192.168.0.10/24
         static routers=192.168.0.1
         static domain_name_servers=192.168.0.1

 とあるので例えば
 ‘ifconfig’打った時に
 ’inet addr:192.168.11.8 Bcast:192.168.11.255 Mask:255.255.255.0’
 となっているのであれば、

         static ip_address=192.168.11.8/24
         static routers=192.168.11.1
         static domain_name_servers=192.168.11.1 

 のようにするとIP固定化されます。
 domain_name_servers は routersと同じで良さそうです。
 ラズパイを再起動→’arp -a’ すると先ほど設定したIPにラズパイのMACアドレスが出ます。

シリアル接続

1. シリアル通信コードの購入
 シリアル通信用のコードが必要です。
 私はこちらで購入しました。
 Amazon CAPTCHA

 TTLレベル3.3Vが重要とのこと。電圧しくるとラズパイがお亡くなりになるようです。
 こんなの調べていると基盤やなぁ… と思うわけで…
 GPIO(要するにI/Oの端子かな)の配列は以下参照
 【GPIO】RaspberryPi3のGPIOの端子配置を調べてみた。: 初心者のラズパイ3 & Arduino日記

 ケーブルのドライバ、端子は各自で。私の購入したものでしたら商品レビューに記載ありでした。

2. OS Imageファイル編集
 SDカードへのアクセス、ラズパイアクセスどちらでも良いのですが、
 cmdline.txt, config.txtの末尾に
 >> core_freq=250 << を追加

3. コード接続の確認
 windows:デバイスマネージャーでcomポート開いているかどうか
 mac:Terminal起動し、’ls -l /dev/tty.*’ でコード接続前/後で追加されている/dev/tty.xxxがあるかどうか
  (私の場合、/dev/tty.Bluetooth-Incoming-Port が初めからあり、接続すると/dev/tty.usbserial が追加される)
 双方とも表示されていない場合は、driver認識されていない可能性あり。(PC再起動していないとかも)

4. シリアル接続
 windows:おなじみTeraTermで追加されたcomポートに対しシリアル通信。ボーレートは115200です。
 mac:Terminal起動し、3で確認した/dev/tty.xxx を使って
   ‘screen /dev/tty.usbserial 115200’
 
 Terminal 画面閉じる時によくC-a,k と書かれてるが、そうすると再接続したい時に、PC再起動が必要になる。(自分だけ??)
 回避策としては、画面閉じるのをC-a,d でディタッチ状態にし、screen -r で復帰するのが良いと思います。
 端末の再起動ならmicroUSB差し抜きすれば良いので。
      

まとめ

今回初めての投稿でしたが、
書き終えるのに6時間程(動作確認含めて)掛けてしまいました。
はてな記法を使ったのですが、うまくかけているのやら...。

コマンドの結果などは画像添付のがよいなとは思ったのですが、
バタバタ書いてしまい準備不足でした。

今後の記事としては、今回セットアップしたラズパイをサーバとして立て、
グループチャット行うものや、IoTぽい何か(Bluetooth使う系)をしたいなと思います。
今回GPIOという物を知り、ここにセンサーとか差していくのかな?
など勝手な想像をしつつ、センサーを用いることに楽しみです。

今興味のあるXamarineや、
昔に実装したJSでの暗号化などのについても
備忘録に残したいと思います。

一緒にこんなものやってみたい。など募集中です。

技術的に弱い私ですが、
備忘録を通して皆さんの力になれたらいいなと思います。

記事に関して何か気になる点がありましたらご指摘ください。

それでは今後の記事もよろしくお願いします。