カテゴリー別アーカイブ: チュートリアル

中国版BeagleBone Black element14で遊んでみた 第2回

element14の電源オンする前にUSBシリアル変換アダプタを接続します。

elemet14_usb-serial

elemet14側のシリアル出力をこのアダプタでUSBに変換します。

接続方法は以下の通りです。

element14────────USBシリアル変換アダプタ

J1ピン GND──(黒線)──GND
J4ピン RXD──(青線)──TXD
J5ピン TXD──(黄色)──RXD

ここで注意して欲しいのが、RXDとTXDを接続するということです。

RXD=受信、TXD=送信という意味ですので、受信ピンには送信ピンをつなぐのですね。

これを間違えるとコンソールには何も出力しません。

アダプタの先はPCに接続します。これがelement14のコンソール画面になります。

今回はWindows PCに接続します。コンソール用のアプリは定番のTeraTermです。TeraTermでのUSBシリアルの認識

TeraTermを起動し、接続先を選択します。今回はUSBシリアルアダプタは「COM7」として認識しているので、COM7を選択します。

element14の電源を入れます。今回はUSBから電源を供給します。

電源を入れると、element14の「PWR」LEDが青色点灯します。

element14_poweron

このとき、コンソールには起動メッセージが出力します。

element14_poweron_console

最初にU-Bootが起動しますが、起動イメージが見つからずエラーになっています。もしかするとマイクロSDカードを読んでいるのかもしれません。

U-Boot SPL 2014.04-rc2-00015-g99288ca (Mar 12 2014 – 09:49:41)
reading args
spl_load_image_fat_os: error reading image args, err – -1
reading u-boot.img
reading u-boot.img

再度U-Bootが起動します。最初のU-Bootとバージョンが同じですが「SPL」がありません。

U-Boot 2014.04-rc2-00015-g99288ca (Mar 12 2014 – 09:49:41)

I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

「MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1」から、基板のeMMCを認識しているようです。SDスロットにはマイクロSDカードは挿していない状態です。

このあと、eMMCのLinux Kernelが起動します。以下がそのログです。

I2C: ready

DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning – readenv() failed, using default environment

Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 1 0
gpio: pin 53 (gpio 53) value is 1
Card did not respond to voltage select!
mmc0(part 0) is current device
Card did not respond to voltage select!
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
mmc1(part 0) is current device
gpio: pin 54 (gpio 54) value is 1
SD/MMC found on device 1
reading uEnv.txt
1417 bytes read in 5 ms (276.4 KiB/s)
gpio: pin 55 (gpio 55) value is 1
Loaded environment from uEnv.txt
Importing environment from mmc …
Checking if uenvcmd is set …
gpio: pin 56 (gpio 56) value is 1
Running uenvcmd …
reading zImage
3717224 bytes read in 206 ms (17.2 MiB/s)
reading initrd.img
2870559 bytes read in 160 ms (17.1 MiB/s)
reading /dtbs/am335x-boneblack.dtb
25080 bytes read in 9 ms (2.7 MiB/s)
Kernel image @ 0x82000000 [ 0x000000 – 0x38b868 ]
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Using Device Tree in place at 88000000, end 880091f7

Starting kernel …

Uncompressing Linux… done, booting the kernel.
[ 0.381746] omap2_mbox_probe: platform not supported
[ 0.548691] tps65217-bl tps65217-bl: no platform data provided
[ 0.612565] bone-capemgr bone_capemgr.9: slot #0: No cape found
[ 0.649675] bone-capemgr bone_capemgr.9: slot #1: No cape found
[ 0.686783] bone-capemgr bone_capemgr.9: slot #2: No cape found
[ 0.723891] bone-capemgr bone_capemgr.9: slot #3: No cape found
[ 0.740061] bone-capemgr bone_capemgr.9: slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)
[ 0.749652] bone-capemgr bone_capemgr.9: slot #6: Failed verification
[ 0.756395] bone-capemgr bone_capemgr.9: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 0.772893] omap_hsmmc mmc.5: of_parse_phandle_with_args of ‘reset’ failed
[ 0.835495] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.8
[ 0.847192] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22
[ 0.854466] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
Loading, please wait…
Scanning for Btrfs filesystems
systemd-fsck[204]: rootfs: clean, 75748/230144 files, 379497/919296 blocks

