ElectroBlog

読者です 読者をやめる 読者になる 読者になる

ElectroBlog

This is ElectroBlog for explaining my electronics projects such as Raspberry Pi and Micro:bit. ラズペリーパイなどのエレクトロニクス機器を使った実験メモ。

Raspberry Pi Zero w (9) 複数の無線LAN(IPアドレス)でSSH接続できるように設定する。

Raspberry Piを自宅のwifiルーターに加えて、他のwifiルーター等に自動的に接続するために複数のIPアドレスを設定してみる。

 

・wifiルーター 1 (使用頻度並)

・wifiルーター 2 (使用頻度高)

として、優先度を決めて設定してみることにする。

 

まず、下記リンクから1つのwifiルーターとRaspberry Piを無線接続できるように設定しておく。

www.electroblog.jp

これが完了したところで、

wpa_supplicant.confを編集して、2つ目のwifiルーターのSSIDおよびパスワードを設定する。

また、優先度の設定も追記する。

f:id:ElectroBlog:20170521164352p:plain

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

を実行して、末尾を下記のように編集する。

f:id:ElectroBlog:20170521170342p:plain

priority=の数字が小さいほうが優先度が高くなる。

保存して終了して再起動すれば設定が有効となる。

 

※ファイル編集の仕方は下記リンクに記載(vi コマンド)。

Raspberry Pi全般:viコマンド一覧 : Micro SDカード内のファイルを編集(3, zero, zero w共通) - ElectroBlog

 

 

micro:bit (1) iPhoneやAndroidで操作できるbluetoothラジコンを作る

youtu.be

f:id:ElectroBlog:20170514190218j:image

 今回、micro:bitで簡単なbluetoothラジコンを作る。
そして、iPhoneやAndroidで操作する。

 

※この記事は海外で動作確認して書いている。
micro:bitは技適が取れていないため、国内では無線機能の使用ができない。

 

手順は以下の通り。

①必要なものを購入

②組み立て

③micro:bit ソースコードの書き込み

④スマートフォンとペアリング(iPhoneおよびAndroidをそれぞれ説明)

⑤操作用appをダウンロード

⑤動作確認

 

購入品は下記の通り。

 

・micro:bit - micro:bit only £10.83

・Motor Driver Board v.2 for the BBC micro:bit £10.83 

メインとなる上記2点を購入。

その他にも

・電池ケース

・DCモーター + タイヤ ×2

・ボール型のキャスター

・円柱のすべり止め(ゴム)

を購入。

 

日本版の

chibi:bit (スイッチサイエンス社製)もamazonで買える。

Amazon CAPTCHA

chibi:bit スイッチサイエンス

 ただし、chibi:bitでは試していないので動作できるか不明。

 

では早速、組み立てを始める。

まず、DCモーターは下記のようなタイヤが付いているものを使用。

Amazon | uxcell DCギヤードモータ 直流電動機 DC電動機 二重軸 50RPM DC 3V +タイヤホイール スマート車用 | 電設用部品・資材

 f:id:ElectroBlog:20170514185814j:image

組み立てるとこうなる。

f:id:ElectroBlog:20170514185820j:image

 

次にMicro:bit本体をモータードライブ基板に接続する。

f:id:ElectroBlog:20170514185840j:image

向きはこう。

f:id:ElectroBlog:20170514185845j:image

そしてタイヤをつける。

また、モーター自体の端子とモータードライブ基板のMOTOR2とMOTOR2を赤黒の線で接続する。

f:id:ElectroBlog:20170514185857j:image

このままでは前に倒れてしまうのでキャスターを接続した。

f:id:ElectroBlog:20170514185828j:image

円柱のゴムを使って高さを調整。

f:id:ElectroBlog:20170514185901j:image

f:id:ElectroBlog:20170514185906j:image

本体に取り付けて水平にすることができた。

f:id:ElectroBlog:20170514185915j:image

裏面には電池ケースを装着(まだ電池をいれないこと。)

f:id:ElectroBlog:20170514185926j:image

まだ電池を入れない状態で

USB Cableを使ってmicro:bitをPCに接続する。

マイコンピューターからMICROBITのフォルダを開く。

f:id:ElectroBlog:20170514200748j:plain

 

ここで実際に使用するソースコードをダウンロードする。

下記リンクへアクセスする。

http://bluetooth-mdw.blogspot.jp/p/bbc-microbit.html

少し下にスクロールすると、

PXT Projects
Kitronix Buggy Remote Control for micro:bit Blue

とあるので、リンク先へ行く。

自動的にソースが開かれるので、真ん中下の保存ボタンを押して好きな場所へHEXファイルを保存する。

f:id:ElectroBlog:20170514192743j:plain

 

microbit-Buggy-Controller-by-@bluetooth_mdw.hex

f:id:ElectroBlog:20170514192822j:plain

 

このファイルを先ほどのMICROBITフォルダへドロップする。

