株式会社インフィニットループ PHPとスマホアプリ開発を行う札幌のシステム会社

技術ブログ

  1. トップ>
  2. 技術ブログ>
  3. 2013 2月の記事一覧

2013年02月20日 (水)

著者 : 

Raspberry Piで温度と湿度を計測しグラフ化してみました

matsuiです。以前書いた「こちらの記事」が好評だったので、また温度計ネタを書いてみます。

Raspberry PiとUSBセンサーを使って温度と湿度を計測し、それをグラフ化してみます。
 
 

使用する機器

Raspberry Pi(ラズベリーパイ)
http://www.raspberrypi.org/

Linuxで動作する名刺サイズのPCです。
小さくて省電力ですので、今回のような常時起動しておく用途にはぴったりですね。
3000円くらいで購入できます。


 
 
Strawberry Linux USB温度・湿度計モジュール (USBRH-FG)
http://strawberry-linux.com/catalog/items?code=52002

USB接続の温度/湿度計です。
組み立て済みで4980円、自作キットでも3980円です。
写真はケース付きのもので、更に+1260円です。
(恐ろしいことにRaspberry Pi本体よりかなり高いです 笑)


 
 

設定

Raspberry PiのOSに「Raspbian “wheezy”」を使っている場合を例として解説していきます。

まずUSBRHは挿すだけで認識するはずです。
USBポートにケーブルを挿し、以下のコマンドを叩いて正しく認識されていることを確認しましょう。

$ dmesg
 [略]
[  128.363346] usb 1-1.3: new low-speed USB device number 5 using dwc_otg
[  128.470187] usb 1-1.3: New USB device found, idVendor=1774, idProduct=1001
[  128.470219] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  128.470236] usb 1-1.3: Product: Hygrometer/Thermometer
[  128.470249] usb 1-1.3: Manufacturer: Strawberry Linux Co.,Ltd.
[  128.485357] generic-usb 0003:1774:1001.0003: hiddev0: USB HID v1.00 Device [Strawberry Linux Co.,Ltd. Hygrometer/Thermometer] on usb-bcm2708_usb-1.3/input0

必要なパッケージをインストールします。多くの場合もう既に入っているはずです。

$ sudo apt-get install gcc libusb-dev

こちらのサイトからドライバを落としてきます。
→ USBRH on Linux

$ cd /usr/local/src
$ sudo wget http://www.dd.iij4u.or.jp/~briareos/soft/usbrh-0.05.tar.gz
$ sudo tar xvfz usbrh-0.05.tar.gz

しかしながら、ソースコードに少し修正を加えないと、「usb_set_configuration error」というエラーになってしまうようです。
修正には以下のWikiの情報を参考にさせていただきました。
→ USB温湿度計

反転表示してある、233行目と237行目を追加します。

if((rc = usb_set_configuration(dh, dev->config->bConfigurationValue))<0){
    if( rc = usb_detach_kernel_driver_np(dh, dev->config->interface->altsetting->bInterfaceNumber)<0 ){
        puts("usb_set_configuration error");
        usb_close(dh);
        exit(3);
    }
}

修正が終わったらmakeします。

$ cd usbrh-0.05
$ make

このままではroot権限以外で実行した場合エラーとなってしまうので、お好みでsetuidして使うと便利かもしれません。

$ sudo chown root:root usbrh
$ sudo chmod u+s usbrh
$ sudo mv -i usbrh /usr/local/bin/
$ usbrh
24.34 21.81

無事、コマンドから温度と湿度がとれるようになりました。
 
 

グラフ化する

muninをインストールしましょう。

$ sudo apt-get install apache2 munin munin-node

これだけで基本的なグラフが生えてきます。
ただし、描画するグラフがいっぱいあるとRaspberryPiの処理能力ではかなり重くなるので、/etc/munin/plugins以下のシンボリックリンクを消して、不要なグラフは削除すると良いと思います。

