書籍概要

C言語ではじめる Raspberry Pi 徹底入門

著者
発売日
更新日

概要

国内の理工系教育現場におけるプログラミング導入教育では,現在でもC言語が多く採用されています。また,組込み系の開発現場でもC言語は現役です。本書は,そのような環境に身をおく人のための,Raspberry Piによる電子工作の解説書です。
OSやプログラム開発環境のセットアップからGPIO,カメラモジュールなど各種制御方法,さらに自走ロボットのアクチュエータ制御まで,電子工作に必要なポイントをやさしく説明しています。必要なパーツの型番も記載しているので,自作しながら読み進められます。

こんな方におすすめ

  • C言語で電子工作をしたい方
  • C言語によるRaspberry Piの制御方法を知りたい方

サンプル

samplesamplesamplesamplesample

目次

Chapter 1 Raspberry Piの概要

  • 1.1 Raspberry Pi誕生の背景
  • 1.2 Raspberry Piでできること
  • 1.3 Raspberry Piの製品群
  • 1.4 Raspberry Piの各部の名称
  • 1.5 拡張コネクタの信号
  • 1.6 GPIOの電気的仕様

Chapter 2 OSのセットアップ

  • 2.1 本章で準備するもの
  • 2.2 Raspbianとは
  • 2.3 Raspbianのダウンロード
  • 2.4 Raspbianのインストール
  • 2.5 シャットダウンの方法
  • 2.6 デスクトップ画面の構成
  • 2.7 ターミナルで使用するコマンド
  • 2.8 日本語入力システムのインストール
  • 2.9 Raspberry Piの設定メニュー
  • システム/インターフェイス/パフォーマンス/ローカライゼーション

Chapter 3 プログラムの開発環境

  • 3.1 本章で準備するもの
  • 3.2 ファイル保存用のフォルダ「MyApp」の作成
  • 3.3 Geanyの基本操作
  • 3.4 コンパイラの設定
  • 3.5 WiringPiとは
  • 3.6 数値のデータ型

Chapter 4 LEDへの信号の出力(GPIOの出力を使う)

  • 4.1 本章で準備するもの
  • 4.2 LEDとは
  • 4.3 LEDの点灯回路の設計
  • 4.4 ブレッドボードによる試作
  • 4.5 LEDを点滅させる
  • 4.6 4個のLEDを点灯させる

Chapter 5 タクタイルスイッチによる信号の入力(GPIOの入力を使う)

  • 5.1 本章で準備するもの
  • 5.2 タクタイルスイッチとは
  • 5.3 タクタイルスイッチでLEDを点灯させる
  • 5.4 GPIOの内部抵抗を使う
  • 5.5 オルタネート動作をさせる
  • 5.6 バウンシングとは
  • 5.7 割込みとは
  • 5.8 割込み処理をする

Chapter 6 PWM信号を使う

  • 6.1 本章で準備するもの
  • 6.2 PWMとは
  • 6.3 ソフトウェア方式のPWM
  • 6.4 LEDの明るさを変える
  • 6.5 ハードウェア方式のPWM
  • 6.6 圧電サウンダとは
  • 6.7 圧電サウンダを鳴らす

Chapter 7 I2Cバスを使う

  • 7.1 本章で準備するもの
  • 7.2 I2Cバスとは
  • 7.3 ラズパイのI2Cバス
  • 7.4 LCDとは
  • 7.5 LCD AQM1602の仕様と内部レジスタ
  • 7.6 LCDを制御する関数
  • 7.7 LCDに文字や数字を表示させる
  • 7.8 ライブラリファイルの作成
  • 7.9 センサで温度を測る

Chapter 8 SPIバスを使う

  • 8.1 本章で準備するもの
  • 8.2 SPIバスとは
  • 8.3 ラズパイのSPIバス
  • 8.4 D/Aコンバータとは
  • 8.5 DAC MCP4922の仕様
  • 8.6 DACから電圧を出力させる
  • 8.7 A/Dコンバータとは
  • 8.8 ADC MCP3208の仕様
  • 8.9 ADCを使用して電圧を測定する

Chapter 9 Piカメラで撮影する

  • 9.1 本章で準備するもの
  • 9.2 イメージセンサとは
  • 9.3 ラズパイのカメラモジュール
  • 9.4 Piカメラモジュールのコマンド
  • 9.5 静止画の撮影

Chapter 10 自走ロボットを製作する

  • 10.1 本章で準備するもの
  • 10.2 自走ロボットの概要
  • 10.3 自走ロボットの仕組み
  • 10.4 ライン検出基板の製作
  • 10.5 メインボードの製作
  • 10.6 シャーシの組み立て
  • 10.7 自走ロボットのテスト走行
  • 10.8 自走ロボットの組み立て

Chapter 11 自走ロボットを制御する(基礎編)

  • 11.1 基礎編について
  • 11.2 VNCの設定
  • 11.3 LEDを点滅させる
  • 11.4 LCDに変数の値を表示させる
  • 11.5 赤色SWと白色SWをテストする
  • 11.6 圧電サウンダを鳴らす
  • 11.7 フォトセンサの信号を表示する
  • 11.8 DCモータを回転させる
  • 11.9 DCモータを正転,逆転させる
  • 11.10 シャットダウンボタンを追加する
  • 11.11 緩やかなラインをトレースする

