PICと楽しむ Raspberry Pi活用ガイドブック

書籍の概要

この本の概要

その手軽さから電子工作愛好者に多用されているPICマイコンは,センサやモータなどのきめ細かな制御や,高速なフィードバック制御なども得意です。その反面,ネットワークに接続したり,動画を扱ったりしようとすると壁に突き当たります。
しかしRaspberry Piの力を借りれば,動画や音声,インターネットへの接続が圧倒的に楽になります。本書では,8ビットのPICマイコンにRaspberry Piを接続して,高機能部品として使うためのノウハウをとことん解説します。汎用入出力GPIOの使い方,おしゃべり時計やリモコンカーなどの制作例,最低限必要なLinux・Pythonの知識まで収録しています。

こんな方におすすめ

  • 電子工作で動画や音声,Wi-fiを扱ってみたい方
  • ラズパイでモータやセンサをリアルタイム制御したい方

著者の一言

~本書 はじめに より~

筆者は子供のころに電子工作を趣味として始めました。その「電子」に関わることを大学で深く学び,そのまま仕事も同じように電子に関わることとなりました。

その間,電子工作も趣味としてずっと継続していましたが,半導体ICの出現やマイクロコンピュータの出現で,趣味としてできることが一気に拡がったことを経験し感動しました。

今回,「Raspberry Pi」というワンボードコンピュータを使いましたが,むかし経験したことと同じように,できることの幅が格段に拡がったことを感じました。

Raspberry Piはもともとコンピュータですから中身は複雑で難解です。しかし,これをブラックボックスとして中身は見ず,あくまでも高機能な電子部品として使うと意外と簡単に使えます。とくにRaspberry Pi3Bになってよりブラックボックス化して使いやすくなりましたから,どなたでも使えるようになったと思います。

筆者はPICマイコンを長らく使っていますが,今回は,このRaspberry Pi3BをPICマイコン用の高機能電子部品として使うという発想でいくつかの使い方を紹介したいと思います。PICマイコンで電子工作をする際,壁となっていた,動画や音声,グラフ作成,インターネット接続などなど,一気に壁を越えることができました。

Raspberry Piはコンピュータですからブラックボックスといっても何らかのプログラムが必要です。しかし,既にほとんどの機能がプログラムとして公開されていて誰でも自由に使えるようになっています。使うための設定などもほんの数行記述すれば済むようになっています。

本書では,できるだけ簡単に使うように既存のアプリケーションプログラムを最大活用し,それを使うために必要な設定プログラムにも,理解しやすい「Python」というプログラム言語を使いました。どの作品もA4で1ページ程度のもので,分かりやすいですから容易に理解できると思います。

この趣味としてできることの幅が拡がるという感動を,ぜひ皆さんにも経験して欲しいと思います。

本書工作例のキットや組立済み製品について

本書に掲載したすべての工作例のキットや組立済み製品は,別途入手可能です。
詳細については(株)ビット・トレード・ワンの特設サイト http://bit-trade-one.co.jp/product/picraspi/をご覧ください。

本書のサンプル

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

目次

第1章 電子工作の高機能化

1-0 リアルタイム制御と高機能性の両立

1-1 Raspberry Piとは

1-2 Raspberry Piで何ができるか

1-3 ラズパイを高機能部品として使う

第2章 ラズパイの準備

2-1 ハードウェアとソフトウェアの準備

  • 2-1-1 ハードウェアの準備
  • 2-1-2 必須ソフトウェアの準備

2-2 OSのインストール

  • 2-2-1 Rasbianのインストール
  • 2-2-2 Wi-Fi の接続

2-3 OSインストール後の追加作業

  • 2-3-1 OSの更新作業
  • 2-3-2 日本語化の作業
  • 2-3-3 リモートデスクトップ化

2-4 必須のシェルコマンドと使い方

  • 2-4-1 ターミナルの起動とプロンプト
  • 2-4-2 ディレクトリを扱うコマンド
  • 2-4-3 システム制御コマンド
  • 2-4-4 アプリケーションインストール関連コマンド

コラム コマンド入力の便利技

第3章 汎用テストボードの製作

3-1 汎用テストボードの概要

