Help us understand the problem. What is going on with this article?

Raspberry Pi の基本

More than 1 year has passed since last update.

はじめに

久しぶりにRaspberry Piをインストールしたので、改めてセットアップの手順やRaspberry Piの基本的なことについてまとめました。

※本記事はRaspberry Pi 3 Model Bを対象としています。

最近のRaspberry Pi

2年前はイギリス製(RSコンポーネンツ)と中国製(element14)のみでしたが、現在は日本製のRaspberry Pi(RSコンポーネンツ)が主流のようです。ちなみに日本製のRaspberry Piは愛知県稲沢市のソニーの工場で作られています。

※Raspberry Piの産地における違いは、ブランドや中国製(element14)の場合、GPIOのヘッダピンが金色で少し価格が安いのが特徴だと思います。

写真 2018-02-23 22 46 18.jpg

Raspberry Piに必要な周辺機器

Raspberry Piの動作に必要な周辺機器は以下になります。なお、microSDカードはclas10以上で16GB以上がお勧めです。

参考(SDメモリカードの違い)

ハードウェア

  • Raspberry Pi
  • microSDカード
  • カードリーダー
  • microUSBケーブル(Aタイプ、micro-B)
  • ACアダプタ ※Raspberry Pi 3 Model Bの場合は、2.5A推奨
  • キーボード(USB)
  • マウス(USB)
  • HDMIケーブル
  • Raspberry Piのケース
  • ディスプレイまたはテレビ(HDMI)

ソフトウェア

OSインストール

Raspberry PiにOSをインストールする場合は、「NOOBS」と「イメージ」による2種類の方法があります。
本記事ではmacを使用して「Raspbian」の「イメージ」をインストールする手順を記載します。
なお、初めてインストールする方は「NOOBS」で行った方が安全です。

環境:mac + Raspberry Pi 3 Model B + NOOBS

SDカードフォーマット

SDカードのフォーマット手順について記載します。

  1. SDメモリカードフォーマッターを起動する。
    スクリーンショット 2018-02-23 00.50.29.png

  2. フォーマットオプションは「上書きフォーマット」を選択する。
    スクリーンショット 2018-02-12 09.04.48.png

  3. 「オプション」をクリックし論理アドレス調整を「する」を選択してOKをクリックする。
    スクリーンショット 2018-02-12 09.06.41.png

  4. フォーマットをクリックする。フォーマットが正常に終了すると、正常に終了しましたのメッセージが出力される。
    スクリーンショット 2018-02-12 09.42.33.png

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

イメージファイルの書き込み手順について記載します。

  1. ターミナルを起動して「diskutil」コマンドを実行しSDカードの位置を特定する。※本記事の例では0番の右に表示されている「IDENTIFER」のディスク名をさす。
    スクリーンショット 2018-02-12 09.45.58.png

  2. 「diskutil」コマンドを実行してアンマウントする。
    スクリーンショット 2018-02-12 09.48.06.png

  3. 「dd」コマンドを実行してイメージファイルを書き込む。(※)このとき「of=」で指定する出力先に注意する
    スクリーンショット 2018-02-12 13.32.02.png

  4. 書き込み終了後SDカードをRaspberry Piに入れて電源を投入する。正常に起動するとデスクトップ画面が表示される。
    スクリーンショット 2018-02-22 21.48.52.png
    ※画面が正常に映らない場合はHDMIで接続した後にRaspberry Piを起動しているか確認してみてください。→Raspberry Pi起動時にディスプレイを認識しているため、Raspberry Piの起動後にHDMIを接続しても認識されません。

NOOBS2.0

NOOBSはRaspbianのインストーラのことをさしますが、2016年9月にリリースされた「NOOBS2.0」よりいくつか変更されました。主な変更点を以下に記載します。なお、以前のリリースとバージョンの変更リストについては、githubをご覧ください。

  • 日本語フォント
    Noobs 2.0では、日本語が表示できるフォントがあらかじめ導入されています。よって、日本語フォントのインストールは基本的には不要です。

  • デスクトップ環境は「LXDE」から「PIXEL」に変わりました。そのため、デスクトップ関連のデザインが大幅に変更されています。

  • SSH無効
    最新版RaspbianではSSHの自動起動設定は無効になっています。

  • VNC
    最新版Raspbianでは正統なVNCであるRealVNCが最初からインストールされていますが、派生品であるTigerVNCがお勧めです。