Chapter 12 自走ロボットを制御する(応用編)

  • 12.1 応用編について
  • 12.2 RCサーボモータの位置決めする
  • 12.3 センサで距離を測る
  • 12.4 障害物を検出して自動停止して撮影する

本書のChapter4~8で使用する配線図

Appendix

  • A.1 SDカードをフォーマットする
  • A.2 SDXCをFAT32形式でフォーマットする
  • A.3 ラズパイでSDカードを複製する
  • A.4 PCとファイル転送をするWinSCP
  • A.5 SSHのポート番号の変更
  • A.6 LCDなどの小型部品のはんだ付けの方法
  • A.7 ユニバーサル基板のはんだ付けのポイント

サポート

ダウンロード

拡張コネクタガイドについて

本書の「拡張コネクタガイド」をダウンロードできます。解凍してできたPDFファイルを「実際のサイズ」で印刷してご利用ください。

(2020年4月24日更新)

ダウンロード
connectorguide.zip(約1.7MB)

サンプルコードについて

本書のサンプルソースがダウンロードできます。解凍してできたファイルをMyAppフォルダに配置してご利用ください。

(2020年4月13日更新)

ダウンロード
MyApp.zip(約36KB)

補足情報

次のWebサイトでも補足情報や自走ロボットの動画などをご確認いただけます。

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2021年7月19日最終更新)

P.139 本文の上から3行目

設定ファイル「condig.txt」を
設定ファイル「config.txt」を

(以下2020年4月24日更新)

P.69 上部のコマンド実行例

3行目の「$ mkdir /tmp」は不要です。

P.70 表3-4

4列目の「pwmWrite( int pin, int value);」と説明文は,表3-3と重複するため不要です。

P.93 本文の下から1行目

0番を左側から振ります。
0番を側から振ります。

P.103 本文の下から2行目

説明はRaspberry Pi 3/3B+のものです。Pi 4Bでは,WiringPiのバージョン2.52においてpullUpDnContol関数が無効です。そのため,タクタイルスイッチ回路の抵抗(3.3kΩ)は必要となります。

P.120 本文の下から5行目

パルスオンの時間が周期Tに対して2割の場合、
パルスオンの時間が周期Tpwmに対して2割の場合、

P.135 表7-2の名称「熱容量が大きいこて先」の参考品

白光 TC34-C3
白光 T34-C3/3C型

P.140 本文の下から13行目

変更フィルム
偏光フィルム

P.147 リスト7-2枠下の説明②

3番目の箇条書き(g_dispCharsの説明)は不要です。

P.198 本文の下から3行目

V1からイメージセンサ部品が変更され、500万~800万画素になり、
イメージセンサ部品が変更され、V1の500万画素から800万画素になり、

P.204 下から2つ目のコマンド実行


$ raspistill -o `date '+%Y%m%d-%H%M%S'`.jpg t 100


$ raspistill -o `date '+%Y%m%d-%H%M%S'`.jpg –t 100

P.205 下から1つ目のコマンド実行


$ raspivid t 10000 -o video2.h264 w 640 h 480 fps 15


$ raspivid –t 10000 -o video2.h264 –w 640 –h 480 –fps 15

P.211 表10-2の名称「LCD」の説明

AQM1602。Chapter 8のLCDを使用します。
AQM1602。Chapter 7のLCDを使用します。

P.211 表10-2の名称「ピンヘッダ」の説明

RCサーボモータ用の4ピンにカットします。
RCサーボモータ用の3ピンにカットします。

P.212 表10-3の名称「カメラモジュール」の説明

Chapter 11のカメラを使用
Chapter 9のカメラを使用

P.213 表10-5の名称「熱容量が大きいこて先」の参考品

白光 TC34-C3
白光 T34-C3/3C型

P.228 図10-22

図中の次の部分が間違っておりました。

誤

正

P.232 本文の5~6行目

RCサーボモータ用のJP1の5Vは、
RCサーボモータ用のCN7の5Vは、

P.251 本文の2~3行目

ネットワーク上に対象のラズパイを見つけると認証のダイアログが表示されます。なお,Pi 4Bの場合,Pi 4Bとディスプレイを接続した状態で,PCのVNC Viewerを起動してください。VNCと接続後に,Pi 4Bからディスプレイケーブルを外してください。

P.334 図7-18

R1のカラーコード1kΩ
R1のカラーコード4.7kΩ

P.335 図7-23

R1のカラーコード1kΩ
R1のカラーコード4.7kΩ

(以下2020年4月8日更新)

P.89 リスト4-1(つづき)の末尾


    return EXIT_SUCCESS; ――③


    return EXIT_SUCCESS; ――③
}

P.207 リスト9-1 下から4行目


while(1){
    if(digitalRead ……
    system("raspistill ……
}



while(1){
    if(digitalRead ……
    system("raspistill ……
    }
}


商品一覧