Debian GNU/Linux 7 beaglebone ttyO0

default username:password is [debian:temppwd]

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

The IP Address for usb0 is: 192.168.7.2
beaglebone login: [ 25.168944] libphy: PHY 4a101000.mdio:01 not found
[ 25.174203] net eth0: phy 4a101000.mdio:01 not found on slave 1

Debian GNU/Linux 7 beaglebone ttyO0

default username:password is [debian:temppwd]

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

The IP Address for usb0 is: 192.168.7.2
beaglebone login:
Debian GNU/Linux 7 beaglebone ttyO0

default username:password is [debian:temppwd]

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

The IP Address for usb0 is: 192.168.7.2
beaglebone login:
Debian GNU/Linux 7 beaglebone ttyO0

default username:password is [debian:temppwd]

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

The IP Address for usb0 is: 192.168.7.2
beaglebone login:

どうやら無事に起動したようです。

次回の第3回は、ログインして、いくつかコマンドを実行してみます。

中国版BeagleBone Black element14で遊んでみた 第1回

element14からリリースされているBeableBone Blackの互換品であるelemetn14 BeagleBone Blackを入手しました。

パッケージはこれです。

element14_package1

ふたを開けてみると

  • BBB基板1枚
  • USBケーブル1本
  • ペラ1枚

が入っています。

element14_package2

さっそく、基板を取り出します。

element14_board1 element14_board1

基板の表面には「element14」とシルク印刷されています。

CPUはお馴染みの「TI AM3358BZCZ100」が載っています、基板中央の部品です。

メモリはCPUとUSBコネクタの間にあります。element14の紹介ページによれば「

SDRAM: 512MB DDR3L 800MHZ」とあります。

また内蔵ROMとして4GBのeMMCが載っています。上記写真でCPUの右下のチップです。「Kingstone」という文字が見えます。

第2回は電源を入れてみます。このまま電源を入れるとeMMCに入っているLinuxが起動するとのこと。

BeagleBone Black Cape一覧

BeagleBone には色々な機能を持った拡張ボードを接続することができます。Raspberry PiやArduinoと同じですね。

この拡張ボードのことをCapeと呼んでいます。

BeagleBone Blackの前のバージョンの、Beagleboardと共通のcapeもあります。

Capeの一覧は、elinuxのBeagleboneのサイトにあります。結構あります。

capes

自分の作ったcapeがあれば、wikiでページを作ってメールで知らせると上記のリストに加えてもらえるようです。

以下、便利なcapeについて解説してゆきます。

LCD3 Cape

http://elinux.org/images/thumb/7/73/LCD3-Front.jpg/300px-LCD3-Front.jpg

BB-BONE-LCD3-01

3.5” TFTの載ったcapeです。LCD部分は 101.6 mm x 63.5mmです。ぴったりサイズで、

このまま何か箱に収めれば、ポータブル機器の試作品がほとんどそのままできてしまいそうです。Digi-Keyでも販売しているようです。(2014/4/20現在)

ARDUINO Shield Adapter

http://elinux.org/Impressx:Arduino_Shield_Adapter

ArduinoのshieldをBB Blackに変換するボードです。BB Blackに取り付けられるものの種類が格段に広がります。

http://www.impressx.com/en-gb/products/shieldio.aspx

arduino_bb_conversion

BeagleBone Blackの各revisionの違いについて比較

BeagleBone BlackにはいくつかのRevisionや、中国版などといった差異があります。

elinuxのサイトによると2014/4/20までで、10通りのRevisionが出ています。

    • Revision C (Pending)
    • Revision B (Production Version)
    • Revision A6A
    • Revision A6
    • Revision A5C
    • Revision A5B
    • Revision A5A
    • Revision A4B
    • Revision A4A
    • Revision A4

何が違うのかややこしいのでまとめておきます。

端的に言えばRev. A*はXAM3359AZCZ100でRev.B*/CはAM3358BZCZ100

  • Revision C (Pending)

2014年5月頭ごろ発売予定。eMMCが4GBに増えた。

  • Revision B (Production Version)

