Last Update 2022/02/02

USB/イーサ/シリアル/HDMI…全部入り定番ボードでハード制御にトライ!
お手軽ARMコンピュータ ラズベリー・パイでI/O

Interface編集部 編
B5判 136ページ
定価2,640円(税込)
JAN9784789849364
2013年4月15日発行
好評発売中!
お手軽ARMコンピュータ ラズベリー・パイでI/O

 「ラズベリー・パイ」は35ドルという価格で買える定番ARMコンピュータです.Linuxが動く高性能ARMマイコンとUSB,イーサネット,HDMI,シリアル,オーディオ,ビデオ出力を搭載する全部入り豪華基板です.
 本書は,このラズベリー・パイをハードウェア制御に使うためのさまざまな方法を紹介します.Cプログラム/キーボード入力/Rubyプログラム/ブラウザなどからのI/O制御にトライします.ちょっとハードルが高いLinuxデバイス・ドライバの自作にもチャレンジしています.

※本書は,Interface 2012年12月号特集「ARMコンピュータでI/O」および,Interface連載記事「ARMコンピュータ Raspberry Pi活用術」を加筆・再編集したものです.
目次


イントロダクション1 これから高性能ARMがくる!

LinuxやAndroidが動く高性能ボードが30ドルそこそこ!
イントロダクション2 手のひらサイズ!定番ARMコンピュータ
定番1:Raspberry Pi…フル装備の超お手軽ボード
定番2:BeagleBone…拡張性が高いシンプル・ボード
定番3:BeagleBoard-xM…先駆けARMコンピュータの後継機
定番4:PandaBoard ES…フルHD画像も!DSPブロック内蔵チップ搭載
ARMコンピュータの機能を比較!


第1部 ラズベリー・パイではじめる高性能ARMの世界

高性能CPU&I/O用コネクタ&Linux…ほとんどパソコン並みのフル装備!
第1章 ARMコンピュータ“ラズベリー・パイ”のしくみ
 ハードウェア
 ソフトウェア…高性能ARMはLinuxをのせて動かすと楽ちん
 一歩踏み出してみませんか
 Raspberry Piはほぼパソコン

OS搭載&音声や動画の高速処理に適したプロセッサの構造
第1章 Appendix-1 Cortex-AとCortex-Mの違い

Cortex-A/R/Mの位置付けがわかる
第1章 Appendix-2 ARMプロセッサの分類


第2部 ラズベリー・パイでLinuxを動かす

パワフルなARMを楽ちんにキチンと使うにはLinuxがつきもの!
第2章 準備:Linuxのインストールと初期設定
 動作確認に必要なもの
 Linux書き込み用SDメモリーカードを作る
 起動と初期設定
 ログインとパスワード設定
 覚えておこう!終了と再起動の方法
 sudoについて
 高性能ARMとワンチップARMのソフトウェアの違い

Raspberry Pi用Linuxで試す ネットワーク接続&USBメモリI/O
第3章 はじめの一歩! サンプル・プログラムを動かす
 Raspberry Pi用Linuxの操作方法
 サンプル・プログラムを動かしてみる
 ネットワークへの接続…Windowsパソコンからのリモート操作
 USBメモリをつないでパソコンとファイル交換ができるようにする
 telnetとftp
 telnetやftpを使いたいとき

リソースを気にせずサクサク動かせる!
第3章 Appendix ライブラリが豊富! 高性能ARMに使われるオープン・ソースOS  Linux
 Linuxの特徴
 一般的なLinuxのしくみと動作
 リアルタイムOSとの比較


第3部 ラズベリー・パイでハードウェア制御に挑戦!

パソコンだとめんどくさいI/O操作もARMコンピュータ基板&Linux なら簡単!
第4章 コマンド入力で外付け回路を動かしてみる
 “Hello World”で動作チェック
 GPIO端子の配置と電圧系
 コマンド入力画面からGPIOに簡単アクセス

Linuxアプリからレジスタを直接たたく! 高速アクセスにトライ!
第5章 おなじみC言語でI/O制御
 GPIO制御…2種類の方法でトライする
 方法1…デバイス・ドライバを使う
 方法2…レジスタを直接たたく
 仮想メモリ空間の確保
 mallocを使わない方法

