Перейти к содержанию
    

Управление двумя сервоприводами через ПК

Всем привет. Собрал проект управления сервоприводом через ПК сам код и пример взял из этой статьи : Управление сервоприводом при помощи Arduino и Java приложения Серва работает на ура, теперь хочу управлять сразу двумя сервоприводами, одну привязать на координату x другую на координату y. только вот не совсем пойму как это программно сделать, нужно придумать какой то протокол передачи координат на ПК и разбирать его в ардуине. Кто нибудь делал подобное?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не придумывайте протокол, возьмите с успехом используемый в подобных задачах. Например, стоит присмотреться к управлению в 3D принтерах, стоит почитать здесь и здесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если для образовательных нужд, то протокол как таковой не нужен. UART тебе в помощь.

Надо пересылать не один байт, а два байта. Первый байт будет для одной сервы, второй, для другой.

Ну можно пересылать в конце третий байт для контроля завершения команды.

Собственно все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Координировать надо в реалтайме а ПС для этих целей не очень.

 

Реалтайм реалтайму рознь.

 

Если объект, на который будут воздействовать сервы не подвержен быстроменяющимся внешним воздействиям, то и ПК сойдет.

Для товарища, задавшего вопрос, я думаю этого будет достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо пересылать не один байт, а два байта. Первый байт будет для одной сервы, второй, для другой.

Ну можно пересылать в конце третий байт для контроля завершения команды.

Как управляемое устройство будет узнавать где 1й, а где 2й байт?

Не бывает связи без протокола. Как не может быть разговора без языка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью согласен с jcxz. Как только пакет больше одного байта, нужно иметь возможность определить, кто первый, если система асинхронная :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как управляемое устройство будет узнавать где 1й, а где 2й байт?

0 или 1 в старшем бите ? и 7 бит данных

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

0 или 1 в старшем бите ? и 7 бит данных

А вот это уже называется "протокол обмена" ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но всё ещё с пакетом не более одного байта

Изменено пользователем Огурцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но всё ещё с пакетом не более одного байта

Отчего-ж? Если есть возможность определить границы пакета, значит он может быть многобайтовым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но всё ещё с пакетом не более одного байта

Если продолжать спор только ради спора, тогда можно продолжать доказывать, что в одном байте можно закодировать и синхро-сигнал, и контрольную сумму и данные. Ведь в 8-ми битах по два-три бита может уместиться разной информации.

Вопрос: зачем делать сразу плохо, если плохо получается обычно без каких-либо усилий?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...