f:id:ElectroBlog:20170514192438j:plain

HEXファイルがコピーされ、無事に書き込みは完了。これだけ。

LEDにRobot Wars! と表示されるようになれば成功。

 

次にUSB Cableを外し、電池を入れる(今回は単4×直列4本。6Vで駆動)。

再びRobot Wars!と表示されるはず。

続いて、スマートフォンにBluetoothで接続していく。

f:id:ElectroBlog:20170421185325p:image

まず、iPhoneでの接続を解説する。

app storeからmicro:bitというappをダウンロードして起動する。

f:id:ElectroBlog:20170514190013p:image

Connectionを選択する。

Pair a new micro:bitを選択。

f:id:ElectroBlog:20170514190021p:image

AおよびBボタンを押しながらRESETを押す。

そして、REESTだけを離す。

PARING MODE!

と表示されれば良い。

appのNEXTを押す。

少しするとmicro:bit本体のLEDが変な模様を表示する。

f:id:ElectroBlog:20170514190024j:image

この模様をapp側に打ち込む。

f:id:ElectroBlog:20170514190029p:image

Nextを押下。

f:id:ElectroBlog:20170514190041p:image

接続が開始される。

f:id:ElectroBlog:20170514190043p:image

ポップアップが表示されるのでペアリングを押下。

f:id:ElectroBlog:20170514190047p:image

ペアリングが成功したらOK。

microbit本体もチェックマークがつく。

f:id:ElectroBlog:20170514190057j:image

そして本体をリセットする。

この状態で

bitty game controllerというappをダウンロードして起動する。

Scanを押下するとデバイスが表示される。

BBC micr:bit [zapiv]

f:id:ElectroBlog:20170514190100p:image

デバイスの部分を押下して接続が完了すると、下記コントローラー画面へ移行する。

f:id:ElectroBlog:20170514190103p:image

Bluetooth接続が正常であれば本体はCと表示される。

f:id:ElectroBlog:20170514190133j:image

この状態でボタンを押すとラジコンが動き始める!

この設定では右側上ボタンと左側左ボタンで左右へ操作できる。

初期設定は使いづらすぎなので、ソースコードのボタン割当だけ変えて使いやすいように変えようと思う。

 

続いて、Androidの場合、

上記に書いた方法でmicrobitをPairing modeにする。

 

スマートフォンのBluetooth設定画面からデバイスを検索すると

BBC micro:bit [zapiv]が表示される。

f:id:ElectroBlog:20170514190151j:plain

接続すると本体がチェックマークになるのでmicrobitのResetボタンを押下。

f:id:ElectroBlog:20170514190137j:image

 

ここで、micro:bit Blueというappをダウンロードする。

micro:bit Blue - Google Play の Android アプリ

起動して、画面下のFIND PAIRED BBC MICRO:BITSを押下する。

デバイスが表示されるので押下する。

f:id:ElectroBlog:20170514190205j:image

本体がCという表示になれば成功。

f:id:ElectroBlog:20170514190133j:image

次の画面からDual D-Pad Controllerを押下。

f:id:ElectroBlog:20170514190213j:image

コントローラーが表示されて、ボタンを押せばラジコンが動き始める。

f:id:ElectroBlog:20170514190218j:image

下記、動画のように動作した。

youtu.be

 

↓日本で購入できる互換機。

Amazon CAPTCHA

 chibi:bit スイッチサイエンス社

f:id:ElectroBlog:20170514200555p:plain

Raspberry Pi Zero w(8) Raspberry Piの画面をWindows画面上で操作(リモートデスクトップ使用)

f:id:ElectroBlog:20170513152312j:plain

Raspberry PiはRaspbian OS画面での操作が必要となってくる場面がたまにある。

しかし、いちいちHDMIディスプレイを準備するのが面倒すぎる。

そのため、リモートデスクトップを使用してWindows画面上にRaspberry PiのOS画面を表示させてみる。今回はVNC serverを利用する。

この内容はRaspberry Pi 3, zero , zero wで共通。 

 

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

手順は以下の①〜⑥となる。

①Raspberry Piとssh接続および、Raspberry Piをインターネットへ接続

②インターネット経由でtight vnc serverをRaspberry Piへインストール

④tight vnc serverの起動と初期設定

⑤WindowsでVNC Viewerを起動

⑥接続

 

まず、①については下記リンクから完了させる。 

Raspberry Pi Zero w (4) 小型USB無線LANを使って自宅wifiのネットワーク経由でSSH接続する(ラズパイをインターネットへ接続) - ElectroBlog

 

①でRaspberry Piをインターネットに接続したら、

次にtight vnc serverをRaspberry Piへインストールする。

sshで、

sudo apt-get install tightvncserver

を実行する。

f:id:ElectroBlog:20170513150649j:plain

下記画面でYを入力してEnter。

f:id:ElectroBlog:20170513150716j:plain

