Raspberry Piクックブック 第3版

[cover photo]
オライリー・ジャパンで書籍を購入:
定価4,070円

Ebook Storeで電子版を購入:
価格3,256円

本書は、登場以来多くのユーザーの支持を集め続けているマイコンボード「Raspberry Pi」を使いこなすための267本のレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本から、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイ、コンピュータービジョン、Arduinoとの連携まで、幅広いニーズに応えます。最新の「Raspberry Pi 4」ならびに刷新されたRaspberry Pi OSに対応しており、新たにサウンドやホームオートメーションのレシピも加わりました。すぐに使えるサンプルコードや回路図を豊富に収録しており、作品製作に役立ちます。

関連書籍

Prototyping Lab 第2版
Raspberry Piで学ぶコンピュータアーキテクチャ
Raspberry Piをはじめよう 第3版

まえがき
この本の使い方
表記規則
サンプルコードの使用について
質問と意見
謝辞

1章 設定と管理
    レシピ1.1 Raspberry Piのモデルを選択する
    レシピ1.2 システムを接続する
    レシピ1.3 Raspberry Piをケースに入れる
    レシピ1.4 電源を選択する
    レシピ1.5 オペレーティングシステムを選択する
    レシピ1.6 Raspberry Pi Imagerを使ってマイクロSDカードを作成する
    レシピ1.7 非標準のオペレーティングシステムをインストールする
    レシピ1.8 本物のハードディスクやUSBフラッシュドライブから起動する
    レシピ1.9 DVIやVGAのモニターを接続する
    レシピ1.10 コンポジットビデオのモニターやテレビを使う
    レシピ1.11 モニター上の画面サイズを調整する
    レシピ1.12 パフォーマンスを最大化する
    レシピ1.13 パスワードを変更する
    レシピ1.14 Raspberry Piをシャットダウンする
    レシピ1.15 Raspberry Piカメラモジュールをインストールする
    レシピ1.16 Bluetoothを使う

2章 ネットワーク接続
    レシピ2.1 有線LANへ接続する
    レシピ2.2 IPアドレスを知る
    レシピ2.3 スタティックなIPアドレスを設定する
    レシピ2.4 Raspberry Pi のネットワーク名を設定する
    レシピ2.5 無線LAN接続を設定する
    レシピ2.6 コンソールケーブルで接続する
    レシピ2.7 SSHを使ってRaspberry Piを遠隔操作する
    レシピ2.8 VNCを使ってRaspberry Piを遠隔操作する
    レシピ2.9 RDPを使ってRaspberry Piを遠隔操作する
    レシピ2.10 Macネットワーク上でファイルを共有する
    レシピ2.11 Raspberry Piをネットワーク接続ストレージとして使う
    レシピ2.12 ネットワークプリンターに印刷する

3章 オペレーティングシステム
    レシピ3.1 GUIでファイルを操作する
    レシピ3.2 ファイルをUSBメモリーにコピーする
    レシピ3.3 ターミナルセッションを開始する
    レシピ3.4 ターミナルを使ってファイルシステム内を移動する
    レシピ3.5 ファイルやフォルダーをコピーする
    レシピ3.6 ファイルやフォルダーの名前を変更する
    レシピ3.7 ファイルを編集する
    レシピ3.8 ファイルの内容を閲覧する
    レシピ3.9 エディターを使わずにファイルを作成する
    レシピ3.10 ディレクトリーを作成する
    レシピ3.11 ファイルやディレクトリーを削除する
    レシピ3.12 スーパーユーザー権限でタスクを実行する
    レシピ3.13 ファイルのパーミッションを理解する
    レシピ3.14 ファイルのパーミッションを変更する
    レシピ3.15 ファイルの所有者を変更する
    レシピ3.16 画面をキャプチャーする
    レシピ3.17 apt-getを使ってソフトウェアをインストールする
    レシピ3.18 apt-getを使ってインストールされたソフトウェアを削除する
    レシピ3.19 pipを使ってPythonパッケージをインストールする
    レシピ3.20 コマンドラインからファイルを取得する
    レシピ3.21 Gitを使ってソースコードを取得する
    レシピ3.22 この本のコード例を取得する
    レシピ3.23 起動時にプログラムやスクリプトを自動的に実行する
    レシピ3.24 プログラムやスクリプトをサービスとして自動的に実行する
    レシピ3.25 プログラムやスクリプトを自動的に一定の周期で実行する
    レシピ3.26 ファイルを見つける
    レシピ3.27 コマンドラインのヒストリー(履歴)を使う
    レシピ3.28 プロセッサーの使用状況を監視する
    レシピ3.29 ファイルアーカイブを取り扱う
    レシピ3.30 接続されたUSBデバイスをリストする
    レシピ3.31 コマンドラインの出力をファイルへリダイレクトする
    レシピ3.32 ファイルを連結する
    レシピ3.33 パイプを使う
    レシピ3.34 ターミナルへの出力を隠す
    レシピ3.35 プログラムをバックグラウンドで実行する
    レシピ3.36 コマンドのエイリアスを作成する
    レシピ3.37 日付と時間を設定する
    レシピ3.38 SDカードの空き容量を確認する
    レシピ3.39 実行中のオペレーティングシステムのバージョンを知る
    レシピ3.40 Raspberry Pi OSを更新する

