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; using WiimoteLib; namespace next_aka_ver2._00 { public partial class Form1 : Form { Wiimote wm = new Wiimote(); double wiimote_accel_Y; double wiimote_accel_Y_easy; double wiimote_accel_Y_veryeasy; int check = 1; int check1 = 1; String[] serial = new String[6]; int[] serial_int = new int[6]; //String wiimote_accel_Y_data; double data_all_double; //double label6_data; String data_all; double[] button_data_array = new double[10]; //String button_data; //String button_data_boost; //int button_data_int; int comand=0; int comand1; public Form1() { Control.CheckForIllegalCrossThreadCalls = false; InitializeComponent(); wm.WiimoteChanged += wm_WiimoteChanged; wm.SetReportType(InputReport.ButtonsAccel, true); wm.Connect(); wm.SetLEDs(1); label1.Text = "Wiiリモコンの角度の値"; label3.Text = "Wiiリモコンの値簡易化"; label5.Text = "arduinoから送られてきた値"; label10.Text = "Wiiリモコンの値さらに簡易化"; label12.Text = "Arduinoに送る値"; } private void Form1_Load(object sender, EventArgs e) { serialPort1.Open(); } void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) { WiimoteState ws = args.WiimoteState; wiimote_accel_Y = ws.AccelState.Values.Y; label2.Text = "Y軸:" + (wiimote_accel_Y); wiimote_accel_Y *= 100; wiimote_accel_Y_easy = Math.Floor(wiimote_accel_Y); label4.Text = "Y軸:" + (wiimote_accel_Y_easy); if (0 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 5) { wiimote_accel_Y_veryeasy = 1005; } else if (5 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 10) { wiimote_accel_Y_veryeasy = 1010; } else if (10 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 15) { wiimote_accel_Y_veryeasy = 1015; } else if (15 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 20) { wiimote_accel_Y_veryeasy = 1020; } else if (20 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 25) { wiimote_accel_Y_veryeasy = 1025; } else if (25 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 30) { wiimote_accel_Y_veryeasy = 1030; } else if (30 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 35) { wiimote_accel_Y_veryeasy = 1035; } else if (35 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 40) { wiimote_accel_Y_veryeasy = 1040; } else if (40 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 45) { wiimote_accel_Y_veryeasy = 1045; } else if (45 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <=50) { wiimote_accel_Y_veryeasy = 1050; } else if (50 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 55) { wiimote_accel_Y_veryeasy = 1055; } else if (55 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 60) { wiimote_accel_Y_veryeasy = 1060; } else if (60 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 65) { wiimote_accel_Y_veryeasy = 1065; } else if (65 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 70) { wiimote_accel_Y_veryeasy = 1070; } else if (70 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 75) { wiimote_accel_Y_veryeasy = 1075; } else if (75 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 80) { wiimote_accel_Y_veryeasy = 1080; } else if (80 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 85) { wiimote_accel_Y_veryeasy = 1085; } else if (85 < wiimote_accel_Y_easy && wiimote_accel_Y_easy <= 90) { wiimote_accel_Y_veryeasy = 1090; } else if (90 < wiimote_accel_Y_easy) { wiimote_accel_Y_veryeasy = 1095; } else if (0 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -5) { wiimote_accel_Y_veryeasy = 1105; } else if (-5 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -10) { wiimote_accel_Y_veryeasy = 1110; } else if (-10 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -15) { wiimote_accel_Y_veryeasy = 1115; } else if (-15 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -20) { wiimote_accel_Y_veryeasy = 1120; } else if (-20 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -25) { wiimote_accel_Y_veryeasy = 1125; } else if (-25 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -30) { wiimote_accel_Y_veryeasy = 1130; } else if (-30 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -35) { wiimote_accel_Y_veryeasy = 1135; } else if (-35 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -40) { wiimote_accel_Y_veryeasy = 1140; } else if (-40 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -45) { wiimote_accel_Y_veryeasy = 1145; } else if (-45 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -50) { wiimote_accel_Y_veryeasy = 1150; } else if (-50 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -55) { wiimote_accel_Y_veryeasy = 1155; } else if (-55 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -60) { wiimote_accel_Y_veryeasy = 1160; } else if (-60 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -65) { wiimote_accel_Y_veryeasy = 1165; } else if (-65 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -70) { wiimote_accel_Y_veryeasy = 1170; } else if (-70 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -75) { wiimote_accel_Y_veryeasy = 1175; } else if (-75 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -80) { wiimote_accel_Y_veryeasy = 1180; } else if (-80 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -85) { wiimote_accel_Y_veryeasy = 1185; } else if (-85 > wiimote_accel_Y_easy && wiimote_accel_Y_easy >= -90) { wiimote_accel_Y_veryeasy = 1190; } else if (-90 > wiimote_accel_Y_easy) { wiimote_accel_Y_veryeasy = 1195; } else { wiimote_accel_Y_veryeasy = 1000; } label11.Text="Wiiリモコン"+(wiimote_accel_Y_veryeasy); if (ws.ButtonState.Two == true) { if (ws.ButtonState.One == true) { button_data_array[0] = 300000; } else { button_data_array[0] = 100000; } } else if (ws.ButtonState.One == true) { if (ws.ButtonState.Two == true) { button_data_array[0] = 300000; } else { button_data_array[0] = 200000; } } else { button_data_array[0] = 400000; } if (ws.ButtonState.A == true) comand = 0; if (ws.ButtonState.Plus == true) comand = 2; if (ws.ButtonState.Minus == true) comand1 = comand + 200; label7.Text = "ボタン:"+(button_data_array[0]); label9.Text="コマンド"+(comand); if (comand1 == 202) { if(check==1){ if (ws.ButtonState.Right == true) button_data_array[1] += 10000; check = 0; } if(check1==1){ if (ws.ButtonState.Left == true)button_data_array[1] -= 10000; check1 = 0; } if (ws.ButtonState.Right == false) check=1; if (ws.ButtonState.Left == false) check1 = 1; if (ws.ButtonState.B == true) button_data_array[1] = 0; if (button_data_array[1] > 90000) button_data_array[1] = 90000; if (button_data_array[1] < 0) button_data_array[1] = 0; label8.Text = "ブースト:" + (button_data_array[1]); } else { label8.Text = "コマンドを入力するとブーストができるぞ!"; button_data_array[1] = 0; } } private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); data_all_double = wiimote_accel_Y_veryeasy + button_data_array[0] + button_data_array[1]; //wiimote_accel_Y_data = Convert.ToDouble(wiimote_accel_Y_easy).ToString(); //button_data = Convert.ToDouble(10 * button_data_array[0] + button_data_array[1]).ToString(); //button_data_boost = Convert.ToDouble(button_data_array[1]).ToString(); label13.Text = "data:" + (data_all_double); data_all = Convert.ToDouble(data_all_double).ToString(); serialPort1.Write(data_all); //serialPort1.Write(button_data); //serialPort1.Write(button_data_boost); //serialPort1.Write(wiimote_accel_Y_data); /* for (int i = 0; i < 6; i++) { serial[i] = serialPort1.ReadLine(); label6_data =serial[i]-'0'; } label6.Text = "data:"+(label6_data); */ label6.Text = serialPort1.ReadLine(); timer1.Start(); } } }