完了すると下記画面となる。

f:id:ElectroBlog:20170513150726j:plain

 

続いて、

tightvncserver

を実行してtight vnc serverを起動する。

f:id:ElectroBlog:20170513150815j:plain

Passwordの入力を求められるため、

半角8文字以内で入力する。今回は、

password

と入力。確認のためもう一度設定。

注記:最初に8文字以上を入力したら警告がでたためpasswordとした。

 

そうするとviewモードでPasswordを要求するかを確認されるので今回は、

nと入力した。

 

f:id:ElectroBlog:20170513151219j:plain

ここで番号が表示されるのでメモする。

今回は 1。

 

次に④。

下記URLからVNC Viewerをダウンロードする。

Download VNC Viewer | RealVNC

 

VNC-Viewer-6.1.0-Windows-32bit.exeを実行してVNC Viewerを起動する。

 今回のWindows PCは32bitなので、32bit版を実行。

※64の場合はVNC-Viewer-6.1.0-Windows-64bit.exeをダウンロードする。

 

File → New connectionを選択。

f:id:ElectroBlog:20170513151541j:plain

 

VNC Server欄に

Raspberry Piと接続しているIPアドレス + :先程メモした番号

を入力する。

今回は、192.168.100.129:1

となる。

f:id:ElectroBlog:20170513151641j:plain

うまく接続できると、下記画面となりContinueを実行する。

f:id:ElectroBlog:20170513152002j:plain

 

すると、無事にRaspberry PiのOS画面がWindowsの画面に表示される。

f:id:ElectroBlog:20170513152451j:plain

 

さまざまな設定等もここからマウス操作で行える。

f:id:ElectroBlog:20170513152624j:plain

Raspberry Pi Zero w (6) PCからSDカード内の音楽を再生(mpd, mpc)

Raspberry Piを使用して音楽を再生できたが毎回ssh接続するのが面倒。

そこでWindowsから簡単に音楽再生を制御できる方法を考えてみた。

MPDクライアントソフトを使用するとwifi経由で音楽の制御が行えるようだ。

今回はAuremoというソフトを使用。

(Cantataでも動作確認できたが今回は割愛。)

 

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

手順は以下の通り。

①Raspberry Piとssh接続(外付け無線ルーター or Ethernet)

②外付け無線LANを利用してRaspberry Piをインターネットへ接続

③Raspberry Piにmpdとmpcをインストール

④Raspberry Piにsambaをインストール

⑤音源をSDカードに保存する

⑥外付けUSB DACを接続。音声出力先の変更。

⑦PCにAuremoをインストール。

Auremoで音出し。

 

①~⑥までは下記記事に記載。

Raspberry Pi Zero w (4) USB DACから音楽を再生(Raspbian) - ElectroBlog

 

次に⑦、PCにAuremoをインストールする。

今回はWindowsで実施。

PCをRaspberry Piが接続されている自宅wifiへ接続する。

 

下記サイトからAuremoをダウンロードする

Auremo - Home

 

インストーラーを起動してPCへインストールする。

そして、Auremoを起動。

FileからEdit settingsを選択。

f:id:ElectroBlog:20170507205918p:plain

 

Raspberry Piと接続しているIPアドレスをServer欄に入力してOKを押下する。

f:id:ElectroBlog:20170507205754j:plain

 

無事にSDカード内(mpdフォルダ)の曲が表示されている。

再生ボタンを押下すると曲が再生された。

f:id:ElectroBlog:20170507205759j:plain

 

 

Raspberry Pi Zero w (7) iPhoneやiTunesのAirPlayを使用して外付けUSB DACからFLACやAACファイルを再生(Shairport Sync)(OSはRaspbian)

  f:id:ElectroBlog:20170507193514p:image

最近インストールしたShairportを利用してiTunes(AirPlay)でRaspberry Piから音楽を再生しているが、どうも再生デバイスの切断エラーが起こるので厄介。

そこで別の方法としてShairport Syncをインストールしてみた。

今回はRaspberry Pi Zero wとRaspberry Pi ZeroおよびRaspberry Pi 3で安定した動作を確認できた。

  

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

手順は以下の通り。

①Raspberry Piとssh接続(外付け無線ルーター or Ethernet)

②外付け無線LANを利用してRaspberry Piをインターネットへ接続

③外付けUSB DACを接続。音声出力先の変更。

④Shairport SyncをRaspberry Piへインストール。

⑤iTunes(Windows)やiPhoneから音出し

 

まず①、Raspberry Piとssh接続できるようにする。

手順は下記リンクに記載。

Raspberry Pi Zero w(2) 初期設定:HDMIディスプレイを使わずに外付け無線ルーターだけで簡単にSSH接続する(Raspbian) (Zero wも共通) - ElectroBlog

 

 次に②、外付け無線LANを利用してRaspberry Piをインターネットへ接続させる。

手順は下記リンクに記載。