USBRHの情報をグラフに加えるのは以下のサイトのスクリプトを利用させていただきました。
→ T-Saitoh’s Diary 熱くなってきたしUSBRH復活

上記サイトのスクリプトを/usr/share/munin/plugins/usbrhとして設置し、/etc/munin/plugins以下にシンボリックリンクをはります。

$ sudo vi /usr/share/munin/plugins/usbrh
[上記のサイトのスクリプトを保存]
$ sudo chmod 755 /usr/share/munin/plugins/usbrh
$ sudo ln -s /usr/share/munin/plugins/usbrh /etc/munin/plugins/
$ sudo /etc/init.d/munin-node restart

 
 

完成

温度の安定する位置に温度計を固定し、しばらく待ちましょう。

温度と湿度のグラフが生えてくるはずです。


 
 
なんだかジグザグしているのは、定期的にストーブが動くからです。春になれば安定したグラフが取れることでしょう。

洗濯をしたり、お風呂に入ったりすると湿度が跳ね上がるのも見てて楽しいです。
簡単にできますので、みなさんもぜひ試してみてはいかがでしょうか。

2013年02月15日 (金)

著者 : 

Raspberry Piでもゆっくりをしゃべらせてみました(ラズベリーゆっくりの構築について)

matsuiです。
昨日の記事 ゆっくりボイスをしゃべらせるためのPHPプログラム「YukkuriTalk」を作成してみました の続きです。

Raspberry Piとは

Raspberry Pi(ラズベリーパイ)はLinuxで動作する名刺サイズの小型PCです。
3,000円程度で購入できます。

512MBバージョンが出た数ヶ月前に購入し待つこと3ヶ月、忘れた頃に到着しました。
で、そこから数ヶ月間また存在を忘れ、つい先日思い出しセットアップを行いました。
 
 

Raspberry Piの基本セットアップ

ググるといろんなサイトが出て来ると思いますので、ここでは軽く説明します。

http://www.raspberrypi.org/downloads からOSのイメージをダウンロードします。
今回は「Raspbian “wheezy”」を選択しました。

ダウンロードしたイメージを、DDWinなどのフリーソフトでSDカードに書き込んでやればOKです。
SDカード容量は最低2GB必要ですが、それだと相当パンパンなので、用途に応じてあったものを買っておきましょう。

私はLinux環境だったので以下のコマンドでセットアップしました。Macの人も同様のやり方で行けると思います。
ダウンロードしたイメージは「2012-12-16-wheezy-raspbian.img」、SDカードのデバイス(dfコマンドで確認できます)は「/dev/sdx1」だとします。

$ sudo umount /dev/sdx1
$ sudo dd bs=4M if=2012-12-16-wheezy-raspbian.img of=/dev/sdx

(最後のコマンドのデバイス名に数字がつかないことに注意してください)
 
 

起動と初期セットアップ

上で作ったSDカード、HDMIケーブルとLANケーブル、USBキーボードを挿して起動します。
起動したらメニューが現れますので、以下の設定を行います。

(1) 何はともあれ「update」でメニューを最新にする
(2) タイムゾーンをAsia/Tokyoにセットする
(3) パスワードを変更する
(4) expand_rootfsで、SDカードの全領域を使えるようにする(数十分かかります)

続いて、パッケージを最新にします。これも1時間ほどかかります。

$ sudo apt-get update
$ sudo apt-get upgrade

 
 

ゆっくりをしゃべらせようとするが・・・

さて、ここまでこれば普通のLinuxと同じです。
昨日ご紹介した「YukkuriTalk」で、しゃべらせようとしますが・・・

残念、AquesTalkはx86用のバイナリで、普通のやり方ではCPUがARMであるRaspberry Piには対応できません。
ちなみにWineもARM環境には非対応です。
通常のやり方では難しいということがわかりました。
 
 

それでも私はゆっくりをしゃべらせたい

