2014年10月27日月曜日

外出先で聴いた気になる曲のタイトルの調べ方

ふと耳にした気になる曲のタイトルが分からない。
CMであれば検索すればすぐ出てくるし、その場でスマートフォンを取り出せるのであれば
Shazamなどで判別できるかもしれない。
でも後になって、あの時かかってた曲なんだっけな、となることって意外と多いと思う。
Midomi Soundhoundでは鼻歌検索もできるけども、どうやら私は音痴らしい。。

例えばスポーツジムでかかっていた曲を知りたくなった場合、どう調べるか。
まずは有線のサイトにアクセスする。
そして「チャンネル検索」から「気分やお店から探す」をクリックする。
で、次のページの「お店や空間から探す」から「業種=スポーツ/レッスン施設」
「お店や空間を選ぶ=フィットネスクラブ」と選んで検索する。
そうするといくつか検索結果が出てくるのでそれらしいものを選ぶ。
例えば洋楽でアッパーな感じの曲がよくかかっていたので「ホットドライブ洋楽」
あたりじゃないかな、と思えばそれをクリックする。

すると今現在流れている曲が出てくるので「NOW PLAYING専用画面へ」という
リンクをクリックする。
そうすると上に「日時指定」というのがあるので、調べたい曲が流れていたであろう
日時を入力して検索する。
検索結果として指定日時に流れていた曲がずらっと出てくる。
あとは各曲をiTunesなりYouTubeなりで検索しまくるのだ。

こうして私が見つけた曲はこれでした。

2013年8月2日金曜日

RaspberryPi #10 WebカメラをWeb越しに操作してみよう

第8回にてWebカメラからのキャプチャ画像を定期的にDropboxにアップするようにした。cronで10分周期にセットしたけれども、「今のタイミングのキャプチャが欲しい!」ということもある。この場合はどうするか。

自宅のブロードバンドルータに接続したRaspberryPiには当然グローバルIPアドレスなんてセットしていない。ブロードバンドルータから割り当てられたプライベートIPアドレスにネットワーク越しにアクセスする方法は簡単には実現できそうにない。
というわけで方法としてはRaspberryPi側から「なんか指示ありませんか?」と定期的にポーリングをしかける方法しかないのだ。

ここではDropboxのフォルダを10秒周期チェックして、「shot」というフォルダがあるとそのタイミングでキャプチャをアップロードする、という仕様にした。
そのシェルが以下の通り。

#!/bin/bash

while :
do
        /home/pi/Dropbox-Uploader/dropbox_uploader.sh list | grep shot
        if [ $? -eq 0 ] ; then
                fswebcam -d /dev/video0 -p YUYV -D 2 -S 16 -r 640x480 --jpeg 75 /home/pi/shoot.jpg
                /home/pi/Dropbox-Uploader/dropbox_uploader.sh upload /home/pi/shoot.jpg /shoot.jpg
                /home/pi/Dropbox-Uploader/dropbox_uploader.sh delete /shot/
        fi
        sleep 10
done

パスやファイル名は適宜読み替えてほしい。
ここでは10秒周期にしているが、最後のsleepを短くすればよりリアルタイムに近い形で反応できるだろう。Dropboxに怒られるかもしれないが。

で、起動時にこれを起動しておいてもらおう。
sudo vi /etc/rc.local
としてrc.localファイルに以下の記述を追加する。尚、ここでは上記作成スクリプトを「manual_shot.sh」としている。

sudo -u pi /home/pi/manual_shot.sh &

sudoでユーザpiとして実行していることに注意。
Dropbox-Uploaderのセットアップ時にDropboxのAppキーなどを設定したが、実行ユーザが異なると再設定が必要になるので、セットアップを実行したユーザで実行する必要がある。

2013年7月25日木曜日

RaspberryPi #9 シャットダウンボタンをつくろう

RasberryPiは電源供給源のUSBに接続すれば起動する。
終了時はコマンドからshutdownしなくちゃいけない。
イヌ用の監視カメラをこしらえて実家に設置したところで、年老いた両親に
「リモートでログインしてshutdownコマンドを、、、」
などと言えるハズもない。

というわけで押すとシャットダウンしてくれるボタンを付けてみる。
ボタンを長押しして、LEDランプが消えたら電源抜いてOK、というもの。



用意するもの。
  • ブレッドボード 1つ
  • ジャンパワイヤ 3本
  • タクトスイッチ 1つ
  • 10KΩ抵抗 1つ

配線は参考図書「RaspberryPiで遊ぼう!」に掲載されているままなので省略。

次にRaspberryPi用のGPIOプログラミングライブラリであるwiringPiをインストールする。こちらも本に掲載のままなので省略。たぶんググればある。
で、以下のようなプログラムを書く。

#include <stdio.h>
#include <wiringPi.h>

#define BTN_PORT 25

