Как ограничить сервопривод, спроектированный на 360 градусов, сохраняя при этом цель этого кода?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как ограничить сервопривод, спроектированный на 360 градусов, сохраняя при этом цель этого кода?

Сообщение Anonymous »

Итак, я снял видео с башней Майкла Ривза и захотел ограничить вращение сервопривода до **180 **градусов, чтобы кабели не образовывали петли сами по себе. (сервоприводы mg996r)
Я пробовал использовать if и пару других вещей, но безуспешно (я новичок в Arduino и C # с Arduino), и я просто ожидаю, что я все равно смогу управлять сервоприводами с помощью мыши, но когда он достигнет 180, он остановится, пока не переключится. стороны.
настройка в C#:
public Stopwatch watch { get; set; }
private Point previousMousePosition; // Store the previous mouse position
private bool servoMoving; // Flag to track if the servo is currently moving

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
watch = Stopwatch.StartNew();
port.Open();
previousMousePosition = Cursor.Position; // Initialize with the current mouse position
servoMoving = false;
}

мышь и управление вращением:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
writeToPort(new Point(e.X, e.Y));
}

public void writeToPort(Point coordinates)
{
if (watch.ElapsedMilliseconds > 15)
{
watch = Stopwatch.StartNew();

int servoX = (int)(coordinates.X * 180.0 / Size.Width); // Map X to 0-180 degrees
int servoY = (int)(coordinates.Y * 180.0 / Size.Height); // Map Y to 0-180 degrees

// Ensure servoX and servoY are within the valid range (0-180)
servoX = Math.Max(0, Math.Min(180, servoX));
servoY = Math.Max(0, Math.Min(180, servoY));
port.Write(String.Format("X{0}Y{1}", servoX, servoY));

servoMoving = true; // Set the flag to indicate the servo is moving
}
else
{
servoMoving = false; // Set the flag to indicate the servo has stopped moving
}
}


Подробнее здесь: https://stackoverflow.com/questions/770 ... he-purpuse
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»