しかし、それでも私はゆっくりをしゃべらせたい。ここは強い意志を持って別の解決案を探ります。

そこで考えたのが、上のような方式です。
しゃべらせたい文字列をPOSTし、ゆっくりサーバがwavファイルを生成、Raspberry Piはそれをダウンロードして再生します。
今回はAmazonEC2上にマイクロインスタンスで専用サーバを立てました。
 
 

そして完成

”そこには、ゆっくりとゴミの日やGoogleカレンダーの予定をしゃべるRaspberry Piちゃんの姿が・・・”

使ってみるとなかなか快適です。
少なくとも、ゴミの出し忘れは激減しました。
cronに登録したものは何でもしゃべれますので、いくらでも応用がききます。

$ ./yukkuritalkclient "ゆっくりしていってね"
[talked] ゆっくりしていってね

 
 
作ったソフトはGitHubに公開しておきました。
詳しい使い方は同梱のマニュアルをご覧ください。昨日の記事もセットアップの参考になると思います。
→ GitHub ketaiorg / YukkuriTalkServer
→ GitHub ketaiorg / YukkuriTalkClient

wavファイルの生成にWineをつかっているため、Webサーバのユーザ権限でWineの実行が必要になります。
このあたりが少しやっかいかもしれませんね。HTTP経由ではなくSSH経由でwavファイルを取得してもいいかもしれません。
 
 
専用ステッカーも作りました。やはりDIYはこういうどうでも良いところに懲りたいものですよね。

透明ケースに合わせてスケルトン仕様のシールとしました。大満足の出来です。
はれてラズベリーゆっくりとなりました。

 
 
RaspberryPiのようなデバイスは、買うだけで満足してしまいがちです。
眠らせるのは勿体ないので、みなさんもぜひ活用方法を模索してみてはいかがでしょうか。

2013年02月14日 (木)

著者 : 

ゆっくりボイスをしゃべらせるためのPHPプログラム「YukkuriTalk」を作成してみました

こんにちは、代表のmatsuiです。
弊社では、サーバの監視で異常を検知すると、

(ゆっくりの声で) ”○○のサーバが沈黙しました。○○のサーバが沈黙しました。各員戦闘配置についてください。”

といった、音声が流れます。(内容はプロジェクトによって異なり、上は戦争ゲームなのでこのようなアラートになっています)

Linux上からこういった”ゆっくりボイス”による発声を簡単に行えるためのツール「YukkuriTalk」を作成してみましたので、記事にしてみたいと思います。
 
 

ゆっくりボイスについて

ゆっくりボイスといえば、テキスト文章読み上げソフトSofTalkが有名ですが、その音声ライブラリには株式会社アクエストの「AquesTalk」が使用されています。YukkuriTalkも発声処理にこのライブラリを使用しています。
→ 株式会社アクエスト AquesTalk

注意しなければいけないのは、利用や開発にライセンスがいるということです。

営利を目的としない個人の利用の場合は、一定の条件のもとで無償で利用できるようです。
また開発ライセンスも、オンラインストアから安価に購入できます。

法人の場合は、同じく使用ライセンスをオンラインストアで購入したり、別途問い合わせての開発ライセンス購入が必要になります。
弊社と私はゆっくりが大好きなので、一式の法人および個人ライセンスを購入しましたが、とりあえず試してみたいという方は評価版がダウンロードできますので、ひとまずそちらを使うと良いと思います。
詳しくは上記サイトにライセンスというページがありますので、そちらをご覧ください。

また、Windows版とLinux版で微妙に声が異なります。
設定の問題なのかもしれませんが、私はよく分からず解決できませんでした。
Windows版の方が聞き慣れたゆっくりボイスで、可愛いらしく感じますので、こちらを使うことにしました。
 
 

必要なパッケージのインストール

Ubuntu12.10 日本語 Remixへのインストールを例に説明します。
前述の理由で、わざわざWindows用バイナリをWineを使って実行しています。

