はらぺこらいおん

日々、思ったことを。

Raspberry Pi 3 セットアップ(Raspberry Pi 1/2も同じ手順でOK)

Raspberry Piをセットアップした際のメモになります。

SDカード準備

URL参照
pictzzz.hatenablog.com

起動

USBから給電を開始すると、自動的にOSが起動します。
必要なディバイス(ディスプレイ、キーボード、LANケーブルなど)は電源を入れる前に接続しておきます。

ログイン

raspberrypi login: 

と表示されたら、ユーザー名「pi」、パスワード「raspberry」でログインします。

ソフトウェアのアップデート

有線LANが接続されており、DHCPIPアドレスがもらえる場合です。 無線LANなどの場合は、ネットワークの設定から行う必要があります。

sudo apt-get update
sudo apt-get upgrade

アップデートが失敗する場合、ネットワークに接続されているかを確認します。

ping www.google.co.jp

応答がない場合、IPアドレスが正しく割り振られているかを確認します。

ifconfig

でeth0のinet addrにIPアドレスが付与されているかを確認します。
付与されていない場合、先にネットワークの設定 or 設定の見直しが必要です。

VIMインストール(好み)

sudo apt-get install vim

SSH設定

sudo raspi-config

5 Interfacing Options > P2 SSH > Yes > Ok

I2C設定

sudo raspi-config

5 Interfacing Options > P5 I2C > Yes > Ok

ローカライズ

タイムゾーン

sudo raspi-config

4 Localisation Options > I2 Change Timezone > Asia > Tokyo

キーボード

sudo raspi-config

4 Localisation Options > I3 Change Keyboard Layout > Generic 105-key (Intl) PC > Other > Japanese > Japanese > The default for the keyboard layout > No compose key

WiFi利用国選択

sudo raspi-config

4 Localisation Options > I4 Change Wi-fi Country > JP Japan > Ok

SD領域拡張

sudo raspi-config

1 Expand FileSystem > Ok

再起動

sudo reboot

無線LAN設定

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

オシロスコープ

電子工作をする上でオシロスコープがあると便利かなぁと前々から思っていたのですが、値段が高くてなかなか手が出せてませんでした。

Amazonで電子部品を探していると、このオシロスコープが出てきました。

https://www.amazon.co.jp/KKmoon-KKmoon-DSO138-%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%83%BB%E3%82%AA%E3%82%B7%E3%83%AD%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97-2-4%E3%82%A4%E3%83%B3%E3%83%81TFT-%E3%83%8F%E3%83%B3%E3%83%89%E3%83%98%E3%83%AB%E3%83%89%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA-%E3%82%AA%E3%82%B7%E3%83%AD%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97-%E3%82%AD%E3%83%83%E3%83%88DIY%E3%83%91%E3%83%BC%E3%83%84-%E9%9B%BB%E5%AD%90%E5%AD%A6%E7%BF%92%E3%82%BB%E3%83%83%E3%83%88-1Msps/dp/B01FVLVZQA/ref=sr_1_1?ie=UTF8&qid=1481368049&sr=8-1&keywords=%E3%82%AA%E3%82%B7%E3%83%AD%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97

自作キットなので、自分で半田付けをしなければなりませんが、2700円と格安。 とりあえず、使い物になるかわかりませんでしたが、安かったので買ってみることに。

このように基板とパーツ、LCDがセットになっています。

f:id:pictzzz:20161210201327j:plain

なので作る時&使う時には、以下のものが必要です。

  • 半田ゴテ(細め)
  • 半田
  • テスター
  • 9V電源(センタープラス)

作るのはマニュアルがあるので、それに従っていけば完成します。

f:id:pictzzz:20161210201736j:plain

電子部品を全部取り付けたところです。 細かいチップを取り付けるのが難しかったです。

f:id:pictzzz:20161210201934j:plain

あとはピンをLCDと基板に取り付ければ完成です。

f:id:pictzzz:20161210202051j:plain

半田付けに慣れていれば簡単にできると思います。

テスターは抵抗値を読めるものがあると便利です。 いちいちカラーコードを読むのは面倒ですので。

