- 左側のツールボックスからButtonを選び、デザインウィンドウにドロップします。二つ目をその下にドロップします。上側がbutton1、下側がbutton2なっているはずです。

- button1をクリックして選択すると、右下にそのプロパティが表示されます。ここでは、上側を右回転にしたいので、button1の文字を「右回転」に変えます。それには、Textプロパティの値を「右回転」にします。同様にbutton2のTextプロパティの値を「左回転」にします。

- シリアルの設定のプログラムをアプリケーション開始時に行うメソッドを作ります。色々な作り方が考えられますが、ここではウィンドウが作られたらその設定を行うようにしてみます。それには、デザインウィンドウのボタンのない空白部分をダブルクリックします。すると、以下のようにウィンドウが作られた時に実行される部分が表示されます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace puchiRS232C
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Form1_Loadの中に以下のコードを書き入れます。
行っていることは単にシリアルポートを開くことだけです。
try
{
serialPort1.Open();
}
catch (Exception)
{
serialPort1.Close();
Console.Beep();
}
- 次にプチロボにコマンドを送るメソッドをその下に作ります。次のコードを付け加えてください。
byte[] buffer = { 0xfd, 0xdd, 0, 0 };
private void servo(int num, int value)
{
buffer[0] = (byte)0xfd;
buffer[1] = (byte)(0xdd + num);
buffer[2] = (byte)value;
buffer[3] = (byte)(value + num + 1);
serialPort1.Write(buffer, 0, 4);
}
private void FreeMode(int num)
{
buffer[0] = (byte)0xfd;
buffer[1] = (byte)(0xdd + num);
buffer[2] = (byte)0;
buffer[3] = (byte)(num + 1);
serialPort1.Write(buffer, 0, 4);
}
- 次に、ボタンを押したらサーボモーターが動くようにしてみます。デザインにある右回転のボタンをダブルクリックします。このようにすると、このボタンが押された時に処理するメソッドを作るウィンドウが開きます。以下のように表示されると思います。
private void button1_Click(object sender, EventArgs e)
{
}
ここにサーボモータ0を右に動かすコードを書き入れると以下のようになります。
private void button1_Click(object sender, EventArgs e)
{
servo(0, 220);
}
同様に左回転のメソッドを作り、そこにはservo(0,1);をコードとして挿入します。
- プチロボを接続し、電源を入れて、コンパイル・実行します。ボタンを押すと0番のサーボモーターが端から端まで回るはずです。
- このプログラムは単に動かすテストをするものですから、これをそのまま拡張するというお馬鹿なことは考えてはいけません。正しいクラスを作り、それを利用するように作らなければ訳が分からないプログラムが出来上がってしまいます。