inはじめに今回は弊社製シリアルサーボモーターをPCから直接制御する方法およびプログラムについて説明します。USBアダプターHSを使います。付属の2又ケーブルと延長コードを使って信号線と電源線を接続してください。Basicを使うことにします。Express版が無料で使えますので、まずは下記URLにアクセスして、ダウンロードしてください。30日以上使用する場合はMicrosoft社に登録する必要がありますので注意してください。http://www.microsoft.com/japan/msdn/vstudio/express/ダウンロードが終わったらインストールを行ってください。準備インストールが終わったら早速起動してみましょう。Express」を起動してください。ファイルメニューから「新しいプロジェクト(P)」を選択します。表示された「新しいプロジェクト」ダイアログから、「Windowsフォームアプリケーション」を選択します。下にある「名前(N)」欄にプロジェクトの名前を入力します。ここでは「IcsSetPosition」と言う名前を付けますが、好きな名前で結構です。名前を入力したらOKボタンを押します。下記のような起動画面が表示されます(ツールボックスウィンドウはタブをクリックすると開きます)。Basicは昔ながらのBasic言語ではありません。作成したプログラムを実行するには、ビルド作業が必要です。デバッグメニューの「デバッグ開始」か、F5キーを押してください。画面上に何もないウィンドウが表示されたらここまでは成功です。終了するにはフォーム上の終了ボタン(×マーク)をクリックするか、デバッグメニューから「デバッグの停止」を選択してください。Studioの簡単な説明よく使うウィンドウは、「ツールボックス」ウィンドウと、「ソリューションエクスプローラー」ウィンドウ、「プロパティ」ウィンドウです。これらは「表示」メニューの「その他のウィンドウ」から開いたり閉じたりすることができます。ウィンドウは取り外し、ドッキングができます。各ウィンドウのタイトルバーにある押しピンアイコンをクリックすると、自動的にウィンドウが隠れるような設定も可能です。ツールボックスボタンなどの部品(コントロールと言います)がリスト表示されています。コントロールをクリックして選択してから、画面上のフォームをクリックすると、選んだコントロールが張り付きます。ソリューションエクスプローラープロジェクトのファイル構成などを表示します。ツリー表示でファイル名を変更することもできます。プロパティフォーム上でクリックしたコントロールのプロパティを表示します。プロパティでは文字の色や大きさを変えたりすることができます。プロパティウィンドウのツールバーにある「イベント」ボタン(稲妻マーク)を押すことで、選択したコントロールのイベントを設定できるようになります。画面をデザインするまずは画面をデザインしてみましょう。今回は下の手順で動作する、サーボモーター制御プログラムを作成します。ComboBoxコントロール(入力も可能なプルダウン式メニュー)でシリアルポートを選択する。USBアダプター)と接続する。ID番号をセットする。スライドバーを動かすとその通りにサーボモーターが動作する。数値を直接代入することもできる。下のスクリーンショットのように、ツールボックスからTrackBar(スライドバーのこと)、Button、ComboBox(入力もできるメニュー)などを配置してみましょう。コントロールの位置は画面と全く同じにする必要はありませんので、TrackBarを左右にスライドさせてサーボモーターを動かすことをイメージして、好きなように配置してください。TrackBarコントロールなど、ツールボックスウィンドウをぱっと見てもに見当たらないコントロールは、ツールボックスウィンドウの一番上にある「全てのWindowsフォーム」をクリックすると使用できる全コントロールがアルファベット順で表示されますので、そこから探してください。シリアル通信を行うSerialPortコントロールは、非ビジュアルコントロールですので、フォーム上に貼り付けてもフォーム外(下の方)に配置されます。配置が終わったら、ボタンなどのプロパティを設定します。プロパティウィンドウが表示されていない場合は、表示メニュー>その他のウィンドウメニューから開いてください。フォーム上のコントロールをクリックして選択すると、そのプロパティが表示されます。プロパティウィンドウは左の欄がプロパティの名前で、その右側に値を入れるとコントロールの見た目や動作がリアルタイムに変化します。各コントロールのプロパティ名の欄に対応するプロパティ値を下記表の通りに設定しながら、画面の変化を見てください。SerialPortコントロールはフォーム上にはありません。フォームが表示されているウィンドウの下方に配置されていますので、注意してください。Basicで作ってみます。フォームの上で右クリックすると「コードの表示」というメニューが出るので、プログラムコードを表示してください。F7キーを押して表示もできます。[デザイン]」タブをクリックしてください。Class」と表示されますが、プログラムはこの間に記述します。ソフト編」のプログラムとほぼ同じ構成になっていますので比較してみてください)。入力途中で入力候補が表示されたときはTABキーを押すと候補が確定します。プログラムソースコードの緑の部分はコメントですので、入力しなくとも大丈夫です。Classプログラムの簡単説明プログラムを簡単に説明すると、次のような手順となっています。Byte」などと準備してから、Txにはポジションコマンドをセットします。3)」で、Tx変数にセットしたコマンドを3バイト分だけSerialPort1から書き込みます。ICS規格では、PCから送信した場合は送信多命令と同じものが返ってきますので、受け取りは6バイトになります。これを「For」の繰り返しで1バイトずつ受け取っています。Basicでは関数の名前に値を代入すると返値となります(C言語ではreturnに相当)。データ受け取りに成功した場合は、受け取ったデータをポジションデータに戻して、値を返して関数を終了しています。i++)」と言う意味です。Catch19~24行あたりのTry~Catch節は簡単に言えば「とりあえずTry節を実行してみて、何か問題があったら(例外を受け取ったら)Catch節へ処理を移す」というものです。C言語などで存在していた実行時エラーによるプログラムクラッシュを予防することができるようになっています。シリアル通信では設定した受信タイムアウト時間を待っても受信できなかったときには、SerialPort.ReadByte関数は「TimeoutException」例外を発生し、Catch節へ処理が移ります。今回はSerialPort1の受信タイムアウト時間を適当に100msにセットしておきましたので、100ms待ってもサーボモーターから返事がない場合は、Catch節へ移動します。再ビルドプログラムの入力が完了したら、再度ビルド作業を行います。スクリーンショットのように、フォームが表示されればここまでは成功です。ビルド時にエラーが出たらエラーの文字をダブルクリックすると、エラーが発生した行が表示されますので、間違いを直して再ビルドしてください。次回は画面デザイン時に設計した動作をプログラムに追加して、プログラムの完成を目指します。Basicなどではプログラムソースコードや画面のデザイン、コンパイル条件設定などをまとめて「プロジェクト」という単位で管理しています。従来はテキストエディタでソースコードを記述しコンパイルなどを行っていましたが、現在の開発環境ではあまりメジャーではなくなりました。フォームフォームアプリケーションの、「フォーム」とは、起動時に表示されるウィンドウのことで、ボタンなどの様々なコントロールをこのフォーム上に配置することができます。非ビジュアルコントロールボタンなどと違って、マウスクリックやキー入力などをきっかけにしてプログラムを実行したり、見た目を変化させたりする必要がないコントロールを非ビジュアルコントロールと言います。