https://www.amazon.co.jp/OHM-%E3%82%AA%E3%83%BC%E3%83%A0%E9%9B%BB%E6%A9%9F-%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%83%9E%E3%83%AB%E3%83%81%E3%83%86%E3%82%B9%E3%82%BF%E3%83%BC-TDB-401-04-1891/dp/B001TVKWWU/ref=sr_1_1?ie=UTF8&qid=1481368906&sr=8-1&keywords=%E3%83%86%E3%82%B9%E3%82%BF%E3%83%BC

9Vの電源は秋月電子で買いました。

超小型スイッチングACアダプター9V1.3A 100V〜240V GF12−US0913: 電源一般 秋月電子通商 電子部品 ネット通販

センサー部品まとめ

今まで使ったセンサーをまとめます。
後からデータは追記していきます。

距離センサー

超音波センサー

特定のパターンの超音波を出し、それが対象物にあたり戻ってくる時間を計測することで、対象物との距離を得ます。
音は気温によって速度が変わるので温度センサーを一緒に使い、補正をすると精度が若干上がります。
計算に使う音の速さは約340m/sです。(気温15℃の環境下)
例えば気温15℃の環境で10ミリ秒で超音波が戻ってきた場合、340m/s × 10 × 1000^(-3) s / 2 = 1.7mと求まります。
最後に2で割っているのは、戻りまでの時間は対象物との往復の時間になるため、実際の対象物との距離を求めるためには2で割る必要があります。
超音波距離センサー HC−SR04: センサ一般 秋月電子通商 電子部品 ネット通販
こちらのセンサーは最初から半田付け不要で、すぐに使うことができます。

Arduinoにはパルスが戻ってくるのを待つ関数(pulsuIn)が用意されていますので、この関数で戻りのパルスを受信するまでの時間を計測できます。
デフォルトでは1秒でタイムアウトします。
http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2450

Raspberry PiなどではpulsuInがないため、パルスを送った後、戻り(In)のGPIOポートが0の間はループを継続し、 1になったらループを抜けるという処理を行うプログラムを書けば擬似的にpulsuInができます。ただ、ずっと0でループしていると、 反射波が得られなかった場合、無限ループに陥るため、時間をカウントしてタイムアウトする処理は必要になります。
Pythonのプログラムとしては以下のようになるかと思います。

# Define port
TRIGGER_PORT_ID = XX
ECHO_PORT_ID = YY

# Pulse Trigger 10usec
GPIO.output(TRIGGER_PORT_ID, True)
time.sleep(0.00001)
GPIO.output(TRIGGER_PORT_ID, False)

start = time.time()
wait = start
TIMEOUT_THRESHOLD = 1 #sec

while GPIO.input(ECHO_PORT_ID) == 0:
  start = time.time()
  if ((start - wait) > TIMEOUT_THRESHOLD):
    print 'target object not found'

while GPIO.input(ECHO_PORT_ID) == 1:
  stop = time.time()

pulse_in = stop - start

気をつけるべきこととしては、Arduino(5V)の場合は大丈夫ですが、Raspberry PiArduino(3.3V)を使っている場合、 センサーに5Vを印加した際の戻りをそのまま入力してしまうと、破損の恐れがあるので、抵抗などで分圧してあげる必要があります。

ドップラーセンサー(ミリ波)

ドップラーセンサーはドップラー効果を利用して、対象物との距離の変化を得ます。
ミリ波をセンサーから出し、対象物にあたり戻ってくる波を計測するのは超音波センサーと同じですが、
その際に時間ではなく、周波数の変化から対象物が移動しているかどうかを求めます。
対象物かセンサーに対して相対的に近づいている場合、対象物の速度に応じて戻ってくる周波数は高くなります。
反対に離れている場合、対象物の速度に応じて戻ってくる周波数は低くなります。
これにより、対象物が近づいているか、離れているかがわかります。
ドップラーセンサーモジュール(24GHz)DIP化セット NJR4265 J1(24GHz): センサ一般 秋月電子通商 電子部品 ネット通販
こちらのセンサーは少し細かい半田付けが必要になります。
センサー単体でも動作可能で近づく、離れるといった動きに応じてLEDを点灯させることができます。
また、シリアル通信(UART)を使ってArduinoRaspberry Piと検知情報やセンシングする閾値の設定などを行うことができます。

赤外線センサー

赤外線の距離センサーは、赤外線を発光し、その反射光の強さで対象物との距離を得ます。 超音波センサー(音)と比べて指向性を高くできるのが特徴です。 ただし、対象物の色によって光の吸収率(反射割合)が異なっているため、絶対的な距離を正確に求めることには不向きかもしれません。