Raspberry Pi Zero w (4) 小型USB無線LANを使って自宅wifiのネットワーク経由でSSH接続する(Raspbian) - ElectroBlog

 

そして、③については下記リンクに記載。 

Raspberry Pi Zero w (4) USB DACから音楽を再生(Raspbian) - ElectroBlog

 

ここまで終わればあと少し。

AirPlayを使ってitunesやiPhone等から音を出すときはPCやiPhone内の音源を利用できるため、Micro SDカードに音源をいれる必要がない。

外付けDACが正常に接続されているかは下記コマンドで確認する。

aplay /usr/share/sounds/alsa/Rear_Center.wav

音が鳴ればOK。

④に移る。

 

ここからの手順は下記リンク先のReadmeを参考にした(2017年5月7日現在)。

GitHub - mikebrady/shairport-sync: AirPlay audio player. Shairport Sync adds multi-room capability with Audio Synchronisation

リンク先で下の方にスクロールすると

Shairport Syncの説明が始まる。

まず下準備として下記内容をインストールする。

f:id:ElectroBlog:20170507200302p:plain

実際に上から一つ一つインストールしていく。

sudo apt-get install build-essential git xmltoman

f:id:ElectroBlog:20170507200454j:plain

下記、Yを実行。

f:id:ElectroBlog:20170521172342p:plain

 

sudo apt-get install autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev

f:id:ElectroBlog:20170507200408j:plain

下記、Yを実行。

f:id:ElectroBlog:20170521172315p:plain

 

sudo apt-get install avahi-daemon libavahi-client-dev

f:id:ElectroBlog:20170507200749j:plain

 下記、Yを実行。

f:id:ElectroBlog:20170521172315p:plain

 

sudo apt-get install libssl-dev

f:id:ElectroBlog:20170507200618j:plain

 下記、Yを実行。

f:id:ElectroBlog:20170521172315p:plain

 

sudo apt-get install libmbedtls-dev

f:id:ElectroBlog:20170507200638j:plain

→上記の通りlibmbedtls-devが使えなさそうなので、Readmeどおりに代替としてPolarSSLをインストールしてみる。

f:id:ElectroBlog:20170507200945p:plain

sudo apt-get install libpolarssl-dev

f:id:ElectroBlog:20170507200728j:plain

  下記、Yを実行。

f:id:ElectroBlog:20170521172517p:plain

 

sudo apt-get install libsoxr-dev

f:id:ElectroBlog:20170507200818j:plain

   下記、Yを実行。

f:id:ElectroBlog:20170521172517p:plain

 

完了したら手順どおりShairport Syncをダウンロードする。

git clone https://github.com/mikebrady/shairport-sync.git

f:id:ElectroBlog:20170521172645p:plain

 

次に

cd shairport-sync

f:id:ElectroBlog:20170521215324j:plain

 このディレクトリから

autoreconf -i -f

を実行する。

f:id:ElectroBlog:20170521172755p:plain

(このまま時間がかかるので反応するまっでひたすら待つ)

 

下記画面に戻るまで待つ。

f:id:ElectroBlog:20170521172829p:plain

 

続いて、オプションファイルを選択する。

ここでは推奨どおりに選択した。

f:id:ElectroBlog:20170507201551j:plain

./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd

を実行する。

f:id:ElectroBlog:20170521172852p:plain

 

そして、下記コマンドでビルドする。

make

f:id:ElectroBlog:20170521173021p:plain

 

ここで、セキュリティーの影響でグループとユーザーを設定する必要がある。

getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null

f:id:ElectroBlog:20170521173126p:plain


getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null

f:id:ElectroBlog:20170521173141p:plain

 

下記を実行してインストールする。

sudo make install

f:id:ElectroBlog:20170521173205p:plain

 

下記コマンドでRaspberry Pi起動時にShairport-Syncを起動するよう設定する

sudo systemctl enable shairport-sync

f:id:ElectroBlog:20170521173221p:plain

 

下記コマンドから実際に起動してみる(次回から起動時に自動実行される)。

sudo systemctl start shairport-sync.service

f:id:ElectroBlog:20170521173238p:plain

 

ここからは実際に音出しとなる。

Raspberry Piを接続している自宅wifiにPCをつなぐ。

iTunesを起動して、Airplayボタンを押してみると

RaspberryPi

がデバイスとして表示される。

(Raspberry Piも同じ自宅wifiに接続)

 

RaspberryPiを選択して音源を再生すると無事にUSB DACから音が再生された。

f:id:ElectroBlog:20170507202248j:plain

 

次に自宅wifiに接続しているiPhoneから下記3つのアプリでデバイス選択して音楽を再生したところ、無事に再生できた。

・Music (m4aファイルとmp3ファイルで確認)

f:id:ElectroBlog:20170507193531p:image

Music app

 

・ONKYO HF Player

・KORG iAudioGate

