タグ

ブックマーク / shokai.org (9)

  • 橋本商会 » RubyとArduinoとTwitterで天気予報を見る

    こういうのを数年おきに、その時の近代的な実装で作りなおしてみるとプログラミング環境の進歩がわかる。 1. 今日傘が必要かどうか表示してくれるてるてる坊主 晴れの時 雨が降る可能性がある時 ウチでは15分おきにその日の天気予報を取得して表示している。うちテレビ無いけどこれのお陰で傘を忘れたりしなくなった。 プログラムはものすごい単純になっている。Rubyのみ。 Macで開発してRaspberry Piにデプロイした。Ruby動くUNIX系ならどこでも動くはず。 require 'rubygems' require 'arduino_firmata' require 'weather_jp' arduino = ArduinoFirmata.connect weather = WeatherJp.get '東京' if weather.today.rain > 30 # 降水確率30%以上 a

    橋本商会 » RubyとArduinoとTwitterで天気予報を見る
  • 橋本商会 » ArduinoとRubyで赤外線リモコン をgemにした

    これを大改修した。 → ArduinoとRubyで赤外線リモコン作ってWebから操作できるようにした 特徴は以下のとおり Arduinoに約110円分の電子部品を追加すれば赤外線学習リモコンが作れる 市販の学習リモコンが対応していないような長大なデータでも読み書きできる 学習リモコン機能を自作アプリに組み込めるRubyライブラリ付き 最近は多少涼しくなった気もするけど、いまだに夕方の閉めきった部屋の中は40度近くまで上昇していて危ない。このツールで家に帰る前に冷房をonにしておくと助かる。 gitリポジトリはここ https://github.com/shokai/arduino_ir_remote 機能追加・変更された事 rubygemにした。赤外線学習リモコンをライブラリとして自作アプリに組み込める。 学習した赤外線データを別々のアプリ間で共有できるように、データを管理する機構もgem

    橋本商会 » ArduinoとRubyで赤外線リモコン をgemにした
  • 橋本商会 » HTML+JavaScriptをArduinoに直結できるシリアルポートサーバーを作った

    SerialPort Serverを使うと、HTMLとJSをArduinoに直結できる。JavaScriptを少し書くだけでArduinoに「カーテン開けろ」とか「部屋の明るさよこせ」とか命令を送れるわけだ。 Web系の技術とハードウェアの技術を同時に使うには、間に「つなぎ」が必要なので、必要な機能を全部入れたサーバーを作ってみた感じです。 (github pagesでプロジェクトページ作ってみたんだけど楽でいいですね) こういうこと。 シリアルポートサーバーはrubygemsでインストールできる。 gem install serialport-server which serialport-server serialport-server --help serialport-server /dev/tty.デバイス名 –helpでヘルプが出る。デバイス名を引数にして起動できる。 Mac

  • 橋本商会 » HerokuのSinatraにバックグラウンドワーカーを詰め込んで節約

    Webアプリと同じプロセスにworker入れてお金節約できる。 Webアプリは “リクエスト来る→サーバーで処理→レスポンス返す” というのを繰り返すわけだが、サーバーでの処理に時間がかかる場合にそこを別のプロセスに任せて、先にレスポンスを返しておいて、あとで結果は取りに来てよ、という実装をする事がある。 時間がかかる処理は2つに大別できる。 動画をエンコードするとか。CPU負荷が高くて時間がかかるのでWebサーバーとは別の場所で動かしたい Twitter APIを10回ぐらい使った結果をまとめて返すとか。CPU負荷は低いけどIO待ちが長い 2の方について、HerokuRuby環境で安く上げる方法をまとめる。 手法 HerokuのcedarスタックでRuby使う時はwebサーバーとしてThinが起動する。 ThinはEventMachineの中で動いてるので、EM::defer等が使え

  • 橋本商会 » Bluetoothが載ってるArduino派生ボード「BlendMicro」とNode.jsでBLEした

    追記:npmにしたり、firmata作った — Mac OSXで動かしてるNode.jsとBluetoothで通信できるようになった。無線でArduino制御するの超簡単になっちゃった。 もうXBeeとか無くていいと思う。ミニ四駆とかに乗せるのに良さそう。 試したのはちゃんとコネクションはって双方向通信するやつ。次はAdvertisementパケットにセンサーの値でも乗せて垂れ流すのをやってみたい。 ソースコードとかはgithubにおいてある https://github.com/shokai/blendmicro-study ArduinoMicroにBLE(Bluetooth Low Energy)を追加したBlend Microというボードが先月末に出たので、買って試した。 1枚$36なので、2枚買った。注文して1週間ぐらいで届いた。 普通のArduinoMicroより1000円高い

    橋本商会 » Bluetoothが載ってるArduino派生ボード「BlendMicro」とNode.jsでBLEした
  • 橋本商会 » ArduinoとRubyで赤外線リモコン作ってWebから操作できるようにした

    (追記)色々改良された → ArduinoとRubyで赤外線リモコン をgemにした ————- 帰宅前にスマホからクーラーをつけれるようにした。Arduinoと合計150円ぐらいの部品と、このRubyで書いたアプリ https://github.com/shokai/arduino_ir_remote だけで使える。 ソフトウェア部分はまだアップデートされるだろうけど、(rubygemにするとか)ハードウェアはもうこれ以上変更しないので是非自作してお試しください。 動かなかったり欠陥があったら、githubのissueかtwitterで@shokaiにどうぞ。 動いている証拠動画 実際に使いたいのはエアコンだけど、エアコンは地味なのでテレビでやってみた。 研究室にあるパナソニックとシャープのテレビで試したら両方とも動いた。 パナソニックテレビから学習した赤外線データはgistに貼った。

    橋本商会 » ArduinoとRubyで赤外線リモコン作ってWebから操作できるようにした
  • 橋本商会 » Macの「次のウィンドウを操作対象にする」をなぜ設定しないのか

    わからない。 自分以外、だれも使っているのを見たこと無いし、自分が使っているとよくナニソレって聞かれるので書いておく [システム環境設定]→[キーボード]→[キーボードショートカット] 「次のウィンドウを操作対象にする」に適当にさわりやすい所ショートカットキーを設定する。command+spaceにしている。 command+spaceはデフォルトではIMEを順に切り替えるのに割り当てられているが、英数・かなキーがあるのでいらない。USキーボードはおっさんが使えばいい。 どうなるかというと 左上のウィンドウでコード書いている時に、もうひとつのウィンドウに行きたい場合 command+spaceを押すと入れ替わる。 blog書くために複数ブラウザ開いている時なんかにも便利。keynoteやイラレで複数のドキュメント開いている時も便利。chromeと開発パネルを交互に見比べる時も便利。 こんな

    橋本商会 » Macの「次のウィンドウを操作対象にする」をなぜ設定しないのか
  • 橋本商会 » エゴサーチツール feedim

    エゴサーチツール feedimを作った。3ヶ月ぐらい使い続けている。 以前はtwitter検索で “shokai” とか検索した結果をRSSリーダーで読んでいたんだけど、最近ビリケン商会とか大塚商会とかキラキラ商会とか、 “shokai” をユーザ名やURLに含むtweetが増えてきたし、邪魔なbotからのtweetも除外したいのでなんとかするツールを作った。 で、feedを吐くのもいいけどせっかくAndroid持っているから、im.kayac.comを使ってAndroidにpush通知するようにした。 im.kayac.comを使っているのでGoogle TalkやiPhoneのpush通知でも受信できる。 主にtwitterで使っているけど、feedなら何でも定期的に監視できる。 ソースはgithubにある github.com/shokai/feedim 先にim.kayac.com

  • 橋本商会 » apache2のサブディレクトリをthinで起動してるsinatraにプロキシする

    SinatraやRailsは開発は楽だけどデプロイ方法がいろいろあって悩む。 最近はpassengerを使う方法が流行ってるけど、あいにく学校に置いたサーバーでサブドメインが使えないので同一ホスト名でapacheと共存させるしかない。 passengerでもRailsBaseURIだったか?を設定すればサブディレクトリでRack対応アプリを動かせるが、 今回は1年前からRails+mongrelのデプロイに使っているapache2のサブディレクトリをmongrelで起動してるrailsにプロキシする – 橋詳解と同じ方法でSinatra+Thinをデプロイした。 Railsではmongrel_clusterで複数起動させたrailsにapache2のmod_proxy_balancerでアクセスを割り振ったが、同じ設定でsinatra+thinにも割り振れる。 結果、橋商会 Twitt

  • 1