距離ごとに製品がラインナップされています。

1〜5.5m
シャープ測距モジュール GP2Y0A710K: センサ一般 秋月電子通商 電子部品 ネット通販

0.2〜0.8m
シャープ測距モジュール GP2Y0A21YK: センサ一般 秋月電子通商 電子部品 ネット通販

出力値は電圧のアナログ値となるため、ArduinoなどのAnalog Inポートに入力し、電圧値から距離を求めます。

レーザーセンサー

レーザー測距センサ ToF(Time−of−Flight): センサ一般 秋月電子通商 電子部品 ネット通販

動体センサー

ドップラーセンサー

距離センサーのドップラーセンサーを参照。

温度センサー

温度センサーは温度によって発生する物理現象を計測することで温度を得ます。
原理はこちらのサイトに詳しく載ってます。
まめ知識 温度計測について - 横河電機

今回はこちらのセンサーを使いました。
温度だけでなく、湿度、気圧も計測することができます。 BME280使用 温湿度・気圧センサモジュールキット: センサ一般 秋月電子通商 電子部品 ネット通販
半田付けが必要になりますが、I2CとSPIで通信でき、I2C用のプルアップ抵抗も付属しています。

BME280 – スイッチサイエンス
こちらのサイトに非常に詳しく使い方が載っており、またArduino/Pythonのサンプルコードもあるので、勉強になりました。

センサーが立ち上がったすぐは値が不安定で信頼できる値が取れるまで数秒待つ必要がありました。

湿度センサー

温度センサーを参照。

気圧センサー

温度センサーを参照。

土壌湿度センサー

9軸センサー

ジャイロセンサー

加速度センサー

方位センサー

光センサー

照度センサー

カラーセンサー

焦電センサー

音センサー(マイク)

空気センサー

においセンサー

ホコリセンサー

CO2センサー

CO2など特定の気体の濃度を計測するのに用いられる手法としてNDIRがあります。 NDIR(Non Dispersive InfraRed)は、対象の気体が持つ赤外線の吸収特性を使って濃度を計測します。 詳しくは以下のURLを見てみてください。

http://www.irsystem.com/application/sensor/ndir.html

CO2センサーは各社より発売されていますが、ロット単位で購入しなければならないものも多く、 個人で購入する場合、こちらのセンサー(MH-Z19)が比較的安く、1単位で購入できます。

NDIR CO2 SENSOR, CO2 SENSOR,Infrared carbon dioxide gas sensor-Winsen Electronics

購入は以下のAliExpressからできます。

https://ja.aliexpress.com/item/1PCS-module-MH-Z19-infrared-co2-sensor-for-co2-monitor-Free-shipping/32371956420.html?spm=2114.13010608.0.0.c5etPL

ピンヘッダーは付属していないので、5pinと4pinのものがあると便利です。

センサーからの情報取得は、シリアル通信(UART)を使ってArduinoRaspberry Piで取得できます。

PWMを使用して値を取得するプログラムを以下の記事に書きました。

pictzzz.hatenablog.com

GNSS全球測位衛星システム

Raspberry Piで汎用入出力(GPIO)ピンの利用

Raspberry PiでGPIOを利用する際の設定手順になります。

セットアップ

git

sudo apt-get install git

WiringPi

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

使い方

ピンモードの設定

gpio -g mode ピンの番号 モード

ピンの番号にはGPIOのピン番号を入れます。 モードにはout(出力)かin(入力)を設定します。

出力

gpio -g write ピンの番号 出力値

ピンの番号にはGPIOのピン番号を入力します。 出力値には1(on)か0(オフ)を設定します。

入力

gpio -g read ピンの番号

ピンの番号にはGPIOのピン番号を入力します。 実行すると入力結果を得られます。

MacでRaspberry PiのimgをSDカードに書き込み

Raspberry PiのOSをSDカードに準備する手順になります。

imgのダウンロード&展開

Raspberry Pi用のOSは以下のURLからダウンロードします。 www.raspberrypi.org GUIがいらなければ「RASPBIAN JESSIE LITE」をダウンロードすると容量も少なくて良いです。 zipでダウンロードできるので展開しておきます。

ターミナル起動

アプリケーションフォルダーからターミナルアプリケーションを起動します。

