接続 - みる会図書館


検索対象: ラズパイマガジン = Raspberry Pi Magazine 2017年10月号
115件見つかりました。

1. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

号を入力する場合は注意が必要で す。出力先では、パルス幅で電圧を 変化させる PWM (pulse Width Mo dulation) になるからです。これでも LED の明るさやモーターの回転数 は、 PC ボードなどからます問題な く制御できます ( 図 6 の① ) 。 アナログセンサーなどの入力値 も PWM で出力されますが ( 図 6 の ② ) 、入力された電圧値はシリアル 出力から読み出せます。特に今回親 機として利用する MONOSTICK な ら、 USB 経由のシリアル通信で読 み出せて手軽です * 2 。 USB 経由で、 デジタル・アナログ両方のデータを やり取りできます。 それでは早速作っていきます。 ( 1 ) Raspberry Pi の準備、② TW ELITE へファームウェアの書き込 み、 ( 3 ) 子機へのセンサー接続、 ( 4 ) プログラム作成の順に進めます。 扉が閉じているとき磁石がくつついていて 扉が開いているとき吟磁石が離れていて オフ ( 非導通 ) オン ( 導通 ) 例 用 の 4 チ ッ イ ス 気 子 4 石 磁気スイッチ Twitter へっぷやき 親機 TWE 凵 TE DIP Python 温度センサー /dev/ttY SB Raspberry Pi TWELITE DIP 図 5 センサー情報を無線で収集する今回のシステム デジタルデータ 親機 で送信 デジタル入力 ( 4 本 ) デジタル出力 ( 4 本 ) LED など R ヨ spb 日「「 y Pi に アナログ入力 ( 4 本 ) PWM 出力 ( 4 本 ) ラ彳プラリを導入しよう スイッチや デジタル入力 ( 4 本 ) デジタル出力 ( 4 本 ) センサー Raspberry Pi には推奨ディスト PWM 出力 ( 4 本 ) アナログ入力 ( 4 本 ) など リビューションの「 Raspbian 」を使 シリアル ()x 、 Tx) シリアル ()x 、 Tx) 他のマイコン ポードなど います ( p. 50 に示す NOOBS 2.4.2 を 利用 ) 。インストールしてタイムゾ ーンや時刻を正しく設定します。 USB ドングル版の MONOST 旧 K では IJSB 経由でデータをやり取りできる 本記事で用いる TWELITE 用の 図 6 TWELITE の仕組み P C ポードやマイコンポードからは、子機につながった部品が直接つながっているように見える。このほか、 プログラムなどは p. 50 に示す読者限 12C にも対応している。 定サイトに用意しています。 USB メ ケーブルを " 無線化 " できる で制御するスイッチで、リードスイ モリーなどを用いて RaspberryPi ッチとも呼びます。磁石が近いとオ TWELITE の仕組みを簡単に紹 の / 叩 t / にコピーして展開します。 ン、遠いとオフになります ( 図 4 ) 。 介します。 TWELITE を使うと、 PC ポードや各種部品の間をつなぐケー こうしてセンサーから集めたデー プルを、手軽に " 無線化 " できます タを Raspberry Pi でチェックし、部 屋が一定温度を超えたときや、扉が ( 図 6 ) 。例えば PC ボードに親機をつ ロこのマークで改行 開閉したときに Twitter につぶやく なぎ、子機に部品をつなぐと、 PC システムに仕立てましよう ( 図 5 ) 。 ポードから部品が直接つながってい / op レに MW_App_Tag というディ PC やスマートフォンなどから、い るように見えます。 PC ポード同士や レクトリーができます。これを作業 つでも自宅の状況をチェックしてペ 部品同士も、もちろんつなげます。 用ディレクトリーとして使います。 ットの見守りなどができます。 ただし TWELITE にアナログ信 その構成は図 7 の通りです。 MONOST ℃ K 磁気スイッチ 子機 PC*—ド やマイコ ンポード に接続 $ cd /opt ロ $ sud0 tar xzvf MW_App_Tag . tar. gz

2. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