この2つのアプリではハイレゾ音源の再生も確認できた。

(flacファイル、m4aファイル、wavファイルで確認) 

 f:id:ElectroBlog:20170507193514p:image    f:id:ElectroBlog:20170507193524p:image

 ONKYO HF PlayerとKORG iAudioGate

 

f:id:ElectroBlog:20170507204304j:image    f:id:ElectroBlog:20170507204311j:image 

Raspberry Pi ZeroとRaspberry Pi Zero w

 

f:id:ElectroBlog:20170507204318j:image

Raspberry Pi 3

内蔵無線LANが使用できるので電源CableとUSB DACだけで動作できる。

(Raspberry Pi Zero wは国内の技適がまだ取れていないため、内蔵無線LANは使用できない。外付け無線LANで動作を確認)

 

Raspberry Pi全般:Raspberry Piでよく使うコマンド一覧(ssh, mpcなど)

Raspberry Piでssh接続した際よく使うコマンド一覧を列挙する。

 

◆コマンドプロンプト 

ipconfig   : IPアドレスの情報を表示

arp -a ~  : 指定されたIPアドレスに接続されている機器を表示

     例 arp -a 192.168.100.2

 

◆sshコマンド

sudo ~   : 管理者権限で実行

ls   : フォルダ、ファイル一覧

pwd   : 現在のフォルダ位置を表示

cd   : ディレクトリを移動

cp file1 file2   : フォルダ、ファイルのコピー

     例 cp ファイル1 ファイル2 (ファイル1をファイル2という名前でコピー)

cat ~   : ファイル内容表示

vi ~   : ファイル編集

 

◆mpcコマンド(mpd)

mpc update   : フォルダ内の音楽データを反映

mpc ls | mpc add   : プレイリストへ全曲追加

mpc ls   : プレイリストを表示

mpc play   : プレイリストを再生

mpc stop   : 停止

mpc next   : 次の曲を選択

mpc prev   : 前の曲を選択

mpc volume +数字   : 音量を上げる

mpc volume -数字    : 音量を下げる

mpc repeat   : リピートON/OFF

mpc random   : ランダムON/OFF

 

Raspberry Pi Zero w (5) USB DACから音楽を再生(Raspbian)

f:id:ElectroBlog:20170506121624j:image

Raspberry Pi Zero wで外付けUSB DACを使って音楽を聴きたいと思い、実践してみた。

OSはRaspbianを使用。

本当はZero wの内蔵無線LANを使いたいが技適がとれていないため、外付け無線USB LANで実施。実際はRaspberry Pi 3の内蔵無線LANで動作確認できているため、配線の少なさを考えるとそっちのほうが便利。

 

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

手順は以下の通り。

①Raspberry Piとssh接続

②外付け無線LANを利用してRaspberry Piをインターネットへ接続

③Raspberry Piにmpdとmpcをインストール

④Raspberry Piにsambaをインストール

⑤音源をSDカードに保存する

⑥外付けUSB DACを接続

⑦mpdで再生

 

まず、Raspberry Piとssh接続できるようにする。

下記を参考にする。

Raspberry Pi Zero w(2) 初期設定:HDMIディスプレイを使わずに外付け無線ルーターだけで簡単にSSH接続する(Raspbian) (Zero wも共通) - ElectroBlog

 

その次に、外付け無線LANをAPモードにして、Raspberry Piをインターネットへ接続する。下記を参考にする。

Raspberry Pi Zero w (4) 小型USB無線LANを使って自宅wifiのネットワーク経由でSSH接続する(Raspbian) - ElectroBlog

 

Tera termでssh接続をしている状態で、

今回、音楽の再生に使用するmpdとmpcをインストールする。

手順は以下の通り。

f:id:ElectroBlog:20170430162539p:plain

sudo apt-get -y install mpd mpc

完了したら下記画面に戻る。

f:id:ElectroBlog:20170430161839p:plain

下記コマンドから最新バージョンへアップデートする。

sudo apt-get update

f:id:ElectroBlog:20170506154003p:plain

mpdを再起動する

sudo /etc/init.d/mpd restart

f:id:ElectroBlog:20170506102937p:plain

 

次に音源をSDカードに保存するためにSambaをインストールする。

(Raspberry PiのSDカード内のフォルダを共有サーバーとして利用)

手順は下記リンク先を参照。

Raspberry Pi Zero w (3) SambaをインストールしてRaspberry PiのSDカードへネットワーク経由でアクセスする(Raspbian) - ElectroBlog

今回はmpdフォルダ直下のmusicフォルダ内に音源を保存。

[mpd]
path = /var/lib/mpd
read only = No
guest ok = Yes
force user = root

musicフォルダにアクセスできるか確認する。

 

これで下準備は完了。

実際に外付けのUSB DACを接続する。

今回はOTG変換コネクタとUSBハブを使用して、無線LANとUSB DACを接続した。

 

iBUFFALO BSHT4UBK

