Я пытаюсь создать (пока) простую реконструкцию поверхностей управления самолетом для моего проекта uni. Я использую Ардуино. Одна из моих идей заключалась в том, чтобы создать страницу FCS, на которой я мог бы видеть текущее положение сервоприводов в реальном времени. Я пробовал использовать терминал, который для отладки был полезен, но если я хочу иметь возможность правильно читать данные при добавлении дополнительных сервоприводов, их будет трудно читать, если я не сделаю таблицу.
I ' Я пытался прочитать в Интернете, как использовать Обработку для чтения данных из Arduino, с чем я не особо добился успеха, и тем более с созданием таблицы. У меня нет большого опыта работы с GUI, так что это немного ново для меня.
Вот мой код Arduino;
#include <Arduino.h>
#include <Servo.h>
#include <stdio.h>
Servo leftAir; // create servo for left airelon
Servo rightAir; // create servo for right airelon
Servo leftEl; // create servo for left elevator
Servo rightEl; // create servo for right elevator
// Arduino pin numbers
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output
int Ypos;
int Xpos;
int leftAirPos;
int rightAirPos;
int leftStabPos;
int rightStabPos;
int AoA; // Variables not used yet
int spd; // ^^
void setup() {
Serial.begin(9600);
leftAir.attach(9, 600, 2300);
rightAir.attach(10, 600, 2300);
leftEl.attach(11, 600, 2300);
rightEl.attach(12, 600, 2300);
}
void loop() {
Ypos = analogRead(Y_pin) - 512;
Xpos = analogRead(X_pin) - 512;
if (Ypos > 10 || Ypos < -10) // Small deadzone
{
leftAir.write((Ypos / 5.12) * 0.2 + 90); // move left airelon to designated angle (currently 20 degrees either way)
rightAir.write((Ypos / 5.12) * 0.2 + 90); // move right aileron to the same angle -- servo will be looking in opposite direction so aileron will move down when the other goes up (currently 20 degrees either way)
}
else {}
// Moving elevator / horizontal stabilizers
if (Xpos > 10 || Xpos < -10)
{
leftEl.write((Xpos / 5.12) * 0.2 + 90); // move left elevator (currently 20 degrees either way)
rightEl.write(-(Xpos / 5.12) * 0.2 + 90); // move right elevator (currently 20 degrees either way)
}
else{}
leftAirPos = leftAir.read() -90;
leftStabPos = leftEl.read() -90;
rightAirPos = rightAir.read() -90;
rightStabPos = rightEl.read() -90;
Serial.print(leftAirPos);
Serial.print(",");
Serial.print(leftStabPos);
Serial.print("\n");
Serial.print(rightAirPos);
Serial.print(",");
Serial.print(rightStabPos);
Serial.print("\n");
}
Таблица, надеюсь, будет выглядеть примерно так:
Left Right
Ailerons 20 -15
Stabilators 12 12
Flaps 5 5
Заранее спасибо.