忍者ブログ
日々の活動記録や、暇つぶしなどなど
[1]  [2]  [3
2011/08/28 (Sun) 11:22
以前,FT245RLをいかに簡単に使うか,という記事を書きましたが,それの続編で,
コンソールというかコマンドプロンプト上でシリアルポートを簡単にいじる方法です.

Windowsのコマンドプロンプト上で,echoすると,どうしても末尾にCR+LFがついてしまうんですね.
なので,前回の内容みたいに
echo 010101010101 > \\.\com1
みたいにすると,末尾に0x0D 0x0Aってついてしまって,望んだデータで終わりません.

で,WEBを回ってみると,
set /p x=hoge<nul
とすることで,改行なしでhogeという文字を出力できるということがわかりました.
なんでこれがechoの代わりになるかは適当にググってください.

もちろん,これを
set /p x=hoge<nul > \\.\com1
のようにリダイレクトすればいいわけですね.

んでもって,コマンドプロンプト上でもアスキーコードの制御文字列って入力できるんですね.
Ctrlキーとの組み合わせで,全制御文字が入力できるわけです.
Ctrl+[しか知らんかったよ…
ただ,コマンドプロンプト上だと,Ctrl+Cはシグナルを送ってしまうし,
DELとかCtrl+H(BS)とか普通に入力中の文字消しちゃうしで,
完全に全部をって訳にはいきませんorz
そもそもアスキーコードだと0x7Fまでですしね.

なので,バイナリデータをどうしても送りたい場合は,バイナリデータをファイルにして保存します.
バイナリデータはStirlingなどのバイナリエディタで作ればOKです.
もちろん改行コードなどはつけません.
で,そのファイルをhoge.binとして保存したとすれば,
type hoge.bin > \\.\com1
のようにすればOKです.
typeはファイル内容を表示する,というコマンドですね.

FT232でバイナリデータが送れることを確認しましたが,
手元にFT245がなく,FT245では動作確認が取れてません.
まぁ,FT232で出来るんだからきっとできるでしょうw

さらにそれをバッチファイル内で定期的に実行とかすれば…
なんて無駄なこともできますw
これはまたすぐ記事にするつもりですが.
PR
2011/05/09 (Mon) 12:59
FT245RLはPCにUSBでつないで,簡単にパラレルIOを作れる便利ICです.
利用方法は二つあり,
・専用のドライバであるD2XXを利用し,フルパワー利用する方法
・仮想シリアルポート(VCP)として認識させ,一般的なRS-232のように使う方法 
となっています.D2XXライブラリも非常に簡単で,サンプルプログラムを見れば15分あればとりあえずデータを受け渡しできるようになると思います.

しかし,手っ取り早くお試ししたいorプログラムなんて書きたくない,といった場合には少々不便です.
そんな時はVCPを利用してしまうのが手っ取り早いです.

と言っても,FT245RLは選択式の入出力ポートが8本あるだけなので,RS232Cのように全二重通信を行うことはできません.そもそもポートの入出力はどうするのでしょうか.
そのへんは,「RD#」「WR」「TXE#」「RXF」という制御端子を利用することになっています.
FT245RLには送信・受信ともにFIFOバッファを持っており,送受信データは一旦そこに蓄積され,順次転送されていくことになります.
個人的に分かりにくかったのは,RD#とRXFの受信制御端子がPC→FT245の方向で,送信制御端子WRとTXE#がFT245→PCという方向だったということです.FT245RLをPCの付属品としてみると,受信がFT245RL→PCのような感じだと思うので…

それはさておき,FT245RLからPCにデータを送るためには,
・TXE#がLoであることを確認 → 送信FIFOに空きがある
・データ端子にデータをセット
・WR端子をHiからLoにする → 送信FIFOに現在のデータ端子の状態を書き込み
・PCで読み取る
という手順が必要になります.

逆にPCからFT245RLにデータを送る場合は
・PCからデータを書きこむ
・RXFがLoであることを確認 → 受信FIFOにデータがある
・RD#をHiからLoにする → 受信FIFOからデータ端子に読み込み
・データ端子を読み取る
といった手順になります.

簡単にFT245RLを受信ポートとして利用するには,適当なクロックWR端子を与えて一定周期で読み取れば読み込めるでしょう.そのへんは試してないので,とりあえず放置.

FT245RLを出力ポートとして利用するときはさらに簡単で,RXF端子とRD#端子を直結させてしまいます.
すると,最初の1byteを受信した段階で,RXFがHiからLoに変化します.すると,同時にRDがHiからLoに変化するわけで,データ端子にその情報がリードされます.そのため,何もせずとも,どんどんPCから送られたデータが,FT245RLの出力に現れるようになります.
ちょっとインチキ臭いですが,とりあえず自分の環境ではうまく動いています.

ここまで来れば,あとは適当なシリアルコンソールでデータを送るだけです.おすすめはAcknowrichというフリーソフトで,このソフトはバイナリで1byteずつデータを送ることができるので,この手の用途に最適です.

しかし,PCから定期的にデータを送りたい,とか,PCが起動したときにデータを送りたい,とかいう場合にはコンソールではうまくいきません.
しかし,プログラムをかくのもめんどくさい,と思って試してみたらとっても簡単な方法が見つかりました.

・Windowsの場合
コマンドプロンプトで
echo data > \\.\COM*
※dataには適当な送信データ,*にはFT245RLのVCPのポート番号
と打つだけで,シリアル送信が可能です.dataは文字しか指定できないので,アスキーコード表などから適宜変換してください.下位3bitであれば,普通に0~7を入れれば000~111と二進数で変化するのでチェックできます.(0のアスキーコードが0x30だからできる話)
ただし,自分の環境では,dataには一文字以上入れても,一文字目が送信されるようでした.そのへんは細かく追いかけてないのでよくわかりません.一文字あれば,出力ポートをすべて変化させられるので十分でしょう.

・Linuxの場合
シェル上で
echo data > /dev/ttyUSB*
※dataは適当な送信データ,*はFT245RLの番号
基本的にはWindowsと一緒で,ポートの指定方法が違うだけですね.自分の環境では複数の文字をdataに入れれば,順次その文字列が送信されることを確認しました.なので,
echo 01010101010101010101010101010101 > /dev/ttyUSB0
とかすると,いんちき臭いPWMが出力できたりしますw

そんなわけで,これらのコマンドをWindowsならショートカットアイコンにして,Linuxならシェルスクリプトにするなりして自動実行させれば,それだけでPCからFT245RLにデータを送信することができます.
なんとお手軽.

追記
Windowsのコマンドプロンプトからシリアルポートを使う方法についてもう少し記述しました.
2011/04/30 (Sat) 17:54
必要に迫られてスクリーンキャプチャソフトを作りました.
他のソフトとの違いは

・オプション引数ですべての設定を行う
・起動したら自動的にキャプチャ
・タスクトレイ内のみのシンプル表示
・マルチディスプレイでも大丈夫

が主なところだと思います.
欠点としては

・キャプチャする場所の選択はできない

位かと.

なので,利用方法としては,スタートアップにオプション付きのショートカットを突っ込んどいて,
PCが起動すると同時に自動キャプチャを開始する,などという用途と相性がいいです.
というか,そのために作りました.

指定できるオプションは
・保存先
・保存形式 JPG,PNG,BMPが選択可
・インターバル キャプチャの間隔を[ms]単位で指定
・回数 指定回数だけキャプチャすると自動終了 無限も指定可
の4つとなります.

せっかく作ったし,思ったよりも軽快に動いたので公開しとくことにします.
Core i7のノートPCでjpg指定で50msインターバルでドロップ率が20%程度でした.まぁそこそこ?
BMPだと圧縮しないのでCPUを食いにくいですが,記録媒体の速度が重要になります.
JPGだと圧縮するのでCPUを食いますが,記録媒体の速度はそんなに気にならなくなります.

細かい使い方は同梱のReadme読んでください.
フリーソフトで自由に使っていいですが,何が起きても知りません^^;
自分が使って困らない程度にはデバッグしてありますが.

ダウンロード(zip)
2009/12/18 (Fri) 10:45
最近GoogleIMEが出たせいなのか、タイトルの検索ワードでこのブログに来る人が多いようです。

自分はかな入力なんで戻さなくていいじゃないかとか思うんですが爆

まぁそれはさておき、切り替え方法です。
MS-IMEなら
Alt + カナ
で切り替えできます。GoogleIMEでもキー設定をMS-IMEにしとけばできたはずです。

ちなみにお店においてあるPCは片っ端からかな入力にしますが、ちゃんと戻しますよ。

ただ、一回かな入力にした上で展示PCで遊んでたとき
ちょっと目を放した隙におっさんが割り込んできて使い始めちゃったときは戻しませんでしたけど。
おっさんはかな入力にすごく戸惑っていたようですがわたくしめはしりませぬw

ということでかな入力ユーザからの情報ですた。
2009/11/05 (Thu) 18:31
あまりに荷物が重かったので秋葉でVAIO買うのあきらめました。

ということで、今日、駅前のヤマダ電機に行って取り置きをお願いしてきました。

いろいろ契約の問題で今日は買えず取り置きという形になりましたが。
数日後に手元に来る予定。

で、肝心の値段は本体104800円でe-mobile加入割引が40000円。でもって64800円と。
さらにポイントが18%、11664円分つくと。これに追加で払って追加バッテリーでも買おうかな。

これでようやく月額5980円の回線から変更できる…
仙台に引っ越してからは電車通学じゃなくなった影響でE-mobileを使わない月はほんとに使う機会がなくて…
むだだなぁとひしひしと思っていたしだいです。

にしてもE-mobile回線を使ったソフトバンク回線で契約すると45600円引きになるらしい。
しかも月額とかも一緒らしいし。端末も一緒らしいし。
正直すごく惹かれたんだけど、EM-ONEで通信したいこともあるからSIMはE-mobileにしなくてはならず…
それともSIM入れ替えるのなんて面倒だからEM-ONEはau回線でつなぐことにしちゃおうかな…
EM-ONEだったら大容量通信することも無いし。

取り置きの受け取りまでに決めればいい話なんでまだなやめるんだけど…
どうしよっかなぁ。
2009/10/06 (Tue) 12:55
いやぁ

結局新調しちゃいましたよ。PC。

OS再インストールで直るかと思ってたらハードもいかれてたようで…
Socket478なPen4でDDR1だったので、もうこれは乗り換えかなと。

ということで、構成は
CPU:Celeron E3200 4780円
Mem:SiliconPower DDR2 800 1GB*2 覚えてない…けど3480円くらい?
MB:ASROCK G41M-LE 5980円
箱:AOpen H360C-300BT2 7980円
な感じ。後は光学ドライブを適当に買ってきて、HDDは前のから流用。

OSはとりあえずWin7RCで。
このPCは開発には使わないでオーディオ再生とか、ブラウジングに使うつもりなんで、まぁ7でいいかなと。

で、雑感ですが、まずCPU。
なにこのコストパフォーマンス。5000円きってますよ。でクロックは2.4GHz。まぁCeleronなんで絶対性能は望めませんが、クロックアップ耐性も高くて、電圧いじったりせずに2.8GHzでも余裕で動きます。
巷では4.5GHzとかやってる人もいるみたいですね。
でもうちのはケースがあれなんでそんな大幅なことはせず。

次にマザボですが、これいいですね。
なにがいいって、オンボードグラフィックの癖にDVI端子とVGA端子がついててそのまんまデュアルモニタ環境が作れます。
MicroATXマザーにPCIカード増設しないでデュアルモニタ環境とかお手軽すぎる。
しかもG41搭載で6000円切ってるとか。
必要十分な性能でコストパフォーマンスはかなりいいと思う。

そんな感じで激安コースで攻めてみたんですが、よくよくドスパラのサイトを見てみると、23000円でE3200のBTOがあるんですねorz
けど箱がでかい。けど薄い箱でも30000円しない…
まぁ、デュアルモニタはこのまんまじゃできないだろうから、その分お得という気分で。

それにしてもこの構成で俺のノーパソよりも性能がいいんだよなぁ。ノーパソはT7200(Core2Duo 2GHz)。
研究室ではノーパソつかってるけど、もう一台同じ構成のPC用意して研究室においておこうかな。
俺はそんなに3Dやってりシミュレーションやったりしないから、これだけ性能あれば十分だし。
けどモニターは2枚ほしいわけで。
うーむ。これはマジで悩んでしまうな…
OSは研究室ライセンスのがあるから、あと4年研究室にいる予定の人間としては意外と現実てきな選択肢かも…
研究室だったら光学ドライブもDVDが焼ければいい程度だし…

ちょっとバイト代が入ったらまじで考えてみようかな。
2009/10/01 (Thu) 00:50
自宅のデスクトップがいよいよ動作が怪しくなったため、メンテナンスしました。

まぁ前から「ディスクの管理が開けない」とか「Windowsインストーラを使ったソフトのインストールができない」とかかなり怪しいところだらけだったんですが爆

で、WindowsXPを入れる気満々だったんですが、気がついたらこれ、アップデートディスクだった…
そしてWin98とかのディスクは実家においてきたというorz

しょうがないのでパーティションを一個増やしてWin7とXPのデュアルブート環境を構築することに。
7はもちRC版。

Win7のディスクから起動させたときに、インストールディスクの選択をできるわけだけども、なぜか壊れたXPの入ってるパーティションが削除できない…
何回やってもだめで、どうしたもんかとおもって、ためしにWindowsServer2008で起動してみた。
そしたらほとんど同じ画面にもかかわらずちゃんとパーティションの削除ができた。
ついでに100GBで区切ってあったのを70GB/30GBに分ける。

で、Server2008はインストールしないで終了してWin7のディスクで再起動してインストール。

後は特に問題もなく無事にインストール完了。

ノーパソで7を使っているからユーティリティとかの使える/使えない情報もほとんどわかってて楽チン。

オーディオデバイスとかも全部インストールできた。
あっFCA202試してないや。

それにしてもPCIExpressも搭載してないようなPentium4機でWin7を動かすとは…
そんなに違和感なく、もたつきも感じずに使えてますが、まぁまだ中身ほとんど空っぽですからね。

ゲームとかって対応具合どうなんだろ…
Vistaに対応してれば大体うごくんかな?

とりあえず東方でもいれてみるかw
2009/05/09 (Sat) 09:57
まぁ完全に自分のせいなんですが


windows7を入れたメインノーパソは開発環境の構築を。
隣のノーパソは研究で使ってるロボットに搭載してるGentooLinuxを入れてみて勉強しようかと。
その隣のノーパソはUbuntuを入れてロボットのホスト側の勉強をしてみようかと。

が、windows7以外うまくいかんとよ…
GentooはCPUのファームをunpackするところで固まるし、ubuntuはアンケート答えてよ画面で固まるし。
しかもそういうときになぜかデスクトップPCがhttpに接続できなくなる。
httpとpopとsmtpがつながらない。でもskypeとかMSメッセンジャとかつながる。
httpサーバへのpingも通る。なぜ?
ノーパソではhttpにつながるからルータとか、ネットのせいではない。

デスクトップPCもレジストリが壊れまくってることが発覚してるから早くOSを入れなおしたいんだけど、それよりも新しいのがほしい…
いまだにPentium4だなんて…

それにしてもこのセットアップが終わらないと研究がすすまんがな。
特にメインノート。とりあえず半分くらいは終わった気がするけど、時々動かないソフトもあって困った感じ。
それでもXP互換モードとかつかってやると動いたり。
古いフリーソフトがXPまでしか対応してないとかたくさんあって困る…

さて、明日からは神戸で実証実験。楽しみ楽しみ。ってそれまでにメインノーパソを何とかしないと。
2009/05/07 (Thu) 03:39
結局ノーパソに入れるOSが手配できなかったのでつい先日リリースされたWindows7のRC版を入れてみました。

で、現在そのPCから書き込み中。

うーむ

acpi関係の情報がとれてない…

後はいろいろ動かないけど、vistaでも動かないソフトだからかなぁ

にしても環境整うまでもうちっと時間がかかりそうだわ…
2009/04/28 (Tue) 00:12
ノートPCのハードディスクが目一杯だったので新しいハードディスクにして
Windowsを入れなおしてます。

いやぁ…
超カスタム環境で使ってるせいもあって元の環境に戻すのに時間がかかること…
環境を戻すのを自動ツールでできたりしないのかなぁ

さっきなんてメーカが出してる最新版のチップセットドライバいれたらシステムファイル壊れて起動しなくなったし…
まぁ幸いデスクトップがあるんで回復できましたけど。

そしてデスクトップもOS再インストールしないといけないんだけども…
上書きインストール、というか同じ場所にインストールしようと思うとめんどくさいから新しいHDD買ってこようかしら。そんな金ないけどな爆
カウンター
委託案内
アンプ基板や同人誌を委託販売しています.リンクからどうぞ.(外部サイト)
HA10mini基板セット
HA10mini終段基板
HA10miniハイパワーキット
HPA&Analog vol.6冊子版
同人誌DL委託
同人誌DL委託(旧サークル名)
ブログ内検索
カレンダー
02 2017/03 04
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[03/08 NONAME]
[01/19 gun534]
[12/14 NONAME]
[12/12 mike]
[12/06 mike]
最新トラックバック
SilverLight
アクセス解析
広告
忍者ブログ [PR]