4章 ソフトウェア
    レシピ4.1 メディアセンターにする
    レシピ4.2 オフィスソフトウェアを使う
    レシピ4.3 ウェブカムサーバーにする
    レシピ4.4 ゲーム機のエミュレーターを動かす
    レシピ4.5 Minecraft Pi Editionを動かす
    レシピ4.6 Raspberry PiをFMトランスミッターにする
    レシピ4.7 ビットマップ画像を編集する
    レシピ4.8 ベクター画像を編集する
    レシピ4.9 インターネットラジオ

5章 Pythonの基本
    レシピ5.1 Python 2とPython 3のどちらを使うか
    レシピ5.2 Muを使ってPythonプログラムを書く
    レシピ5.3 Pythonコンソールを使う
    レシピ5.4 Pythonプログラムをターミナルから実行する
    レシピ5.5 名前に値を割り当てる(変数)
    レシピ5.6 出力を表示する
    レシピ5.7 ユーザーからの入力を読み込む
    レシピ5.8 算術演算
    レシピ5.9 文字列を作成する
    レシピ5.10 文字列を連結(結合)する
    レシピ5.11 数値を文字列に変換する
    レシピ5.12 文字列を数値に変換する
    レシピ5.13 文字列の長さを求める
    レシピ5.14 文字列を検索し、その位置を求める
    レシピ5.15 文字列の一部を抽出する
    レシピ5.16 文字列に含まれる、ある文字列を別の文字列に置換する
    レシピ5.17 文字列を大文字または小文字に変換する
    レシピ5.18 条件付きでコマンドを実行する
    レシピ5.19 値を比較する
    レシピ5.20 論理演算子
    レシピ5.21 決まった回数だけ命令を繰り返す
    レシピ5.22 ある条件が満たされるまで命令を繰り返す
    レシピ5.23 ループから脱出する
    レシピ5.24 Pythonで関数を定義する

6章 Pythonのリストとディクショナリー
    レシピ6.1 リストを作成する
    レシピ6.2 リストの要素へアクセスする
    レシピ6.3 リストの長さを求める
    レシピ6.4 リストに要素を追加する
    レシピ6.5 リストから要素を削除する
    レシピ6.6 文字列を解析してリストを作成する
    レシピ6.7 リスト上で反復処理を行う
    レシピ6.8 リストを数え上げる
    レシピ6.9 リストをソートする
    レシピ6.10 リストを分割する
    レシピ6.11 リストへ関数を適用する
    レシピ6.12 ディクショナリーを作成する
    レシピ6.13 ディクショナリーへアクセスする
    レシピ6.14 ディクショナリーから要素を削除する
    レシピ6.15 ディクショナリー上で反復処理を行う

7章 Pythonの高度な機能
    レシピ7.1 数値をフォーマットする
    レシピ7.2 日付と時間をフォーマットする
    レシピ7.3 2つ以上の値を返す
    レシピ7.4 クラスを定義する
    レシピ7.5 メソッドを定義する
    レシピ7.6 継承
    レシピ7.7 ファイルへの書き込み
    レシピ7.8 ファイルの読み出し
    レシピ7.9 ピクリング
    レシピ7.10 例外の取り扱い
    レシピ7.11 モジュールを使う
    レシピ7.12 乱数
    レシピ7.13 PythonからHTTPリクエストを送る
    レシピ7.14 コマンドラインから引数を渡してPythonプログラムを実行する
    レシピ7.15 PythonからLinuxコマンドを実行する
    レシピ7.16 Pythonから電子メールを送る
    レシピ7.17 Pythonでシンプルなウェブサーバーを作る
    レシピ7.18 Pythonで何もしない
    レシピ7.19 同時に複数の処理を行う
    レシピ7.20 Minecraft Pi EditionでPythonを使う
    レシピ7.21 JSONを構文解析する
    レシピ7.22 ユーザーインターフェイスを作成する
    レシピ7.23 正規表現を利用してテキスト中のパターンを検索する
    レシピ7.24 正規表現を利用してデータ入力を検証する
    レシピ7.25 正規表現を利用してウェブスクレイピングする

