Monthly FB NEWS 月刊FBニュース 月刊FBニュースはアマチュア無線の電子WEBマガジン。ベテランから入門まで、楽しく役立つ情報が満載です。

My Project

第21回 はじめてのラズベリーパイ

JP3DOI 正木潤一


はじめに

先日『ラズベリーパイ(Raspberry Pi)』(以降、“ラズパイ”)を導入しました。ご存知の方も多いと思いますが、ラズパイはシングルボード・コンピューターと呼ばれる、超小型で低価格、低スペックのコンピューターで、モジュールを使った昨今の電子工作の代名詞となっています。月刊FBニュースでも過去に1度だけラズパイが取り上げられています。


2019年7月号『Raspberry PiでエリアCQ先のレピータ音声をモニターする、dmonitorの製作』

当初、今回はラズパイ導入方法を解説しようと思っていましたが、関連書籍やインターネットの情報が豊富なので改めて私が説明を書くまでもないと判断しました。実際に使ってみたいと思った方は、解説書を参照することをお勧めします。私は準備から基本的な使い方までが筋道立てて書かれた解説書を読みながら進めました。市販の書籍はサンプルプログラムのダウンロードサービスもあり、頓挫したり失敗したりすることなく進められます。なお、確かにインターネット上にはたくさんの情報がありますが、後述のよう“玉石混交”なので、まずは解説書を購入することを推奨します。


参考にした解説書。この内容に沿って導入を進めた。

今回は、ひとまず導入や機能、電子工作への利用方法を紹介する記事になっています。「ラズパイを使って何をするか?」については、アマチュア無線に関連した使い方とその方法を、いつかこのコーナーで解説したいと思います。

マイコンと何が違うの?

まず、ラズパイは何ができるかというと、ほぼパソコンと同じです。Windowsのように、マウス操作で画面上のアイコンをクリックして様々なアプリケーションを使うことができます。そして、沢山のアプリケーションが無料で公開されています。ラズパイに対応したLinux系OSのひとつ『Raspbian』には最初からアプリケーションがいくつか入っているので、シンプルなパソコンとしてすぐに使えるようになっています。


動画再生ソフトやPDFビューワー、テキストエディタやWEBブラウザが初期状態から入っている

もちろん、LANコネクターを装備しているのでブラウザ『Chrome』でインターネットをすることもできます(バージョンによっては無線LANにも対応しています)。ただし、処理能力が一般的な家庭用パソコンほど高くないので、同時に複数の動画や音声を再生させるなどの負荷を掛けるとフリーズしたり強制終了したりします。その分消費電力は少ないので、USBアダプターやモバイルバッテリーで動作させることができます。


YouTubeでユーチューバーの動画を見たり、radiko.jpでラジオ番組を聴いたりできる

これだけでも十分に便利そうですが、ラズパイの一番の特長は『汎用入出力ポート』を持っていることでしょう。それが電子工作にラズパイがよく利用されている理由の一つです。汎用入出力ポートとは、簡単に言うとマイコンの足1本1本、つまりデジタルポートのことです。これによってハードウエア、つまり様々な回路を制御することができます。しかも、ICや周辺部品が予め基板に実装されたラズパイ対応のモジュールを使えば、自分で回路を考える必要がなく、ハンダ付け作業も最小限で済みます。

『ラズベリーパイ(Raspberry Pi)』という名前の由来

そもそも“ラズベリー”がどんなフルーツかご存知でしょうか? 日本ではベリー系のフルーツといえばストロベリーかブルーベリーが一般的です。実は、私はラズベリージャムが大好きなのですが、輸入食品を扱うお店でしか売っていません。


フランス産のラズベリージャム

調べたところ、コンピューター会社の『Apple』、『apricot』、『Tangerine』、携帯電話機の『ブラックベリー』など、フルーツの名前が由来のコンピューター関連企業や製品の流れを汲んで付けられたとのことです。

<所感:ラズパイの情報が多すぎて困る!?>
ラズパイは利用人口が多いだけにインターネット上には関連情報が沢山あります。分からないことを検索して調べるとなにかしらの記事やブログなどが見つかりますが、読んでもよく分からないことが多いように感じます。というのは、プログラミングや電子工作に限ったことではなく、私自身にも当てはまるのですが、趣味は自己完結型の活動なので、自分の作っているものを客観的に見ることが難しいのです。好きなことについての文章を書くとき、分かりやすさよりも自分の興味関心やスタイルにどうしても偏ってしまうため、予備知識がない人間が読むと分かりにくい内容になりがちなのだと思います。

