2

RubyとProce55ingのTCPソケット通信

樹がWiringをMacで使ってみてるFTDIのVertual COM Port ドライバ入れたらMacでも動いてた。そしてさくっとProce55ingと繋がってた。

(ドライバはWindowsは1.0.2154 20th April 2004を使う。Macは最新版で大丈夫らしい)

さて、俺はWiringもだいたい機能を試し終わったので、RubyとProce55ingでSocket通信をやってみた。これで色々なwebサービス←→Ruby←→Proce55ing←→Wiringと繋がることになる。

processing-ruby-tcpSocket

Rubyがクライアント側で、Proce55ingがサーバ側。なのでProce55ingを先に起動する。Rubyのコンソールに書いた文字列がProce55ingに行って、Rubyに戻ってくる。

どちらも強力な言語なので超かんたんだった。あとはRubyのXML関係を調べればちょっと面白いのができそうだ。

C#.netやJavaとマイコンを使えばすぐできるけど、ちょっと省プログラミングというのを実践してみたいんです。

ソースコード(Ruby)ソースコード(Proce55ing)

■参考

Rubyリファレンスマニュアル – TCPSocket

net Libraries Processing 1.0 (BETA)

0

Wiring – PWMでLED明滅

WiringのPWMを使ってLEDを蛍のようにぼやーっと明滅させた。

回路は、PWM0とGNDの間にLEDを入れただけ。

Wiring PWM

ソースコード(Wiring)映像(2.7MB)

これで、あとはサーボモータとLCDだけ。

0

Arduinoを作っている写真

Arduinoを大量生産している写真がFlickrに上がっている。多分デンマーク。

Flickr: Photos tagged with arduino

グループもあったので入っちゃった。

Flickr: Arduino

1

10分で作るRuby on Railsアプリ

(1時間半かかった)

先週ぐらいにはてなブックマークのコレクションの一覧を表示するFlashを作ってみたのだが、FlashのでかいXMLに対するパースが重くてコレはトップに貼るとブラクラになるなと思って貼らなかった。

ちなみにコレがそのFlash。URLの最後のuser=の所を変えると他の人のも表示できる。

あとfla

で、やっぱりJavascriptでやった方が軽くなるらしい。

そんな感じで色々調べていたら、どうもギークな人々はphpやperlよりも裏でコソコソRubyを勉強しているらしいので、俺もRuby on Railsをインストールしてみた。

10分で作るRailsアプリ for Windows – masuidrive

一度古いバージョンのMySQLを入れていたのでアンインストールしていたら1時間半かかったけど、プログラムを一行も書かないでちゃんとブックマーク管理webアプリができた。

rails-scaffoldingrails-scaffolding-edit

MySQLのテーブルの列を増やすだけで、HTMLのformが増える。列の型によってformの種類も変わる。

前に書いたWiring+Proce55ingの20分でインスタレーションが作れてしまうのもそうだけど、こういう便利なフレームワークはインストールしておいて損はない。

ていうか俺も20分でやる映像でも撮ってみたくなった

webの方面も、研究のメインではないとはいえアーキテクチャ的にかなり参考になるのでなんとか後を追っていきたい。

0

Arduino

寝る前に、Arduinoについて覚え書き。

以前のWiringのエントリで

Arduino

Wiringの互換ボード。回路図が公開されてるので自分で作るのもアリかもしれない

と書いてしまったけど、間違いだった。ボードが互換なのではなく、プログラムの書き方がほぼ互換なだけだ。PC側のソフトもWiringとは別にある

ちなみに動作クロックも同じ16MHzなので、delay()で止まる時間も同じになる。

あとWiringとArduinoはターゲットが多分違う。

Wiringは平べったいTQFPパッケージのATmega128を使い、チップ抵抗やチップLED、チップトランジスタなど表面実装部品がたくさん積まれた高機能ボードであるのに対して、Arduinoはよく使う毛虫のようなDIPパッケージのATmega8と、普通の抵抗やトランジスタを使っている。

つまりArduinoは回路図の通りに、普通のユニバーサル基盤に部品をはんだづけして、手作業で回路を作っても十分作れるように部品が選ばれ、設計されている。

あと安い。USBではなくシリアルポートのボードなら多分1個700円ぐらいで作れる。

BC547、BC557という海外のシリアルポートの回路でよく使われているトランジスタが必要だけど、多分MAX232で大丈夫だろう。

そんなわけで実は昨日作れるか試してみたのだけど、16MHzのクリスタルが無くて20MHzでやろうとして失敗した。

やり方は、arduino.exeのあるディレクトリにtmpというディレクトリがあるので、その中のprog.hexをATmega8に書き込めばいいっぽい。

でも20MHz用にコードを直してコンパイルしてhexを書き込んだけど何故か駄目だった。

(追記)

いや、MAX232使うならFT232BM使ってUSBで使える様にした方がいいだろう。値段的にも。→USBの回路図もある