php5 : このプログラムはPHPで書かれており実行に必要です

$ sudo apt-get install php5-cli

Wine : Windows環境のexeやdllを利用するために必要です

$ sudo apt-get install mingw32
$ sudo apt-get install wine

MeCab : 漢字からひらがなへの変換に使用します

$ sudo apt-get install mecab libmecab-dev mecab-ipadic

インストール後、以下のコマンドを実行し、辞書をUTF-8に変換してください

$ sudo /usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8

 
 

発声用の実行ファイル「AquesTalk.exe」を作る

テキストを受け取りWavファイルを出力するようなexeを作成します。
バイナリの配布には頒布ライセンスが必要なようなので、ここでは公開しておりません。ご自身で作成してください。

こちらのブログが参考になります。
→ ⊥=⊥ Wineでもゆっくりしていってね!!!

必要なライブラリやドキュメントはAquesTalkのページからダウンロードできます。
AquesTalk(2ではなく1)のWin版をダウンロードしてください。

コンパイルの実行例
上記ブログを参考にSampleTalk.cに発声プログラムを書き、AquesTalk.dll, AquesTalk.h, AquesTalk.libを同じディレクトリに置いた状態で、

$ i586-mingw32msvc-gcc SampleTalk.c AquesTalk.lib -o AquesTalk.exe

でコンパイルできます。
これで「AquesTalk.exe」が作成されました。このexeは次項で使用します。
 
 

実行方法

GitHubからプログラム本体をダウンロードします。
→ GitHub ketaiorg / YukkuriTalk

$ git clone https://github.com/ketaiorg/YukkuriTalk.git

実行プログラム本体の「yukkuritalk」と同じディレクトリに、前項で作成した「AquesTalk.exe」とダウンロードした「AquesTalk.dll」を置き、次のように実行します。

$ ./yukkuritalk "あいうえお"
[talked] (あいうえお)

実行すると[talkd]のように表示されて発声が行われます。

$ echo "かきくけこ" | ./yukkuritalk
[talked] (かきくけこ)

のように、パイプによる文字列渡しも可能です。
 
 

応用

いかがでしたでしょうか。
AquesTalkのHPで公開されているAqKanji2Koeを使ったり、SoftalkをWine上から実行すれば同様のことができるのかも知れませんが、試した限りうまく動作しなかったというのと、記号の読みなどが調整できるという点や、簡単に利用できるサンプルがあったという点から、今回はPHPによる再実装を選びました。

このソフトの使い道として、私は自宅で、「今日は何のゴミの日か」をしゃべらせることで、ゴミの出し忘れを軽減しています。
また朝の通勤前にGoogleカレンダーの今日の予定をしゃべらせ、ゆっくり秘書として活用しています。

Googleカレンダー上のデータを、発声のためテキストに落とすプログラムはこちらで公開しています。
これらを実行しつつ、パイプでyukkuritaikに食わせてやればOKです。
→ GitHub ketaiorg / gomi-gcal
→ GitHub ketaiorg / gcal2txt
 
 
みなさんもゆっくりボイスで癒やされて、ゆっくりとした生活を過ごしてみてはいかがでしょうか。

2013年02月12日 (火)

著者 : 

コアックマ&アックマ検定リリース☆だょ



 
みなさん、こんにちは。
スマートフォンアプリ開発チームのwataです。

コアックマとは、北海道応援キャラクターとして大活躍中のご当地キャラクターです。
今回、ご縁がありまして「コアックマ&アックマ検定(価格:無料)」開発のお手伝いをさせていただきました。
コアックマ、アックマにまつわる様々なクイズがあり、正答数に応じたおまけ壁紙をゲットできるアプリです。

企画:BeggarSwindle 開発:インフィニットループ

 

