USB/イーサ/シリアル/HDMI…全部入り定番ボードでハード制御にトライ!
お手軽ARMコンピュータ ラズベリー・パイでI/O
Interface編集部 編
B5判 136ページ
定価2,640円(税込)
JAN9784789849364
2013年4月15日発行
好評発売中!
「ラズベリー・パイ」は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チカチカ