Raspberry Piクックブック 第2版

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

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

本書は、全世界で多くのユーザーの支持を集めているマイコンボード「Raspberry Pi」を使いこなすためのレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本を紹介した上で、実際の作品製作に必要になる、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイなどの使い方へと解説を進めていきます。247本収録された「レシピ」には、すぐに使えるサンプルコードや回路図を豊富に盛り込みました。さらに、コンピュータビジョンによる顔検出や動き検出、センサーとインターネットを組み合わせたIoTの例、Arduinoとの連携についても詳しく解説しています。

関連書籍

Arduinoをはじめよう 第3版
Prototyping Lab 第2版
Raspberry Piをはじめよう

1章 設定と管理
    レシピ1.1 Raspberry Piのモデルを選択する
    レシピ1.2 Raspberry Piをケースに入れる
    レシピ1.3 電源を選択する
    レシピ1.4 オペレーティングシステムのディストリビューションを選択する
    レシピ1.5 NOOBSを使ってマイクロSDカードを作成する
    レシピ1.6 システムを接続する
    レシピ1.7 DVIやVGAのモニタを接続する
    レシピ1.8 コンポジットビデオのモニタやテレビを使う
    レシピ1.9 モニタ上の画面サイズを調整する
    レシピ1.10 パフォーマンスを最大化する
    レシピ1.11 パスワードを変更する
    レシピ1.12 Raspberry Piが起動後に自動的にデスクトップを表示するように設定する
    レシピ1.13 Raspberry Piをシャットダウンする
    レシピ1.14 Raspberry Piカメラモジュールをインストールする
    レシピ1.15 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の画面をMac上で共有する
    レシピ2.12 Raspberry Piをネットワーク接続ストレージとして使う
    レシピ2.13 ネットワークプリンタに印刷する

3章 オペレーティングシステム
    レシピ3.1 GUIでファイルを操作する
    レシピ3.2 ターミナルセッションを開始する
    レシピ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 apt-getを使ってソフトウェアをインストールする
    レシピ3.17 apt-getを使ってインストールされたソフトウェアを削除する
    レシピ3.18 pipを使ってPythonパッケージをインストールする
    レシピ3.19 コマンドラインからファイルを取得する
    レシピ3.20 Gitを使ってソースコードを取得する
    レシピ3.21 起動の際、プログラムやスクリプトを自動的に実行する
    レシピ3.22 プログラムやスクリプトをサービスとして自動的に実行する
    レシピ3.23 プログラムやスクリプトを、自動的に一定の周期で実行する
    レシピ3.24 ファイルを見つける
    レシピ3.25 コマンドラインのヒストリー(履歴)を使う
    レシピ3.26 プロセッサの使用状況を監視する
    レシピ3.27 ファイルアーカイブを取り扱う
    レシピ3.28 接続されたUSBデバイスをリストする
    レシピ3.29 コマンドラインの出力をファイルへリダイレクトする
    レシピ3.30 ファイルを連結する
    レシピ3.31 パイプを使う
    レシピ3.32 ターミナルへの出力を隠す
    レシピ3.33 プログラムをバックグラウンドで実行する
    レシピ3.34 コマンドのエイリアスを作成する
    レシピ3.35 日付と時間を設定する
    レシピ3.36 SDカードの残り容量を確認する

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

5章 Pythonの基本
    レシピ5.1 Python 2とPython 3のどちらを使うか
    レシピ5.2 IDLEを使って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 同時に複数の処理を行う
    レシピ7.19 Pythonで何もしない
    レシピ7.20 Minecraft Pi EditionでPythonを使う

8章 コンピュータビジョン
    レシピ8.1 SimpleCVをインストールする
    レシピ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 LiPo電池からRaspberry Piの電源を供給する
    レシピ9.16 Sense HATを使う
    レシピ9.17 Explorer HAT Proを使う
    レシピ9.18 RaspiRobotボードを使う
    レシピ9.19 Pi Plateプロトタイピングボードを使う
    レシピ9.20 HAT(Hardware At Top)を自作する
    レシピ9.21 Pi Compute Module
    レシピ9.22 Pi Zero
    レシピ9.23 シリアルポートを開放する

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

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

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 リアルタイムクロックモジュールを使う

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

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

15章 モノのインターネット(IoT)
    レシピ15.1 ウェブインタフェースからGPIO出力を制御する
    レシピ15.2 センサーの値をウェブページに表示する
    レシピ15.3 IFTTTを使って電子メールなどの通知を送信する
    レシピ15.4 ThingSpeakを使ってツイートする
    レシピ15.5 CheerLights
    レシピ15.6 センサーデータをThingSpeakに送信する
    レシピ15.7 DweetとIFTTTを使ってツイートに応答する

16章 ArduinoとRaspberry Pi
    レシピ16.1 Raspberry PiからArduinoをプログラムする
    レシピ16.2 シリアルモニタを使ってArduinoと通信する
    レシピ16.3 PyFirmataを設定してRaspberry PiからArduinoを制御する
    レシピ16.4 Arduinoのデジタル出力をRaspberry Piから制御する
    レシピ16.5 TTLシリアルからPyFirmataを使う
    レシピ16.6 PyFirmataを使ってArduinoのデジタル入力を読み出す
    レシピ16.7 PyFirmataを使ってArduinoのアナログ入力を読み出す
    レシピ16.8 PyFirmataでアナログ出力(PWM)を使う
    レシピ16.9 PyFirmataを使ってサーボを制御する
    レシピ16.10 TTLシリアルでArduinoとカスタム通信を行う
    レシピ16.11 I2CでArduinoとカスタム通信を行う
    レシピ16.12 小型のArduinoをRaspberry Piに接続する
    レシピ16.13 aLaModeボードとRaspberry Piを使う
    レシピ16.14 Raspberry PiとaLaModeボードでArduinoシールドを使う

付録A パーツと機材

付録B Raspberry Piのピン配置

索引

Feedback

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