みんな遊んで”コアックマニア”になりましょう☆

 
・コアックマとは
北海道応援キャラクターとして大活躍中のご当地キャラクター。
道内179市町村を巡る『コアックマキャラバン』を通じて、笑顔の輪を広げる”フリーハグ活動”を実施中。
コアックマのおなかのハートをさわるとラッキーなことが起こるというジンクスが☆
出会った時は、おもいっきりギュ〜っとハグをして、おなかのハートをナデナデしよう!

・コアックマオフィシャルサイト
http://www.koakkuma.jp/

iPhone, Androidアプリのダウンロードはこちらから行えます。

2013年02月08日 (金)

著者 : 

Global Game Jam Sapporo 2013に参加しました

インフィニットループ技術ブログをご覧の皆様、はじめまして。
まんじゅ(´ん`)(@manzyun/牛さんのお乳を搾れるプログラマ)という新入りです。

さて、先日(1/25〜1/27)に行われたGlobal Game Jam 2013(以下GGJ)の札幌会場に弊社から自分を含めて3名参加しましたので、その簡単な報告をさせていただこうと思います。

開催情報

オーブニング
名称:Global Game Jam
札幌会場主催:札幌ゲーム製作者コミュニティ Kawaz
開催場所:世界中の各会場(札幌会場:池上学院グローバルアカデミー専門学校
公式サイト:Global Game Jam | January 25-27, 2013 http://globalgamejam.org/
Twitterハッシュタグ:#ggj13 (札幌会場:#ggjsap)
参加費:無料

そもそもGGJって何よ?

作業風景その1
一言で言いますと「48時間でゲームを作れ」という(良い意味で)クレイジーなイベントです。
このイベント、世界規模で行われるイベントで、イベント開始時に出題されるテーマに沿って
ゲームを作るというもので、スポンサーにfacebookや有名ゲームエンジンチームがついていたりと、
実は豪華なイベントです。
(続きを読む…)

2013年02月06日 (水)

著者 : 

PythonでGit/Subversionコミット情報をSkypeに送るスクリプト書いた

こんにちは。onoでございます。
今回は、内製ツールを紹介したいと思います。

弊社では業務のやりとりにSkypeチャットを利用しています。
なのでコミットされた内容もついでに流れてくれるとありがたいよね、という理由でちゃちゃっと作りました。

「◯◯のため△△修正したファイルをpushしました、確認お願いします」とか毎回書くのは避けたい、のが本音です。

このツールは、GitSubversionのコミット情報をローカルで監視しつつSkypeで通知するのが仕事です。

初稼働はかれこれ1年以上前で、最初にGit版をつくり、続いてSubversion版を別スクリプトに切り出してたのを、1本にまとめたことをきっかけに今回のエントリとなりました。

さっそく、実際に通知された例を挙げていきます。

(続きを読む…)

2013年02月04日 (月)

著者 : 

全国1000万人のPHPerのみなさんお待ちかね! 検定試験アプリが登場

 

これはPHPを愛する者達の魂が宿りし検定。
攻略した者はPHPマスターと呼ばれるのだ。
世はソーシャル全盛、大PHP時代!
あなたもPHP検定でPHPを極めましょう!

 
 

全国1000万人のPHPerのみなさん、こんにちは。

本日は弊社インフィニットループより
あの「Vim検定」“に続き検定シリーズ第二弾として企画されました
Android,iPhone両対応アプリ「PHP検定」が
リリースされましたことをお知らせいたします!

インフィニットループはPHPエンジニアを多数抱えることもあり、
ご用意させていただきました問題数と難易度の高さに
弊社としても大きな自信を持っています!

「Vim検定」と同様に
今後は問題のアップデート配信も予定していますので、
PHPerの皆さんは是非挑戦してみてください!

 
 

アプリの詳細については、こちらのPHP検定公式サイトをご参照下さい。

 

iPhone, Androidアプリのダウンロードはこちらから行えます。

  • このブログについて

    このブログは、札幌市・仙台市の「株式会社インフィニットループ」が運営する技術ブログです。
    お仕事で使えるITネタを社員たちが発信します!

    最新の記事