Amazon | iBUFFALO USB2.0Hub バスパワー 4ポート 延長ケーブル付 ブラック 【PlayStation4, PS4 動作確認済】 BSHT4UBK | バッファロー | USBケーブル通販

f:id:ElectroBlog:20170506155141p:plain

 

Amazon | USB OTG 極小アダプタ USBオスをmicro USBオスに変換 (2個) | KAUMO | USBアダプタ通販

f:id:ElectroBlog:20170506155405p:plain

Raspberry Pi Zero wに接続したUSBハブに無線LANとUSB DACを接続する。

次にUSB DACが接続されているか確認する。

 

lsusb

f:id:ElectroBlog:20170506155541p:plain

 また、USB DACが接続されているPortの番号とDevice番号を調べる。

aplay -l

f:id:ElectroBlog:20170506155702p:plain

 今回使ったAT-PHA100はcard 1のdevice 0とわかる。

試しに下記コマンドを入力すると

cat /proc/asound/cards

f:id:ElectroBlog:20170505232559p:plain

cardは0と1が存在するとわかる。

初期設定では起動時にcard0 が選択されているため、

音声出力先を1へ変更する必要がある。

viコマンドを使用して出力先の番号を変更する。

sudo vi /etc/mpd.conf

f:id:ElectroBlog:20170506160406p:plain

先程調べた通り、card 1のdevice 0と判明しているので、

下記のように変更する。

"hw: card番号, device番号"

"hw:1,0"

 

更に初回起動時にはcard0が選択される設定になっているため、

それも変更する

sudo vi /usr/share/alsa/alsa.conf

 f:id:ElectroBlog:20170506000933p:plain

viコマンドを使用して下記2箇所の0を1に変更する

f:id:ElectroBlog:20170506160105p:plain

f:id:ElectroBlog:20170506001018p:plain

vi編集の仕方は下記リンクを参考にする。

Raspberry Pi:viコマンド一覧 : Micro SDカード内のファイルを編集(3, zero, zero w共通) - ElectroBlog

 

変更したら再起動する。

sudo reboot

 

まず、出力先が正常に変更できたか音出しテストする。

aplay /usr/share/sounds/alsa/Rear_Center.wav

をTera termから実行する。音が鳴ればOK。

 

それが完了すれば、いよいよmpcコマンドを使って音出しをしてみる。

まず、音源データをアップデートする。

mpc update

 

プレイリストに全曲追加。

mpc ls | mpc add

 

リストの曲を確認(曲名が表示される)

mpc ls

f:id:ElectroBlog:20170506103225p:plain

 

 

再生する。

mpc play

f:id:ElectroBlog:20170506161055p:plain

 

選択したUSB DACが動作しているか下記から確認する。

cat /proc/asound/card1/stream0

(card1←カード番号1 / stream0←device番号1)

無事に再生されていればStatusがRunning表示となる。

f:id:ElectroBlog:20170506161253p:plain

 

以上で完了。無事USB DACから音楽が再生された。

 

このとき、別のUSB DACで再生を試みようとした際、

消費電流が250mAほどのUSB DACではoutputエラーが発生した。

 

ちなみにmpc コマンドはこちらにも記載。

Speaker pHAT (2) Raspberry Pi Zeroでwifiルーター経由でとりあえず音出し(aplayとMPC使用) - ElectroBlog

 

man mpc

でもmpcコマンドの詳細が確認できる。

 

 

 

 

 

 

 

 

 

Raspberry Pi Zero (1) HDMIディスプレイ無しで最初から無線LANのみでラズパイと接続 (Zero w共通)

f:id:ElectroBlog:20170504234441j:image

内蔵無線LANを持たないRaspberry Pi Zeroを考えるとRaspberry Piと初回から無線でラズパイと通信がしたい。

有線LANという考え方もあるが、Zeroの初期設定ではイーサネットが無効になっているのでイーサネットを有効に変更するために結局、無線接続に行き着く。

 

そこで外付けのUSB Ethernet変換機および外付け無線LANでsshが接続できるか試してみた。

 

結果としてRaspberry Pi ZeroおよびRaspberry Pi Zero wではこの方法でssh接続できた。

 

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

今回は下記2製品を使用。 

ELECOM社 WRH-200BK3-S

http://amzn.to/2pJBxBv

f:id:ElectroBlog:20170504233123p:plain

plugable社 USB2-OTG100

Amazon CAPTCHA

 

まず、ELECOM WRH-300BK3-Sを

初期設定のルーターモードからAPモードへ変更する必要がある。

変更方法は以下の通り。

WRH-300BK3-Sの電源を入れて、PCから無線で接続する。

そしてwebブラウザから192.168.2.1へアクセス。

f:id:ElectroBlog:20170504233913j:plain

アクセスポイントモードを選択して適用。

再起動されるのを待つ。

再び機器へ無線で接続。

下記設定へ変更されていることを確認する。