3-2 汎用テストボードのハードウェアの製作

  • 3-2-1 液晶表示器の使い方
  • 3-2-2 回路設計と組み立て

3-3 汎用テストボードのプログラムの製作

  • 3-3-1 全体の構成
  • 3-3-2 MCCによるプログラム自動生成
  • 3-3-3 液晶表示器ライブラリの使い方
  • 3-3-4 プログラム詳細
  • 3-3-5 動作確認

コラム MPLAB Code Configurator(MCC)とは

第4章 ラズパイのGPIOの使い方

4-1 ラズパイのGPIOの使い方の種類

4-2 RPi.GPIOモジュールの使い方

  • 4-2-1 初期設定と使い方
  • 4-2-2 実際の使用例

4-3 Wiring Piライブラリの使い方

  • 4-3-1 WiringPi の入手とインストール
  • 4-3-2 WiringPi の使い方
  • 4-3-3 WiringPi を使ったC言語プログラム例
  • 4-3-4 GPIOコマンドユーティリティ

4-4 WebIOPiアプリケーションの使い方

  • 4-4-1 WebIOPiの概要
  • 4-4-2 WebIOPiのインストール
  • 4-4-3 WebIOPiの基本の使い方
  • 4-4-4 WebIOPiからGPIOを自由に使う
  • 4-4-5 JavaScript ライブラリ
  • 4-4-6 基本のボタンの例題
  • 4-4-7 マクロ関数呼び出し付きボタンの例題
  • 4-4-8 スライダを使った例題

4-5 ラズパイのシリアル通信の使い方

  • 4-5-1 ラズパイのシリアル通信を有効化する
  • 4-5-2 PySerial モジュールの使い方
  • 4-5-3 USBでシリアル通信をする方法

コラム USBメモリの使い方

第5章 おしゃべり時計の製作

5-1 おしゃべり時計の概要

  • 5-1-1 全体構成
  • 5-1-2 インターフェース

5-2 ラズパイのプログラム製作

  • 5-2-1 全体構成
  • 5-2-2 テキスト読み上げアプリ「AquesTalkPi」の使い方
  • 5-2-3 おしゃべり時計のPythonスクリプト製作
  • 5-2-4 自動起動

5-3 時計制御ボードのハードウェアの製作

  • 5-3-1 全体構成
  • 5-3-2 ドップラセンサの使い方
  • 5-3-3 7セグメントLEDの使い方
  • 5-3-4 回路設計と組み立て
  • 5-3-5 パネルの組み立て

5-4 時計制御ボードのプログラムの製作

  • 5-4-1 プログラム全体構成と全体フロー
  • 5-4-2 プログラム詳細

5-5 動作確認と調整方法

5-6 グレードアップ天気予報を追加する

コラム Pythonのsubprocessの使い方

第6章 赤外線リモコン付きインターネットラジオの製作

6-1 インターネットラジオの概要

  • 6-1-1 全体構成と機能概要

6-2 ラズパイのプログラム製作

  • 6-2-1 MPDとMPC
  • 6-2-2 MPDとMPCの使い方
  • 6-2-3 リモコン対応のPythonプログラム製作
  • 6-2-4 自動起動させる

6-3 ラジオ局の登録方法

  • 6-3-1 局リストの作り方

6-4 ラジオ制御ボードのハードウェアの製作

  • 6-4-1 ラジオ制御ボードの全体構成
  • 6-4-2 液晶表示器の使い方
  • 6-4-3 赤外線通信の使い方
  • 6-4-4 回路設計と組み立て
  • 6-4-5 パネルの組み立て

6-5 ラジオ制御ボードのプログラムの製作

  • 6-5-1 プログラム全体構成とフロー
  • 6-5-2 液晶表示器の使い方
  • 6-5-3 プログラム詳細

6-6 動作確認

第7章 データロガーの製作

7-1 データロガーの概要

  • 7-1-1 データロガーの概要と機能仕様

7-2 ラズパイのプログラム製作

  • 7-2-1 プログラム全体構成
  • 7-2-2 matplotlib とは
  • 7-2-3 基本的なグラフの描画方法
  • 7-2-4 時間軸でグラフを作成する方法
  • 7-2-5 データロガーのグラフを作成する
  • 7-2-6 一定間隔でデータを収集する

