本書は、全世界で多くのユーザーの支持を集めているマイコンボード「Raspberry Pi」を使いこなすためのレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本を紹介した上で、実際の作品製作に必要になる、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイなどの使い方へと解説を進めていきます。247本収録された「レシピ」には、すぐに使えるサンプルコードや回路図を豊富に盛り込みました。さらに、コンピュータビジョンによる顔検出や動き検出、センサーとインターネットを組み合わせたIoTの例、Arduinoとの連携についても詳しく解説しています。
Raspberry Piクックブック 第2版
Simon Monk 著、水原 文 訳
![[cover photo]](https://www.oreilly.co.jp/books/images/picture_large978-4-87311-811-6.jpeg)
- TOPICS
- クックブック , Programming , Make/Electronics/DIY , Linux , Python
- 発行年月日
- 2017年08月
- PRINT LENGTH
- 448
- ISBN
- 978-4-87311-811-6
- 原書
- Raspberry Pi Cookbook 2nd Edition
- FORMAT
正誤表
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
第1刷正誤表
※2018年6月更新。2刷で修正済みです。
■P.248 図11-12
図の配線に間違いがあります。ULN2803の9番ピンにつながっている線が、GND(GPIOコネクタのもう1個下)につながっていないと、この回路は動きません。
■P.2 *1.訳注に文章追加
また2018年3月14日(Piの日)にRaspberry Pi 3 Model B+が発表され、日本国内でも6月ごろから購入できるようになった。Raspberry Pi 3 Model Bから大きな変更はないが、CPUと有線/無線LANが高速化されている。■P.187 *9.訳注
「計量化」→「軽量化」第2刷正誤表
※2019年8月更新
■P.108
レシピ5.8:算術計算 解決【誤】+、?、*、そして/演算子を使う。
【正】+、-、*、そして/演算子を使う。
■P.108
レシピ5.8:算術計算 解説【誤】最もよく使われる算術演算子は+、?、*、そして/で、
【正】最もよく使われる算術演算子は+、-、*、そして/で、
■P.425
索引【誤】ビデオのキャプチャ 025
【正】ビデオのキャプチャ 020
目次
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のピン配置 索引