趣味に関する記事に多い文章の傾向:
・情報の前提条件や、文中の主体や主語が省かれがち
・ページの見栄えや体裁にこだわっていて手が込んでいる
・雑記感覚で冗長的な表現を楽しんでいる

その点、市販の解説書は筋道立てて説明されていて、内容も然るべきチェックがなされています。

動作させるのに必要な物

ラズパイの日本での販売は『アールエスコンポーネンツ』の扱いですが、電子パーツショップや各種ネット販売でも入手できます。家電量販店のヨドバシカメラでも扱われているようです。導入方法を詳しく説明しているサイトが沢山ありますが、前述のように解説書を購入することをオススメします。下記は、私が導入作業の中で気付いたことですので参考にしてください。


“ラズベリーパイ3”。小さな箱の中にそのまま入っている。説明書は入っていない。

まず、ラズパイを動かすには下記のものが必要です。本体が低価格なのに加え、周辺機器も安い中古品や家にある使わなくなった物が使えるので始めやすいですね。

・ラズベリーパイ本体
・SDカード(SDHCタイプ)
・ディスプレイ(HDMI入力。変換プラグを使えばDVIでも可。TVでも可。)
・USBキーボード
・USBマウス
・電源USB出力のACアダプター(5V/2.5A以上)とUSB Type-Cケーブル
・インターネット接続環境とLANケーブル

パソコンのハードディスクに相当するのはSDカードです。購入したラズパイにSDカードは含まれていないので別途用意し、それにOSをインストールします。(詳しくはインターネットや解説本を参照)

1. ラズパイにインストールするOSを公式サイトからダウンロードする。
2. それをSDカードにコピーする。(isoファイルにするのが一般的)
3. SDカードをラズパイに挿入してインストール。
4. インストール中に出て来る指示に従って設定をする。
5. 必要に応じて追加のアプリケーションをインストールしたり、無線LANの設定をしたりする。

低スペックのパソコンとして使えるようになるまでの手順は以上です。なお、アプリケーションのインストール方法はWindowsとは大きく異なります。これについても解説書等を参照してください。


いつもの作業台の左半分に「ラズパイお試し環境」を構築

・電源の電流容量に注意!
USB出力ACアダプターと電源供給用のUSBケーブルの選定には注意が必要です。電流容量が足りないと正常に動作しません。私が最初に出くわしたトラブルがこれでした。

当初、スマホを買ったら付いて来たUSB出力のACアダプターを使っていましたが、“電圧低下マーク”が画面上に現れました。調べてみると、「電流容量不足による電圧降下」が発生しているサインとのことです。これがどんな問題を起こすかと言うと、私の場合は無線LAN機能が使えなくなりました。おそらく、搭載されているWi-Fiモジュールの動作電圧を下回ってしまうのでしょう。


画面右上にカミナリのようなマークが出たら電流容量不足のサイン

結局、家にあった3つのACアダプターはどれも使えず、電流容量が3Aのものを新たに買いました。さらに、ACアダプターの供給電流容量が条件(2.5A)を満たしていても、USBケーブルもそれに対応していないとダメです。


USB出力ACアダプターによって電流容量はまちまち。ケーブルの電流容量にも注意が必要。

・基板上のチップが熱くなる!
ラズパイを使っているとCPUとLAN(イーサネット)チップが結構熱くなります。実は、それらのチップにサイズがピッタリのヒートシンクが販売されています。発熱によるパフォーマンスの低下を少しでも抑えるために貼っておいた方がよいと思います。


ICに貼ったアルミ製ヒートシンク

・HDMI端子の無いディスプレイも使える
ラズパイの映像出力はHDMIですが、HDMIの映像信号はDVIとおなじなので、コネクターを物理的に変換する『HDMI←→DIV変換コネクター』を使えば、型落ちしたDVI入力のディスプレイを接続できます。DVIで入力する場合、音声は基板の3.5mmステレオジャックから出力します。私は20年前に買ったパソコンのDVI入力のディスプレイを使い、音声は3.5mmステレオプラグを介してディスプレイに内蔵されたスピーカーから出力しています。

・ファイル管理はWindowsと同じ感覚
ラズパイはLinuxベースのOSで動かします。その種類はいろいろあるのですが、私はその中の1つ、『Rasbpian』を選びました。

ところで、マウスを使ってアイコンやウインドウを視覚的に操作する仕組みをGraphical User Interface (GUI) と呼びます。それに対して、背景が黒い画面上にキーボードでコマンドを入力する、昔のMS-DOSのようなインターフェースはCommand User Interface (CUI) と呼ばれます。LinuxはこのCUIを使うイメージだったので躊躇していたのですが、使いなれたGUI形式で簡単に操作できるのが助かりました。ただし、ゴチャゴチャした設定やシステム上重要なファイルの操作は、どうやらCUI形式の『LXTerminal』上でしか扱えないようです。


