AVR書き込み機の更新

FTDIのFT232RLを使ったBitbang AVR書き込み機 AVRを使って電子工作をしていたら、AVRの書き込みができなくなってしまった。これまでPCのパラレルポートでdapaを使って書き込みを行っていたが、パラレルポートに変な電圧をあたえてしまったらしい。 新しい書き込み機を準備する必要があるのだが、パラレルポートのあるPCを探してくるか、USBで書き込みできるものを準備するかを迷ったが、今後はパラレルポートはどんどんすたれてくるので、USBにしたいと考えた。USB接続できるコンパクトで安い書き込み機としては、どんなものがあるかを調べていたら、おもしろいものを発見した。FTDI BitBang AVR-Writerというもので、FTDIのFT232RLの出力を制御して書き込むというものだ。手元にFT232RLはあるし、SSOP28を載せる基板も持っているので、これは作るしかないと思って、作り始めた。 まずは、FT232RLでUBSと接続できるように、USBのVccと4,20、GNDと7,18,21,25,26、USB+と15、USB-と16を接続し、17と18の間に104を入れた。そして、AVR側のmisoと5(RXD)、sckと1(TXD)、resetと2(DTR)、mosiと3(RTS)を接続し、VccとGNDも繋ぐ。ピンヘッダの上では、V,3,Gと5,1,2となる。接続はこれで完了である。 つぎに書き込み用のAVRDUDEであるが、ここを参考にしてパッチをあてた。そして、 sudo avrdude -p t261 -c ft232r -P ft0 -B 57600 -U flash:w:out.hex などとしたら、書き込みがうまく言った。-B指定をしないとうまく動かなかったので、注意が必要だ。 avrdude.confには programmer id = "ft232r"; desc = "FT232R Synchronous BitBang"; type = ft245r; miso = 1; # RxD sck = 0; # RTS mosi = 2; # TxD reset = 4; # DTR と書いてあるのだが、sckとmosiが入れ替わっているようで、それを発見するのに苦労してしまった。そのときには、 avrdude: BitBang OK avrdude: pin assign miso 1 sck 0 mosi 2 reset 4 avrdude: drain OK ft245r: bitclk 38400 -> ft baud 19200 avrdude: ft245r_program_enable: failed avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.
Read more...

電圧のモニタ

nohupを使って
装置の調子がおかしいので、その状態を常時監視しようということになって、そのためのシステムを作った。と言っても、ただ電圧を定期的に読み込んで保存するだけなのだが。とりあえず、問題の解決にどのくらいの期間かかるか分からないので、長期運用体制である。raspberry piにusbtmcのデジボルをつないで、それをrubyで読み取って保存するようにした。sshからログインして使用することにしたが、ログアウトできなくなるので、nohupで使うことにした。nohup ruby volt.rb &として、exitすれば、あとはひたすらデータを保存してくれる。ざっと計算すると、一年で2Mbyteぐらいなので、このまま続けても大丈夫だろう。

Read more...

英和は無いけど

gnome-dictionaryのオフラインでの使用
Linuxで使える英語の辞書が無いかと思って探したら、gnome-dictionaryというものを見つけた。しかし、netにつながっていないと使えないようなので、offlineで使えるにはどうしたら良いかを調べてみた。dictdとdict-gcideをインストールして、gnome-dictionaryの設定で、ソースを追加して、hostを127.0.0.1としたら、offlineで使えるようになる。 これで、英英辞典は使えるようになったが、英和はあまり無いようだ。stardictというものもあったようだが、著作権の問題でなくなっているようだ。でも、stardict-3というのがあるので、これが使えるかも知れない。

Read more...

半年経ってまだバグが残っていた

ubuntu13.04のimpressive
プレゼンをしないといけないということで、impressiveを起動しようとしたら、ubuntuをupgradeしたせいで動かなくなっていた。調べてみたら、/usr/bin/impressiveの186行目の

import TiffImagePlugin, ...

from PIL import TiffImagePlugin, ...

に書き換えると良いらしい。最初はindentを無視して書き換えたら、エラーが出て、pythonはindentが重要なのを思い出して書き直したら、うまく動くようになった。これでプレゼンができるようになった。

Read more...

ubuntuのアップグレード

遅ればせながら、13.04へ
ノートで使っているubuntuが12.10だったのだが、ようやく13.04にした。そろそろサポートが切れる気がしたので。lubuntuだからか、それほど変化した気がしないので、良い感じである。パッケージの構成が一部変わっているので、動かないアプリケーションがあるかも知れないので、しばらく使って様子をみよう。

Read more...

メーリングリストサーバー

macからUNIXへ
現在研究室で運用しているメーリングリストのサーバーを入れ替えたいと思って調べているが、なかなか良いソフトが見つからない。現在はMac上でMacjordomoというソフトを使っているが、これをUNIX上のシステムで動かせるようにしたいのだが。 UNIX上で動くものとして、Mailmanやquickmlを試してみようとしたのだが、メールサーバも同じマシンにあることを想定した使い方が主なようで、別のマシンがメールサーバーになっている場合の設定が分からなかった。 quickmlはrubyで書かれているようなので、ソースを読めば使い方はわかる気がするが、長いと面倒だ。

Read more...

raspberry piでwebサーバー

apache2のCGI
現在PCで動かしているWebサーバーをraspberry piで置き換えて、コンパクトにしようと思い、インストールしてみた。apache2とlibapache2-mod-rubyをインストールして、rubyでCGIを動かせるようにするまでの設定である。まず、

/usr/sbin/a2enmod userdir
/etc/init.d/apache2 restart

として、ユーザーのディレクトリを見えるようにする。次に、 /etc/apache2/mods-available/userdir.confのOptionsにExecCGIを加えて、/etc/apache2/mods-available/mime.confの

#AddHandler cgi-script .cgi

という行のコメントアウトをはずす。そして、

/etc/init.d/apache2 restart

とすれば、CGIが動くようになる。以前と設定の仕方が違う気がするでお、まあうまくいったので良いか。注意しないといけないのは、rubyは標準では1.9になっているので、CGIの一行目で指定しているプログラムをruby1.8にしなければならない点である。しかし、実際にCGIを動かしてみると、かなり遅い。これでは思いCGIを動かす目的には使えないかも知れない。

Read more...

rubyで計算

平均の計算
ルービックキューブを揃えるタイムには、いくつかの種類がある。単発のタイム以外に、12回計測してその中から最も速かった回と最も遅かった回を除外した10回の時間の平均や、5回計測してその中から最も速かった回と最も遅かった回を除外した3回の時間の平均などがある。そのうち、最後のものを計算するプログラムをrubyで書いてみた。

p data.split(/\n/).map{|l| l.to_f}.sort[1..3].inject(:+)/3

ううん。以外に長くなってしまった。 最近は、ruby/tkで作ったタイマーで計測して、タイムを記録している。ようやく30秒を切れることが多くなってきたが、なかなか向上しない。

Read more...

tdiaryの更新

tdiary3.1.3へ
wwwサーバーが更新されるということで、tdiaryも更新することにした。rubyは1.8.7になった。最新のtdiaryは4.0.0だったが、こちらはruby1.8では動かないということで、3.1.3にした。 設定ファイルとして、tdiary.confや.htaccessと.htpasswdをいじったり、権限を変更したり、blogのデータを移したりしたら、ようやく動くようになった。また、以前tdiaryのversionを下げたときに、表示できなくなっていたページもうまく表示できるようになった。 今月は忙しかったので、なかなか更新できなかったのだが、ようやく完了した。

Read more...

ruby1.8からruby1.9へ

ruby1.8とruby1.9の違い
OSの入れ替えに伴い、普段使っているruby1.8のプログラムを、1.9に書き換えていくことにした。一応、いくつかの違いは理解しているつもりだったが、まだまだ知らないものがありそうだ。 昨日書き換えたプログラムでは、stringの[n]をgetbyte(n)に変えた。 今日は、require “file"をrequire “./file"とした。 さて、次はどんな変更が必要なプログラムが出てくるだろうか。

Read more...