AM3358BZCZ100プロセッサ。

  • Revision A6A
    • GND_OSC1をシステムのグラウンドへつなげる0Ωを追加
    • C106を1uFに変更
    • C24を2.2uFに変更。リセットがうまくいかない問題へ対応。
    • R9を削除しR8を追加。TPS65217Cに関連して発生していた問題への対応。VDDSのレールをVRTCのレールへ接続するという変更。
  • Revision A6
    • SYS_RESETがPORZnとORで接続された
    • OSC_GNDに0Ω抵抗を追加しノイズの問題へ対応
    • VDD_3V3BレギュレータをVDD_3V3Aレールへ移動。3.3Vレールのランプアップを低減する目的。
  • Revision A5C
    • R46, R47, R48を0Ωへ変更
    • R45を22Ωに変更
  • Revision A5B
    • 機能的にはA5Aと何も異ならない
  • Revision A5A
    • XAM3359AZCZ100を使用
    • 47pFバイパスをLCD信号のいくつかへ追加しノイズに対策
    • TPS65217に、バッテリへの接続パスを追加。
    • 起動、パワーダウン、スリープの機能を持つパワーボタンを追加
    • 100kプルダウンをJ1,の1から4ピンへ追加
  • Revision A4B
    • 100kプルダウンをJ1の1から4ピンへ追加しシリアルポートの問題へ対応。
  • Revision A4A
  • Revision A4
    • 初回バージョン

このほか、中国版BeagleBone Blackが出ています。

Revisionについてまとめた情報はいまのところ見つかっていないので、また分かったら追記します。

ベンダーは下記の2件があるようです。

 

TIのサイトによると、オリジナルと中国版とはそれぞれ下記のスペック。

中国版

BeagleBone_Black
Current Version 1.0
Memory 2GeMMC Flash, 512MB DDR3 SDRAM
More info Go to company Website
Multi-func expansion interface Jtag UART Serial
Price (USD) Per Unit 399RMB
Processor Ti AM3359 1GHZ,Cortex-A8 Processor
Signals Routed to Pins HDMI,10/100M Ethernet,USB2.0 host&OTG,TF,LCD,eMMC ,ADC,I2C,SPI,PWM…
Software Ready-to-Run Linux 3.8 Operation System
Version Date 07-05-2013
Volume Pricing Available? Y
What’s Included? BeagleBone Black
interface UART1, Clock, HDQ

 

 

オリジナル

BeagleBone
Example Applications Roboticsmotor driversTwitter printerdata backupSDR base stationUSB data acquisition and more
Board size 3.4″ x 2.1″
DDR memory 512 MB
Development environment Cloud9 IDE on Node.JS with Bonescript library
Ethernet On-chip 10/100 Ethernet
JTAG Optional
Memory 2GB eMMC memory that’s pre-loaded with Angstrom distribution and that frees up your microSD card slot
More info Product Details
Power Options Via USB or 5V DC input
Price (USD) Per Unit $45.00
Processor 1GHz AM3359 Sitara ARM Cortex-A8
USB 1-port USB 2.0 Host
1-port USB 2.0 Client
Version Date 23 APR 2013

BeagleBoneBlack用ubuntuインストール済SDカードの使い方

◯概要



ここでは、本サイトで販売している、BeagleBone Black用のOSプリインストールSDカードの使い方等について、解説します。

このSDカードは、工学社さまより2013年12月に発売された 『「BeagleBone Black」で制御するロボットの作り方』に連動したOSプリインストールSDカードです。書籍内で説明されている、pythonからのハードウェア機能操作が一通り可能になっています。

◯起動とログイン



このSDカードには、Ubuntu12.04がインストールされており、カーネルは3.8.13-bone25になります。SDカードはBeagleBone Black本体に挿して電源に入れるだけで、Ubuntuが起動しますので、シリアルコンソール、または、有線LANをつないで、SSH等でログインして使用して下さい。

予め設定されているログインユーザは、
ユーザ名: ubuntu
パスワード: temppwd
になります。

パスワードは仮のものですので、passwdコマンドで変更することをお勧めします。

尚、SSHでログインする際は、ssh ubuntu@xx.xx.xx.xx(xxには適切なIPアドレスを入れて下さい)でログインできますが、本SDカードには、既にmDNSの設定がされています。

従って、ホストコンピュータ側もmDNSの設定がされている状態であれば、下記のように、マシン名でアクセスすることができます(予め設定されたマシン名はBegleBoneBlackです)。