Linux系OSで標準的なCUI形式インターフェース『LXTerminal』の画面

汎用入出力で遊んでみる

では、ラズパイを電子工作に利用するという、本来の使い方を試してみましょう。今回、ラズパイと一緒に対応モジュールをいくつか買いました。モジュールはブレッドボードを介してラズパイの汎用入出力端子に接続して動作させます。モジュールの電源はラズパイから供給して、I2Cで通信します。

モジュールを動作させるには、モジュール上のICとラズパイが通信するためのプログラムを書く必要があります。と言っても、『ライブラリ』と呼ばれる小さなプログラム(関数)の集まりを使う事で、ごく少ない行数のプログラムで実現できます。


ラズパイに対応しているモジュールの例。LCD(上)、A/D変換(左)、温度湿度測定(右)モジュール

・LCDモジュールに文字を表示させる
とりあえず、LCDモジュール『SO1602』を使って文字を表示させるプログラムを作ってみました。「作った」といっても、“ライブラリ”と呼ばれる「小さいプログラムの集まり」がメーカーのサイトからダウンロードできるので、それを使えば僅かなプログラムの記述で実現できます。


LCDモジュールに私のコールサインを表示させたところ

手を加えたのはLCDに表示させたい文字を入力するウインドウの部分です。これはモジュールの制御とは別にラズパイの画面上にユーザーインターフェース、つまりウインドウを作る部分です。『Tkinter』という、プログラムにウインドウやボタンなどを作る技術を使います。冒頭で紹介した本にはこれについての解説は載っていないので、別途Pythonの本を買いました。


標準エディタ『Thonny』で書いたPythonプログラム。
LCDに表示させたい文字を入力するウインドウも作ってみた

・温度と湿度を測定する
温度と湿度を測ることのできるモジュール『BME280』も動かしてみました (湿度を求めるには大気圧を測定する必要がある為、気圧センサーも内蔵されています)。これに至っては、動作させるプログラムのサンプルがラズパイ公式サイト(英語)からダウンロードできました。


ブレッドボード上の温湿度測定モジュール(左)で取得したデータをLCDで表示している様子

サンプルプログラムを使えば測定したデータをラズパイのデスクトップ上に表示させることができますが、それだけではあまりにも芸が無いので、先ほどのLCDに表示させてみました。これらのモジュールは、ラズパイの汎用入出力端子のシリアルデータ端子とシリアルクロック端子を使ったI2C通信を利用しています。


Pythonの解説本。プログラムにGUIを実装させる方法『Tkinter』についても載っている。

<所感: 『郷に入っては郷に従え』とは言っても…>
プログラミング言語にはたくさんの種類があります。私がいつも使っている言語はVisual Basic (VB)やJava、あとマイコンにPICアセンブラを使っています。ラズパイではPython(パイソン)という言語を使用するので、これを期にPythonを勉強し始めました。プログラミング言語が異なると、同じ処理でもルールや書き方が大きく違います。どうしてもルールやクセに慣れるのに時間が掛かります。

例えば、大文字と小文字とが違うものとして認識されるかどうかがあります。Pythonでは変数“ABC”と“Abc”は全く別のものとして認識されます。私はつい混在させてしまい、何度もエラーを出しました。

他にも、英単語“As”は「~の一種」や「~として」という意味を持っていますが、言語によって言葉の意味が異なります。VBでAsは「変数に格納するデータの種類(“型”)を指定する時」に使います(「~の一種」)。一方、PythonではAsは「読み込んだクラスに名前を付ける時」に使います(「~として」)。ちなみに、“Python”とは英語でニシキヘビです。

最後に

ラズパイは製品の開発段階の試作機や製品への組み込みでの直接利用など、商業用途でも利用されています。Linux OSやIPネットワークの知識があれば、高度で実用性の高い様々な物を作ることができるそうです。

ところで、ラズパイの最初のバージョン(Raspberry Pi 1)がリリースされたのは2013年でした。なぜ私が今まで手を出さなかったかというと、モジュールとプログラミングだけを組み合わせた電子工作に興味が無かったからです。電子工作を含めて趣味としてのモノづくりはその過程と、過程の中で知識と経験を得ることの喜びが醍醐味だと私は思っています。今のところ私はまだラズパイに面白みを見いだせていませんが、そのうちこれを使って何か作ってここで紹介したいと思います。

My Project バックナンバー

2020年3月号トップへ戻る

次号は 4月15日(水) に公開予定

サイトのご利用について

©2020 月刊FBニュース編集部 All Rights Reserved. 発行元: 月刊FBニュース編集部