7-3 超簡単ウェブサーバ構築 SimpleHTTPServer

  • 7-3-1 SimpleHTTPServerの使い方
  • 7-3-2 データロガーシステムとして構成する

7-4 データ収集ボードのハードウェアの製作

  • 7-4-1 全体構成
  • 7-4-2 デルタシグマA/Dコンバータの使い方
  • 7-4-3 複合センサ BME280の使い方
  • 7-4-4 回路図作成と組み立て
  • 7-4-5 パネルの組み立て

7-5 データ収集ボードのプログラムの製作

  • 7-5-1 プログラム全体構成
  • 7-5-2 プログラム詳細

7-6 動作確認とデータ収集例

  • 7-6-1 基本動作の確認
  • 7-6-2 ログデータ例

7-7 グレードアップ

  • 7-7-1 外部ネットワークからアクセスできるようにする
  • 7-7-2 シャットダウン機能の追加

コラム crontabコマンドの使い方

第8章 リモコンカメラの製作

8-1 リモコンカメラの概要

  • 8-1-1 システム構成

8-2 ラズパイのプログラムの製作

  • 8-2-1 プログラム全体構成
  • 8-2-2 カメラの使い方
  • 8-2-3 ストリーミングアプリの使い方
  • 8-2-4 リモコンカメラのページの製作

8-3 サーボ制御ボードのハードウェアの製作

  • 8-3-1 全体構成
  • 8-3-2 RCサーボの使い方
  • 8-3-3 回路設計と組み立て

8-4 サーボ制御ボードのプログラムの製作

  • 8-4-1 プログラムの全体構成とフロー
  • 8-4-2 MCCを使ったプログラム開発手順
  • 8-4-3 プログラム詳細

8-5 動作確認

8-6 グレードアップ

  • 8-6-1 外部ネットワークからアクセスできるようにする
  • 8-6-2 シャットダウン機能の追加

第9章 リモコンカーの製作

9-1 リモコンカーの概要と全体構成

  • 9-1-1 リモコンカーの全体構成と機能概要

9-2 ラズパイのプログラム製作

  • 9-2-1 プログラム全体構成
  • 9-2-2 リモコンカーの操縦用画面の製作

9-3 リモコンカーのハードウェアの製作

  • 9-3-1 リモコンカーの車体の製作
  • 9-3-2 モータ制御ボードの製作
  • 9-3-3 DCモータの使い方
  • 9-3-4 回路設計と組み立て

9-4 モータ制御ボードのプログラムの製作

  • 9-4-1 プログラム全体構成
  • 9-4-2 プログラムの詳細

9-5 動作確認

付録A Linux超入門

A-1 Linuxとは

  • A-1-1 Linuxとは何者?
  • A-1-2 ラズパイ用Linux

A-2 Linuxの全体構成と機能

  • A-2-1 Linux の全体構成
  • A-2-2 Linux の起動時の動作
  • A-2-3 カーネルの機能

A-3 Linuxのディレクトリ

  • A-3-1 動かし方の種類
  • A-3-2 Linux のディレクトリ構造とパスの概念
  • A-3-3 Linux の管理者権限
  • A-3-4 ディレクトリの詳細

A-4 シェルスクリプト

付録B Python超入門

B-1 Pythonに関する常識

B-2 Pythonの基本文法

B-3 データ構造 リストとディクショナリ

B-4 制御文の使い方

付録C MPLAB X IDEの使い方

  • C-1-1 MPLAB X IDEのインストール
  • C-1-2 MPLAB X IDEの起動
  • C-1-3 プロジェクトの作成
  • C-1-4 コンパイルと書き込み

著者プロフィール

後閑哲也(ごかんてつや)

1947年 愛知県名古屋市で生まれる
1971年 東北大学 工学部 応用物理学科卒業
1996年 ホームページ「電子工作の実験室」を開設
子供のころからの電子工作の趣味の世界と,仕事としているコンピュータの世界を融合した遊びの世界を紹介

著書「PIC活用ガイドブック」 「電子工作の素」
「C言語によるPICプログラミング入門」「電子工作入門以前」他多数