f:id:ElectroBlog:20170504233901j:plain

これで下準備が完了。

 

続いて、MicroSDにRaspbianのイメージファイルをいれる。

Download Raspbian for Raspberry Pi

f:id:ElectroBlog:20170421172407p:plain

左側のDwnload ZIPを選択。(RASPBIAN JESSIE WITH PIXEL)

zipを解凍する。

ここで、イメージ書き込み用にWin32 Disk Imagerをインストールする。

Win32 Disk Imager 日本語情報トップページ - OSDN

win32diskimager-1.0.0-install.exeをダウンロード。

 

f:id:ElectroBlog:20170421172558p:plain

SDカードを差し込み

Raspbianのimageファイルを選択。

注意:[D:]のところは、書き込み予定のSDカードが刺さっているディスク名を選択すること。

Writeを選択してimageを書き込む。

 

次がとても重要。

ssh接続を有効する作業。

有効にする方法は、以下の通り。既にssh接続できた場合は不要。

imageファイルをマウントしたMicro SDをSDアダプター等でPCに接続して、最上位にsshというフォルダを作成する。

f:id:ElectroBlog:20170430110953j:plain

完了したらRaspi zero wに差し込む。

 

そして、下記写真のような構成で接続する。

Raspberry Pi <--> USB2-OTGE100 <--> Ethernet Cable <--> WRH-200BK-S <--無線--> PC

f:id:ElectroBlog:20170504234441j:image

 

再びPCから機器へ無線で接続。

TWSNMPv4を使用して、接続されているIPアドレスを調べる。

f:id:ElectroBlog:20170504234143j:plain

このときは192.168.2.101とわかる。

Tera Termで調べたIPアドレスへ接続する。

f:id:ElectroBlog:20170504234220j:plain

PCとRaspbeey Piが無事に接続されていることが確認できた。

 

このときにイーサネットも有効にしておくと次回からイーサネットで有線接続することも可能となる。

 

Speaker pHAT (3) iPhoneやitunesの音源をネットワーク経由(Airplay)で再生(Raspberry Pi Zero w)

f:id:ElectroBlog:20170521235300j:image

youtu.be

Speaker pHATを使って、iPhoneやiTunesから音楽再生したいと思い、実際にRaspberry Pi ZeroでAirPlayを利用して、iPhoneやitunesの音源を再生させてみた。

その際、Shairportというソフトを使用する。

  

Shairportを使った手順は①~⑤の通り。

①Raspberry Pi Zeroをインターネットに接続できる状態にする。

②Speaker pHATのインストール

③Shairportのインストール

④Shairportを起動

⑤プレーヤー(itunesやiPhone)から曲を再生

 

まず、①~②については下記リンクに従い、完了させる。

www.electroblog.jp

 

③について、

下記リンクの内容通りですが、ここを参考にして実際に実行してみた。

http://count0.org/2014/10/30/air-play-usb-audio-raspberrypi.html

 

下記内容を実行して必要なパッケージをインストールする。

sudo apt-get install git libssl-dev libavahi-client-dev libasound2-dev

f:id:ElectroBlog:20170430184335p:plain

Yを実行

f:id:ElectroBlog:20170430184400p:plain

しばらく待つ。

f:id:ElectroBlog:20170430184534p:plain

Shairportをビルドする

git clone https://github.com/abrasive/shairport.git

f:id:ElectroBlog:20170430184605p:plain

 

しばらく待つ。

f:id:ElectroBlog:20170430184650p:plain

その後、shairportを実行する。

まず、下記3つのコマンドを実行

cd shairport/

f:id:ElectroBlog:20170430185403p:plain

./configure

f:id:ElectroBlog:20170430185412p:plain

そして、makeを実行。

f:id:ElectroBlog:20170430184843p:plain

その後、

./shairport -a "airplaydemo" →"   "間の名前は自由(表示される名前)

 を実行。

f:id:ElectroBlog:20170430184913p:plain

f:id:ElectroBlog:20170430185120p:plain

iTunesを開き、Airplayボタンを押すとデバイス名が表示されて、選択可能となる。

airplaydemoを選択して曲を再生すると無事にSpeaker pHATから音がでた!

 

iPhoneもデバイスが表示されて曲が再生された。

この時のiOSのバージョンは10.3.1

f:id:ElectroBlog:20170430222056p:image

 

ここまでの設定ではRaspberry Piを再起動した際は改めてShairportを実行しないといけない。

 

再起動した場合、下記を再度実行するとairplayボタンにデバイスが表示される。
cd shairport/

./shairport -a "airplaydemo" →"   "間の名前は自分で設定した名称

 

とりあえず再生できた。

実際に操作しているときにairplayのdeviceを選択した際にエラーとなることが何度かあった。

自動起動については改めて記載予定。

 

youtu.be

 

因みにSeaker pHATはPimoroniだけでなく、Amazonでも購入できそう。

