Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Управление двумя сервоприводами через ПК
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Отладочные платы > Arduino
mega2560
Всем привет. Собрал проект управления сервоприводом через ПК сам код и пример взял из этой статьи : Управление сервоприводом при помощи Arduino и Java приложения Серва работает на ура, теперь хочу управлять сразу двумя сервоприводами, одну привязать на координату x другую на координату y. только вот не совсем пойму как это программно сделать, нужно придумать какой то протокол передачи координат на ПК и разбирать его в ардуине. Кто нибудь делал подобное?
one_man_show
Не придумывайте протокол, возьмите с успехом используемый в подобных задачах. Например, стоит присмотреться к управлению в 3D принтерах, стоит почитать здесь и здесь
kleverd
Если для образовательных нужд, то протокол как таковой не нужен. UART тебе в помощь.
Надо пересылать не один байт, а два байта. Первый байт будет для одной сервы, второй, для другой.
Ну можно пересылать в конце третий байт для контроля завершения команды.
Собственно все.
A. Fig Lee
Координировать надо в реалтайме а ПС для этих целей не очень.
kleverd
Цитата(A. Fig Lee @ Apr 14 2015, 04:12) *
Координировать надо в реалтайме а ПС для этих целей не очень.


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

Если объект, на который будут воздействовать сервы не подвержен быстроменяющимся внешним воздействиям, то и ПК сойдет.
Для товарища, задавшего вопрос, я думаю этого будет достаточно.
jcxz
Цитата(kleverd @ Apr 14 2015, 02:06) *
Надо пересылать не один байт, а два байта. Первый байт будет для одной сервы, второй, для другой.
Ну можно пересылать в конце третий байт для контроля завершения команды.

Как управляемое устройство будет узнавать где 1й, а где 2й байт?
Не бывает связи без протокола. Как не может быть разговора без языка.
one_man_show
Полностью согласен с jcxz. Как только пакет больше одного байта, нужно иметь возможность определить, кто первый, если система асинхронная sm.gif
Огурцов
Цитата(jcxz @ Apr 15 2015, 03:35) *
Как управляемое устройство будет узнавать где 1й, а где 2й байт?

0 или 1 в старшем бите ? и 7 бит данных
jcxz
Цитата(Огурцов @ Apr 15 2015, 17:36) *
0 или 1 в старшем бите ? и 7 бит данных

А вот это уже называется "протокол обмена" wink.gif
Огурцов
но всё ещё с пакетом не более одного байта
jcxz
Цитата(Огурцов @ Apr 17 2015, 19:20) *
но всё ещё с пакетом не более одного байта

Отчего-ж? Если есть возможность определить границы пакета, значит он может быть многобайтовым.
one_man_show
Цитата(Огурцов @ Apr 17 2015, 16:20) *
но всё ещё с пакетом не более одного байта

Если продолжать спор только ради спора, тогда можно продолжать доказывать, что в одном байте можно закодировать и синхро-сигнал, и контрольную сумму и данные. Ведь в 8-ми битах по два-три бита может уместиться разной информации.
Вопрос: зачем делать сразу плохо, если плохо получается обычно без каких-либо усилий?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.