SDカードチェック&アンマウント

Macで刺さっているSDカードをチェックするには、dfコマンドを使います。

df

私のMacBookProでは/dev/disk2s1となっていました。 SDカードをアンマウントします。

sudo diskutil unmount /dev/disk2s1

SDカードの部分(/dev/disk2s1)にはチェックしたSDカードを指定します。 エンター押下後、パスワードが聞かれると思いますが、Macにログインするパスワードを入力します。

img書き込み

ダウンロードしたimg書き込みます。 imgファイルを動かしていない場合、ホームディレクトリー下のDownloadsに保存されているかと思います。

cd ~/Downloads
sudo dd bs=1m if=2016-09-23-raspbian-jessie-lite.img of=/dev/rdisk2

ifの後の部分(2016-09-23-raspbian-jessie-lite.img)がダウンロードしたimgファイル名になります。 ofの後の部分(/dev/rdisk2)はimg書き込み先のSDカードになります。 SDカードはSDカードをチェックした際には後ろにs1などが付与されているかと思いますが、それを除いて指定します。 私の場合はdisk2s1だったため、disk2と指定します。

書き込み中のプログレスバーなどが表示されないので、本当に実行されているのかわからず不安になりますが、 数分で完了するかと思います。完了すると以下のように書き込んだデータのバイト数が表示されます。

1325+0 records in
1325+0 records out
1389363200 bytes transferred in 122.966027 secs (11298757 bytes/sec)

以上で完了です。ターミナルアプリはexitで終了します。

同じ手順でLinuxでも可能だと思います。

LTEフラットからスーパーデジラに変えるといくらになるのか?

毎月20日あたりからスマホの通信速度制限が気になりだすpictzzzです。

普段からたくさんゲームしたり動画を見たりというわけではないのですが、たまにKindleで漫画を一気に読んだり、大量のWeb検索をやったりして、データ通信容量をまとめて使ってしまう感じです。

そんなこんなでやりくりしている時にこちらのスーパーデジラが発表されました。

www.au.kddi.com

 

20GBと30GBの大容量データ通信プランです。

そこでLTEフラットからスーパーデジラ(20GB)に変更した場合、どれくらい月額料金が変わるのか調べてみました。

 

  

現在のデータ通信

f:id:pictzzz:20161123210714p:plain

 

10月は7.48GBでした。LTEフラットは7GBで制限なので、0.5GB〜1GBオーバーしてしまう感じです。

 

現在の月額料金

 f:id:pictzzz:20161123225228p:plain

f:id:pictzzz:20161123225231p:plain

 

¥5,187 - ¥400(通話料) = ¥4,787が基本の月額料金となってます。

以下はオプションによるものです。

 

もし通信速度制限に引っかからないようにするためにデータチャージをした場合、1GB足りないので、+¥1,000円となります。

www.au.kddi.com

 

スーパーデジラ

スーパーデジラは以下のように通話し放題プランの契約が必須で、最低でもスーパーカケホの契約が必要となります。

www.au.kddi.com

 

LTEフラットからスーパーデジラに変更するにあたり、同時に変更が必要なものとしては以下があります。括弧は月額料金で誰でも割を適用した場合です。

  • LTEプラン(¥1,008) → スーパーカケホ(¥1,836) or カケホ(¥2,916)
  • テザリングオプション(¥500) → テザリングオプション(¥1000)

以上をまとめると、月額料金は+¥1,32となります。

+¥1,836 - ¥1,008 + ¥1,000 - ¥500 = +¥1,328

ただし、テザリングオプションは2017年4月までは無料となるので、それまでは+¥828となります。

 

 そもそもテザリングを使わない場合は、+¥828です。

 

適用されている割引については、プラン変更で以下のようになるようです。

「電話カケ放題プラン」等へのご加入による割引サービス、キャンペーンの適用について

 

私に関係する部分でいうと以下が対象です。

  • 基本使用料割引(学割のことです)
  • 毎月割
  • auスマートバリュー

これらは全て継続されるようです。

 

まとめ

月額料金+¥1,328で20GBまで使えるようになるので、ハラハラしながら使うよりいいかなと個人的には思います。

料金設定の仕組みが複雑すぎて心折れそうになりますが、おそらく合っているのではないかと。来週あたりにプラン変更しに行って確認してみます。