0

FlickrAPI試用

今日は語種登録してきてから、昨日買ってきた部品を整理したりした後、ちょっとFlickrAPIを触ってみた。

語種登録部品補給

5時間ぐらい粘ったら、FlickrAPIからRESTでXMLを持ってきて解析したり、画像を取ってきたり出来る様になった。

flickrApiTest.gif

今までflashという画像やらを扱うにはなかなか便利なツールを使っていたので、結構手間取った。

.netのPictureBoxコンポーネントは、PictureBox.Imageにファイル名を指定してやれば画像を読み込めるらしいのだけど、そのままではhttp経由だと一度ローカルに保存しないとならないので

pictureBox等にURL指定の方法を使った。

pictureBox1.Image = Image.FromStream(getHttpImage(“http://static.flickr.com/24/45560715_fe89c74c2a.jpg?v=0”));

private MemoryStream getHttpImage(string uri)

{

WebClient wc = new WebClient();

MemoryStream streamImage = new MemoryStream(wc.DownloadData(uri));

return streamImage;

}

画像の取得はWebClient、XMLの取得はWebRequtestとWebResponse、解析はXmlTextReaderで特に何も考えずに実装してみた。

まあ…C#の文法忘れちゃったしそろそろ勉強し直そうかな

0

オンテナ2のcrontab

rnaで動かしてるオンテナ2の20分毎自動巡回が治りました。

fsをリプレースした関係で、以前crontabについてメモした時の設定のままだと動かなくなっていたので修正しました。

実行するshell sciprtを

cd /home/sho/public_html/ontenna2/

から

cd /export/home/sho/public_html/ontenna2/

へ、

crontab側の設定を

*/20 * * * * /bin/sh /home/sho/public_html/cron/ontenna2.sh 2>/dev/null

から

*/20 * * * * /bin/sh /export/home/sho/public_html/cron/ontenna2.sh 2>/dev/null

にしました。

/home でユーザディレクトリにアクセスできなかっただけ。

英語の本読んでるとやたらオンテナにアクセスしてしまうのでこれで万事解決

0

atmega128, 64が秋月に入荷

http://akizukidenshi.com/catalog/items2.php?q=avr&s=score&p=1&r=1&page=#I-01116

ついに来たよ。90S8535と90S4433の扱いも無くなって、秋月はAVR見捨てたのかと思ってたらmega128が入荷された。この調子でmega88あたりを安く入荷して欲しい。

実際の所、秋月電子はPICプログラマーキットとH8開発キットが一番利益を上げてるらしいので、ライターが300円で作れてコンパイラが無料で手には入ってしまうAVRは取り扱っても利益上がらないんだろうけど。

むしろAVR扱うとPICの客が流れるか?

0

AVR-GCCのレジスタ操作関数&マクロ

今日畑山さんにAVR-GCCについて質問されたので、5月あたりから俺が多用しているレジスタ操作関数やマクロについて書こうと思ったらGetting Started Notes – Ports – AVR-Wikiに大体書いてあった。

_BVの項あたりから読むと良いと思う。

補足。

マイコンはレジスタで制御されている。レジスタはメンバ変数のようなもので、マイコンは常にレジスタの状態を監視し、変化があれば動作を変える。

レジスタの例としては

・IOポートのPB3から電流を流すかどうか

・シリアル通信の受信を許可するかどうか

・A/Dコンバータを開始するかどうか

等だ。大抵が1bit。

数は少ないが

・シリアル通信で受信したデータ(8bit)

・タイマカウンタのカウント速度(3bit)

などもある。

1bitのレジスタはC言語で扱いにくい。なぜなら、C言語の標準の型のうち一番小さいのが8bit(1Byte)なので、1bitのレジスタを操作するにはビット演算が必要になる(&や~等)

例えばUCSRAの6bit目、UDREレジスタがセットされているかどうかを調べる時は

if(UCSRA&32)

としなければならない。なんかぱっと見わからない。

これをマクロを使って書くとこうなる

if(bit_is_set(UCSRA, UDRE))

これなら、データシートに書かれているレジスタをを一つずつ読んで、ぽちぽち埋めていけばちゃんと動作するプログラムが書ける。

mega8の外部入力割り込みなどは、sbiとcbiを使って一つずつレジスタを指定していってやると簡単に出来た。

Getting Started Notes – Ports – AVR-Wikiも見るとわかりやすいのだが、

WinAVR\avr\include\avr にUDREやPB0などの各レジスタが何ビット目にあるかが定義されている。

atmega8のヘッダファイル、iom8.hには

/* UCSRA */

#define RXC 7

#define TXC 6

#define UDRE 5

#define FE 4

#define DOR 3

#define PE 2

#define U2X 1

#define MPCM 0

となっている。

bit_is_set(UCSRA,UDRE)で、UCSRAの6ビット目がセットされているかどうかがわかる。

他にもloop_until_bit_is_set(byte, bit) → byteのbitがセットされるまでループして待機や、bit_is_clear(byte, bit) → byteのbitがクリアかどうかなどがある。

あと_BV。

_BV(0)とすると、1ビット目だけセットされた8bitの値が返される。

_BV(5)とすると0b00100000 → 32になる。

つまり << と同じだ。_BV(PB3)は1<

| とかもよく使う。自分で調べて欲しい。

明日はインタラクティブ東京moo-pongのそばにいると思います。

だめだ眠い

0

Proce55ingでwebCamを使う為の準備

ProcessingでPCに接続したカメラからの映像を取り込み、画像解析ができる。インストールメモ。

Proce55ing

Quicktime

インストールする時、Quicktime for Javaも選択する。

WinVDIG

Windowsの人はインストール

この3つをインストールした後、 Sketchbook→Examples→Library-Video の中のを実行してみると動く。

イライラボールとかもできる。

上記のprocessing.videoだけでなく、Myronでも画像解析が使える。

Myron

webAGORA wiki: Programming/Proce55ing/JMyron

webCamは、手元にあったロジテックのQV-40とQV-4000proで動作を確認した。

QV-4000proの方が圧倒的に画質が良いので、値段倍ぐらいするけどこっちのがいいかも。