AYUDA! 3 en raya con visual basic

Hola tengo que hacer un teclado en arduino para controlar un programa en visual basic del juego 3 en raya. Ya tengo el juego en visual basic pero me falta la programacion y la vinculacion desde arduino hasta visual basic. Tiene que ser con una matriz de 3x3 con botones que cuando presione el boton marque en VB la casilla asignada.

VB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
bool turn = true;// true = X turn; false = Y turn
int turn_count = 0;

public Form1()
{
InitializeComponent();
}

private void juegoNuevoToolStripMenuItem_Click(object sender, EventArgs e)
{
turn = true;
turn_count = 0;

try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = true;
b.Text = "";
}//end foreach
}
catch { }
}

private void informacionToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Para pasar la materia", "Gato");
}

private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button_click(object sender, EventArgs e)
{
Button b = (Button)sender;
if (turn)
b.Text = "X";
else
b.Text = "O";

turn = !turn;
b.Enabled = false;
turn_count++;
CheckForWinner();
}

private void CheckForWinner()
{
bool Tenemos_un_ganador = false;

//revision horizontal
if ((A1.Text == A2.Text) && (A2.Text == A3.Text) && (!A1.Enabled))
Tenemos_un_ganador = true;
else if ((B1.Text == B2.Text) && (B2.Text == B3.Text) && (!B1.Enabled))
Tenemos_un_ganador = true;
else if ((C1.Text == C2.Text) && (C2.Text == C3.Text) && (!C1.Enabled))
Tenemos_un_ganador = true;

//revision vertical
else if ((A1.Text == B1.Text) && (B1.Text == C1.Text) && (!A1.Enabled))
Tenemos_un_ganador = true;
else if ((A2.Text == B2.Text) && (B2.Text == C2.Text) && (!A2.Enabled))
Tenemos_un_ganador = true;
else if ((A3.Text == B3.Text) && (B3.Text == C3.Text) && (!A3.Enabled))
Tenemos_un_ganador = true;

//revision diagonal
else if ((A1.Text == B2.Text) && (B2.Text == C3.Text) && (!A1.Enabled))
Tenemos_un_ganador = true;
else if ((A3.Text == B2.Text) && (B2.Text == C1.Text) && (!C1.Enabled))
Tenemos_un_ganador = true;

if (Tenemos_un_ganador)
{
disableButtons();

String winner = "";
if (turn)
winner = "O";
else
winner = "X";

MessageBox.Show(winner + " Ganaste!", "FELICIDADES!!!");
}//end if
else
{
if (turn_count == 9)
MessageBox.Show("Empate", "Lastima");
}

}//end CheckForWinner

private void disableButtons()
{
try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = false;
}//end foreach
}
catch { }
}
}

Lee las Normas del foro
Luego ve a More (abajo a la derecha), click, luego Modify y estas en modo EDICION.
Selecciona todo el código y click en </> arriba del emoticon

Hola, qué tal, sabrás como hacer que un botón conectado a Arduino simule a una tecla del teclado?

utreracarreto3:
Hola tengo que hacer un teclado en arduino para controlar un programa en visual basic del juego 3 en raya. Ya tengo el juego en visual basic pero me falta la programacion y la vinculacion desde arduino hasta visual basic. Tiene que ser con una matriz de 3x3 con botones que cuando presione el boton marque en VB la casilla asignada.

VB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
bool turn = true;// true = X turn; false = Y turn
int turn_count = 0;

public Form1()
{
InitializeComponent();
}

private void juegoNuevoToolStripMenuItem_Click(object sender, EventArgs e)
{
turn = true;
turn_count = 0;

try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = true;
b.Text = "";
}//end foreach
}
catch { }
}

private void informacionToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Para pasar la materia", "Gato");
}

private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button_click(object sender, EventArgs e)
{
Button b = (Button)sender;
if (turn)
b.Text = "X";
else
b.Text = "O";

turn = !turn;
b.Enabled = false;
turn_count++;
CheckForWinner();
}

private void CheckForWinner()
{
bool Tenemos_un_ganador = false;

//revision horizontal
if ((A1.Text == A2.Text) && (A2.Text == A3.Text) && (!A1.Enabled))
Tenemos_un_ganador = true;
else if ((B1.Text == B2.Text) && (B2.Text == B3.Text) && (!B1.Enabled))
Tenemos_un_ganador = true;
else if ((C1.Text == C2.Text) && (C2.Text == C3.Text) && (!C1.Enabled))
Tenemos_un_ganador = true;

//revision vertical
else if ((A1.Text == B1.Text) && (B1.Text == C1.Text) && (!A1.Enabled))
Tenemos_un_ganador = true;
else if ((A2.Text == B2.Text) && (B2.Text == C2.Text) && (!A2.Enabled))
Tenemos_un_ganador = true;
else if ((A3.Text == B3.Text) && (B3.Text == C3.Text) && (!A3.Enabled))
Tenemos_un_ganador = true;

//revision diagonal
else if ((A1.Text == B2.Text) && (B2.Text == C3.Text) && (!A1.Enabled))
Tenemos_un_ganador = true;
else if ((A3.Text == B2.Text) && (B2.Text == C1.Text) && (!C1.Enabled))
Tenemos_un_ganador = true;

if (Tenemos_un_ganador)
{
disableButtons();

String winner = "";
if (turn)
winner = "O";
else
winner = "X";

MessageBox.Show(winner + " Ganaste!", "FELICIDADES!!!");
}//end if
else
{
if (turn_count == 9)
MessageBox.Show("Empate", "Lastima");
}

}//end CheckForWinner

private void disableButtons()
{
try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = false;
}//end foreach
}
catch { }
}
}