$ ssh ubuntu@BeagleBoneBlack.local


◯フォルダ構成



/home/ubuntu/work/samples 以下に、pythonからハードウェアを制御するサンプルがあります。samples以下には、

Section4
Section5
Section6_9

という3つのフォルダがありますが、各々、連動している書籍の章に対応しています。

Section4は、純粋なpythonのサンプル、Section5は、各ハードウェア機能単体を試すためのサンプル、Section6_9は、書籍6章から9章で示したロボット制御のためのサンプルおよびライブラリが収められています。

これらのサンプルは、工学社さまのホームページからダウンロードできるものと基本的には全て同じファイルです。ただし、6章から9章のサンプルは、前の章で作成したライブラリを同じフォルダに置いて使う必要があるため、利用上の便宜の点から、ウェブから入手できるサンプルとは構成を変え、Section6_9というフォルダに全てまとめて置いてあります。

尚、これらのサンプルを試すために必要なAdafruit社の提供するPythonによるハードウェア制御ライブラリAdafruit_BBIOに関して、本SDカードには、バージョン0.0.17がインストールされています。


◯その他



本SDカードでは、全てのPWM出力、SPI出力が利用できるように、HDMI出力機能をオフにしてあります。HDMI出力を利用したい場合には、boot領域にあるuEnv.txtを編集して下さい。

最後に、このSDカードは、基本的には、連動している書籍に合わせて作成されたものです。本SDカードのみでも、BeagleBone Blackのハードウェア制御を十分に楽しむことができますが、本の方と合わせてご購入頂ければ、各サンプルの詳細な説明もありますので、より一層スムーズにBeagleBone Blackを使いこなせるようになると思います。

書籍:「BeagleBone Black」で制御するロボットの作り方 工学社

当サイトの運営者が「BeagleBone Black」に関する書籍『「BeagleBone Black」で制御するロボットの作り方』(工学社)を出版しました。

概要

「BeagleBone Black」を使った電子工作の入門書です。
「BeagleBone Black」とは、「シングルボード・コンピュータ」と呼ばれる小型コンピュータで、
コンピュータ単体として動作するのに必要な機能をすべて実装した一枚の基板です。

「BeagleBone Black」を使って何か作ってみたい人を対象に、
その特徴を活かした「走行ロボット」の制作方法を紹介しています。
初心者でも取り込みやすいように
「OS」には、日本語の解説も多い「Ubuntu」を使い「言語」には、予約語の数が少なく、
設計がシンプルな「Python」を追加い、
電子回路を直接制御する方法を分かりやすく解説しています。

入門書ではありますが、最後には簡単な「知能ロボット」が出来上がります。


アマゾンで見る

目次

  • 第一章 「BeagleBone Black」の概要
  • 第二章 「Linuxシステム」のインストール
  • 第三章 「Ubuntu」を使う
  • 第四章 「Python」入門
  • 第五章 「Python」による「BeagleBone Black」のハード制御
  • 第六章 「自動車工作きっと」を改造して「ロボット化」する
  • 第七章 壁にぶつからない「ロボット」を作る
  • 第八章 「ロボット」に「目」をつける
  • 第九章 「ロボット」に簡単な「知能」を付ける

著者

吉海 智晃(よしかい・ともあき)
1977年生まれ
東京大学大学院博士課程修了。博士(情報理工学)
株式会社キビテク代表取締役CTO

BeagleBone Black初期設定

まずは、BeagleBone Blackの最初の動作確認と、その後の開発環境としてUbuntuをインストールするところまでを書いておきたいと思います。

BeagleBone Blackは2013年4月末に発売されたばかりで、まだまだ日本語の情報は少ないようです。筆者が調べた2013年5月半ばの時点では、下記のサイトでHowToを書いている他は英語の情報ばかりでした。

http://gadget.ichmy.0t0.jp/beaglebone/

http://wiki.limemo.net/dokuwiki/beaglebone/start

上記のサイトを参考にさせて頂きながら、動作確認を行います。尚、ここでは、ホストマシンの環境はUbuntu 12.04LTS 64bitとします。

オンボードフラッシュでの初期動作確認

BeagleBone Black(以下BBB)を箱から取り出すと、本体と付属のUSBケーブルが出てくるので、本体のマイクロSDカードスロットには、何もささず、付属のUSBケーブルを本体側はUSB-OTGの口にさし、反対側はPCにさします。この状態で、ボードに給電され、デフォルトのOSであるAngstromが起動します。

しばらくすると、BBBがUSBメモリとしてマウントされますので、マウントされた中にあるSTART.htmを実行して下さい。ダブルクリックすればOKです。後は、中の指示に従います。

開いたページの中程に”Step #3: Browse to your board”とあり、その下に”Click here to launch: http://192.168.7.2”のように実際に接続されたマシンのIPへのリンク(USB接続から仮想的なLANアダプタを構成して、privateなアドレスを振っている、ここでは192.168.7.2と出た)がありますので、それをクリックすると、デモページが開き、本体LEDを操作することができます。

具体的には、デモページの中程に”Bonescript interactive guide”というのがあります。それがjavascriptライクなものでweb越しにBBBのペリフェラルをいじるインタフェースの例になっています。その下の”Example”となっているところは実際にコードをいじることができます。コードをいじったら、”run”ボタンを押してみて下さい。コードに書いてある通りの内容が実行されると思います。

また、この状態で、本体でsshdが走っていますので、SSH接続を試すこともできます。ここでは、ボードのIPアドレスが192.168.7.2だとすると、下記のようにターミナルから打つことでBBBにログインすることができます。ユーザはroot、パスワードはなしです。

hostpc$ ssh root@192.168.7.2

ログインしたら、普通にLinuxが動作しているので、uname -r やらcat /proc/cpuinfoなどで、カーネルやCPUの情報などを確認できます。デフォルトのオンボードフラッシュのOSイメージだけの動作確認は以上です。

Ubuntuのインストール

BBBのデフォルトのLinuxディストリビューションはAngstromなのですが、使いやすさ、情報の多さでいくとUbuntuの方が勝っているので、ここでは、UbuntuをBBBにインストールする方法を紹介します。