8章 コンピュータービジョン
    レシピ8.1 OpenCVをインストールする
    レシピ8.2 USBカメラをコンピュータービジョン用に設定する
    レシピ8.3 コンピュータービジョンにRaspberry Pi のカメラモジュールを使う
    レシピ8.4 コインを数える
    レシピ8.5 顔検出
    レシピ8.6 動き検出
    レシピ8.7 光学的文字認識(OCR)

9章 ハードウェアの基本
    レシピ9.1 GPIOコネクターのピン配置
    レシピ9.2 Raspberry PiのGPIOを安全に使う
    レシピ9.3 I2Cをセットアップする
    レシピ9.4 I2Cツールを使う
    レシピ9.5 SPIをセットアップする
    レシピ9.6 PySerialをインストールしてPythonからシリアルポートを使う
    レシピ9.7 Minicomをインストールしてシリアルポートをテストする
    レシピ9.8 ジャンパー線を使ってブレッドボードと接続する
    レシピ9.9 Pi Cobblerを使ってブレッドボードと接続する
    レシピ9.10 Raspberry Squidを使う
    レシピ9.11 Raspberry Squid Buttonを使う
    レシピ9.12 抵抗2本で5V信号を3.3Vに変換する
    レシピ9.13 レベル変換モジュールを使って5V信号を3.3Vに変換する
    レシピ9.14 電池からRaspberry Piの電源を供給する
    レシピ9.15 リチウムイオン電池からRaspberry Piの電源を供給する
    レシピ9.16 Sense HATを使う
    レシピ9.17 Explorer HAT Proを使う
    レシピ9.18 Pi Plateプロトタイピングボードを使う
    レシピ9.19 HATを自作する
    レシピ9.20 Pi ZeroとPi Zero W

10章 ハードウェアの制御
    レシピ10.1 LEDを接続する
    レシピ10.2 GPIOピンを安全な状態に保つ
    レシピ10.3 LEDの明るさを制御する
    レシピ10.4 トランジスターを使って大電力DCデバイスをスイッチする
    レシピ10.5 リレーを使って大電力デバイスをスイッチする
    レシピ10.6 高電圧ACデバイスを制御する
    レシピ10.7 AndroidとBluetoothを使ってハードウェアを制御する
    レシピ10.8 スイッチをオン・オフするユーザーインターフェイスを作る
    レシピ10.9 LEDやモーターの電力をPWMで制御するユーザーインターフェイスを作る
    レシピ10.10 RGB LEDの色を変化させる
    レシピ10.11 アナログメーターをディスプレイとして使う

11 章 モーター
    レシピ11.1 サーボモーターを制御する
    レシピ11.2 精密にサーボモーターを制御する
    レシピ11.3 精密に複数のサーボモーターを制御する
    レシピ11.4 DCモーターの速度を制御する
    レシピ11.5 DCモーターの回転方向を制御する
    レシピ11.6 ユニポーラーステッピングモーターを使う
    レシピ11.7 バイポーラーステッピングモーターを使う
    レシピ11.8 Stepper Motor HATを使ってバイポーラーステッピングモーターを駆動する

12章 デジタル入力
    レシピ12.1 押しボタンスイッチを接続する
    レシピ12.2 押しボタンスイッチで状態を切り替える
    レシピ12.3 2ポジションのトグルスイッチやスライドスイッチを使う
    レシピ12.4 3ポジションのトグルスイッチやスライドスイッチを使う
    レシピ12.5 ボタンを押したときのチャタリングを除去したい
    レシピ12.6 外部プルアップ抵抗を使う
    レシピ12.7 ロータリー(クワドラチャ)エンコーダーを使う
    レシピ12.8 キーパッド
    レシピ12.9 動きを検出する
    レシピ12.10 Raspberry PiにGPSを接続する
    レシピ12.11 押されたキーを横取りする
    レシピ12.12 マウスの動きを横取りする
    レシピ12.13 リアルタイムクロックモジュールを使う
    レシピ12.14 Raspberry Piにリセットボタンを追加する