int main(void) {
        int data = 0;
        int cnt = 0;

        if(wiringPiSetupGpio() == -1) return 1;
        pinMode(BTN_PORT, INPUT);

        while(1)  {
                data = digitalRead(BTN_PORT);
                if(data == 0) cnt = 0;
                else cnt++;

                if(cnt >= 10) {
                        system("shutdown -h now");
                        return 0;
                }
                usleep(300000);

        }
        return 1;
}


300ミリ秒(300000マイクロ秒)ごとにボタンの押下状態をチェックして
10回連続で押された状態(=3秒間の長押し)ならshutdownする、というだけのもの。
これを書いたら

cc -o off_button off_button.c -lwiringPi

としてコンパイルする。
ファイル名は適宜読み替えてください。

そして起動時にデーモンとして起動するように/etc/rc.lodalに以下のような記述を追加する(exit 0の前に追加)。

/home/pi/off_button &

とすれば起動時に先ほどのプログラムがデーモンとして起動するので
いつでもボタンを押せばシャットダウンしてくれるのだ。



2013年6月30日日曜日

RaspberryPi #8 Webカメラで静止画

監視カメラとしてセットして、Ustream経由で外出先からスマホで確認しよう!
と思ったのだけどスマホのUstreamが尋常じゃない重さで使えない。
というわけで静止画を定期的にキャプチャしてドロップボックスに定期的にアップロードする、という作戦にするのだ。

静止画のキャプチャにはfswebcamを使う。
設定方法など、こちらを参考にしました。

一方、DropboxはというとARM版がないのでDropbox-Uploaderというツールを使う。
こちらを参考にしました。
次にfswebcamでキャプチャして、Dropbox-Uploaderでアップロードするスクリプトを用意する。

#!/bin/bash

fswebcam -d /dev/video0 -p YUYV -D 2 -S 16 -r 640x480 --jpeg 75 ./capture.jpg
Dropbox-Uploader/dropbox_uploader.sh upload capture.jpg /capture.jpg

パスの部分は適宜読み替えてください。
このスクリプトだとDropboxにアップロードするたびにcapture.jpgを上書きすることになるので、それが嫌な場合は連番を振るとか、時刻にするとかしないといけない。
最後にcronをセットする。

*/10 * * * * /home/pi/capture.sh

capture.shというのが先ほどつくったシェルだ。
ここでは10分おきに動くようにしている。


2013年6月25日火曜日

RaspberryPi #7 Firefox OSの画面を大きくしてみる

昨日、RaspberryPi上でFirefoxOSが動作したものの
画面の左下にチョロッと出ているだけなので大きくしてみましょう。

起動時に
--screen=x
と指定してやれば画面サイズを変更できる。
上の方、はみだしてるけど。
こちらは1366x768を指定した場合。
このサイズにするとマウスポインタがダニのような大きさで操作が困難なのだ。 

昨日は参考サイトの情報をたどっただけだったので、そもそも何をしたんだ?
というところを把握していなかったので自分なりに調べてみる。

まず「b2g」というのはFirefoxOSの別名で「boot to gecko」のコト。
最初にダウンロードしたのがB2GのデスクトップクライアントをRaspberryPi向けにビルドしたもの。

たぶん。

 これだけでも起動はするのだけど空のスクリーンが表示される。
なのでシステムアプリの指定やら何やら必要で(こちらの「プロファイルを生成する」を参照)、それも一緒にダウンロードして起動時に指定してました。 
昨日は全て出来合いのものをダウンロードしただけだったけど、
一般的には(まだ開発中ということもあり)ソースをダウンロードして自分でコンパイルするものみたい。
いずれ、そちらもチャレンジしてみるのだ。

2013年6月24日月曜日

RaspberryPi#6 firefox osを入れてみる

下記サイトの情報を参考にRaspberryPiでFirefoxOSを動かしてみようと思ったのだ。
http://www.philipp-wagner.com/ffos-for-rpi/manual/index.html

手元のMacのディスク容量が怪しいのでコンパイルはせずにビルド済みのイメージファイルをSDカードに書き込んでみた。
んが、動かない。
電源を入れてもウンともスンとも言わない。
むむぅ

さくっと諦めてこちらの情報を参考にすることにする。
こちらの手順はまずは普通にRaspbianのSDカードで起動して、FirefoxOSをダウンロードしてきて動かそう、というもの。

こんな感じになります。


2013年6月21日金曜日

RaspberryPi#5 Webカメラ接続

カメラが届いたので繋いでみる。
ちなみに買ったのはELECOM UCAM-DLA200H。
RaspberryPiを起動してUSBカメラを差し込む。
/var/log/messageを見て認識していることを確認。

本の通りに「uvccapture」「uvcdynctrl」「guvcview」をインストール。
sudo apt-get install uvccapture uvcdynctrl guvcview

Xをたちあげてメニューから先ほどインストールしたguvcviewを起動する。
しばらくするとカメラの映像が表示される。
感動。

USTREAMへの配信も一瞬できたけれど、しばらくすると落ちてしまう。
消費電力の関係かもしれない。
セルフパワーのUSBハブを買わないといけないのか。。