タグ

ブックマーク / neocat.hatenablog.com (20)

  • Raspberry Piで航空機からの位置情報信号ADS-Bを受信してみた - Okiraku Programming

    最近ニュースで航空機の捜索が話題になっていましたが、その中でADS-Bという単語が出てきました。 ADS-B(Automatic Dependent Surveillance-Broadcast)は、航空機から1090MHzの周波数で発信されている、識別子、GPSによる現在位置、高度、対気速度などを含む信号で、この情報を地上や航空機間で利用することでより安全に航空機を運用できるようにするもので、近年これに対応したトランスポンダを搭載する航空機が増えてきているそうです。1030MHzで各航空機に問い合わせを送り、各航空機が1090MHzで応答するというプロトコルになっています。 参考: 空中衝突防止装置 - Wikipedia Flightradar24というサイトを見ると、航空機の位置情報をリアルタイムで見ることができますが、これはユーザの受信機が拾ったADB-Sの情報を収集して配信するこ

    Raspberry Piで航空機からの位置情報信号ADS-Bを受信してみた - Okiraku Programming
  • USBミサイルランチャーをArduinoでコントロール - Okiraku Programming

    久しぶりにUSBホストシールドで遊んでみました。 USBで制御できるミサイルランチャー(カメラ付き)を手に入れたので、これをArduinoから動かしてみます。 必要なもの Arduino (Duemilanove / Uno。 Megaでも大丈夫かな?) USBホストシールド USBミサイルランチャー ACアダプタ 9V〜12Vくらい ライブラリのインストール IDEは、最新版のArduino 1.0を使います。 準備として、ホストシールドのライブラリをダウンロードしてインストールする必要があります。 下記GitHubではUSBホストシールドライブラリ2.0が公開されています。2.0では、Arduino IDE 1.0対応、USBハブ対応などが行われています。 GitHub - felis/USB_Host_Shield_2.0: Revision 2.0 of USB Host Libr

    USBミサイルランチャーをArduinoでコントロール - Okiraku Programming
    yuiseki
    yuiseki 2012/03/27
  • ルンバをXBeeでリモコン操作 - Okiraku Programming

    最近引っ越して少し部屋が広くなったので、ルンバを導入してみました。 部屋のケーブル類さえ巻き込まれないように対処しておけば(壁に貼付けるとか段ボール等でガードするとか)、勝手に掃除してくれるので大変楽できます。 さて、ただ自律的に掃除してもらうだけでも良いのですが、せっかくロボットがあるのだから自分でも動かしてみたいところ。 ルンバはRoomba Open Interface (ROI)というインターフェースを備えており、センサの情報をモニタリングしたり、外部からコマンドを送って自由に動かしたりすることができます。Openというだけあって、仕様もちゃんと公開されています。→ 500シリーズのROI仕様 シリアルでコマンドを送るだけなので比較的簡単です。工夫のしがいとしては、ルンバが自由に動き回れるよう通信を無線化したいところ。すでにフリスクケース入りのBluetoothアダプタも発売されて

    ルンバをXBeeでリモコン操作 - Okiraku Programming
  • Arduinoで電波時計を合わせよう - Okiraku Programming

    現在、福島第1原子力発電所の事故の影響で、東日で電波時計の基準となる福島の送信所からの標準電波(JJY)の運用が止まっています。このため、電波時計の自動調整が行えなくなっています。(西日は九州からの電波があるため問題ありません。) このJJYを模擬した出力を、NTPを使って取得した時刻をもとにArduinoを使って発信*1して、電波時計を合わせるのに挑戦してみました。 PCのオーディオ端子を駆使して、同じことをするWindows用ソフトがあり、こちらに触発されて作ってみました。 JJYシミュレータ : http://www.starstonesoft.com/JJY_Simulator.htm JJYのフォーマットについては、下に詳しく説明があります。40kHzの電波のON/OFF時間により、1秒に1bitずつ、60bitの信号を1分かけて送信します。 標準電波の出し方 ハードウェアは

    Arduinoで電波時計を合わせよう - Okiraku Programming
    yuiseki
    yuiseki 2011/03/29
  • JSONPの動的取得+エラー処理 - Okiraku Programming

    JavaScriptから外部ドメインにあるAPIを呼び出すために使われるJSONPですが、scriptタグを動的に追加する方法(下記の記事など)JSONPの取得時にサーバ過負荷などでエラーが出た場合、エラー処理ができないという欠点がありました。 クロスドメインJavaScript呼び出しをクラス化, クロージャにも対応 - Okiraku Programming scriptタグに onerror= という属性を付加するとエラー発生時にスクリプトを実行させることができるブラウザもあります。しかし試してみると、 Firefox: サーバがステータス4xx, 5xxを返した際にonerrorが実行される。 Safari: サーバがステータス404を返した際にのみonerrorが実行される。 Opera: 実行されない IE: 実行されない といったように、ブラウザごとに挙動がまちまち。 またス

    JSONPの動的取得+エラー処理 - Okiraku Programming
  • twicliにListsプラグインを追加 - Okiraku Programming

    Twitterに新たに追加されたLists機能。APIもドラフトながら公開されていますので、これを使ったプラグインを作ってみました。ただしAPIはまだ変更が予定されているようですので、突然動作しなくなる恐れもあることを予めご了承を。 いろいろな使い方ができそうなListsですが、まずはフォローしている人をグループ分けしたりするのに使うのが一般的でしょう。twicliでは、既存のリストをタブとして表示するようにしてみました。 使い方 まずTwitterのWebサイト上でListsを作成/または誰かのリストを見つけてfollowする。*1 twicliを起動。"+"タブのPreferencesのPluginsに、 "regexp.js" と "lists.js" を追加しておく(デフォルトで追加されているはずです)。 "+"タブのListsをクリックして開き、フォローしているListsの名前(

    twicliにListsプラグインを追加 - Okiraku Programming
    yuiseki
    yuiseki 2009/12/30
  • さらにID/発言内容抽出タブにフィルタ機能を追加 - Okiraku Programming

    (id:NeoCat:20090101:1230838882の続き) 検索条件指定で、「:」区切りの4番目に1などを書くと、メインのタイムラインでは発言を非表示にできるようにしました。 指定の例 ID指定でbotをメインのTLから非表示にする bot:bombtter|buzztter|chigatter|LinaCafe::1「ほげ」を含む発言をメインのTLから非表示にする(いわゆるNGワード指定) bot::ほげ:1 追記:※ただしTLに既に表示されたものはリロードしないと消えません。 (2011/01/19追記) TL以外から非表示にする方法は 以下を参照して下さい。 twicliの抽出タブを拡張 - Okiraku Programming 1/28追記:また、指定した条件にマッチした発言には、メインのTL内のdiv要素に「match」および「match-tab名」というclassが

    さらにID/発言内容抽出タブにフィルタ機能を追加 - Okiraku Programming
    yuiseki
    yuiseki 2009/12/30
  • twicliにID/発言内容抽出タブを追加するプラグイン - Okiraku Programming

    あけましておめでとうございます。 というわけで正月プログラミング。 要望があったようなので、Twitterクライアントtwicli向けに、タイムライン(TL)からユーザIDや発言内容を元に発言を抽出するプラグインを書きました。→コード 動作イメージ: 使い方 0. (デフォルトでは不要) twicliの「+」タブのPreferences→Pluginsに「regexp.js」を追加。Saveをクリックすると保存したというダイアログが出るので、再読み込み。 1.「+」タブの「抽出条件」(Pickup Pattern)という欄に、検索条件を書く。 タブ名:ID検索パターン:発言内容検索パターン:TLから除外(0/1) というコロン区切りの書式で抽出条件を記述。各パターンは正規表現が使えます。 ID/発言内容のどちらかだけを使う場合は、使わない方は省略します。両方指定するとOR条件です AND指

    twicliにID/発言内容抽出タブを追加するプラグイン - Okiraku Programming
    yuiseki
    yuiseki 2009/12/30
  • FlickrのURLからサムネールを取得する - Okiraku Programming

    twicli用サムネール表示プラグイン「thumbnail.js」を作った時の備忘録として。 だいたいの流れは FlickrのURLから写真のIDを抽出する Flickr APIの「flickr.photos.getInfo」を使ってJSONPで写真の情報を得る 得た情報からサムネールのURLを構築 という感じです。 詳しくは以下。 0. Flickr API keyを取得する http://www.flickr.com/services/apps/create/apply/ から、用途に応じたKEYを取得しておきます。 1. FlickrのURLから写真のIDを抽出する FlickrのURLについてはFlickr API Documentation | URLsを参照。 例えば、 http://www.flickr.com/photos/neocat/3488883246/ だったら、「

    FlickrのURLからサムネールを取得する - Okiraku Programming
  • XBeeシールドとEthernetシールドを同時に使う - Okiraku Programming

    ArduinoのEthernetシールドには、ピンヘッダをそのまま上にバイパスするソケットがついており、他のシールドを重ねて装着することができます。 XBeeシールド + Ethernetシールド 上記のリンク先にもXbeeシールドをEthernetシールドの上に載せて3階建てにした写真がありますが、実は単に重ねただけだとXBeeシールドが動作しません。 これは、XBeeシールドがArruinoのICSPピン(横にある小さなピンヘッダ)から電源をとっているためです。これはAVRにファームウェアを書き込んだりする際に使うものなので、シールドではあまり使わないのですが、XBeeシールドはここから、5V, GND, RESETを取り出しているようです(RESETはXBeeシールド上のスイッチを押した時にArduinoをリセットするため)。 ですから、3階建てにするためには、下のようにEthern

    XBeeシールドとEthernetシールドを同時に使う - Okiraku Programming
    yuiseki
    yuiseki 2009/12/02
  • ArduinoからTwitterにPOSTするライブラリ - Okiraku Programming

    このエントリで紹介しているライブラリは、2010/8月に廃止されたBASIC認証を使用しており、現在動作しません。 以後は、OAuth対応版に移行して下さい。使い方はほぼ同じです。 一つ前のエントリで紹介したArduinoの魅力の一つに、「シールド」と呼ばれる拡張ボードを載せることで簡単に様々なハードウェアを利用できることがあります。純正のEthernetシールドやXBee(無線通信)シールドなどが販売されているほか、ユーザの手によっても作品が作られているようです。純正のシールドはライブラリやサンプルもIDEに組み込まれているので、非常に簡単に使えます。 今回はスイッチサイエンスさんで純正Ethernetシールドを購入してみました。 + Arduino Duemilanove 328 + Ethernet Shield これを使って、TwitterにメッセージをポストするSketchを書い

    ArduinoからTwitterにPOSTするライブラリ - Okiraku Programming
    yuiseki
    yuiseki 2009/05/07
    ダウンロードできない…
  • Arduinoで学習リモコン - Okiraku Programming

    Aruduino Duemilanove 328買ってみた。 Arduino (アルデュイーノ)とは、AVRマイコンを搭載しデジタル/アナログ入出力を備えたイタリア発祥のマイコンボードです。C++ライクな言語での開発環境が整備されていて、非常に簡単に開発が出来るのが特徴。いろんなセンサをPCに繋ぐインターフェースとしても使いやすいし、もちろんスタンドアローンでもいろいろこなしてくれます。 中でも Aruduino Duemilanove 328 (読み方。イタリア語かっこいい)は、USB 1PC(Mac, Windows, Linux)と接続するだけで、すぐに開発が始められる簡単さが特徴です。Arduinoは「オープンソースハードウェア」であり、設計情報は全て公開されているため、自分で組み立てることも出来ます。が、まずは製品を買うのが簡単だと思って、Amazonのスイッチサイエンス社の

    Arduinoで学習リモコン - Okiraku Programming
    yuiseki
    yuiseki 2009/05/03
  • DB設計 - Okiraku Programming

    まずはDB設計から。といっても簡単に。Railsなら後から変更も楽に違いない(思い込み)。 ┌──────────┐   ┌────────┐ │User        │n⇔n│Follow     │ │──────────│   │────────│ │名前、パスワード、 │   │user_id    │ │プロフィール、設定、│   │ followee_id  │ │などなど…     │   └────────┘ └──────────┘ 1 ↓ n ┌──────────┐ │Status       │ │──────────│ │user_id      │ │発言内容      │ └──────────┘なんか崩れてるが心の目で見てください。 User:ユーザ情報を管理。ログイン等もこの情報をもとに行う。 Status: ユーザの発言を管理するテーブル。複数の発言が

    DB設計 - Okiraku Programming
    yuiseki
    yuiseki 2008/06/30
  • Followerの取得 - Okiraku Programming

    引き続きTwitterもどき「monologue」の作成。 昨日作ったフォロー中のユーザ(followee)の取得に加えて、逆方向、つまり自分をフォローしているユーザ(follower)を@user.followersで取得できるようにしてみます。 まずFollowsテーブルからfollowee_idが自分のidであるものを全て検索し、その各user_idを使ってUserを取得すれば良さそうです。 これをActiveRecordで記述すると、以下のようになります。 UserモデルとFollowモデル間の関連を記述(フォロー先→フォロー元) まずUserモデル側。 has_many :follower, :foreign_key => :followee_id, :class_name => 'Follow', :dependent => :destroy has_many :followe

    Followerの取得 - Okiraku Programming
    yuiseki
    yuiseki 2008/06/30
  • ActiveRecordでユーザの最新の発言を取得する - Okiraku Programming

    id:NeoCat:20080525に引き続き monologue (Twitterもどき)を作っていきます。 特定のユーザの最新の発言を取得するにはどうすれば良いでしょうか。 まず思いつくのは、そのまま「あるユーザのステータスを日付順に並べたときに、一番最初のもの」と記述する方法です。 findで書くと下のような感じでしょうか。 new_status = Status.find(:first,:conditions => [ "id = ?", @user.id], :order => "updated_at DESC") もしくはfind_byで new_status = Status.find_by_user_id(@user.id, :order => "updated_at DESC", :limit => 1) など。 しかし、例えばフォロワーの一覧に最新ステータスを並べたい場

    ActiveRecordでユーザの最新の発言を取得する - Okiraku Programming
    yuiseki
    yuiseki 2008/06/30
  • とりあえず基本設定 - Okiraku Programming

    作業環境はMac OS X 10.5を使います。rubyはもちろん、なんとrails標準インストール済み(ただしver1.2.6)。 というわけで、さっそく作成開始です。まずは、railsの開発環境を生成。 % rails monologue create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create components create db ... コマンド一つでいろいろ出来上がり。ディレクトリ構成は、 ディレクトリ 内容 app/controllers コントローラ app/helpers ヘルパークラス app/models モデル app/views ビュー config アプリケーションの設

    とりあえず基本設定 - Okiraku Programming
    yuiseki
    yuiseki 2008/06/11
  • Follow中のユーザの発言をmixして表示する - Okiraku Programming

    ではフォロー中のユーザの発言も、自分のタイムラインにmixして表示できるようにしてみましょう。 コントローラの変更 Userコントローラに以下のhomeメソッドを追加します。ついでに、1ページに表示される発言を最大12件に絞っておきます。また、各ユーザの発言のみを表示するよう、indexも変更しておきます。 def index redirect_to(:controller => :account, :action => :login) and return if !logged_in? if params[:id] @user = User.find_by_login(params[:id]) render :text => "not found" and return unless @user render_user(@user) else redirect_to(:controlle

    Follow中のユーザの発言をmixして表示する - Okiraku Programming
    yuiseki
    yuiseki 2008/06/11
  • Followを実装 - Okiraku Programming

    id:NeoCat:20080525 から作り始めたTwitterもどき「monologue」に、他のユーザのFollow機能を実装していきます。 まずは、ActiveRecordを使ってユーザ間の関連を取得できるようにします。 テーブルの作成 NeoCat:20080525:1211652175 に書いたように、Followテーブルを使ってFollowしているユーザを管理します。 まずモデルと、それに対応するテーブルを作成します。 % script/generate model follow そして、生成されたmigrationファイル( 00x_create_follows.rb )を編集し、create_tableメソッドのブロック内に以下を追記。 t.column :user_id, :integer t.column :followee_id, :integer user_idは

    Followを実装 - Okiraku Programming
    yuiseki
    yuiseki 2008/06/11
  • Userコントローラの作成 - Okiraku Programming

    まずは、ログイン時の謎のポエムをなんとかしましょう。 Userコントローラの自動生成 ユーザの情報を表示するためのコントローラとして、userコントローラというのを作ることにします(userモデルと名前を一致させておきます)。例によってscript/generateで自動生成します。 % script/generate controller user生成されたもののうち、app/controllers/user_controller.rb がコントローラの定義です。まだ中身は空っぽ。 class UserController < ApplicationController end ここに、ユーザの情報(名前とか発言内容とか)を表示を行うためのメソッドを書いていきます。 コントローラのリファレンスはここ(日語、UTF-8)とかここ(英語)にありますので、必要に応じて参照しながら書いていきま

    Userコントローラの作成 - Okiraku Programming
    yuiseki
    yuiseki 2008/06/11
  • MacからPS3にDLNAで映像や音楽を配信 - Okiraku Programming

    ちょっと前になるが、PlayStation3がDLNAクライアント機能に対応した。これを使えば、市販のDLNA対応メディアサーバから映像/音楽をストリーミングしてPS3で再生できる。 ただし、我が家では大半のコンテンツはMacに繋がったHDDに入っているし、DLNA対応サーバ等持っていない(^^;)。Macに入ったコンテンツをPS3に繋がった大画面TVで再生できると嬉しいので、Mac OS X上でDLNAサーバを立ててみた。 最初はlibupnpとuShareを改造して何とかコンパイルし、一応の成功を見ていたのだが、PS3対応になったMediaTomb 0.9.1を使うと早送りや巻き戻し等も出来ると聞き、挑戦してみた。 といっても、こちらは既にFinkにパッケージが上がっているので簡単だ。 まず、finkを入れ、/sw/etc/fink.confを書き換えてunstableパッケージが利用

    MacからPS3にDLNAで映像や音楽を配信 - Okiraku Programming
    yuiseki
    yuiseki 2007/10/28
  • 1