13章 センサー
    レシピ13.1 抵抗性センサーを使う
    レシピ13.2 光を測定する
    レシピ13.3 サーミスターで温度を測定する
    レシピ13.4 メタンを検出する
    レシピ13.5 CO2 濃度を測定する
    レシピ13.6 電圧を測定する
    レシピ13.7 電圧を分圧して測定する
    レシピ13.8 抵抗性センサーとADCを使う
    レシピ13.9 ADCを使って温度を測定する
    レシピ13.10 Raspberry PiのCPU温度を測定する
    レシピ13.11 Sense HATを使って温度、湿度、気圧を測定する
    レシピ13.12 デジタルセンサーを使って温度を測定する
    レシピ13.13 MMA8452Qモジュールで加速度を測定する
    レシピ13.14 Sense HATで磁北を検出する
    レシピ13.15 Sense HATの慣性計測ユニットを使う
    レシピ13.16 リードスイッチで磁石を検出する
    レシピ13.17 Sense HATで磁石を検出する
    レシピ13.18 超音波を使って距離を測定する
    レシピ13.19 Time-of-Flightセンサーを使って距離を測定する
    レシピ13.20 静電式タッチセンサー
    レシピ13.21 RFIDリーダーでスマートカードを読み出す
    レシピ13.22 センサーの値を表示する
    レシピ13.23 USBフラッシュドライブにログを書き込む

14章 ディスプレイ
    レシピ14.1 4ケタのLEDディスプレイを使う
    レシピ14.2 I2C LEDマトリクスにメッセージを表示する
    レシピ14.3 Sense HATのLEDマトリクスディスプレイを使う
    レシピ14.4 アルファニューメリックLCD HATにメッセージを表示する
    レシピ14.5 OLEDグラフィックディスプレイを使う
    レシピ14.6 RGBテープLEDを使う
    レシピ14.7 Pimoroni Unicorn HATを使う
    レシピ14.8 ePaperディスプレイを使う

15章 サウンド
    レシピ15.1 スピーカーを接続する
    レシピ15.2 サウンドの出力先をコントロールする
    レシピ15.3 コマンドラインからサウンドを再生する
    レシピ15.4 Pythonからサウンドを再生する
    レシピ15.5 USBマイクロフォンを使う
    レシピ15.6 ブザーを鳴らす

16章 モノのインターネット(IoT)
    レシピ16.1 ウェブインターフェイスからGPIO出力を制御する
    レシピ16.2 センサーの値をウェブページに表示する
    レシピ16.3 Node-REDを使ってみる
    レシピ16.4 IFTTTを使って電子メールなどの通知を送信する
    レシピ16.5 ThingSpeakを使ってツイートする
    レシピ16.6 CheerLights
    レシピ16.7 センサーデータをThingSpeakに送信する
    レシピ16.8 DweetとIFTTTを使ってツイートに応答する

17章 ホームオートメーション
    レシピ17.1 Mosquittoを使ってRaspberry Piをメッセージブローカーに仕立てる
    レシピ17.2 Node-REDとMQTTサーバーを組み合わせて使う
    レシピ17.3 Sonoff WiFiスマートスイッチのファームウェアをMQTT用に書き換える
    レシピ17.4 Sonoff WiFiスマートスイッチを設定する
    レシピ17.5 SonoffウェブスイッチをMQTTと組み合わせて使う
    レシピ17.6 SonoffスイッチをNode-REDから使う
    レシピ17.7 Node-REDダッシュボード
    レシピ17.8 Node-REDでイベントをスケジュールする
    レシピ17.9 Wemos D1 からMQTTメッセージを発行する
    レシピ17.10 Wemos D1をNode-REDと組み合わせて使う

18章 ArduinoとRaspberry Pi
    レシピ18.1 Raspberry PiからArduinoをプログラムする
    レシピ18.2 シリアルモニターを使ってArduinoと通信する
    レシピ18.3 PyFirmataを設定してRaspberry PiからArduinoを制御する
    レシピ18.4 Rasberry PiからArduinoの デジタル出力を制御する
    レシピ18.5 PyFirmataをTTLシリアル経由で使う
    レシピ18.6 PyFirmataを使ってArduinoのデジタル入力を読み出す
    レシピ18.7 PyFirmataを使ってArduinoのアナログ入力を読み出す
    レシピ18.8 PyFirmataでアナログ出力(PWM)を使う
    レシピ18.9 PyFirmataを使ってサーボを制御する
    レシピ18.10 小型のArduinoをRaspberry Piと使う
    レシピ18.11 小型のWiFi機能付きArduino互換ボード(ESP8266)を使う

付録A パーツと器材
    パーツ
    プロトタイピング用の器材とキット
    抵抗とコンデンサー
    トランジスターとダイオード
    IC
    光エレクトロニクス
    モジュール
    その他

付録B Raspberry Piのピン配置
    Raspberry Pi 4/3/2モデルB、モデルB+、モデルA+、Zero
    Raspberry PiモデルBリビジョン2、モデルA
    Raspberry PiモデルBリビジョン1

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]