特集2 第04章-OT622

第4章
GPS,センサ,Bluetooth…使ってみた レッスン 4
かったあのICやモジュールをつなぐ
3 大定番インターフェース
I2C,
SPI,
UART の動かし方
砂川 寛行
さまざまな IC やモジュールの制御には,シリア
ル・インターフェースが便利です.これを自在に使
えるようになれば,Linux コンピュータに GPS モジ
ュール,温度センサ,加速度センサなどをつないで
動かし放題にできます.
ラズベリー・パイには搭載されていない,A−D
コ ン バ ー タ や D− A コ ン バ ー タ を 後 付 け し た り,
GPIO の数を増やしたりできます.
ここでは,UART,SPI,I2C を動かせるライブラ
リ WiringPi を利用して,次の IC やモジュールを動か
してみます.
① UART を使う:GPS,Arduino や USB シリアル
変換モジュールとの接続
② I2C を使う:A−D コンバータ,D−A コンバータ,
ディジタル・ポテンショメータ,I/O エキスパン
ダ,ディジタル・シンセサイザ
③ SPI を使う:A−D コンバータ
④ 応用製作
UART を動かす
ラズベリー・パイは,UART がすぐに使えます.
マイコンの定番シリアル通信といえば UART です.
古くから RS−232−C で使われてきました.産業用機
VCC
5V
GPS
モジュール
2ピン
ラズベリー・パイ
TxD
RxD
GND
GND
10ピン
9ピン
図 1 ラズベリー・パイに GPS モジュールを接続する
146
Hiroyuki Sunagawa
器では現役で,少し前までは一般的なパソコンにも標
準で搭載されていました.
RS − 232 − C を TTL レ ベ ル 変 換 し て, マ イ コ ン の
UART ポートに接続するのが定石でしたが,最近の
パソコンは RS−232−C ポートを搭載していません.
そこで,USB−シリアル(UART)変換モジュールを使
用して,パソコンとマイコンを接続して通信させるこ
とが多かったのです.
● GPS モジュールのデータを受信してみる
GPS モジュールの多くは,UART インターフェー
スを備えており,マイコンの UART ポートに接続す
れば,簡単にデータを受信できます.GPS モジュール
は,NMEA フォーマットで緯度や経度,GMT 時間な
どを出力します.
ラズベリー・パイの UART ポートに GPS モジュー
ルを接続して,GPS データを受信してみます(図 1).
4_1_list12.py の UART で受信した文字列を表示す
るプログラムは,受信した GPS データ(NMEA データ)
をひたすら表示します.
GPS モジュールから空が見えないような環境では,
衛星を補足できないことがあるので,出力されるのは,
欠落のあるデータです.
● USB ポートを使用して通信する
Arduino や USB − シ リ ア ル 変 換 モ ジ ュ ー ル な ど,
USB ポートを使用して通信してみます.
本誌 2016 年 3 月号で紹介した,Arduino Pro Mini
互換機で作製した電流・電圧・温度ロガー(写真 1)を
USB で接続して,ログ・データを受信してみます.
▶USB−シリアル変換を増設
前述の USB−シリアル
(UART)変換モジュールは,
ラズベリー・パイでも利用できます.
ラズベリー・パイで自由に使えるUART ポートは,1
個しかありません.コンソール出力としてすでに使用さ
れている場合は,UART ポートは使えなくなります.
UART ポートが足りない場合,USB−シリアル変換モジ
※記事の Python プログラムは,http://toragi.cqpub.co.jp/tabid/795/Default.
aspx からダウンロードしてください.
2016 年 6 月号