BBBだけでなく、BeagleBoard, BeagleBoneも含めてUbuntuを対応させるプロジェクトがあり、そこで紹介されている方法
(http://elinux.org/BeagleBoardUbuntu)を参考にします。

インストール方法には、

  • pre-compiledなイメージからのインストール(13.04, 12.10が対応)
  • netinstall(11.10、12.04、12.10が対応)
  • マニュアルインストール

の3つがあります。

どの方法を選ぶかは、Ubuntuのどのバージョンをインストールするか、で大体決まります。今回、BBBのハードウェア機能をフルに活用するためには、カーネルが3.6以上でなければならないという制約がありますので、デフォルトのカーネルバージョンが3.8.8である13.04をインストールすることにします。というわけで、pre-compiledなデモイメージを元にインストールを行います。
具体的には下記のようにして、イメージをダウンロード、ベリファイ、アンパックします。

hostpc$ wget http://rcn-ee.net/deb/rootfs/raring/ubuntu-13.04-console-armhf-2013-04-26.tar.xz
hostpc$ md5sum ubuntu-13.04-console-armhf-2013-04-26.tar.xz
hostpc$ tar xJf ubuntu-13.04-console-armhf-2013-04-26.tar.xz
hostpc$ cd ubuntu-13.04-console-armhf-2013-04-26

ここまでできたら、SDカードリーダにインストール先のSDカードをさして以下のインストールスクリプトを実行します。尚、ここでは、SDカードは/dev/sdcとして見えているとします。また、カードを差し込んだ際に、何かマウントされたら、それをアンマウントしておきます。

hostpc$ sudo ./setup_sdcard.sh --mmc /dev/sdc --uboot bone_dtb --swap_file 512

–swap_fileでスワップの容量を指定していますが、一応、メモリと同量分と考え512MBとしておきます。このセットアップには時間がかかります。1時間半ぐらいは見ておいた方が良いでしょう。終了したら、SDカードを引きぬいて、BBBの電源を切った後(アダプタや給電のためのUSBケーブルを抜いた後)にMicroSDをBBB本体にさします。

ここから先は、シリアルコンソールを利用するためにヘッダピンが出ているタイプのTTLレベルが3.3VのUSBシリアルが必要です。筆者は、aitendoのUSB-UART変換モジュールUSB2UART-CP2102を利用しました。

このUSBシリアルのGND、RXD、TXDのピンを接続します。BBB側は、#1がGND、#4がRxD(USBシリアル側はTxD) #5がTxD(USBシリアル側はRxD)と接続します。クロス接続になることに注意して下さい。この状態で、ホストPCにUSBシリアルをさして、どういう名前で認識されるか確認します。筆者の環境では、/dev/ttyUSB0として認識されました。

シリアルコンソールは、ボーレート115200で接続。データ長8bit、ストップビット1、パリティなし、フロー制御なしですので、新しいターミナルを開き、以下のコマンドを打って、ホストマシンから接続します。

hostpc$ cu -s 115200 -l /dev/ttyUSB0

ここまで来たら、ACアダプタ、或いは、USBケーブルを介して、BBB本体への電源の供給を行い、ブートさせます。無事、起動すると、ubuntuのログインプロンプトがターミナル上に表示されます。初期状態では、ユーザ:ubuntu pass:temppwdになっています。最初にパスワードは変更しておきます。

ブートに成功したら、引き続き、初期設定を行います。まずは、有線イーサネットケーブルをBBB本体にさしてリブートします。

BBB$ sudo reboot

リブート後、ログインして/etc/network/interfacesを確認すると、デフォルトでeth0はdhcpが振られる設定になっていますので、同一ネットワーク上にDHCPサーバがいれば、自動的にIPアドレスが振られます。

試しに、ifconfigコマンドを打ってみて、inet addr:192.168.x.x(.x.xは環境によって異なります)と出れば、ネットワークも開通しています。この状態で既に外部からのssh接続もできるようになっています。

次に、ソフトウェアのアップデートを行います。

BBB$ sudo apt-get update
BBB$ sudo apt-get install aptitude

無事、アップデートが終了したら、次は、タイムゾーンを変更をします。

BBB$ sudo dpkg-reconfigure tzdata

でAsia/Tokyoに変更します。

ちなみに、
/boot/uboot/tools/ubuntu/minimal_lxde_desktop.sh
を実行すれば、フルGUIの環境をインストールすることも可能ですが、必要になった時に行うことにして、今回はやらないでおきます。

続いて、好みがわかれるところですが、筆者はemacs派なので、emacsをインストールします。普通にapt-getで入れると、.emacs.dの権限がおかしくなっていたので、それも正しく変更します。

BBB$ sudo apt-get install emacs
BBB$ sudo chown ubuntu -R .emacs.d/
BBB$ sudo chgrp ubuntu -R .emacs.d/

最後に、これも好みですが、マシン名をarmからBeagleBoneBlackに変更します。hostnameコマンドだと一時的にしか変更されなかったので、大本を変更するようにします。

BBB$ sudo emacs -nw /etc/hostname
BBB$ sudo emacs -nw /etc/hosts

これで、リブート後にはhostnameが変更されます。

以上で、今後のBBBでの開発をUbuntuで行なっていくための準備は整いました。

Raspberry PiでリモコンYoutubeプレーヤーを作る

今回は、少し趣向を変えて、手元のスマートフォンから操作できるYoutubeプレーヤーを構築する方法を紹介します。

XBMCというオープンソースのメディアセンターソフトウェア(http://sourceforge.jp/projects/xbmc/)が公開されていて、それをRaspberry Pi用にチューンしたものが公開されています。

中でも有名なのが、

  • OpenELEC
  • Raspbmc
  • Xbian

の3つです。

http://goshawknest.wordpress.com/2013/02/19/openelec-vs-raspbmc-vs-xbian/ 

に詳しい比較が出ています。

Raspbmcをインストールした例は色んな方が紹介されているので、今回は上記記事の中でオススメされていたXbianをセットアップして、さらにYoutube再生プラグインを導入することで手元のスマートフォンから自由にYoutubeを楽しむ環境の構築をしてみたいと思います。

Xbianのインストール・初期設定

まずは、XbianのイメージをSDカードにインストールする必要があります。公式ページでは、2GB以上のSDカードを用意することを推奨しています。今回は4GB、class4のものを用いました。オフィシャルページ(http://xbian.org/)へ行き、ダウンロードページを見てみると、Windows、Mac OSX、Linuxそれぞれのインストーラが配布されています。ここでは、Ubuntu12.04 64bitの環境で作業した場合を説明します。

Linuxでこのインストーラを利用するには64bit、X11、Qt5以上が利用可能な環境が必要なのですが、Ubuntu12.04では残念ながらQtのバージョンが4.xなので、このインストーラを利用することはできません。そこで、ダウンロードページの下の方にあるrawイメージをマニュアルインストールすることにします。イメージは、XBian 1.0 Alpha 5をダウンロードします。すると、7z形式で圧縮されているので、それを解凍してから、ddコマンドを使ってイメージを次のように書き込みます。

hostpc$ sudo apt-get install p7zip-full
hostpc$ 7z x XBian_1.0_Alpha_5.7z 
hostpc$ sudo dd if=XBian1.0Alpha5.img of=/dev/sdc

ここでは、SDカードリーダにささっているSDは/dev/sdcとして見えているものとしました。

これで、無事、書き込みが終わったらSDカードを外し、Raspberry Piにさして電源投入すると、Xbianが起動します。この時、本体のHDMI出力にはモニタへのHDMIケーブルを、USBにはマウス、キーボードを、そして有線LANの口にはイーサネットケーブルを接続しておきます。モニタがHDMIで音声出力ができないタイプの場合には、アナログ端子にスピーカーを接続しておきます。

起動したら、まずは、言語と時間を設定ます。
「System」ー>「Settings」->「Appearance」を選択します。画面内で、最初に「Character set」 を「japanise(Sift-jis)」にした後に「Language」を「japanese」します。先に「Language」を変更すると全体が文字化けしてしまうので、注意が必要です。更に、タイムゾーンをjapanに設定します。

次に、デフォルトの音声出力先を設定します。
「システム」→「設定」→「システム」→「オーディオハードウェア」を選択します。「オーディオ出力」の項目がデフォルトだと「HDMI」になっています。HDMIを接続しているモニタから音声も出力できる場合はそのままで良いですが、アナログ端子から音声を出力する場合は、「アナログ」に変更します。

以上で、ネットワークメディアプレーヤーとしては使えるようになりました。再生するコンテンツをお持ちの方は、NASなどネットワークでアクセスできるところに動画、音楽ファイルがあれば、それを再生して楽しむことができます。

YouTubeアドオンのインストール

今回は、楽しむコンテンツがすぐ用意できないという場合を考えて、Xbian上でYouTubeを使えるようにする方法を紹介します。

YouTubeの設定方法については、

http://xbmc.inpane.com/main/heavy_user/script.php

を参考にして、設定を行います。

まずは、ホームに戻り、「ビデオ」→「アドオン」を選択します。すると、一覧に「GetMore…」と出てくるので、それを選択します。アドオンの一覧が出てくるので「YouTube」を選択して、インストールします。

インストールが完了し、「有効」と表示されたら、「ビデオ」→「アドオン」を選択した時に「YouTube」が表示されるようになるので、そこににカーソルを合わせて右クリックし、アドオン設定を選択して、OKします。そして、「一般」タブを選択し、「最大ビデオ品質」を1080pにしてOKします。

設定が終了したら「YouTube」を選択して、アドオンの起動をします。検索を選択して、適当な名前を入力すれば、後は、結果のサムネイルが表示されるので、適当に選択して、映像、音声が、再生されることを確認します。HD画質のビデオもコマ落ちなく、再生されます。1点、日本語での検索ができないところが残念ですが、それ以外は問題なさそうです。

スマートフォンからのリモコン操作

最後に、XBianをスマートフォンをリモコンとして操作する方法を紹介します。といっても、XBMCに対応した公式のアプリがフリーで提供されていますので、それを使うだけです。”xbmc”で検索するとiOS、Androidいずれの場合も「Official XBMC Remote」というアプリが見つかるので、それをインストールします。

インストールが完了したら、スマートフォンがRaspberry Piと同じネットワークに接続していることを確認し、アプリを起動します。起動後の最初の画面の左下に「Add Host」と出てきますので、それをクリックして、次の画面で中程にある「Find XBMC」を押すと、自動的に見つけてくれますので、「Save」ボタンをおします。トップ画面に戻ってきたら、見つかったデバイスが表示されますので、それをタップすると出てくるメニューの中から「REMOTE CONTROL」を選べば、リモコンとして使うことができます。

これで、手元のスマートフォンから操作できるYouTubeプレーヤーが完成しました。