• ベストアンサー

PCからシリアル通信で外部ハードの制御

PCからシリアル通信(USB、COM、RS-232C等)で、外部のハードを制御するプログラムを勉強したいと思ってます。 そこで、2つ質問したいことがあります。 1:初心者向けの外部のハードを手ごろに買える業者やサイト 2:PCで外部接続機器を制御することの仕組みを初心者向けにわかりやすく説明してるサイト それらを探していますが、なかなか自分に合うサイトが見つかりません。 学校とかで教育用に使われているものが合ってるかもしれませんが、 いいサイトご存知の方がいればよろしくお願いします。 今のところ単純に、PC上のツール(C言語かVBで作成したい)から、なにかボタンを押したら外部ハードのLEDが点灯するとか、簡単なものを作りたいと思ってます。

質問者が選んだベストアンサー

  • ベストアンサー
  • tateisu
  • ベストアンサー率26% (41/152)
回答No.2

お初です ●構成  外部機器:RS232Cを持つワンチップマイコンでLEDを制御  パソコン:comポートあり ●資料 (1)初心者向けの外部のハー・・・  秋月電子:http://akizukidenshi.com/ (2)PCで外部接続機器を制御・・・  紹介:http://www.picfun.com/serialframe.html  topページ:http://www.picfun.com/ ●とりあえずのお勧め  2台のPCをcom接続して実験   PC1側:ソフト内のボタンを操作     ↓   PC2側:ソフト内のボタン色が変化  ケーブル1本買うだけでお金も掛かりません。  準備運動に丁度良いです。  PCに2個comがあれば1台のPCでも出来ます。 以上でした

debuyuki
質問者

お礼

tateisu様>  アドバイスありがとうございます。 ●とりあえずお勧め にあるようにPC→PCへの制御もできるんですね。これなら外部ハード使わなくても通信の勉強できますね。ちなみに私のPCのデバイスマネージャでCOM数確認したところ、COM11つしかないようでした。あ、COM1ってシリアル出力用ポート(9pin)ですよね!? ということは 自分PCのシリアルポート出力→自分のPCのUSB入力でなければできない・・・ってことでしょうか。。 じっくり秋月電子のサイト見させていただきます。

debuyuki
質問者

補足

追加です。 http://www.edenki.co.jp/shopdetail/037012000022/order/ にあるようなものをイメージしてました。 これはおそらくリレーONするとLEDが点灯するような感じですね。 でも1万もするんです。こういうので安価(~3000円くらい)なものを探してました。 で、教えていただいた topページ:​http://www.picfun.com/​ のサイトは、まさにコレです! 非常に勉強になりました。m(__)m

その他の回答 (2)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

まともにUSBを使おうと思ったら本を買ったほうが良いとは思います。 http://www.cqpub.co.jp/hanbai/books/34/34501.htm この本でも紹介されているEZ-USBなんかどうでしょう。 http://optimize.ath.cx/mini_ezusb/index.html キットなので安価です。プログラムの書き込みも簡単。でもUSBって事で難易度が高いかも。

debuyuki
質問者

お礼

zwi様>  アドバイスありがとうございます。  紹介していただいたサイト見ました。  たしかにUSBを使うことは難しそうですね。私が思い描いていたのは、USBをCOMのように扱えれば、シリアルポートがなくてもいいかなと思ってました。その方法も書かれてますね。是非参考にしたいと思います。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.1

シリアル通信のしくみは糸電話と同様に片方が 話している時もう片方が聞き手に回り、合図に よって聞き手・話し手を交替して会話していく 様なものです。 例えば PC:こちら<PC><機器>さん動いていますか、どうぞ 機器:こちら<機器>動いています、どうぞ PC:これから[Aデータ]を送ります、どうぞ 機器:了解、[Aデータ]受取の準備をしました、どうぞ PC:[Aデータ]を送りました、どうぞ 機器:[Aデータ]の受け取りに失敗しました、どうぞ PC:これからもう一度[Aデータ]を送ります、どうぞ 機器:了解、[Aデータ]受取の準備をしました、どうぞ   ・   ・ ...といったやりとりが行われます。 そして話の内容は接続する外部機器毎によって 異なります。 予め、やりとりの仕方(通信制御プロトコル)が 決められていた場合は、そのプロトコルに合わ せてプログラムを作れば良いのですが、決まって いない場合には、PC側、機器側両方の制御プロト コルを新規に作る必要があります。 勉強の為であれば、PCを2台シリアルケーブルで 接続してもプログラムを作る事はできます。

debuyuki
質問者

お礼

don_go様>  アドバイスありがとうございます。  ということは、外部ハードのシリアルのプロトコル仕様がきちんときまっているものを使わないと、うまく動かないんですね。 なんとかPCをもう一台用意してみたいと思います。