気センサ = を啗 C で動かそプ case 1 第ビン配置 ( 通常の 0 ー p と同じ反時計回りの配置です ) ビン番号 名称 グランド GND 1 シャットダウン SHDN 2 RST 3 リセット GND 4 グランド ※ 1 番ビンはランドが・ではなく第になっています。 ※全ての GND 端子は基板内で繋がっています。 図 3 各ピンの使い方を確認 ストロべリー・リナックスの資料より。 ビン番号 写真 用途 名称 VDD NC SCL SDA 用途 電源 ( 2-375V ー 5.5 Ⅵ ( 未接続 ) 12C クロック 12C データ 8 7 6 5 3.3V VDD NC SCL SDA ・・・ GND SHDN RST GND 8 7 6 5 R 器 pbe 「円 3 VDD GND M 11 NC SHDN RST SCL SDA GND G 円 0 G 円 0 社 0 円 016 G 円 012 G 円 02 AI 12C G 円 0 ] い t2C G 円 04 G 円 0 G 円 02 ー G 日 0 れ 1 2 3 4 の - QC のを E ou 6 円 07 冊 - C 日 N 6 円 06 _CEt_N G 円 0 わ 4 円 3Mod 創 8 ⅵ、 2 G 田 010 SP 第一引 G 円 0 3.3V SDA SGLfZND. 図 5 描いた配線図 8 ⅵコ 図 4 作成した回路図 図 6 購入した MPL115A2 実際に利用するときの大きなヒント す。回路が決まらないと、センサー で常に稼働させましよう。 以外に必要な部品が分かりません。 になります。 併せて先人のプログをいくつか見 MPLI 15A2 のページを詳しく見 最初にストロべリー・リナックスの て、上の解釈が正しいかどうかを確 ページにある説明書 (PDF) を見ま ると、測定範囲は 500hPa ( ヘクト 認します ( 人気マイコンポード「 Ard パスカル ) す (https://strawberry-linux.com/ ~ 1150hPa 。精度は士 uino 」の作例も参考になります ) 。ど pub/mp1115a2-manuaI. pdf) 。 2 ペー うやら正しいことを確認して描いた 10hPa とあります。 1013.25 hPa が 1 気圧で、台風情報などでなじみの ジの簡潔なものですが、このモジュ 回路図が図 4 です。同様に配線図も ールが持っ 8 ピンの各機能などが説 書きました ( 図 5 ) 。 ある単位です。精度は士 10hPa なの 明されています ( 図 3 ) 。 で、割と大ざっぱですが気にしない ここまでできたら部品を購入しま SDA 、 SCL は 12C の端子で Rasp しよう * 1 。 ことにします。 berryPi の同じ端子につなぐだけ。 なおストロべリー・リナックスの VDD は 3.3V 端子、 GND ( グラウン ほかにも、秋月電子通商やスイッチ ハンダ付け後に回路を組む ド ) は GND につなぎます。 NC は何 サイエンス、千石電商、マルツなど 部品が届いたら回路の組み立てで も接続しないとあります。残りはど す。回路を組まなければ、試しなが いろいろなショップがあります。そ んな端子でしようか。 れぞれ調べて好みのショップを見つ らソフトを作ることもできません。 けましよう。 SHDN と RST はどちらもグラウン ド (Low) に落とすことで、チップ * 1 このほかブレッドボード ( P -05294 ) とジ の機能を一時的に止めるための端子 回路図を書いて部品を決定 ャンパー線 ( オス - オス C -05159 とオス - メス C -08933 など ) も必要です。 センサーを決めたら回路を考えま のようです。ここでは 3.3V につない ラスパイマガジン 2017.10 特別付録

3. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

用語解説 Ubuntu MATE ( マテ ) lJbuntu の公式派生版 ( フレイバー ) の一つ。画面上部のバ ネルからメニューを表示して、アプリや設定ツールを起動 する、「 Windows XP 」に似たインタフェースを持つ。 ラズバイ風 " ド画を大検諷 特集 2 表 1 P ト 2- bus のピンアサイン 表 2 Eu 厄「 bus のピンアサイン 2 DC IN 4 DC 爪 6 GND 8 5V 10 PH8 12 P B4 14 GND 16 P B7 18 P D4 20 GND 22 PD5 24 P DO 26 P D6 28 P D8 30 PB9 32 EAROUTN 34 GND 表 3 EXP のピンアサイン 3.3V 1 充電 LED 十 3 パワースイッチ 5 UARTO TX 7 GND 9 機能 ピン番号 機能 機能 機能 ピン番号 機能 システム 2 LED 十 リセットス 4 イッチ 6 GND 8 UADTO RX 10 KeyADC 3.3V 1 2 5V に 1 SDA 3 4 5V に CI SCL 5 6 GND GPCLKO 7 8 G 曰 014 GND 9 10 G 曰 015 G 曰 017 12 G 日 018 G 日 027 14 GND GP ℃ 22 1 6 G 曰 023 3.3V 17 1 8 G 日 024 SPI M03 20 GND SPI M 旧 0 21 22 G 曰 025 SPI SCLK 23 24 G 曰 08 GND 25 26 G 曰 07 SD SD 27 28 SC G 日 05 29 30 GND G 円 06 31 32 G 曰 012 展開したファイルを microSD カ G 曰 013 33 34 GND 36 G 曰 016 G 曰 019 35 ードに書き込みます。 Linux なら工 G 曰 026 37 38 G 曰 020 ラーチェックとリトライがある dd GND 39 40 G 曰 021 専用の Volumio Digital Audio Play rescue を使った方がよいでしよう。 係で利用できないので、使わないピ er など多数のイメージファイルが取 Linux 機が Ubuntu なら次のように ンヘッダーと考えておけばよいでし りそろえられています。ますは、最 インストールします。 も一般的と考えられる Ubuntu 16.04 LTS を例にしながら基本的なセット PINE A64 のストレージは Raspb erry Pi シリーズと同じく microSD アップを見ていきましよう。 カードです。 2 基の USB2.0 ポート、 Ubuntu の microSD カードイメ ディスプレイを接続する HDMI ポー ージとして、 GUI を含む Ubuntu microSD カードを PC に接続し、 ト、ギガビットイーサネットを備え 書き込みを実行します。 Linux 機で MATE のイメージファイル、べース イメージ (Base lmage) 、最小イメ ます。また、電源供給も Raspberry は microSD カードが /dev/sdc とし ージ (MinimaI lmage) の 3 種類が Pi シリーズ同様 Micro USB 端子が て認識されたと仮定しますので、デ 用意されています。サーバーとして 採用されています。使用する AC ア バイス名は読者の環境に応じて読み ダブターまたは USB ハプの電源供 利用するのであればべースイメージ 替えてください。 給能力は 5V2A 以上が推奨です。 や最小イメージを、そうでないなら Ubuntu MATE を選択するのが便 $ sudO ddrescue -f . /xubuntu-xe n i a 1 - ma t e ー 2 0161215 - 1 0 n g s 1 ee p - p 利でしよう。使用する microSD カー ine64-8GB . img /dev/sdc ロ ドは 8G バイト以上にしてください。 なお、 Windows 機でダウンロー では、 PINE A64 への OS のイン ストールと起動、セットアップの基 ドし、 microSD カードに書き込む場 8 月時点では、 Ubuntu MATE の 合は展開に 7-Zip * 3 などを、書き込 本的な方法を紹介していきます。 PINEA64 ですぐに使える OS の イメージファイルを xubuntu-xeni イメージファイルは公式の Wiki か al-mate-20161215-longsleep-pine64- 8GB. img. gz というファイル名でダ ら多数リンクされています * 2 。 ウンロードすることができました。 Ubuntu 、 Debian 、 openSUSE 、 Fe 作業用の PC が Linux 機なら、次 dora などおなじみの L ⅲ ux ディスト のコマンドを実行して展開してくだ リビューションに加え、デスクトッ プに特化した Q40S や、オーディオ さい。 3.3V 1 リチウムイオン 3 バッテリー十 温度センサー 5 7 GND 9 P B3 1 1 PB5 13 PB6 15 3.3V 17 PD2 19 PD3 21 PDI 23 GND 25 PB2 27 PB8 29 EAROUTP 31 未接続 33 $ gzip -dc xubuntu-xenial-mate - 20161215 - longsleep - pine64 - 8GB . img . gz >xubuntu-xenia1-mate-2 0161215 ー 1 0 n g s 1 e e p - p i n e 64 - 8G B . i mg ロ 0 $ sudO apt update ロ $ sudo apt install gddrescue ロ Ubuntu 16.04 LTS を使ってみよう mic 「 OSD カードへの書き込み * 1 http://files.pine64.org/doc/ Pine%20A64%20Schematic/Pine0/020 A64%20Pin%20Assignment%20 1 60119. pdf を参考にしました。 * 2 http://wiki.pine64.org/index.php/ P i ne A64_Software_Release * 3 https://sevenzip.osdn.jp/ ラスパ ガジン 2011.10

4. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

overlay dht11@0 { compatible "dhtll" "default" pinctrl-names く 0X1 〉 : pinctrI-0 く 0xdeadbeef 0X4 0X0 > : gP10S "okay" status phandle = く 0X2 〉 : overlay dhtll—pins { = く 0X4 > : brcm,pins = く 0X0 〉 : brcm,function brcm,pull = く 0X0 〉 : phandle = く 0X1 〉 : ロ 図 17 DHTII に関連する部分 ( d 11. dts ) (g) が多数出ると思いますが気にす る必要はありません。 作成された dhtl 1. dts をのぞい てみることにしましよう。 Device Tree のソースコードの記述方法は かなりややこしいものですが、少し 手を加えてカスタマイズする程度な らさほど難しくはありません。 例えば、今回の回路では GP104 に DHTII や AM2302 を接続しました が、別の GPIO を使いたいこともあ るはずです。作成された dhtll. dts を見てみると、図 17 のような箇所 があります。 「 dhtll@0 」セクションの「 gpios 」 の右辺で使用する GPIO を設定して います。「 0xdeadbeef 」は下のター ゲットを識別する文字列で、「 0X4 0X0 」が GPIO の指定です。「 0X4 」を、 例えば「 0X5 」に変えれば、 DHTII や AM2302 を GP105 番に接続でき るようになります。 ただし、さらに「 dhtll_pins 」セ クションの「 brcm,pins 」の右辺に ラバイマガジン 2011.10 uuid 00000000 ー 0000 ー 0000 - 0000 - 000000000000 id 0X0002 product_ver 0X0002 "GADGET LTD.' "Raspi Magazine DHTII board" product vendor product product gpio—drive 0 gpio—slew 0 gpio_hysteresis 0 back—power 0 図 18 eeprom—settings. txt の内容 ある数値も「 0X05 」に換える必要が あります。 以上のように、カスタマイズした い該当箇所を変更すれば自前の Dev ice Tree Overlay を作成できます。 ソースコードから、 Device Tree Overlay のバイナリーを作成するの にも Device Tree CompiIer を使い ます。 $ d t c - I d t s - 0 d t b - 0 d h t 11 . d t b d h t 11 . d t s ロ これで DHTII 用の Device Tree (dhtll. dtb) OverIay のバイナリー が作成されます。 EEPROM に HAT 用イメージを書く では、 dhtll. dtb とそのほかの情 報をまとめてシリアル EEPROM に HAT 用のたたき台となるデータを 書き込んでみましよう。まず、 ee prom-settings. txt を作成します。 GPIO は特に eeprom_settings. txt の 中で設定する必要はないので、図 18 のような eeprom_settings. txt を用 意します。もちろん、読者が自由に 変更して構いません。 eepmake コマンドを使って、たた き台となるシリアル EEPROM のイ d h t 11 . e e p d h t 11 . d t b ロ . /eepmake eeprom_settings . tx メージを作成します。 t 作成されたイメージファイル (dhtll. eep) をシリアル EEPROM に書き込みましよう。 $ s ud 0 . / e e p f 1 a s h . s h 64 -f=dhtll . eep ロ - W -t=24c 「 Done. 」と表示されれば書き込み 成功です。ラズバイを再起動させて ください。 DHTI 1 用ドライバの使い方 再起動後、 DHTII のドライバが 正常に読み込まれたことを確認しま す。次のようにコマンドを実行して 読み込まれていないようなら、シリ アル EEPROM が正常に作成されて いません。 $ lsmod ー grep dhtll dhtll 0 i n d u S t r i a 1 i 0 1 d h t 11 4 210 62929 DHTII のドライバは「 Linux ln dustrial I/O Subsystem 」 ( 略称は 「 Linux IIO 」 ) として作成されてい ます。 Linux IIO のデバイスは「 / sys/bus/iio/device 」以下からアク セスできます。 今回の設定では DHTII が唯一の Linux Ⅱ O デバイスなので、 DHTII には「 /sys/bus/iio/devices/iio:de ⅵ ce0 」以下のファイルを通じてアク

5. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

一、 0 咏がこほないお作ろプ ーで傾きを Raspberry Pi は電子工作を手軽に楽しめるのが大きな魅力です。加速度センサーを取り付けて傾きを検知し、サーボモー ターで傾きを調節して水平を保つ「バランストレイ」を作成してみましようよこうした「フィードバック制御」はロボット製 作の基本になる技術です。ここでは加速度センサーで傾きが分かる仕組みも詳しく解説します。。 ( ライター福田和宏 ) トレイに液体を入れたコップを載 す。 Raspberry Pi は筆者は Pi 3 を使 なくなります。加速度センサーでは、 せたとき、トレイの取っ手を持って傾 いましたが、どのモデルでも問題なく このコンデンサーの一方の板を固定 使えます。 OS は Raspbian を利用し けたとしても、水平を保ってくれる していて、もう一方をバネに付けてあ 「バランストレイ」を作ってみましょ ます。 ります。これで加速がかかるとバネが う ( 図 1 ) 。 伸び縮みして、板の間の距離が変わ 加速度センサーと センサーにはモノの動きを検知す ります。このときの電荷の量を計測す サーボの動作原理 る「加速度センサー」を使い、特定 ることで加速度が分かるのです。 の回転角度に制御する「サーボモー ます今回のフィードバック制御を ター」 ( サーボ ) でトレイを動かしま 実現する加速度センサーとサーボの 重力という加速度で傾きを検知 す。加速度センサーでトレイの角度を 動作原理を紹介します。 この加速度センサーで傾きを調べ 読み取り、水平方向という目標に向 られるのは、地球では重力により、真 かって動くようにします。 加速度はコンデンサーで分かる 下方向に常に加速がかかっているか サーボは 2 個使い、それぞれ前後方 トレイの傾きを調べる加速度セン らです。バネの原理で考えれば分か 向と左右方向のすれを元に戻します。 サーは、取り付けたモノが加速してい りますが、板がバネの下にあればバネ このバランストレイの手法はロポット る度合いを電圧や数値として出力す は伸びますし、逆なら縮みます。この の姿勢制御などでも用いられていて、 るものです。これでトレイの傾きが分 地球の重力による加速度を IG と表し ロボット製作の基本ともいえます。 かります。 ます。 今回の工作で購入した機器は表 1 加速度センサーは「コンデンサー」 今回利用する加速度センサーは 3 の通りです。サーボ制御用のドライバ の原理を利用して加速度を検出しま 軸、つまり縦 ( x 軸 ) 、横 ( Y 軸 ) 、高 ーは 2 種類を紹介していますが、どち す。コンデンサーとは 2 枚の導電性の さの (Z 軸 ) の 3 方向の加速度を計測 らも「 PCA9685 」というチップを使っ 板を向かい合わせにした素子です。板 できます。加速度センサーが水平にな ていて基本的な使い方は同じです。ど の間に電圧をかけることで、一方には っていれば、高さ方向に IG の加速度 ちらか一方を使ってください。このほ + 電荷が、他方には一電荷がたまり が検出されます。これを基準に、縦 かにジャンパー線などのケープルや、 ます。たまる電荷は、板同士の距離 や横方向にも加速度が検出されます 傾 0 、た角度を調 取っ手を組み上げる板などが必要で が近くなれば多くなり、遠くなれば少 この加速度から、 ミルクを入れたコップを トレイは水平に保たれる 表 1 部品表 加速度・ジャイロセンサー 「 MPU -6050 」 サーポモーター 「 MiniS 日 B90 」 ( 2 個 ) サーポドライバーは次のどちらかを利用 PCA9685 搭載 16 チャネル PWM/ サーポドライバー 02C 接続 ) Adafruit に C 接続 16 チャンネル 12 ビット PWM/ サーポシールド 参考価格 参考購入店 品名 Amazon. CO. jp ( MPU -6050 で検索 ) 千石電商 (2A4A-JAJP で検索 ) スイッチサイエンス (http://ssci.t0/961 ) スイッチサイエンス (http://ssci.t0/1411 ) 210 円 1810 円 2095 円 2462 円 図 1 トレイの傾きを水平に保つ「バランストレイ」 サーポモーターがニっ付いていて、それぞれ前後、左右の傾きを調整する。 ラスパイマガジン 2017.10 特別付録

6. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

ロ WiringPi を導入 続いて、電子工作で便利な定番の 4 ライプラリ「 WiringPi 」の最新版を 物 インストールしてください。 2017 年 8 月 7 日時点で Raspbian に入ってい る WiringPi はうまく動作しない場 合があるので、一こでは最新版を導 1 番ピンならこ , ハンダごてを当てる ◆ ◆ 0 図 8 ハンダ付けを終えたところ 図 7 ブレッドボードに載せてハンダ付け する ◆ 0 ◆ 0 ◆ 々 ◆ 0 $ g i t c ] 0 n e g i t : / / g i t . d r 0 g 0 n . n et/wiringPi ロ $ c d w i r i n g P i ロ . /bui 1 d ロ $ i2cdetect -y 1 a b c d e f 3 4 5 6 7 8 9 0 1 2 0 0 ・略 0 0 レジスタの読み書きで制御 それでは MPL115A2 に実際にア クセスしてみましよう。 12C デバイ スのアクセスに便利なコマンドが、 12C 用のツール「 i2c-tools 」が備え 年 8 月 15 日時点で最新版の NOOBS 購入した MPL115A2 には前ページ る「 i2cget 」と「 i2cset 」です。そ の図 6 のように、モジュール基板とピ 2.4.2 を使って Raspbian を導入しま れぞれ読み出しと書き込みを実行し した (NOOBS のバージョンについ ンヘッダーが入っていました。少々敷 ます。なお前述の i2cdetect も i2c- ては p. 50 参照 ) 。以下では端末 (LX 居が高いですが、ピンヘッダーはハン t001S に入っているものです。 Terminal) で操作していきます。 ダ付けが必要です * 2 。 ところが、ここからが大変です。 プレッドボードにピンヘッダーを差 まず既定では無効になっている 先ほどのストロべリー・リナックス し、モジュールを載せてハンダ付けす 12C を有効にします。 のドキュメントは、初心者が読んで るのが楽です ( 図 7 ) 。ハンダごての もなかなか理解できません。 12C デ 先をピン先とモジュールの接触点に バイスの基本的な仕組みを知って、 $ s u d 0 r a s p i ー c 0 n f i g ロ 当て、両方を少し温めてからハンダを 「データシート」を読み解く必要が 当てて流し込みます ( 図 8 ) 。ただし で設定ツールを起動し、「 5 lnterfac あります。 ing Options 」 - 「 P5 12C 」を選択し あまり長時間ハンダごてを当てると、 12C デバイスの仕組みを説明しま プレッドボードが熱で溶ける危険性 て、「はい」を選び、次に「了解」を しよう。 12C デバイスは通常、パソ があります。作業時には火傷をしたり 選びます。 コンの CPU と同じような「レジス この後、図 9 のように「 i2cdetect 」 しないよう十分に注意してください。 タ」を備えます。処理するデータを コマンドを実行すると「 60 」が表示 ハンダ付けした MPL115A2 を、図 一時的に保存する、 1 ~ 2 バイト程 5 の通りに配線して Raspberry Pi と されるはずです。これが MPL115A2 度の小さな記憶領域です。 と通信するときに指定する 12C アド 接続すれば、回路の完成です。 このレジスタを読み書きすること レスで、 Raspberry Pi から見えてい で 12C デバイスを制御できます。あ ることが確認できます。 るレジスタにデータを書き込むと、 、ラズバイから卩〔 60 が出なかったら回路が正しいか デバイスの設定が変更されたり、セ デバイスにアりセスする どうか見直してください。ジャンパ ンサーが実際に起動したりします。 一線の抜き差しは Raspberry Pi の ここからは Raspberry Pi での作 センサーが測定した値は特定のレジ 業に移ります。 Raspberry Pi はどの 電源を切り、電源ケープルを抜いた スタを読むことで得られます。セン モデルでも構いません。 OS は 2017 状態で実施します。 サーを起動するのに、特定のレジス ーラスパマガジ - 201 え 10 特別付録 図 9 i2cdetect コマンドで卩 C テパイスを確認

7. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

144 ーファイルやフォルダーを削除する コマンドの例 7 $ rm -rf myfolder ロ もすべて再帰的に削除します。 現在のフォルダーにあるフォルダー「 myfolder 」を削除します。というオプションを付けると、サプフォルダーの中 $ rm fi 1 el ロ 現在のフォルダーにあるファイル (filel) を削除します。 コマンドの例 8 $ n a n 0 f i 1 e . txt ロ f ⅱ e. txt というテキストファイルの内容を表示します。テキスト形式ではないファイルを表示しようとすると文字が化け テキストファイルの編集には「 nano 」や「 vi 」コマンドが使えます。 nano は [Ctrl 十 O] で保存、 [Ctrl 十 X] で終了です。 コマンドの例 9 $ ca t f i 1 e . txt るので注意してください。 コマンドの例 10 ままコマンド名として指定します。コマンドそのものも、多くはこのように実行可能なファイルとなっています。 実行権限が与えられたファイル「 file 」を実行するには、同じフォルダー内から、半角の「 . / 」を付けてファイル名をその $ c hmo d 7 5 5 f i 1 e ロ れば実行できません。「 755 」は、ファイルの所有者に実行権限を与えるという意味です。 アプリやプログラムのファイルのように、実行できるファイルがあります。これらのファイルは実行権限を付与しなけ コマンドの例 12 $ ip a コマンドの例 11 LAN に接続されている場合、次のコマンドで IP アドレスなどのネットワーク情報を表示できます。 . / fi 1 e ロ できます。 filel . txt に保存するには、半角の「 > 」でファイル名を指定します。 コマンドの結果は、通常、端末の画面上に表示されます。それを端末ではなく、テキストファイルとして保存することも イマガジ - 何らかのコマンド > f i 1 e 1 . txt

8. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

4 2200 円の 0 「 ange Pi を試そう PART ラスパイの工作ライコラリが - 部動《が ー A 「 mb 佃れのサポートに期待 が移植され : 実際に動かせましたよしかし 2C と S 曰は使えず、動画を再生させても性能がいまいちなのが現状です。ネッ 中国からの送料を含めて 2200 円台の 0 「 ange Pi PC 2 。最近 $Raspberry Pi の定番電子工作用ライブラリ「 WiringPi 」 , トワーク性能は高いのでサーバーには向きそうです。 中国の A ⅱ express に注文する必 要があるとはいえ、 RaspberryPi 3 とよく似たスペックでありながら 2000 円台で購入できる Orange Pi PC2 は魅力的な製品でしよう。 Or ange Pi PC 2 でどこまで Raspberry Pi に迫れるのか紹介していきます。 Orange Pi のセットアップ Orange Pi PC 2 については以前、 本誌 2017 年 4 月号で紹介しているの で、概要やセットアップについては 簡単にまとめておきます。 Orange Pi PC 2 は Raspberry Pi クローンとでもいうべきサイズの基 板に AIIwinner H5 と IG バイトのメ インメモリーを搭載した小型ワン ボードコンピュータです。 40 ピンへ ッダーは Raspberry Pi 1 B + / 2 / 3 に互換性があるとされているのも 特徴になります。 OS イメージファイルは公式サイ ト * 1 にリンクがまとめられていま す。 Linux 系ディストリビューショ ンとしては Arch Linux 、 Ubuntu 、 Debian 、 Raspbian の 4 種類が用意 され、それぞれ最小構成となる Ser ver と GUI を含む Desktop のイメー ジが用意されています。そのほか、 Android のイメージも利用できま す。 Raspberry Pi 向けの Raspbian が あるのが特徴的ですが、 64 ビット環 境を利用するのであれば Ubuntu 、 Debian 、 Arch Linux のいすれかを 使うことになるでしよう。 以前に本誌で Orange Pi PC 2 を 紹介したときには、まだ新製品だっ たこともあり、多くのイメージファ イルがダウンロードできませんでし た。しかし、 2017 年 6 月中旬の時 点ではリンク切れの問題はなくな りました。イメージファイルは中国 の Baidu CIoud と、 Mega Cloud の 双方にアップロードされています。 Baidu Cloud は会員登録が必要で面 倒なので、日本からダウンロードす るのなら Mega Cloud の方が使いや すいでしよう。 本稿では Ubuntu のイメージファ イルを使うことにします。執筆時点 では Ubuntu_Desktop—XeniaI—xf ce4_PC2_V1_0_O. img. xz というフ ァイル名で MegaCloud からダウン ロードできました。 このファイルを Linux 上なら次の ように展開します。 $ sudo xz -dc Ubuntu Desktop_X eniaI_xfce4_PC2_V1_0_0. img . xz > Ubuntu Desktop_Xenia1_xfce4 al xfce4_PC2_Vl_0_0. img を、 8GB 展開後の Ubuntu Desktop_ PC2ーV1ー0ー0. img ロ Xeni 以上のサイズを持つ microSD カー ドに書き込んでください。 8G バイ ト以下の microSD カードは認識し ないので注意が必要です。イメージ ファイルの書き込み方は PINEA64 などと変わりません。 Orange Pi PC 2 で注意が必要な のは、 Raspberry Pi や PINE A64 とは異なり電源に外形 4mm 内径 1.7mm の AC アダブタープラグを使 用している点です。 5V2A 以上の容 量を持っ AC アダブターを用意し、 外形 4mm 内径 1.7mm の AC アダブ タープラグに変換するコネクタを使 わなければなりません。 ただ、外形 4mm 内径 1.7mm のプ ラグは広く使われている標準仕様な ので、変換アダブターは一般的な家 電店やホームセンターで購入できま す。導入のハードルが高いわけでは ありません。 ファイルシステムのリサイズ Orange Pi PC 2 に microSD カー ドを接続し、さらにマウスとキーボ ード、 HDMI 接続のディスプレイを つないで電源を入れてしばらくする と GUI のログイン画面が表示されま す。初期ユーザー名は orangepi 、パ * 1 http://www.orangepi.org/downloa dresources/ ラスパ ジン 2011.10

9. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

- ヨⅱい・ヨ町 1 : 印 0 d は当 p し 0 ( ・いー「を・一 r 第・ 10 「 k を 0 5 ( h ーま・一・ n み 0 を、・ nd ・一一 0 ・ し 0 ( 3 ーをを 0 900 ・′砂 t を d : fro•て 9 ・ n を「 ated 10 ( 、 ・ [ 」ト ( 0n13 し一 : 10 " 上を印代物 bs 当を 0 ( . UTF ・ 8 TF-8 」を選択 図 6 日本語環境の設定画面では「 ja ー JP. IJ 一区画 10 「一れ・ systen 「 0 れ代 : $ sudO dpkg-reconfigure tzdata 「 Tokyo 」を選んで CTab] キーで します ( 図 7 ) 。「 Time Zone 」では 「 OK 」に移動し、 CEnter] キーを押 を選んで CTab] キーでカーソルを 「 Geographic area 」では「 Asia 」 ば日本時間に合わせられます。 し、メニューに従って選択していけ に合わせます。次のコマンドを実行 続いてタイムゾーンを日本時間 び、 CEnterl キーを押します ( 図 6 ) 。 フォントをインストールしておきま 以上が終わったら、最後に日本語 を押します ( 図 8 ) 。 「 OK 」まで移動して CEnter] キー fonts-takao 54 Wi-Fi Netwotk Authentication Required Authentication required by W ト日 network 55W0rd5 0 「 encryption keys 3 required 0 ( ( e55 the れ - こ」 ShOW password 55W0 「 d : ー network - ・・辭物内第・第・・ -. ンドを実行してシステムをアップデ TerminaI 」を開き、次のようにコマ ンメニューの「 System TOOI 」 - 「 LX ネットワークに接続したら、メイ なければ簡単に接続できます。 別な設定や選択は不要です。問題が 化方法は自動で認識されるので、特 スワードを入力します ( 図 5 ) 。暗号 アクセスポイントに設定してあるパ パスワード入力を求められるので、 たいアクセスポイントを選択すると ! Connect カ画面 図 5 アクセスポイントのバスワードの入 upgrade ロ update ロ ートしておくとよいでしよう。 $ sudO apt $ sudO apt ラスパイマガシン 2017.10 ーでカーソルを移動して「 OK 」を選 んでスペースキーを押し、 CTab] キ 基本的には「 ja 」 p. UTF-8 」を選 s ロ $ sudo dpkg-reconfigure locale 従って設定作業を進めます。 上で次のコマンドを実行し、画面に 常の手順と同じです。 LXTerminaI おきましよう。手順は Debian の通 続いて日本語の環境を設定して 日本語を使えるようにしておこう なしで sudo が使えます。 デフォルトのユーザーはパスワード r 。」、パスワードも「 linaro 」です。 デフォルトのユーザー名は「 lina ⅱヨーいⅱー 0 ・ヨⅱい : ・ - 印をミ ci 蝨 p NO れ・ Of the ・ bO ・ Sy 靆を第 V t ー、・ ~ 00 ・ 5 Pacific 0 ( を an E し「 00 ~ 0 ( ・み 0 30 虹 ( “ : ー・砂、・ ~ を ( t the city 0 「 9 ー 00 ( 0 「「・、 pond ー 00 tO Y00 「 t ー第を一 00 を . E'•ie 0 ] 305 に 0 図 7 「 Geographic area 」の設定画面 図 8 1 p ぬ T み、ト k を 0 を T を h 「聞 10 物、 k u 0 P hd 砂れ 9 ta 「 「 Time Zone 」の設定画面 G 0 を使ってみよう しよう。 $ sudo apt i n s t a 1 1 Tinker Board を再起動してくだ さい。再起動後は日本語のデスクト ップになっています。 Tinker Board は「 GPIO 」「 12C 」 「 SPI 」という 40 ピンの I/O 端子を ューザーが使えるよう、メーカー自 らが熱心に整備しているのも特徴の ーっです。 Tinker Board の 40 ピンの I/O 端子の割り当てを表 1 に示します。 GPIO に対しては、 Raspberry Pi で 広く利用されている Python のライ プラリ「 RPi. GPIO 」互換のライプ ラリと、 C や C + + 言語のライプラリ として使われている「 WiringPi 」互 換ライプラリの双方が、メーカーか ら提供されています。 microSD カードに書き込んだ Tin kerOS にも、ユーザー linaro のホー ムディレクトリーにライプラリのア ーカイプがあらかじめ格納されてい ます。ただし、 OS イメージファイ ルをダウンロードしたサポートサイ トで、より新しいライプラリを配布 しています。ホームディレクトリー にあるものは使わず、サポートサイ トから新しいライプラリを入手した

10. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

ンストールしておく必要がある。中 でも LLVM はインストール時に Ubu ntu のバージョンが依存しているた め注意してほしい。ビルドに必要な パッケージをインストールできたら ELL 本体を GitHub からクローンし てビルドする。 ELL のビルドには時間がかかるた め、 j オプションで並列に実行する。 何並列にするかは読者のマシンスペ ックに合わせて調整してほしい。 E L L のリポジトリーをクローン $ git clone https://github. com /Microsoft/ELL . git ロ $ c d E L L ロ $ mkd i r bui 1 d $ cd bui 1 d ロ . は親ディレクトリーを表しているの で必ず付ける $ cma ke . . ELL 本体のビルド ( 4 並列 ) $ ma ke - j 4 ロ E L L Py t h o n B i n d i n g のビルド ( 仮想 環境のアクティベートが必須 ) $ make _ELL_python { ELL のディレクトリー } は clone した ELL のルートディレクトリーに置き換える $ cd { ELL のティレクトリ—)/bui1d/tutoria1s/vision/gettingStarted ロ モデルデータのダウンロード $ curl - 0 https://raw. githubusercontent. com/pjreddie/darknet/master/c fg/darknet . cfg ロ $ curl - 0 https://pjreddie. com/media/files/darknet.weights デモの実行 ( 2 番目のカメラを使う場合は python darknetDemo. py 1 ) $ python darknetDemo . py ロ 図 3 機械学習のモデル「 Da 「 knet 」の実行方法 tO 0 a. CO 0 a. っこ a. 0 a. 3 一 0 イ 1 X つ」 3 っこ 0 つな 4- ( ノ / 2 X っ 1 , X 0 X ( う′ 0 っム 0 X 2 5 X X 0 0 X X つなう 4 4 0 0 0 1 1 5 X X X / 0 つ」 X X 「こうに ( > イよ - 6 「ー 1 ム 4 4 0 0 「ヤ」 4 っム X X X •X 」 X X ) X X イよ ・ー「日っイよ 3 - う「こョ 1 亠 3 マー ro 4 C C 4 よ ß4JO 0 0 0 0 0 0 0 、ノ C 0 0 0 0 0 0 0 X 、 ) V 0 、 - 0 a. 0 Q. 0 CI 0 a. 0 a. 0 0 E 1 し C X C X C X C X C X C X C C QJ 9 0 0 0 0 3 0 0 tO 0 0 > 0 図 4 ビルド中に機械学習のモデルテータがロードされる 了するとウインドウが立 ち上がり、カメラに写っ 物体を識別してみる た画像の物体を識別する あらかじめ用意されている Pyth ことができる。カメラに 物体を写すと、上部の緑 on 用のチュートリアルは、 Darknet と Cognitive Toolkit の 2 種類があ 色のバーに識別した物体 の名前とその確率が表示 り、どちらも Web カメラを使った 物体識別である。 される。図 5 に示すよう Darknet は Joseph Redmon 氏が に、コーヒーマグなどが 公開した、高速に動作する CNN ( 畳 正しく識別された。 み込みニューラルネットワーク ) の 図 5 物体を識別したところ モデルだ。一方の Cognitive Toolkit 今後もどんどん進化 コーヒーマグと正しく識別されている。 今回は、 Microsoft 社か は、 Microsoft 社が公開しているディ ら新たに公開された、インターネッ 学習の能力をインターネット接続な ープラーニング用ライプラリ CNTK ト接続なしに機械学習を実行する を用いたモデルである。 しに利用できるようになる可能性が 筆者の環境では Darknet のチュー ことができるライプラリである ELL 高し、。 のビルドと、 2 種類の物体識別チュ トリアルは動作したが、 Cognitive ELL の GitHub にも「これは進行 ートリアルを紹介した。 TooIkit の方は動作しなかった。そ 中のプロジェクトであり、 API を含 のため、ここでは Darknet の実行方 残念ながら、今回は Raspberry Pi めて、頻繁に変更される見込み」と では実行することができなかった。 法を図 3 に紹介する。 あった。このライプラリはまだまだ しかし将来的には、 Raspberry Pi の 進化していくだろう。 デモを実行するとモデルデータの ような低スペックなマシンでも機械 00T ALGYAN 栂井良太 ) ロードが始まる ( 図 4 ) 。ロードが完 coffee mug ( 75 % ) ・ Mi ( 「 09 ラスパイマガジン 2017.10