Pimoroni Speaker pHAT - スピーカー pHAT キット

Amazon CAPTCHA

 

Speaker pHAT (2) Raspberry Pi Zeroでwifiルーター経由でとりあえず音出し(aplayとMPC使用)

前回の続きを記載。

Raspberry Pi Zeroを使ってSpeaker pHATでとりあえず音出しまでメモ。

aplayを使えばすぐに音がだせる。

mpdを使えばandroidやPCから制御可能。VUメーターは同期しない。。。

 

f:id:ElectroBlog:20170422134233j:image

 

手順は下記①~⑨まで。

 

①RaspbianをMicro SDにインストール

②Raspberry Pi zeroを外付け無線LAN経由で自宅wifiルーターでインターネットへ接続

③インターネット経由でSpeaker pHATをラズパイへインストール

④aplayで音出しテスト。

 

~以下、MPDを使った音出し~

⑤インターネット経由でMPD, MPCをラズパイへインストール。

⑥インターネット経由でSambaをラズパイへインストール

⑦Sambaで音源をいれる共有フォルダを作成。

⑧音源ファイルを共有フォルダに追加。

⑨MPCコマンドで音出し(プレイリスト追加→再生→操作)

 

まず①~②は下記リンクを参考に完了させる。

Raspberry Pi Zero (1) 外付け無線LANのAPモードを使ってSSH接続 (Zero w共通) - ElectroBlog

 

次に下記コマンドでSpeaker pHATをインストールする。

注意:このときにRaspberry Piをインターネットへ接続させていること。

f:id:ElectroBlog:20170430161558p:plain

curl -s https://get.pimoroni.com/speakerphat | bash

を実行する。

このときはPCとRaspberry piを自宅wifiルーターに無線で接続している。

 

しばらく待つ。

f:id:ElectroBlog:20170521212251p:plain

y → Enterを押下する。

 

さらにしばらく待つと

f:id:ElectroBlog:20170521213018p:plain

再び、y → Enterを押下する。

 

更にしばらくすると、下記画面に移行する。

y → Enterを押下。

f:id:ElectroBlog:20170521213855j:plain

再起動される。

 

 その後、Speaker pHATの基板をラズパイ本体へ装着。

試しに以下コマンドで音出しテストをする。

f:id:ElectroBlog:20170430162028p:plain

音が鳴ればひとまず安心。

問題なければVUメーターも同期するはず。

 

次にSDカードに曲をいれてmpc操作で再生してみる。

まず、下記の通り入力してMPD(Music Player Daemon)とそのコマンドのMPCをインストールする。

f:id:ElectroBlog:20170430162539p:plain

sudo apt-get -y install mpd mpc

暫く待つ。

f:id:ElectroBlog:20170505214519p:plain

↑この画面に移行するまで待つ。

完了したら、

f:id:ElectroBlog:20170430161839p:plain

に戻る。

次に下記リンクの手順でSambaのインストールから共有フォルダの作成を完了させる。

Raspberry Pi Zero w (3) SambaをインストールしてRaspberry PiのSDカードへネットワーク経由でアクセスする(Raspbian) - ElectroBlog

 

リンクの内容通りにmpdフォルダを共有フォルダとして設定してから、

/var/lib/mpd/musicフォルダの中にwavかmp3データをコピーする。
注意:ファイル名に空白がある場合は、エラーがおこるのでアンダーバーなどへ変更する。 

 

早速、mpcコマンドで操作していく。

下記コマンドでフォルダの曲を反映させる

mpc update

次にmpd/musicフォルダ内の全曲をmpdのプレイリストに追加する。

mpc ls | mpc add

 

リストを確認する。

mpc ls

 

次に再生コマンドを実行。

mpc play

成功すれば下記表示となる。

f:id:ElectroBlog:20170430164417p:plain

 

停止する際は

mpc stop

 

選曲は

mpc next

mpc prev

 

初期設定では音量がhardware設定になっているため操作を有効にするには、

/etc/mpd.confを変更の一部分をsoftware制御へ変更する。

具体的には

f:id:ElectroBlog:20170430163823p:plain

を実行して、

途中にあるaudio_output内のmixer_type を "hardware"から"software"に変更する。

f:id:ElectroBlog:20170430163733p:plain

変更方法は下記リンクを参考。

Raspberry Pi:viコマンドを使用してMicro SDカード内のファイルをssh接続で直接編集する(3, zero, zero w共通) - ElectroBlog

 

成功すれば、下記のように

mpc volume +数字

mpc volume -数字

でボリュームが変更できるようになる。

f:id:ElectroBlog:20170430164053p:plain

 

また、repeatやrandom、singleは

mpc repeat

mpc random

mpc single

f:id:ElectroBlog:20170430164221p:plain

で実行するごとにON⇔OFFとなる。

 

現在のところ、単純にmpc操作で再生した場合、VUメーターが同期しない。