Windows フォームから arduino にデータを送信したいと思います。私が抱えている問題は、一度に 1 つのプログラムしかポートにアクセスできないことです。
テレビでアナログビデオコンポーネント信号を送信するプログラムをarduinoで作成しました。Windows フォーム アプリケーションは、スペース インベーダーに似たゲームの位置を計算し、それらをシリアルに送信します。
ピクセル位置を送信するための C# フォーム コードarray
は次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Drawing;
namespace ArduinoGame
{
class SerialWriter
{
SerialPort sp;
public SerialWriter()
{
sp = new SerialPort();
sp.PortName = "COM3";
sp.BaudRate = 9600;
}
public void CloseWriter()
{
if (sp.IsOpen) sp.Close();
}
public void WritePixelPos(Point[] pixels)
{
try
{
sp.Open();
foreach (Point pixel in pixels)
{
sp.WriteLine(Convert.ToString(pixel.X + "," + pixel.Y);
}
}
catch (Exception ex)
{
}
}
}
}
arduino IDEで、シリアルからすべての文をキャッチし、そのデータを関数で使用したいのですが、アクセスできません。
基本的に、arduino がアクセスを必要とする場合、フォームはシリアル ポートを閉じる必要があります。