初期設定

Raspberry Piの操作に最低限必要と思われる初期設定について以下に記載します。

  • piユーザ及びrootのパスワード設定
  • ロケール、タイムゾーン、キーボード配列の設定
  • 無線LANアクセスポイントの設定、固定IPアドレスの設定
  • パッケージ情報の取得
    $ sudo apt-get update
  • 全てのパッケージのアップデート
    $ sudo apt-get upgrade
  • vimのインストール
    $ sudo apt-get install vim
  • SSHの自動起動有効
    $ sudo systemctl enable ssh
  • SSHの自動起確認
    $ systemctl list-unit-files --type=service | grep ssh
  • VNCサーバーのインストール
    $ sudo apt-get install tightvncserver
  • VNCサーバーの起動。始めて起動すると、パスワードの入力が求められるのでパスワードを入力する。
    $ tightvncserver :1 -geometry 1280x800 -depth 24
  • VNCサーバーを自動起動したい場合は、以下のファイルを配備して実行権限を付与する。

/etc/init.d/tightvnc

#! /bin/bash

### BEGIN INIT INFO
# Provides: tightvnc
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

# /etc/init.d/tightvnc

USER=pi
HOME=/home/pi

DISPNO=1       # Display No
WIDTH=1280     # Display geometry widht
HEIGHT=800     # Display geometry height
DEPTH=24       # Use color depth

OPTIONS=":${DISPNO} -geometry ${WIDTH}x${HEIGHT} -depth ${DEPTH}"

export USER HOME

case "$1" in
    start)
        echo "Starting TightVNC Server"
        #Insert your favoured settings for a TightVNC session
        su $USER -c "/usr/bin/tightvncserver ${OPTIONS}"
        ;;

    stop)
        echo "Stopping VNC Server"
        su $USER -c "/usr/bin/tightvncserver -kill :$DISPNO"
        ;;

    *)
        echo "Usage: /etc/init.d/tightvnc {start|stop}"
        exit 1
        ;;
esac

exit 0
  • VNCサーバーの自動起動有効   
    $ sudo update-rc.d tightvnc defaults

Raspberry Piの設定ファイル

Raspberry Piの起動に係わる設定ファイルは「/boot/config.txt」になります。ディスプレイの設定などで表示解像度や画面解像度等の設定を行うことができます。

例えば、画面周囲の黒い外枠で実際の画面より小さく表示される場合は、「#disable_overscan=1」のコメントをとれば枠を広げることができます。

/boot/config.txt

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

GPIOとI2C

Raspberry Piででセンサなどの周辺機器を扱いたい場合はGPIO端子を利用します。またI2Cの端子としても利用できます。

(※)Raspberry PiではGPIOとI2Cは同じ端子となっていているため、混合しやすいですが、GPIOとI2Cはそれぞれ別の規格になります。

PythonでGPIOを使用

PythonでGPIOを使用する場合は、GPIOのライブラリをインポートします。

# GPIOライブライのインポート
import RPi.GPIO as GPIO
# GPIOの初期化
GPIO.cleanup()
# Broadcomチップに準拠する場合
GPIO.setmode(GPIO.BCM)
# ボードの端子番号を利用
GPIO.setmode(GPIO.BOARD)

I2Cの設定

Raspberry Pi 3 Model Bかつ、最新のRaspbianを使用する場合、I2Cについては必要なパッケージは最初から導入されているので「Raspberry Piの設定」で「インターフェイス」タブの「I2C」を有効にすることでI2Cを使用することができます。

Raspberry Piのコマンド

  • GPIOのバージョンを出力
    $ gpio -v

  • GPIOの情報を出力
    $ gpio readall

 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
  • I2Cデバイスのアドレスを確認 ※引数はI2Cデバイスのチャンネル番号を指定
    $ sudo i2cdetect 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --  

回路図

回路図作成はFritzingがお勧めです。フリーソフトウェアで、グラフィカルにブレッドボードや回路図の作成ができます。また、回路図で使用できるパーツの自作も可能です。

スクリーンショット 2018-02-22 22.00.28.png

参考

  • NOOBSのソースコードはgithubで公開されています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした