usbtmcまでの道のりは遠い
respberry piでusbtmcを使うために、いろいろと設定をしようとしていたら、応答しなくなった。電源を抜いて、もう一度差しても、うんともすんとも言わなくなってしまった。aptitude upgradeしていただけなのに。
計画としては、agilentから、usbtmc.tarをdownloadして、これをmakeして、usbtmc.koを作って、これをinsmodして動くか試そうとしていたのだが、これを試す前に、挫折してしまうとは。
そろそろrespberry piが値上げするという噂もあるし、値上げ前に追加購入するか、悩むところである。また死んでも悲しいし。
その後、いろいろと調べていたらSDが死んでいることがわかった。予備のSDで起動したら、動くことが分かったのだ。これで次のtrialができる。
raspbianとUSBTMC
raspberry pi
以前から気になっていたが、入手が困難だったので、見送っていたraspberry piが、最近は手軽に買えるようになったことを知った。小さな測定用のPCが欲しかったのだが、これにピッタリだということで、注文していたのだが、これが本日到着した。
まずは電源だが、標準ではmicroUSBから供給することになっている。しかし、microUSBの電源は入手が難しいので、GPIO端子から供給することにした。うまくいくか心配だったが、大丈夫のようなので、箱にDCジャック用の穴をあけて、そこにACアダプターをさすようにした。
次にSDにraspbianを入れて、まずはSDのサイズに拡張するという作業を行い、再起動したら、無事に立ち上がった。
測定用のPCにするためには、rubyをインストールする必要があるのだが、なぜかaptitudeでインストールに失敗する。サーバーが動いていないようだ。これは、今後また試してみよう。
最後に、測定装置とのインターフェースである。USBにUSB-serialをさしてみたら、無事に認識した。しかし、USBTMCの機械をつないでも、認識しない。USBの通信はしているのだが、USBTMCのドライバーが無いようだ。USB-serialだけでも、それなりのことはできるのだが、USBTMCが無いとできない測定もあるので、これも残された課題である。
ubuntu13.04
ubuntuリリース
ようやく、ubuntu13.04がリリースされた。もうすぐdebianのwheezyも出るはずなので、どちらが早いかと思っていたら、ubuntuの方が早かった。まだ、日本語remixは出ていないので、日本語環境は微妙かも知れないが。私はlubuntuを使うので、まずは関係ないが。
以前買って、セットアップしないでおいてあったモバイルPCにインストールしたのだが、困ったことに、インストールのときにボタンが画面の外に出てしまった。外付けのディスプレイをつないでも、症状は同じだった。勘でなんとかしたが、ハードディスクのパーティションのところは、ミスるとデータが飛んでしまうので、緊張した。
タイマーを作る
ruby/tkでタイマー
最近、タイマーを使うことが増えてきた。以前はweb上のflashを使っていたが、ネットに繋がらないときでも手軽に使えるように、ruby/tkで作ってみた。
require 'tk' $text=TkLabel.new(nil,'text'=>'0.00','font'=>TkFont.new(['times',100,['bold']]) ).pack Tk.root.bind('KeyPress',proc{|key| $timer=($timer)?false:true if key=='space' },'%K') Tk.root.bind('KeyRelease',proc{|key| Thread::start{ t0=Time::now loop{ $text.text="%.2f"%(Time::now-t0) break if $timer==false sleep 0.008 } } if $timer==true and key=='space' },'%K') Tk.mainloop
一応使えるし、まあこんなもんかな。
fragmaster
psfragの代わりにfragmaster
以前、epsのファイルにtexの数式をpsfragを用いて入れたことがあったが、うまく行かないので、いろいろと調べていたら、fragmasterというのがあることを発見したので、それを使ってみた。まず、図をorg_fm.epsという名前にする。そして、org_fmという名前のファイルに
\psfrag{W}[Br][Br]{\LARGE $\sqrt{2}\,$}
などと書く。ここで、Wは置き換える元の文字、その後のsqrtなどは置き換えたい数式である。そして、fragmasterを実行すると、org.epsという図ができる。しかし、数式の上下が反転してしまうという症状が出てうまく行かない。しかたがないので、/usr/share/texmf-texlive/tex/latex/psfrag/psfrag.styの中の、
\def\@tempa{dvips.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi%
という行の-1を1に変えたらうまく行った。
もうすぐリリース
Debian wheezy
明日から四月ということで、debianのサイトをチェックしたら、バグが50を切っているので、Debian wheezyのリリースまで、もう秒読み段階のようだ。現在の安定版であるsqueezeは2011/2/6に出ているので、二年と二ヶ月といったところか。このところ、だいたい二年に一度というペースで来ているが、今回もそうなりそうだ。
最近は、LXDEのdesktopを使っているので、新しいバージョンになっても、あまり環境は変わらないと思う。PCManFMがときどき落ちるのが、改善されていれば、他に特に望むことは無い。
windowsとかは、新しいバージョンになると、見た目が変わって使いにくくなる。windows8はその典型のようだ。しばらくwindowsは使っていないので、その被害にあっていないのは、幸いである。
USB機器
FT232RLとAVRを使って
測定装置を使うときには、以前はRS232CかGPIBが標準だったが、今ではUSBかLANが普及してきている。GPIBのインターフェースをPCに増設するのも嫌なので、最近はUSBとUSB-RS232Cを使って測定装置を制御することが増えてきた。どうしてもGPIBを使わないといけないときには、AVRでGPIBを解釈させている。
次作の装置を作るときにも、今後はUSBの方が便利だろうということで、先日はスイッチングをする装置を作った。これはあっさりと動いたので、今度は電圧計を作ってみようとしたら、はまってしまった。やはり、新しい石を使うのは難しい。自作USB機器第二号になる予定だったのに、いつ完成するだろう。
バックアップの必要性
rsyncでバックアップ
先日、学生のHDDが死んで、幸い重要な部分はバックアップがあったので、大丈夫だったのですが、一部のデータをバックアップしていなかったのを、悔やんでいました。私もそれほど頻繁にバックアップを取る方では無いので、これを機会にバックアップを比較的頻繁に取ろうと考えました。
Linuxで簡単にバックアップする方法として、rsyncを使うものがあるので、まずはこれを使うことにした。sshから別のサーバーにデータを移せるので、便利のようだ。
rsync -av ~/from ip:to
とすると、ローカルのfromが、ipというサーバーのtoというところに、バックアップされる。さらに、再び実行したときには、更新されたものだけがコピーされる。–deleteオプションをつけると、消されたファイルは消してくれるが、これを付けた方が良いかは場合によるだろう。注意しないといけないのは、fromがtoの下にバックアップされるということだ。最初は、同じフォルダ名にしていたら、to/fromというフォルダができてしまった。これで気楽にバックアップが取れるようになった。
AZにlubuntu12.10
快適なlubuntu12.10onAZ
ubuntu12.04はAZではあまりうまく動かなかった。下調べした結果12.10はそれなりに良いらしいので、インストールした。まず、普通にインストールする。ここで良いのが、今回からはdefaultのデスクトップ環境がLXDEになったことだ。日本語は選択したが、キーボードの設定がでなかったので、設定-Lxkeymap-日本語(OADG 109A)とする。さらに.Xmodmapを2011/12/22のようにする。そして、設定-言語サポートから日本語関係のパッケージをインストールする。ディスプレイのドライバーを入れ替えるために、設定-SoftwareSources-追加のドライバーから、NVIDIAのドライバーを選択する。驚いたのは、スピーカーの設定などをしないでも音が出ることと、youtubeは普通に見れることだ。そして、flashとしてbrowser-plugin-gnashをインストールする。
GPIBからUSB-RS232Cへの移行
RS232Cのecho
以前はGPIBで制御していた装置を、USBから使おうと思って、USB-RS232Cを使って制御しようとしたら、かなり苦労してしまった。RS232Cにはそれなりに慣れているつもりだったのだが、まだまだ経験が浅いようだ。
まず引っかかったのが、ストレートとクロスの問題だった。これに気づくのに数日かかったのは、反省すべきところである。そして、ボーレートやパリティなどのところはうまく指定しているはずなのに、送信がすぐに文字化けしてしまうという問題に悩まされた。受信はうまくいくのに。
装置のマニュアルをいろいろと読んでいたら、「装置はPCよりも処理速度が遅いので、echoをするモードにして、一文字一文字echoを待ってから、次の文字を送る方が良い」という記述を見つけた。sttyでechoをするようにしてもうまくいかないので、rubyで次のように書いたらうまくいった。
strs.split(//).each{|s| @port.write(s) @port.flush @port.read(1) }
いつも、装置との通信には苦しめられることが多い気がする。こういう経験を通して、だんだんと慣れて行っているはずなのだが、まだまだ精進が足りないようである。