・爵 SDFO 「浦せ部 - a ⅱ Sh 池旧 Wzard インストール先のフォルダ このフォルダにインストールする場合は、へ」をりリックしてください。別剏フォルダに 、ストールする場合はー「更」を刎ッりします。 SDFormatte 「のインストール先 : 0 ¥ P 「 00 宿 m F 5 (x86YSDA*SD FO 「は e 禪 S On れョ e 「 ・ S 6rm ョ「 SoundEngine free QuickTime ② SDFormatt er を起動する ①スタートボタン インストールできたら、 SD カードフォーマッタ ーを起動する TM PGEnc ←戻る 1n5 圄 Sh 回 d キャンセル 次へ ( N ) > く戻る ( B ) 画面の通りに進み、インストールする 0 SDFO 「 ma れぎ V40 Web と Windows を検索 フォーマットオプション設定 クイックフォーマット 消去設定 論理サイズ調整 「論理サイズ調整」を選 キャンセル んで「 ON 」をクリック 「論理サイズ調整」を「 ON 」にして、元の画面に 戻り「フォーマット」をクリックする メディアが SD / SD 託 DXC メモリー カードである一とを確認してください。 . 診 ~ SD7 ォー罫すると、データはすべ て失われす。 SD SDHO およÜS DXC ロゴは SD-30. LLC の商標 で夛。 クリック 更新 1.18 GB Volume L 引 Drive : Size microSD カードのフォ ーマットが完了 64G バイト以上の場合、 下の別掲記事参照 シコン。只正 フォーマットオプション : ッフォーマツ . 理ザイズ整 0 フォーマット SD カードフォーマッターが起動したら、 「オプション設定」をクリック 64G バイト以上の SD カードは再フォーマットが必要 croSD カードを PC に挿入してから起動し、現れたウインドウの SD カードフォーマッターで 64G バイト以上の microSD カー 左上にある「 MiniT001 partition Wizard Free 」をクリックして ドをフォーマットすると「 exFAT 」という形式になります。しか し、次に動かすラズバイ用の OS インストールツール「 NOOBS 」 ください。 下図左の右下 ( 1 ) のように、 microSD カードのパーティショ は exFAT に対応していません。そこで、パーティションツールな ンが表示されます。選択して、メニューの「 partition 」 - 「 FO 「 m どを利用して「 FAT32 」に再フォーマットする必要があります。 at 」を選択します。表示されたダイアログの「 File System 」を パーティションツールには、無料で配布されている「 MiniT001 「 FAT32 」にして「 OK 」をクリックします。左上のツールバー Partition Wizard Free Edition 」が利用できます。 Web サイト 上にある「 Apply] をクリックすると、 FAT32 でフォーマットさ (https://www.partitionwizard.com/free-partition-manager.ht れます。この後、次ページのインストール作業に移ります。 (l) からインストーラーをダウンロードして導入してください。 mi ② FiIe System で「 FAT32 」を選択 ′メ Format % 代 on M 、 T00 ! 第をい 00 物ツはト e 川つ」 加 / r00 / Y 倉、虫 [ 願聞 , ”女 0 「 d 学ゆ v+iX 臥の 時い 00 ツ第 d M ・ 05255D / 浦 ( ′ P 第め 0 ( 叩強 P R “・ Y システムで物 C:(NTFS) R ・を純 on 47 ー興罐 4 乃、 G 日 ( u ” d : 四、 ) / m p 聞 ・、 ( p 願心聞 、 - 0 ー ( 、・ ( 「 5 ロ M45502 SATA. 、田 R , 47 を G8) 、ゆを P 聞 on ・ : システムで予れ済み 4 乃 .91 0 ] 乃、望 0 日 的 .92 0 日 4 . 一 ~ ( 0 ・ n 050 / 、にリ . R をれ簡 M 駅 . え 40 朝 ) を加 0 FAQ M 出ル ( 0 啾 00 ー靭′・ d ー ( し 452 物 ④クリックする と FAT32 でフォ ーマットされる Formating the partltjon will de the data on the partmon! % n Label: 「 pbe Clu e 「 Size: rn t Pa ion Tutor FAT32 Can ( 0 ス冊 GB 3 クリック 第 ( F ま“れ 当 5 山 f を T を毅 ロ加師、 0 誂当 P をれ当 ■ 0 ”の 1 町ロし叫 ロ S の平 ロ 5 製 ロ 5 い d ロ M れ 0 爬 d ① microSD カードのバーティションが表示 される。選択して、メニューの「 Partition 」 - 「 Format 」を選択する イマガジ - 134
ラスパイレポート Microsoft 社が機械学習の新ソフト ラズバイなどでオフライン動作 米 Microsoft 社かオフラインで動作する機械学習ライブラリを公開した。 Rasp berry Pi などの非力な組み込み用マシンがターゲットた。 Ubuntu パソコンで動 かしてみると、 USB カメラに写った画像の物体を実際に識別することができた。 「 Darknet 」という畳み込みニューラルネットワークの学習モデルを使った。 ーノレ 米 Microsoft 社は 2017 年 7 月 29 日、 RaspberryPi のような性能の 高くない組み込み機器でも、機械学 習の機能を動かせるライプラリソフ ト「 Embedded Learning Library 」 (ELL) を公開した。 これまでも「 Microsoft Azure 」 などのクラウドサービスをインター $ sudO apt-get install -Y wget ロ Anaconda のダウンロード ネット経由で利用すれば、 Raspber ry Pi のようなマシンでも機械学習 を利用できた。 ELL が違うのは、イ ンターネット接続がない環境でも機 械学習を動かせることだ。 ELL は、 Microsoft 社の GitHub (ht tps.//github.com/Microsoft/ELL) から利用することができ、 Python $ wget https://repo . continuum. io/archive/Anac opencv のインストール ( conda 経由 ) $ s 0 u r c e a c t i v a t e e ⅱロ 仮想環境のアクティベート $ conda create -n ell python=3.4 e Ⅱという名前の PYthon3.4 仮想環境の作成 . /Anaco お nda3-4.4. O-Linux-x86—64. sh ロ Anaconda のインストール $ chmod u + x Anaconda3-4.4. O-Linux-x86 Anaconda に実行権限の付与 0 n d a 3 - 4 . 4 . 0 - L i n u x - X86 ー 64 . s h ロ 64 . s h ロ 図 1 python の仮想環境の構築と OpenCV のインスト $ conda install -c menpo opencv3 = 3 . 2 . 0 ロ $ sudO apt-get install -Y libedit-dev ロ $ sudO apt-get install -Y gcc cmake git ロ ビルドに必要なバッケージのインストール LLVM3.9 のインストール (http://apt 」 lvm. 0「g/ から Ubuntu のバージョンにあったも $ sudO apt-get install -Y libopenmpi-dev ロ $ sud0 apt-get install -Y zlibc zliblg zliblg-dev ロ のをインストールする ) $ sudO apt-add-repository "deb http://apt. llvm. org/xenial/ swig のインストール ( このバッケージはソースからビルドする ) $ sudO apt-get install -Y 11vm-3.9-dev ロ $ sudO apt-get -y update h a i n - xen i a ト 3 . 9 ma i n " ロ llvm-toolc $ wget http://prdownloads . sourceforge. net/swig/swig $ ta r zxvf swi g ー 3 . 0 . 12 . ta r . gz ロ cd swi g ー 3 . 0 . 12 ロ . /configure --without-pcre ロ $ ma ke ロ s u d 0 m a ke i n s t a ⅱ ELL ビルドのための準備 図 2 ラスパイマカジン 2017.10 - 3 . 0 . 12 . ta r . gz ロ を用いて画像を識別するチュートリ アルも用意されている。 ただし筆者が試したところ、 Ras のようにさまざまなパッケージをイ ELL をビルドするためには、図 2 プできたら ELL をビルドしよう。 Python の仮想環境をセットアッ ELL のビルドとインストール した仮想環境上で実行する。 トールする。以降のコマンドは作成 イベートした後、 OpenCV をインス on のバージョンは 3.4 とし、アクテ 仮想環境にインストールする Pyth ds 」からダウンロードして実行する。 tps://www.continuum.io/l)ownloa da のインストールスクリプトを「 ht をインストールするには、 Anacon ンストールをしている。 Anaconda の仮想環境の構築と OpenCV のイ 仮想環境ツールを利用し、 Python 図 1 では Anaconda という Python する。 必要がある。図 1 のコマンドを実行 ために OpenCV をインストールする で用意されており、画像を識別する ELL のチュートリアルは Python Python 仮想環境の構築 ・ Ubuntu 16.04 LTS ( 64 ビット版 ) ・ USB カメラを付けた PC ows 、 Mac 、 Linux に対応している。 環境で動かした。 ELL 自体は W ⅲ d ELL のチュートリアルは下記の 要だった。 のままでは動作せず、試行錯誤が必 でも、 GitHub で示されている手順 までの手順を紹介しよう。 Ubuntu デモ ( チュートリアル ) を実行する untu 搭載パソコンで動かせたので、 ことができなかった。代わりに Ub pberry Pi では ELL をうまく動かす
ラズバイと周辺機器の買い方から OS 導入方法まで filel . txt が元々存在し、そこに追記する形でコマンド結果を保存したい場合は、「 > > 」を用います . $ s u d 0 a p t - g e t i n s t a 1 1 ej e c t 何らかのコマンド〉 > filel . txt キー入力をそのまま表示する キー入力した文字列をそのまま表示するには「 echo 」を用います。この例では、コマンド結果が「 he Ⅱ 0 」となります。 コマンドの例 13 $ e c h 0 h e 1 1 0 例えば、 he Ⅱ 0 という文字列が 1 行だけ書かれたシンプルなテキストファイルを作るには、「コマンドの例刀の「 nano 」 をわざわざ用いなくても、単に次のように実行すればよいだけです。 $ ec ho h el 1 0 〉 fi 1 e 1 . txt OS をアッ OS をアップデートします。 Windows の「 Windows Update 」と同じと考えてよいでしよう。 2 個目のコマンドの「 - y 」 オプションは確認作業を省略するという意味です。これらのコマンドは管理者権限が必要になります。管理者権限で実行す るには、「 sudo 」をコマンドの前に付けます。 sudo とは super user do の略で、「スドウ」や「エスユードウ」と読みます。 $ sud0 apt-get update $ sud0 apt-get upgrade -y コマンドの例 15 ネットか ソフトをダウンロードしてそのままインストールすることもできます。インストールする場合も管理者権限が必要なの で sudo を頭に付けます。 apt-get でインストールできるのは、あらかじめラズバイ os 向けに作られたソフト ( バッケー ジという ) です。バッケージ名も決められています。例えば「 eject 」というバッケージをダウンロードしてインストール する場合は、次のように実行します。 ー各種ソフトのソースコードをダウンロードする あらかじめバッケージが用意されておらす、前述の apt - get でインストールできないソフトも多数あります。一般的な Linux 用のソースコードをダウンロードして、ソフトを生成 ( ビルドという ) する場合は、「 git clone 」を用いることが多 くなっています。通常は git という拡張子を持つファイルとしてネットで公開されており、それを直接指定します。 $ git clone http://xxxx . xxxx. xxxx/xxxx. git ー圧縮ファイルを展開する Windows ではファイルを圧縮アーカイプする際に、「 zip 」や rlha 」形式を用いるのが一般的ですが、 l_inux の世界では、 「 ta 「 . gz 」形式がまだ主流です。 hoge. ta 「 . gz という圧縮ファイルを展開するには、 ta 「コマンドを使います。 ーサーバーを起動する Linux には標準でさまざまなサーバーソフトが装備されています。例えば、ファイルサーバーソフトである「 vsftpd 」を 起動するには、次のようにします。 $ tar xvzf hoge . tar . gz $ sudO service vsftpd start 145
We に 0 肥℃ Raspbe 「 ry Pi 0000 090 Please wait while the software is nstalled on YO は SD card ー thlS will take a few rninutes. Raspbian: Extracting fi sy 、い m 429 ト田研 4093 MB w 「 en ( 2.7 M 町 50 ( ) インストールが始まる ( 完了まで時間がかかる ) 10 % ・ 00 ・ 000 05 他 & ) & t 厄 d 05 ( い n 式 a ed Su ( ( sfu 収 0 クリック インストールが完了したら、「 OK 」をクリックする * ↑↓マ 7 ⑦無線 LAN に 3 で接続していなか った場△ ーをクリックし、現 れた無線 LAN の (SSID) をクリ ックして、バスワードを入力する 138 ここでは、コマンド操作の基本と日本語化について説明します。 Raspbian では「コマンド入力」が頻繁に登場し ます。「コマンド」とは OS に対して与える指示のことで、キーボードで入力します。デスクトップ画面上端のバー にある、黒いウインドウのアイコンをクリックすれば「端末」 ( ターミナルとも呼ぶ ) が起動し、ここでコマンドを Raspbian のデスクトップが英語表記で立ち上がる。無線 LAN を使う場合は接続しておく 「コマンド入力」に慣れて日本語化、ツ。 テスり一ドヅプから端末 ( タミナルを開く 入力できます。そのコマンドを使って、実際に日本語入力ソフトをインストールします。 イマガジ - こをクリック 0 ロ・
$ sud0 raspi-config ロ 矢印キー ( 上下 ) と [ Enter ] キーで次のよ うに選択していく ☆ 5 lnterfacing 0ptions ☆ P4 S P I ☆ WouId you like the SPI interface to be EnabIed? ↑ここでく Y e s 〉またはくはい > を選択 ☆ T h e S P I i n t e r f a c e i s e n a b 1 e d ↑ここでく 0 K> またはく了解 > を選択 矢印キー ( 左右 ) とエンターキーで く F i n i s h > を選択する 図 3 S 曰機能を有効にする手順 MAIN SW MOTOR SW SW2 SWI Raspbian のインストール方法につ いては p. 132 を参照してください。 LAN ケープルを差すか、無線 LAN の設定をしてインターネットにアク セス可能にしておきます。 OS が準備できたら、ラズバイマ ウスに 車輪 拡張バーツ の下向きの センサー 図 2 ラズバイマウス各部の名称 Linux カーネルのヘッダーをインストール ( 必要に応じて「 sudo apt update 」 ) $ sudO apt install raspberrypi-kernel-headers ロ Gi t H u b からデバイスドライバをダウンロード $ git clone https://github. com/rt-net/RaspberryPiMouse. git ロ デバイスドライバのソース ( rtmo u s e . c) があるディレクトリーまで移動 $ cd RaspberryPiMouse/src/drivers デバイスドライバをビルド $ ma ke ロ デバイスファイルの権限を自動設定 $ s u d 0 ma ke i n s t a ⅱロ デバイスドライバをカーネルに組み込む $ sudO insmod rtmouse . k0 ロ ステッピングモーターをオフに $ echO 0 > /dev/rtmotorenO ロ センサーの動作確認 $ cat /dev/rt1ightsensor0 ロ 732 1282 1288 1323 図 4 デバイスドライバのセットアップ手順 本体を壊してしまわないよう十分に などとの距離を計測するために、距 注意して取り付けてください。 離センサーが水平方向に付いていま す。しかし、ライントレースをする ・ Linux カーネルのヘッダー OS のセットアップ にはセンサーが床面を向いている必 ・ラズバイマウスのデバイスドライ 次にソフトウェアをセットアップ 要があります。ラズバイマウスでは、 バのソース しましよう。 OS をインストールし、 下向きのセンサーが付いた拡張パー デバイスドライバをビルドできる環 ツが販売されているので (http ・ // が必要です。また、 Raspberry Pi の 境を整えます。その後デバイスドラ bit. ly/2wA18S2) 、今回はこれを取 SPI 機能 (SeriaI PeripheraI lnterfa イバをビルド、インストールします。 り付けましよう ( 図 2 ) 。 (e) を有効にする必要があります。 OS は Raspbian を用い、 Raspbian 組み立ての詳細については付属の まず、 SPI を有効にします。端末 のデスクトップ環境でプログラミン マニュアルを参照してください。怪 で図 3 のように設定ツール「 raspi- グして実行することを想定します。 我のないよう、またラズバイマウス を ・ティスプレイにつないだ HDMI ケ ーブル ・マウス、キーホード ・電源 ( 電池でもよいですが走らせ るまでは AC アダブターを推奨 ) をつなぎます。配線を確認後、二つ スイッチがあるうちの「 MAINSW 」 をオンに倒します。 OS が立ち上がっ たらデスクトップ環境から端末 ( LX TerminaI) を起動します。 ラズバイマウスは、専用のデバイ スドライバ経由で操作します。デバ イスドライバのビルドには ラスパイマガジン 2011.10
ラズハイと周辺機器の買い方から OS 導入方法まで 3 インストール作業 NOOBS が立ち上がってインストール 画面になる 0 ラズバイはハードディスクが なく、 microSD カードに OS を インストールする N00 5 ・ 4 ■トいおーーフ : 0 ー 1 デスクトップ画面 0 い国・ 0 成 ラズバイ 再起動 インストール OS ラズバイでの作業 ic OSD カドをフォットする SD カードのフォーマット専用ソフト「 SD カードフォーマッター」をダウンロードして microSD カードをフォー マットすると確実です。買ってきたばかりの microSD カードは通常フォーマットせずにそのまま使えますが、一度 ラズバイで使った micr 。 SD カードを再利用する際には、 SD カードフォーマッターでのフォーマットが不可欠です。 タウンロ - ド、盟 . ・ SDA 新 X 、十 第 4 使用に供するコンビュータ ←今 0 ー凸・い ~ 、。 = ム。 ~ 山可 本ソフトウェアは 1 台のコンピュータでのみ使用できます体ソフトウェアへのアクセス を忤可された 1 名の使用済みユーザーのみ ) . 数のコンピュータで使用することは できません . 5 診 SD ssocia 朝 0 れ ー第 5 曇リバースエンジニアリング、逆コンバイルまたは逆アセンプル ユーザーが居住する国の法規制が許す囲を除き、ユーザーは本ソフトウェアのリバース 工ンジ : アリング、逆コンバイルまたはアセンプルを行ってはなりません . 本ソフト ウェアの共同物作権者である株式会社トレンディ ( 以下、「トレンディ」という ) および バナソニック株式会 ( 以下 . 「バナソニック」という ) 、または本ソフトウェアを配市 タウンロード する SDA はいすれもソフトウェアの不員合について資任を負わす、ユーザーによる本ソフ トウェアのリバースエンジニアリング、コンバイ ) し逆アンプリから生した損当につ いて任を負いません . ー第 6 曇補価 本ソフトウェアは「現状有姿」で提供され、明示であるかまたは勲示であるかを問わす、 非優当、麕品性および / または時定目的・ヘの過合性を含む、しかしこれらに限定されない あらゆる保証を行いません . さらに、トレンディ、バナソニックおよび SDA は、本ソフト ウェアの動作が中断せす、エラーが生しないことを保しません . トレンディ、バナソ ニックまたは SDA は、ユーザーによる本ソフトウェアの使用が原因で、またはそれに関 して発生した損について任を負いません . ー第 7 物出規制 ユーザーは、それが必要な場合に、ユーザーが居住する国の規制が定める過切な臟出可 を得するここなく、いかなる国にも本ソフトウ 、ことに同 します . クリック ー第 8 使用評の終了 ユーザーが本契約書の契約条項のし、すれかに 権利はä動的に終了します . その場合 . ユーザ - ーソ それらのすべての複写をユーザーの員用で破第しなければなりませ Z 0 ☆ 、 n け )A 驪 00 豆川 ・お問い住せ・ユイ上マプ アソンエーションについてユーザー同け開発物け ダつンロート 、 : ユース & イへントー会員用サイト・利用嬶約サイト 目 , ダつンロート SD アソシェーションは、 SD 規格の技術白第 . 簡易仕様 書、および SD カードフォーマッターを提供しています . ダウンロードは下記のボタンから . クリック ダウンロ・一ド 》アソシェーション日書 》 SD カートフォーマッター 、 ) カート丿第 - マ当ター・物山 ) 物、用 与された 》同第しません 》周第します 00 「エンドユーサー使用許諾契約書」を読み、下の「同意し ます」をクリックする 50F0 「 ma e 「 - 5 ね h 回 d wzard WindowsJ\O ソコンで、「 https://www.sdcard.org/jp/downl oads / index. htm 凵にアクセスし、「 SD カードフォーマッタ ー Windows 用」をクリックする SDFo 「 ma せ e Ⅳ 4 圧宿フォルターツール 展問 ホーム 共有 表示 ドキュメント 、阯 enshots : 0 し「 SDFom e 「用の s お h ににウィサードへようこそ す ヒクチャ 。 17 m 3 h 旧旧 ( R ) ウィサードを使うと、 SDFo 「 metter を変更、修 正、およひ削除することがで・きます。続行するには、「冫大へ」をグル クしてください。 展先 ↑こを PC ) タウンロード ) 5 。 e Ⅳ 4 名前 setup アプリケ ーション ↓タウンロード 第デスクトップ ドキュメント 新とチャ デスクトップなどに移 動してダブルクリック よミュージック ファイルを解凍し、中にある setup. exe をテスクトップなど に移動し、アイコンをダブルクリックして実行する を第戻印ーキャンセル SD カードフォーマッターのインストールウイザードが 起動する 133 3
講 124 R ョ spb 日「「 Pi で楽しむ P 〔オーディオ・ ライブラリソースコードのクローン ( ダウンロード ) ライブラリのインストール ライブラリのビルド Finished processing dependencies for Adafruit-SSD1306==l . 6.1 Using /usr/10ca1/Iib/python2.7/dist-packages/Adafruit—Pure10-0.2. l-PY2.7 . egg ロ running egg—info running bdist—egg running install $ sudO python setup . py install ロ copying Adafruit—SSD1306/SSD1306. PY - > build/lib. linux-armv71-2 .7/Adafruit—SSD1306 i n i t copying Adafruit—SSD1306/ . py - > build/lib. linux-armv71-2.7/Adafruit—SSD1306 creating build/lib. 1inux-armv71-2.7/Adafruit—SSD1306 c r e a t i n g b u i 1 d / 1 i b . 1 i n u x - a rmv 7 1 - 2 . 7 creating build running build—py running build $ python setup. py build ロ $ cd Adafruit—Python_SSD1306/ ロ Checking connectivity . d 0 n e . Unpacking objects: 100 % ( 87 / 87 ) , d 0 n e . r e m 0 t e : T 0 t a 1 8 7 ( d e 1 t a 0 ) , reused 0 (delta 0 ) , pack-reused 87 remote: Counting objects: 87 , done . CIoning intO ・ Adafruit—PYthon—SSD1306 ・ $ git clone https://github. com/adafruit/Adafruit—PYthon—SSD1306 ロ すべてのサンプルコードで同様の記述があるので修正する。修正しなくても実行することはできるが、 128X32 ピクセル用の表示を無理やり引き伸ばした状態になる 図 9 サンプルコードの修正箇所 disp = Adafruit_SSD1306. SSD1306—128—64(rst=RST) ぐーこの行のコメントアウトを外す # 128x 64 d i s p 1 a y w i t h h a r dwa r e 1 2 C : # disp = Adafruit SSD1306. SSD1306 ー 128 ー 32 ( rst = RST ) < ー - この行の先頭に " # " を入れてコメントアウト # 128X3 2 d i s p 1 a y w i t h h a rd wa r e 1 2 C : GitHub で公開されているライブラリを取り込んで、ビルド、インストールする。開発者向けのコマンドで、あまりなじみのない手順だが恐れずに実行してほしい。 図 8 Adaf 「 uit ー SSD1306 ライブラリをインストール ので注意したい。 Python 用制御ライブラリの導入 今回準備した有機 EL ディスプレ イ M096P4W はコントローラーに香 港の Solomon Systech 社の「 SSD 1306 」を使っています。このコン トローラーをラズバイで使うため の Python ライプラリを米 Adafruit 社 * 2 が提供しています * 3 。 ライプラリは GitHub で「 adafru it/Adafruit_SSD 1306 」として公開 されています。 ラズバイにダウンロードするため に git パッケージを、また依存する Pyth 。 n の開発ライプラリと画像処 理ライプラリ Pi Ⅱ ow (PIL) をイン ストールします。 ラスパイマガジン 2011.10 必要なパッケージをインストール できたら、図 8 の手順で Adafruit_ SSD1306 ライプラリをインストール $ sudO apt install git python-d ev python-pil ロ サンプルプログラムの実行 します。 レイ向けになっています。 128 x 64 制御の 128X32 ピクセルのディスプ で試せますが、デフォルトでは 12C す。 M096P4W を認識している状態 es ディレクトリーに収録されていま は簡単なデモプログラムが exampl Adafruit_SSD1306 ライプラリに ピクセルの M096P4W に合わせて、 図 9 のようにサンプルコードを変更 して、 128X64 ピクセルの解像度があれ ば、再生中の曲名やアーティスト名 などといった日本語の文字列を表 示させられそうです。 Adafruit_SSD1306 では内部で Pi llow (PIL) ライプラリを使ってい $ python images . py ロ などとすると、 M096P4W にサンプ ルが表示されます ( 図 10 ) 。 日本語文字列の表示
Tensor 日 0 叫を 2 でみを sudO apt-get update ロ sudO apt-get install python3-pip python3-dev ロ wget https://github . com/samjabrahams/tensorflow-on-raspberry-pi/releases/download/vl . 1 . ()/tensorflow- sudO pip3 install tensorflow-l . 1 .0-cp34-cp34m-1inux_armv71 . whl ロ 1 . 1 . 0 ー c p 34 - c p 34m ー 1 i n u x_a rmv 7 1 . w h ] 図 2 s u d 0 p i p 3 u n i n s t a 1 1 mo c k ロ sudO pip3 install mock ロ Tenso 「日 ow のインストール python3 Pyt h 0 n 3 . 4 . 2 ( d e f a u 1 t , 0 c t 19 2 014 , [ GCC 4 . 9 . 1 ] on 1 i n ux Type "help" "copyright" ” c r e d i t s " > 〉〉 import tensorflow as tf V e r S 1 0 n Ⅵ . 1 . 図 3 TensorFIow のインストールを確認 ースのライプラリです。 Google 翻訳 の実装など、 Google 社内のプロダク ト構築に実際に用いられています。 TensorFIow は Python のライプ ラリです。 Raspberry Pi 用のバイ ナリーは用意されていないため、自 分でソースコードからビルドする必 要があります。ただしソースコード からのビルドは大変なので、有志の 方が Raspberry Pi 3 ModeI B 向け に公開しているバイナリーを利用し ます。もし自分でソースコードをビ ルドしたい場合は、手順を解説して いる筆者のプログ記事 (http ・ //or new. net/setup-tensorflow-for-rasp berry-pi) を参考にしてください。 図 2 のようにバイナリーをダウン ロードし、 pip3 コマンドでインスト ールします。ここでは Raspbian は 旧版の Jessie ( p. 135 参照 ) 、 Python は 3.4 を用います。もしも異なるバ ージョンを使っている場合は、別途 Python3.4 をインストールして使う 13 : 31 : 11 ) 0 r " 1 i C e n S e " か、ソースコードからビルドする必 f 0 r m 0 r e i n f 0 r m a t i 0 n . 「機械学習のハローワールド」と ましよう。 する Python プログラムを書いてみ spberry Pi 上で簡単なモデルを構築 顔認識モデルを構築する前に、 Ra 手書き数字の認識モデルを構築 います。 出なければインストールに成功して ポートしてみてください。工ラーが し、 TensorFlow パッケージをイン でインタラクテイプシェルを起動 図 3 のように、 python3 コマンド 要があるので注意してください。 称される MNIST * 3 という手書き数 字の画像の識別問題があります。 Te nsorFIow の公式チュートリアル * 4 に基づき、手書き数字の画像から、 描かれた数字が何であるかを分類す るための簡単な「ソフトマックス回 帰モデル」を Raspberry Pi 上で構 築します。 ここで作りたいのは、入力として 「手書き数字の画像」を受け取り、 出力として「どの数字であるか」を 返す「何か」です。 この「何か」を関数として定義し ます。また、「手書き数字の画像」を x 、「どの数字であるか」を y 、「何 * 1 Taigman, Yaniv, et al. "Deepface: Closing the gap to human-level performance in fa ce verifi cation. ” P roceed i ngs Of the IEE E conference on computer v i sion and pattern rec ognition. 2014. * 2 Amos, Brandon, Bartosz Ludwiczuk, and Mahadev Satyanarayanan. Openface: A general-purpose face recognition library with mobile applications. ” CMU SchOOl Of Com puter Science ( 2016 ). * 3 MNIST のデータは Yann LeCun 氏の Web/X—ジにホストされています (http://yann 」 ecun. com/exdb/mnist/) 。 * 4 MNIST For ML Beginners (https://www.tensorflow.org/get_started/mnist/beginne rs) ラスパイマガジン 2011.10 109
特集 5 「ラす彡ト彡 = 刃レよプ センサ = を補正しで行き先を決定 config 」を操作します。 mouse—linefollowerl. py 」とします。 も構いません。ファイル名は「 raspi 書いていきます。保存場所はどこで こでは Leafpad) を使ってコードを 次のようにテキストエデイタ ( こ spimouse_linefollower) 。 い (https://github.com/Tiryoh/ra 開しています。そちらもご覧くださ 介するコードはすべて GitHub に公 く方法で説明しますが、本記事で紹 今回はコードをゼロから書いてい sie では 3.4 、 Stretch では 3.5 ) です。 用する言語は Python (Raspbian Jes らセンサー値を取得しましよう。使 いきます。ますデバイスファイルか ライントレースのコードを書いて Python でデバイスファイル操作 よう」の項目で説明します。 な理由は、後の「モーターを制御し グモーターをオフにする作業が必要 作業をしてください * 3 。ステッピン ステッピングモーターをオフにする デバイスドライバのインストールと 時のみです。 2 回目の起動時からは ダウンロードやビルドは初回起動 * 2 な値が取得できることを確認しまし つのセンサーからおおむね同じよう よりセンサー値は異なりますが、四 開きます。センサーと床との距離に って作成されたデバイスファイルを しましよう。デバイスドライバによ サーの情報が取得できることを確認 インストールが終わったら、セン se からダウンロードします。 GitHub の rt-net/RaspberryPiMou トールします。デバイスドライバは のヘッダーは apt コマンドでインス 作の確認をします。 Linux カーネル イバのビルドと、インストール、動 端末で図 4 のようにデバイスドラ 1 #!/usr/bin/env python3 - ☆ - cod i n g : u t f - 8 - ☆ - 3 4 7 8 9 10 12 13 14 15 16 図 5 import time # sleep のためのモジュールをインポート 5 # デバイスファイルからセンサー値を取得する関数を用意 6 def get_line_sensor_data(): with open('/dev/rt1ightsensor0 ・ r a w d a t a f . r e a d 1 i n e ( ) っ a s f : ] i s t_d a t a r a W return map(int, i f n a m e ma i n —data . split() list—data) + C ] で止めるまで無限ループ right, right_end get_line_sensor—data() left, right, right_end) t i me. s 1 eep ( 0 . 1 ) # 0 . 1 秒ごとにループを繰り返す raspimouse linefollowerl . py while True: # [Ctr1 left_end, left, print(left_end, 図 5 が最初に書くコードです。 このコードでは 6 ~ 10 行目の 「 get—line—sensor—data 」関数で「 / dev/rtlightsensor0 」を開き、センサ ーの値を取得しています。この関数 内部の処理について少し説明しま す。この関数は引数を取りません。 7 行目でデバイスファイルを開き、 8 行目で文字列を 1 行読み取ります。 図 4 でのセンサーの動作確認例のよ うに、数字がスペースで区切られた 文字列が取得できます。 9 行目で文 字列をスペースで分割しリストに変 換しています。 10 行目では map 関 数を使い、リスト ( 「 list_data 」 ) 内 の文字列ーっずつを int 関数で数値 に変換し、返しています。 map 関数 は一つめの引数に与えた関数を、 つめの引数に与えているリストの要 素ーっすつに適用します * 4 。 の get_line_sensor_data を使 い、 14 行目ではセンサーの値を各変 数に代入し、 15 行目で標準出力へ出 力しています。 16 行目では 0.1 秒の スリープを入れ、ループの時間を調 $ leafpad raspimouse linefollo werl . py ロ 整しています。 Leafpad ではキーポードの Ctrl と S を同時に押して ( ℃ trl + S] と表 記 ) 、コードを保存できます。コー ドを保存したら、エデイタを終了し ましよう。保存したコードに次のよ うに端末で実行権限を付与します。 chmod コマンドを使います。 権限を変更した後、次のように実 行します。センサー値が取得できる ことを確認できたら、℃ trl + C] で 中断しましよう。 * 2 S 曰が有効になっていないと、センサー の動作確認の段階でエラーが出てしまうので 注意してください。 * 3 テパイスドライバのインストールとステッ ピングモーターをオフにする作業を起動時に 自動で行うよう設定することも可能です。設 定用のスクリプトを GitHub に公開しました ( ht tp://bit 」 y/2vZdnzh)0 こちらのスクリプトの 作業内容については、付属の日 EADME をご 覧ください。 * 4 標準のセンサーの場合は外側右、内 側右、内側左、外側左の順ですが、ライントレ ース用のセンサーでは左右逆では紛らわしい ので反転されています。 $ chmod + x raspimouse_linefoll owerl . py ロ . /raspimouse linefollowerl . p ラスパイマガジン 2011.10 第 4
mic 「 OSD カご OS をイッスー ) い ラズバイの OS 「 Raspbian 」を microSD カードにインストールします。この作業は 2 段階に分かれます。ます、 os インストール用のツール「 NOOBS 」を microSD カードにコピーします。その次に microSD カードをラズバイに 差し込んで起動し、画面に従ってインストール作業を実施します。 ・ h ps : 〃 w 、い、 . 「 aspb ・ 0 / d 。 w 司。記 5 / P ・ & 0 ・ R p レ町 PiDow 。い HELP COMMUMTY DOWNLOADS HELP NOOBS DOWNLOADS 3eglnnersshouldstartwithNOOBS— NewOutOfthe &)xSoftware Yo し 03n purchase 3 pre-instal;ed N00 日 S SD card f 「 0n1 many 訓 e such as 日ロ亠 自を and 工三上は . 0 「 downtad NOOBS に w and fOilOW the 彑日上三鑓 0 凵 and 旦ュ」リエミ」」 0 0 in 0 い help pages NOOBS に an easy ope 「 ating system instatler which contains 日ミ 00 ュに so provdes 3 selection Of alternative operating systems which 3 「 e then downloaded 曾 0n1 the internet and instalted. N006S 凵 t ・ 00n いⅵ s the same ope 宿を ng system in 靆ま w 盟 10 ま Raspbian pre- b30e0. 代 p 「 0 ⅵ 02S the same operating system selecti and 0 物 e ⅱ mages tO be downloaded and instailed クリック Raspbian is the Foundation ・ s 0 0 pport Operating System. Download it he 「 e. 0 「 use N006S ou 「 easy in er for Raspbian and mo 「 e. 「 DownIoad 刀 P 」を選ぶ NOOBS LITE 0 いⅡツ NOOBS 0 廰 3 冊ぬ を 0 と 5 ト 256 、 13 : b 当 10 を 4 4 : 30 は : 1 ! 3 ! 5 ! ( 90b5 一 24 醺 : : 3 0 を 51 5 ト A ・ : . ! 0 ー : : 0 ! を石 0 64 ! 10 ~ : をを 59100 ー ! 31 : 4 北地 : 404 「 NOOBS 」の「 Download 刀 P 」を選んで、 NOOBS をダウンロ ードする ( 2017 年 8 月 18 日時点の最新版は 2.4.3 ) 旧版の Raspbian Jessie (NOOBS 2.4.2 ) を使う場合は「 http://ftp.jaist.ac.jp/ pub/raspberrypi/NOOBS/images/NOOBS-2017-07-05 / NOOBS - v2 一 4 ー 2. zip 」 ( 短縮 URL 「 http://bit.ly/2wzaCOV」 ) からダウンロード。 託 : 1-04- : 0 RASPBIAN DOW 可 0 TO DOw 00d ZIP 2D0 、 0 To e Do つ 0 朝 WindowsJ ヾソコンで、「 http://www.raspberrypi.0「g/d0W可 oads 」にアクセスし、「 N 00 BS 」をクリックする うイフアセス - にい の 1 フトつ - ク 4 れクレプ ⅸヤ物” 4- : れイ物 トはー 0- ツまわ ⅸ m ご 0 ” - ゝま上 象 Dut ム よい - ジ 1 0- カーを 1 クに ノヾソコンから mic 「 OSD カードを取り出す ダウンロードした刀 P ファイルを展開し、中身をすべて mic 「 oSD カードにコピーする 起動する )I(Raspberry P ⅱ々の場合 ) 」 USB キーポードをつなぐ microSD カードをラズバイに挿す。しつかり奥まで押し込む ()i 1 / 2 ではカチッという ) イマガジン 135