WiringPi + Siri Proxy @ Raspberry Pi .あと編集したPluginをどう反映させるかという話.

Siriでいろんなもの操作させようと思ったので,WiringPiいれた.
"turn on"とSiriにしゃべると,GPIOにつながったLEDをBlinkさせてしゃべってくれる.

お粗末な感じすごい.
ていうか,Pluginを編集して反映させる方法よくわかんなくて,めんどくさかった.
~/SiriProxy/plugins/siriproxy-example/lib/Siriproxy-example.rb
の中をいじると,なんのセリフに対してどういう処理をするのかが記述できるんだけど,保存しただけでは反映されなかった.
ので,Siriproxy-example.rbを編集した後に,
$ rake install
$ siriproxy bundle
$ rvmsudo siriproxy server
すると自分の好きなアクションをとらせることができる.
注意点としては,勢い余って
$ siriproxy gencerts
もしてしまうとiPhoneなりiPadなりにプロファイルをインストールしなおしになるので大変めんどくさいです.

Twitterでテンションの変動があったっぽいとこだけ抜粋して2012年のふりかえりです.

  • 1月

太陽の塔みた.
はなまるの豆腐と枝豆のふわふわ揚げやばい.
久々に栂池行った.この時期の三連休なのに混んでなくてスキー業界のやばさを感じた.
酔った勢いで携帯をなくして大事件.
バキュンバキュンバキューン!(キサラギ
Thinkpadちゃんのメモリ8GBにした.
岡村ちゃんが元気でうれしい
内定先の健康診断と面談.ついでにICCを見に行く.
学内でボヤ騒ぎ.研究棟が燃えなかったので論文を書く.
研究用デバイスの量産とかしてた.はんだづけ地獄.
餃子食べたい.ビール飲みたい.
夜な夜なカップ焼きそばを食う@joumasaki.

  • 2月

まるちゃん袋やきそばの粉ソース単品で売っててパラダイムシフトを体験した.
学内のキリンコーラが減っている.大問題だ.
村松健の新作.
B4が研究室で倒れてて悲惨な感じ.
南極料理人のでかいエビフライ食べたい.
クリトリックリスと七尾旅人のライブ笑った
スーパーボウル熱い.
X-CTUぽいのがMacLinuxでも出てXBeeが便利に.
SPモードメールやばい.
缶おしるこおいしい.
あげだまボンバー!
発表前日だけど動画編集ソフトの使い方がわからない.
修論発表でいかに食い物の話をするか.
ベルの音が聞こえなくて発表死んだ.
スペースシャトル熱がすごい.
kinectのチルトモータウィンウィン
ブレードランナーにしびれる.
豆腐丼とここら屋のうまさ.
ScanSnapレンタルして本全部スキャンした.
まわる寿司が食べたい.
@bboypopeyeさんのかっこいい話をTwitterで聞いた.
人にプロジェクションマッピングするソフト作ったけどプロジェクタがない.

  • 3月

ケンミンショーで高校の校歌が流れてアレ
松本のらーめんのうまさ
ガリガリくん当たり
ギャル曽根は生き神
携帯電話はグループ会社のものにしましょうね.
Thinkpadちゃんに納豆をこぼす.
自己紹介.ppt
図書館の本を返してくれたら卒業していいよ.
アフロ猪狩.
グラバー亭か東永に行きたい.本当はびっくりらーめんに行きたい.
空でホルモンをくう.ビールビール
金玉売り切れて@joumasakiくんだだ滑り.
塗装ブースを売った.本格的な模型作りの終わり.
Pogoplugちゃんきた.
財布からベーコン
ようこそiPad3.
しづかおいしい.栄作おいしい.
Thinkpad6セルバッテリにした.復活.
退去.壁に穴あけたから敷金はなしよ.
卒業式.研究室に前泊.
アレルギー診断の結果がやばい.
お好み焼きと筋煮込みとビールで関西を脱出
みんなkinectをTOFという.
銀歯デビュー
佐の春おいしい.
しばんちゃん復活
源太おいしい.
広島行った.おいしい.
漬け物喫茶おいしい.
寮のお知らせきた.やばい.
研修先も決まった.ソルジャーになります.
GoogleMapで調べて,寮のやばさを知る.
@_udonchanさんから林は独房というリプ.正しかった.
Salyuの新譜
寮母さんやばい.
研修開始.東京の居酒屋安すぎて笑う.

  • 4月

研修.ホテルすごいし連日飲んでるし楽しい.
みんな肝臓悪い.
グループ会社研修.暦本研の人とか筧研の人とかいた.いろんな人いて楽しい.
みんな訓練されていて事業会社研修がこわい.
一人居酒屋デビュー.隣のおばちゃんが魚にずーっと文句言ってて苦笑いした.
寮の収納スペースぱねえ.寮母さんぱねえ.
フレッツ光に加入するとBDレコーダがもらえます!フレッツ光で5万円引き!!!
東京遠い.おかしい.
横須賀バーガーでかい.おいしい.
共益費が高い.
コンビニ弁当しか食ってない.
寮の自販機のつめたーいがあったかーい
自己紹介がんばる.
ずっと熱でてるけど連日の歓迎会でビールの味がよくわからないの.
マグロのカマ焼きすごい.
自己紹介はウケが大事.
YCAT最強.
古谷実の新連載
YCAT高いなー.
関東のこのへんトラベラーよくない.関西のがよい.
YCAT乗り過ごしがはじまる.
初任給で崎陽軒のシュウマイ弁当おいしい.
事業会社すごい.
大人相手にはしゃぐ新入社員達.
8年くらい不健康だった生活リズムが一瞬で真人間に!
@kougakuさんのSENSACTに参加してフォトリフレクタのすばらしさに男泣き.
明大生田やばい.
所属言うのがこわくて質問ができない.翼折れた.
学生楽しそう.
洗面所で自炊する若者達.
かっちゃんおいしい.
満員電車ギュウギュウ
寮のごはん意味わからない.
社会人時間ないから自分が何がしたいか考えるようにしてるライフハック(核爆)
始発YCAT生活始まった.睡眠時間が5時間切り続けると人は鬱になるらしいので検証する.
飲み会に最後までいられないのつらい.
公衆電話を愛でる.
新宿満喫に止まる飲み会が始まった.
あんかけ豆腐一気のみ.
串カツビールしたい
交通費やばい.貧乏が加速する.
ゴールデンウィークだけど公衆電話かわいい.

  • 5月

寮のあたたかーい炭酸
山手線はヌルゲー
枠を埋めろ!枠を埋めろ!枠を埋めろ!枠を埋めろ!
ケトル買った.
うめざわしゅんの新刊
オクトーバーフェスト.ビールおいしい.みんなで馬鹿騒ぎして楽しい.
おっさんが痴漢してばれて,人生終わる瞬間見た.そういうお店にいきましょうね.
山田庵巳のアルバム
阿波踊り残業のはじまり.
テキーラすばらしい.おなかいっぱいにならないのすばらしい.

  • 6月

たりないふたりの最終回
ネクタイはキオスクで売っている.

  • 7月

沖次郎やすすぎ.
会社に一時的に戻る.通勤楽すぎて鼻血でた.
仙川すごいなー.
秋葉原で電子部品屋うろうろ
たどんうまい.はらみうまい.
NexusにJB焼いた.
スカイツリーどついた.
スカイツリー水族館いい.
くせになるwing号
神豚ブヒブヒ
くるみのインディアンオムライス食べたい.
営業開始した.売った.

  • 8月

大王わさび久々にきた.
Node.jsやった.

  • 9月

明大のわくわく感.
お金なくて三食立ち食いそば
土井玄臣とハラカズトシのライブうらやましい
AndroidでWebSocketつかった.
安かったので秋葉でP-01Dかった.ディスられた.
研修終わった.昼まで飲んでた.

  • 10月

CEATEC流行語大賞は,いい質問ですね.
ノベルティホクホク
アウトレイジ2だぞ
通勤マジイージーモード
琉球ホルモンおいしい.
志茂田景樹
寿司寿司焼き肉寿司
おでんたべたい
車持ってきたのですき家おいしい

  • 11月

奨学金の返済死ぬ.
Android勉強会
noduinoのコレジャナイ感
マックポテトバトル
webRTCおさわり
jsややこしい
鈴木先生おもしろい.映画みたい.
会社にドクペ売っててやばい.
こたつ導入
SlitScanおもしろい.組んだけど違う感じする.
ホルモン食べたい.
レバニラおいしい.

  • 12月

MFT2012.楽しかった.@hsgwさんだけ確認できた.同期に恵まれてるな-と思った.
ガンダムガンダム!わさびじゃがりこ
忘年会大変.
ボーナス!ボーナス!
神豚むさぼる
第二次みかんブーム
キリンジ解散ライブ
Socket.IOチャットでわるふざけ
フレッツ光メンバーズクラブでiTunesカードをゲットです!
キリンコーラ販売中止してて死んだ
会社のPCMacbookAirになった.
もつなべ食べたい.
仕事してないのに仕事納めした.


大学生のときは楽しそうで,研修途中から通勤キツすぎて死んでる感じしました.
良いお年を.

Android4系でNode.jsつかう.

AndroidでNode.js使って通信しようとしたらブラウザ使うかネイティブアプリ使うかの2択で,ネイティブアプリにした.
JavaでWebSocket使うときは,webknecht ( http://code.google.com/p/weberknecht/ ) というWebSocketライブラリ使うのが定番ぽい.
Android2系でテストしてたときは全然問題なくサーバからプッシュ通知受け取れたんだけど,4系でテストしたら,

android.os.NetworkOnMainThreadException

というエラー吐いてアプリが落ちる.
ググったら,3系以上ではStrictModeというアプリを監視するモードがデフォルトでオンになってるから落ちるんだとのことでした.
メインスレッドのパフォーマンスを低下させるようなのとか,ポリシーに反する感じのとき落ちるそう.
これをオフにするには,

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build());

をメインスレッドに書いてやればよい.
動いた動いた.

AVRStudio5でUSART(割り込み受信)

前回は送信の確認をしたので,今回は受信のテストをします.
割り込みでデータを受信できるようにします.
HWとかは前回と同じ.

#include <avr/io.h>
#include <avr/interrupt.h>//割り込みを利用するので.
#include <util/delay.h>

#define FOSC 16000000
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1

void port_init(void){
	DDRB = 0x01;
	PORTB = 0x00;
}

void usart_init(unsigned char ubrr){
	UBRR0H = (unsigned char)(ubrr>>8);
	UBRR0L = (unsigned char)ubrr;
	UCSR0B = (1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);//割り込み受信設定
	UCSR0C = (1<<USBS0)|(3<<UCSZ00);
}

int main(void)
{
	char a;
	port_init();
	usart_init(MYUBRR);
		
	sei();
		
    while(1)
    {
		PORTB = ~PORTB;
		_delay_ms(1000);
    }
}

ISR(USART_RX_vect){//割り込み受信設定.
	if(bit_is_clear(UCSR0A,FE0)){
		UDR0 = UDR0;
	}
}

ハイパーターミナルとかで入力した値がエコーされます.


[:large]

AVRStudio5でUSART(とりあえず送信だけ)

引き続きAVRStudio5でUSART.
手っ取り早くテストするために送信だけ.
HW的には前回と同じですが,シリアル通信用のモジュール(マルツ製MPL2303SA)を使います.

#include <avr/io.h>
#include <util/delay.h>

#define FOSC 16000000//16MHz(クリスタル)で動作させる

#define BAUD 9600//ボーレートの設定.
#define MYUBRR FOSC/16/BAUD-1//UBRRの算出

void port_init(void){
	DDRB = 0x01;//前回と同じ
	PORTB = 0x00;
}

void usart_init(unsigned int ubrr){
	UBRR0H = (unsigned char)(ubrr>>8);
	UBRR0L = (unsigned char)ubrr;
	UCSR0B = (1<<RXEN0)|(1<<TXEN0);//RxD, TxD設定
	UCSR0C = (1<<USBS0)|(3<<UCSZ00);//データは8bit
}

int main(void)
{
	port_init();//LED点滅用ポート初期設定
	usart_init(MYUBRR);//USART初期設定
	
    while(1)
    {
		UDR0 = 'A';//Aを送信.
		PORTB = ~PORTB;//LEDチカチカさせる.
		_delay_ms(300);	
    }
}

MPL2303SA用のドライバをインストールすれば,COMポートとして利用できる.
ハイパーターミナルなり,Acknwrichなりで動作確認.

AVRStudio5でLチカ

AVRStudio5でとりあえずLチカをやります.

  • 使うもの
    • ATmega168P(16MHzクリスタル)
    • MPL2303SA(SJ1とSJ2をジャンパ)

まず,前回の記事のように新しいプロジェクトを作ります.

  • プログラム

main.cに以下のコードを記述.

#include <avr/io.h>
#include <util/delay.h>//delay使うので.

int main(void)
{
	DDRB = 0x01;//出力用ポートの設定.PB0を出力に設定.
	PORTB = 0x00;//ポートの初期状態設定.
	
    while(1)
    {
		PORTB = ~PORTB;//~:反転.PORTBすべてのピンについて出力を反転させる.
		_delay_ms(300);
    }
}

コードを書いたら,Releaseにしてから,ビルド.

  • hexを焼く

ツール -> AVR Programmingをひらく.
まず,外部クロックを使う設定を.
Fusesタブで,

    • CKDIV8にチェック
    • SUT_CKSEL EXTXOSC_8MHZ_XX_16KCK_14CK_65MS

そしたらProgramを押して設定します.
Memoriesタブを開いて,真ん中のFlashカテゴリでHexファイルを選択してProgram.
これでプログラムが転送できました.
LEDがチカチカしたら成功です.

AVRStudio5

Macbookは最近メインPCだし,ThinkpadにAVRStudio環境作り直した.
6は怖いので5をいれた.適当にexeでググって引っ張ってくる.
結構変わってて困った.


・ライタ(Mk-2)のファームアップデート
ツール -> AVR Tools Firmware Upgrade
・空プロジェクトつくる
ファイル -> 新規作成 -> プロジェクト -> AVR GCC -> C Executable Project
適当に名前変えて保存する.チップの型番選ぶ.
ソリューション構成がDebugになってるのでReleaseに変更する.
※デフォルトだとなんもでてこなかったので,
プログラムファイルのAtmel\AVR Studio\projecttemplates\AvrGCC\C\1033以下のZipファイル全部コピーして,
マイドキュメントのAVRStudio\Templates\Projecttemplates以下にコピーする.
・ヒューズビットの設定
ツール -> AVR Programming
Auto Readはずしておく.
・クロック数の設定
(ソースの中でFOSC = 16000000;とかやってもいい.
プロジェクト -> のプロパティ -> ToolchanのSymbolsに,F_CPUを追加する.
例えば16MHzの水晶使うなら,
F_CPU=16000000UL
を追加する.
・ビルドして問題なければとりあえずOK.