Cプログラムをライブラリ化し,Rubyで高速に動かす
第6章 ネットワークが得意な上位言語RubyからのI/O制御にトライ
 ネットワークが得意な上位言語Ruby
 準備…追加ソフトのインストール
 CプログラムをRubyで使えるライブラリにする
 Rubyから呼び出して動かしてみる

処理性能は十分! ちょっと重たいCGIでダイナミック制御/計測も簡単!
第7章 ブラウザからの動的I/O制御にトライ
 動的に表示内容を更新できるウェブ・サーバのしくみ
 ネットワークを介してI/Oを操作するための3ステップ
 IPアドレスを入力するだけでRaspberry PiのHTMLファイルをブラウザに表示する方法
 アイコン・ファイルfavicon.icoの制作方法

アプリケーション・ソフトウェアから自在にGPIOにアクセス!
第8章 自作LinuxドライバでI/O制御を簡単・確実に!
 ドライバを自作するメリット
 作成するドライバ
 作成の準備
 ステップ1:何もしないnothingモジュールを作ってみよう
 ステップ2:簡単なHello Worldのモジュールを作ってみる
 ステップ3:gpioドライバを作ろう
 ステップ4:gpioドライバを動かす
 ドライバ作成のための参考書

アプリを本来の処理に集中させるために!ハード/OS固有の処理はドライバにおまかせ
第8章 Appendix ハードウェアを接続するときに必要な「デバイス・ドライバ」の役割
 デバイス・ドライバが必要な理由
 役割の実際…3Dモーション・センサを外付けする例より

I/Oのちょっとした監視に便利!
第9章 タイマ割り込みで数十ms定周期ポーリング
 待ち時間の長いハードウェアの処理方法
 作成する定周期ポーリングの仕様
 予備知識1…タイマの使いかた
 予備知識2…セマフォ
 実験!定周期ポーリングを実装してみる
 動かしてみよう

普通のシリアル・インターフェースより速くて扱いが楽ちん!
第10章 外付けシリアル変換ICでUSBカンタンI/O!
 USB-シリアル変換のメリット
 Raspberry Piで使うには
 実験!USB-シリアルでマイコンと通信
 CDCとACMの意味

3本の信号線を接続するだけでセンサやメモリを数珠つなぎにできる
第10章 Appendix 定番シリアルI2Cでカンタン接続!
 Raspberry PiでI2Cを使う手順
 Raspberry PiでI2Cを使うポイント
 SPIバスを使おう

Wi-Fiドングル/USBカメラ…パソコン周辺アクセサリ&オープン・ソース・ソフトで拡張が超簡単!
第11章 スマホでササッ! 動画中継ラジコン・カーの製作
 ハードウェアの製作
 ソフトウェア環境の準備
 ラジコン・カー制御用プログラムの作成


第4部 ラズベリー・パイ以外の定番ARMコンピュータでI/O

クラウド・サーバを介したデータ収集&リモート制御
第12章 コンパクト&拡張自在! Cortex-A8搭載BeagleBone
 BeagleBoneとは
 製作した拡張基板…センサ&制御信号出力回路
 ソフトウェアの開発環境…ブラウザだけあればOK!
 インターネット経由のリモート・アクセスと自動運転

ウェブ経由で天気予報をゲットして表示
第13章 実験!BeagleBoneとAndroidでネット接続
 インターネット接続に使う「HTTP」で天気予報アプリを作る
 ハードウェアとOSの準備
 天気予報アプリケーションの構成
 アプリのプログラミング
 実行してみよう!
 HTTP…WebサーバとWebブラウザの通信を行う手順を決めたもの

はじめやすい! Lチカまでならすぐ! ネットに情報が満載!
第14章 ARMコンピュータの先駆け的存在! Cortex-A8搭載BeagleBoard
 BeagleBoardの特徴
 起動と動作確認
 用意されている拡張基板を動かしてみる
 性能/機能が強化された兄弟ボードBeagleBoard-xM

フルHD画像処理可能な高性能オールインワン・チップを試せる
第15章 ほとんどパソコン!? Cortex-A9搭載PandaBoard ES
 準備
 とりあえず動かしてみる
 Linuxをインストールする
 いつも正確なネットワーク・クロック付きフォトフレームをササッと作る
 お約束のI/O制御でLEDチカチカ