関連するQ&A

  • RS232CとPCの通信

    RS232Cを使って、PCとシリアル通信をしたいのですが、 RS232Cの通信について、制御線や手順について詳しく書いてあるサイトを知りたいです。 もしご存知でしたら、教えていただきたいです。 よろしくお願いします。

  • シリアル通信ができません

    VBの5.0を使っています RS232Cケーブルで計測器の制御・情報取得を目指していますが上手くいきません このサイト(http://spectrum123.at.infoseek.co.jp/vb/vb_5/vb_5.htm) を参考にしています 現状では実行すると制御機器が「Remote Mode」を表示するので何らかの信号が出ていることは間違いないのですが 計測器の説明書にしたがってコマンドを送信してもリアクションがありません どうか、よろしくお願いします

  • VB6でシリアルポートの制御

    VB6のコントロールまたは、VB6で使用可能なAPIを使って、シリアルポートの内、DTRとRTS信号線を常にHigh(ON)の状態にすることは可能でしょうか? RS-232CからRS-422へ変換して機器を制御するのですが、変換器がこの信号線を電源として動作するので、常にHigh(ON)の状態にしたいのです。 よろしくお願いします。

  • シリアル通信の通信・検証方法とは?

    Visual C++ 6.0(MFC)でプログラミングを行っています. VB 6.0でPCから値を入力し,PICへRS232Cケーブルを用いて値を送り,モータコントロールするプログラムは既に存在しており,現在はVBで書かれていた部分(インターフェイス部)をVC++に書き換えようとしています. サンプルプログラムを参考にシリアル通信に関するVC++のプログラムは完成し,PCからモータの制御を行おうと思ったのですが,うまくいきません. こういった際,どこに問題があるのかを検証したいのですがどうすればいいでしょうか? 現状, 1,シリアル通信ができていない 2,シリアル通信はできているが,PICへ値がうまく格納されていない 3,それ以外 問題があるのは分かるのですが,プログラマーのほうに原因がフィードバックされないため困っています. 明確な答えでなくても,アドバイスのようなものがいただけたら幸いです.

  • VBでのシリアル通信

    VB6 Professional Virsionを使用しています。 RS232Cでシリアル通信をしたいのですが、どうすればいいのでしょうか。ヒントを教えてください。

  • RS232Cの制御について詳しく書かれている書籍

    RS232Cに接続された機械(Robot)をパソコンで制御するプログラムを書きたいのですが、それにあたり、シリアルポートの制御を主として記述している参考書(書籍)を探しています。 書店などでプログラミング教書を探しても、RS232に関して触れられている本はほとんど無く、あったとしても紹介程度のものです。 プログラミングソフトはVisualStudioExpressEditionsシリーズを予定しています。無料なので.... 現時点で扱える言語はCとBASICだけです。 良い参考書があれば、VBやC#、C++等にもチャレンジしてみる意欲はあります。 何か、ハードウェア開発者(と言っても、今回はシリアルポート制御ですが..)でも理解できそうな比較的新しい書籍がありましたら、教えていただけると助かります。

  • シリアル通信について教えてください

    VC6.0のRS-232Cでシリアル通信をするプログラミングについて説明してあるサイトやサンプルソースがあるサイトがあったら教えてください。

  • VB6でのシリアル通信について質問です。

    VB6でのシリアル通信について質問です。 現在、VB6で開発したラベル印刷のシステムを引き受けたのですが、以下のような状況に陥り困っております。 ・プリンタからPCへの接続はシリアル通信のみ。 ・現在使用しようとしているPCにはシリアル通信のポートがなく、USB接続のみしかできない。 ・RS232CからUSBへの変換コネクタを使ってPCとプリンタを接続しようとしているが、印刷実行時に実行時エラー 8015が発生する。 ・VBからプリンタへの通信はMSCommを使用している。 ・プログラム自体は客先にソースのみが残っていたもので、仕様書等はまったくない。 ネットで調べたところ、MicrosoftのサイトではUSBポートからMSCommを使って通信をする事はできないというような事が記載されておりました。 ただ、他のサイトを色々と調べたところ、普通に通信できるとの意見も記載されておりました。 実際のところ、VB6でRS232C-USB変換コネクタを使用してプリンタへのシリアル通信は可能なのでしょうか。 可能な場合、今回発生したエラーの原因になりそうなものとはなんなのでしょうか。 また、通信が不可能な場合、代替策としてどのような方法を取るのが一番ベストなのでしょうか。 どなたか何卒ご教授よろしくお願い致します。

  • Visual BasicでGP-IBの通信を制御したいのですが

    VBを使ってGP-IBのポートの通信を制御したいのですが、それは可能ですか?また可能であれば、どのように制御すればいいのか教えてください。よろしくお願いします。 できれば、RS232Cとの違いも教えてください。お願いします。

  • VBで通信のDTR,RTSを制御できるでしょうか?

    VBの通信プログラムを USB→RS232C変換→RS485変換したいのです。 某メーカのRS485変換器は送信/受信の制御はDTR,RTSによります。 VBのプログラムを動作させるとDTR,RTSは常時ONです。 これを 1.DTR(RTS)をONする 2.送信する 3.DTR(RTS)をOFFする というように(送信中のみDTR(RTS)をONする)することは 可能でしょうか? もし不可とした場合、ほかの言語ならば可能でしょうか?