RaspberryPi & シングルボードコンピュータ
Pumpkin Pi「一発セットアップ・プログラム」導入ガイド
はじめに
マルツで好評発売中のハイレゾ入力対応Raspberry Pi 拡張ボードPumpkin Pi。
Pumpkin Piをはじめて使う方をターゲットに、セットアップ方法を詳しく解説したフォローアップ記事がトランジスタ技術2017年8月号に掲載されました。マルツのエンジニアがその手順に従って実際にPumpkin Piをセットアップした様子をレポートします。
-
準備
- 今回、Raspberry Pi 3 model B を利用し検証を行いました。
-
- 1.Raspbianのイメージファイルをダウンロードする
Raspbianのダウンロードは、一般的にRaspberry Piのホームページから取得する例がよく紹介されていますが、非常に時間がかかるります。そこでミラーサイトを利用しました。日本にもミラーサイトがいくつか存在しており、そこからであれば驚くほど速くダウンロードできます。
https://www.raspbian.org/RaspbianMirrors
上記のアドレスのcontentがAsia、countryがJapanのところを参照し、近くのサーバーを選んでダウンロードします。今回は福井県で作業をしたので、お隣の石川県の北陸先端大学(JAIST)のサーバーを使用しました。3時間以上かかっていたものが、わずか15分ほどでダウンロード完了しました(参考: http://qiita.com/tukiyo3/items/c8555eacb67466b81bc8)
- 2.microSDカードにダウンロードしたイメージを書き込む
microSDのフォーマットにはSDFormatter(https://www.sdcard.org/jp/downloads/formatter_4/)、書き込みにはwin32DiskImager(https://ja.osdn.net/projects/sfnet_win32diskimager/)を使用しました。
- 3.SSH通信を可能にする
Raspberry Piでの工作には、HDMI対応ディスプレイ、キーボード、マウスが必要で、意外と場所をとり金額もかさみます。
もし手元にノートパソコンがあれば、ノートパソコン1台で設定から開発まで行える環境を整えることができます。
今回使用する方法は、もっとも広く認知されていて簡単な、リモートログイン(SSH通信)です。しかし、SSH通信は、最初の起動時には利用できないので、Raspberry PiのGPIOのUART端子を利用してログインし、SSH通信を行えるように設定を行う必要があります。
○用意するもの
・USB-シリアル変換機器(今回はMPL2303SAを使用、8P連結ソケットをはんだづけし、SJ1、SJ2をはんだジャンパする。)
・USBケーブル(MPL2303SAは、マイクロUSBでパソコンと通信するため、マイクロUSBケーブルを使用する。)
・ブレッドボード(今回は型番165408010Eを使用)
・ジャンプワイヤ(Raspberry Piのピンヘッダを使用するので、片方メス、もう片方がオスのものを使用。今回は型番20PS-MIXを使用)
○ノートパソコンに下記のソフトウェアをインストールする
・Tera Term(Raspberry Piにシリアル通信およびリモートログインするためのソフト)
・iTunes(リモートログイン時にホスト名の入力を簡単にする)
・PL2303SAのデバイスドライバ
- パソコンへのソフトのインストールが完了したら、次にmicroSDカードに書き込んだ設定ファイルの変更を行います(Raspberry Pi3の場合のみ行う)。
OSイメージを書き込んだmicroSDカードをSDカードリーダーで開き、下記のようにファイルの中身を書き換えます。
config.txt:末尾に「 dtoverlay=pi3-miniuart-bt」を追加します。
cmdline.txt:ファイルの中身を「dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait」とします。
(参考:http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41)
書き換えが終了したmicroSDは、通常通りRaspberry Piに挿入します。
- USB-シリアル通信機とRaspberry Piを、ブレッドボードとジャンプワイヤを利用して接続します。
- それぞれのGNDとTx、Rxを接続します。このときUSB-シリアル通信機のTxとRaspberry PiのRx、USB-シリアル通信のRxとRaspberry PiのTxを接続します。またUSB-シリアル通信機をノートパソコンに接続します。
- Tera Termを起動して、新しい接続画面でCOMポートを選択する。
- また、設定―シリアルポートを選択し、ボー・レートを115200に設定する。
- ここまで出来たらRaspberry Piを起動します。
- Tera Termにたくさん文字が表示されて「raspberrypi login」で停止したら通信成功です。
- ユーザ名:pi、パスワード:raspberryでログインします。
- そして「sudo raspi-config」と入力してRaspbianの設定ツールを起動し、「5 Interfacing Options」を選択します。
- ここで「P2 SSH」を選択します。
- 「Would you like the SSH server to be enabled?(SSHサーバーを利用可能にしますか?)」と表示されるので、「YES」を選択します。
- その他ロケールの変更や無線LANを使用したい場合は設定を行います。
筆者は今回、raspi-configの「7 Advanced Option」の「Expand FileSystems」、「4 Localization Option」、「2 Hostname」でホストネームを「pumpkinpi」に変更し、無線LANの設定、を行いました。詳しい解説は省略。
- ここで一旦電源を切ります。
「sudo halt」と入力し、電源LEDが点滅から点灯に変わるのを待ちます。
- 4.SSH通信でログインする
Raspberry Piを有線LANまたは無線LANでインターネットに接続します。
Tera Termの「新しい接続」画面で「TCP/IP」を選択、ホストにIPアドレスを入力し、その後の画面に0.3.4と同じユーザ名とパスフレーズを入力します。
インターネット上ではRaspberry PiのIPアドレスを起動するたびにつど調べる方法が紹介されていますが、もっと簡単に通信できる方法があります。
DHCPでインターネットに接続していても、ホストネームを利用して通信できるソフトがRaspbianにはデフォルトでインストールされている(avahi-daemon)のです。
WindowsではiTunesをインストールすると、同じ機能をもつソフトウェアが一緒にインストールされます。このソフトウェアをインストールするとIPアドレスの代わりに「ホストネーム.local」を指定するだけで通信が可能になるのです。
- ここでトランジスタ技術2017年8月号p.203を参照し、Pumpkin Pi用ソフトウェアのインストールを行いました。
- Wget http://einstlab.web.fc2.co,/RaspberryPi/PumpkinPi.tar 以下のコマンドです。
以上で、Pumpkin Pi用ソフトウエアのインストールが完了です。
-
アナログ温度センサーモジュールMCP3422を用いた計測を試す
トラ技2017年1月号には様々な使用例が紹介されています。その中で一番簡単に動作させることができるアナログ温度センサーを用いた温度の計測を試します。
トラ技本誌ではMCP9700を利用していましたが、今回はマルツで扱っている、Texas Instruments製のアナログ温度センサーLM19CIZ/NOPB(https://www.marutsu.co.jp/pc/i/18958/)を使用しました。
MCP3422の入力はスルーホールがあるだけなので、動作確認を行う前に3ピンのピンヘッダをはんだづけします。近くに電源を取り出せる箇所があるので、そちらにもピンヘッダをはんだづけしました。
またトラ技本誌に書かれている通りにI2Cを有効にしておきます。
ブレッドボードとジャンプワイヤを使ってMCP3422のチャンネル1とLM19CIZ/NOPBを接続します。
写真のRaspberry Piの上にはPumpkin Piが乗っています。
データシートを確認して、配線を間違えないよう注意しましょう。
MCP3422からの入力値を取得するプログラムはルートフォルダ下のPumpkinPi/ADCにあるgetCH1とgetCH2です。これを利用して、測定した値を温度データに変換するシェルスクリプトを作成します。
LM19CIZ/NOPBのデータシートから、出力電圧Voと測定温度Tの関係は下記の通りです。
下記が作成したシェルスクリプトです。
#!/bin/bash
#MCP3422のCH1からデータを取得
VO=`./getCH1`
#取得したデータをもとに温度を計算
T=`echo "scale=7; -1481.96+sqrt(2.1962*10^6+(1.8639-$VO)/(3.88*10^(-6)))"|bc`
#計算結果を表示
echo $T
-
PCM1808を使用したレコーダ
Pumpkin Pi のPCM1808に音声を入力する場合には、別途アンプ内蔵のマイクが必要です(トラ技2017年1月号P.140)。
今回はマルツで販売している汎用マイクアンプキットを使用しました(MMA6482-KIT)
-
PCM1808を使用した音声認識リモコン
先程のマイクアンプキットを引き続き利用し、トラ技2017年8月号P.204~P.205に紹介されている音声認識の方法を参考にRaspberry Pi +Pumpkin Pi+マイクアンプキットからなる「音声認識リモコン」を動かしてみました。
リモコンで操作する対象機器には、手近なところにあったマルツで販売中のLV2.0オーディオアンプを使いました。LV2.0は赤外線リモコンで操作できる仕様です。このリモコンをRaspberry Pi +Pumpkin Pi+マイクアンプキットに置き換えてみたわけです。
今回は電源と、音量の上げ下げの3つができるように設定してみました。
動作を試してみます。ところがあいにく、正しく認識できたのは、10回に1回くらいでした。今回使用したマイクの感度の問題です。
以下のキャプチャは運良く認識したときのものです。
アンプ付きのマイクを交換すると、よりよく認識できるようになるはずです。
動作検証の報告はここまでとします。