FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Суббота, 10.12.2016, 15:43
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Железо (контроллеры, шилды, датчики и др.) » Джойстик и управление моторами (Способы подключения джойстика и как им управлять)
Джойстик и управление моторами
denisogloblin
Дата: Суббота, 10.09.2016, 16:26 | Сообщение # 1
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
Искал в разных темах, но много разрозненнойинформации, и целой картины нет. Поэтому, хочется спросить совета, да попросить
поделиться опытом у тех, кто подобное делал.

Собрал агрегат, что-то вроде сервокронштейна: двасерводвигателя положения по осям X и Y. Например, можно ставить сверху Web
камеру. Но меня не удовлетворило то, что у серв ограничение на 180°.
Поэтому установил еще шаговый двигатель, и теперь верх может вращаться на 360° < ! 
Когда перешел к управлению - кнопки оказались неудобны. От потенциометров, сам не понимаю почему (можете подсказать) сервы
сходят с ума (дёргаются). А когда подключил джойстик - вот это мне понравилось!
Хорошо и в любых направлениях можно вращать. А нажатием на центр - удобно
поворачивать шаговым двигателем. Но вот какая неприятность тут присутствует, и
даже две. Для того, что бы не наматывать бесконечно провод, пришлось сделать
кнопку №2, для вращения шаговым в обратном направлении. А как сделать алгоритм,
например, что бы первое нажатие на джойстик было - поворот по часовой стрелки
(удержание кнопки), а второе нажатие - поворот против. Но это еще ладно, но вот
как устранить проблему возвращение джойстика в положение 0, и когда мотор при
этом тоже переходит в положение 0! Вот этого я совсем не знаю. Понимаю, от чего
так. Но, ведь, например, возможно же придумать алгоритм, где установка
джойстика до положения 0, будет игнорироваться мотором, пока джойстик не
перейдёт в отрицательное значение? Не знаю, ясно ли выразился. Но ведь им
управляют как-то сложными агрегатами??? А мне лишь надо, что бы кронштейн мог
фиксироваться в нужном положении.
Я в этом деле совсем новичок.

Проект приложил, и сделал благодаря этому видео.

Добавлено (10.09.2016, 16:26)
---------------------------------------------
Неужели никто не даст подсказку?

Прикрепления: Joystick.flp(62Kb)
 
rw6cm Дата: Суббота, 10.09.2016, 19:57 | Сообщение # 2
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Цитата denisogloblin ()
Но меня не удовлетворило то, что у серв ограничение на 180°.
Что мешает взять на 360*
ссылка

Цитата denisogloblin ()
А мне лишь надо, что бы кронштейн могфиксироваться в нужном положении.
Для этого нужен датчик положения кронштейна.

Что бы  использовать здесь шаговый, нужен датчик точки отсчета шагов.


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Суббота, 10.09.2016, 20:02
 
denisogloblin Дата: Понедельник, 12.09.2016, 15:01 | Сообщение # 3
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
rw6cm, спасибо!
Кажется, на форуме только вы даёте ответы.

Цитата rw6cm ()
Что мешает взять на 360*

Вообщем-то ничего. Но их еще ждать, а хочется сделать что-то из того, что уже есть.

Цитата rw6cm ()
Для этого нужен датчик положения кронштейна.Что бы  использовать здесь шаговый, нужен датчик точки отсчета шагов.

 Датчики? Что-то простой агрегат обрастает сложностями... Я думал лишь в ПО дело. А как же, разве нельзя скетч сделать, что бы просто управление от джойстика работало несколько иначе? Т.е. из крайнего положения наклона джойстика до нулевого двигатель не реагировал, а начинал вновь откликаться, когда джойстик вновь откланяется из нулевого положения?
 
rw6cm Дата: Понедельник, 12.09.2016, 16:01 | Сообщение # 4
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Цитата denisogloblin ()
Датчики? Что-то простой агрегат обрастает сложностями...
У шагового двигателя нет определения положения ротора.  Определить выполнил он команду или нет, не возможно.
По этому нужно что то, что информировало бы контроллер о его действиях.
Иначе определить в каком положении находится сейчас "камера" будет не возможно.
Другой вариант если вам не нужен этот контроль, вы крутите "камеру" смотря в монитор.
В таком случае пойдет любой двигатель с редуктором (можно и шаговый), а чтобы не закручивал кабель достаточно поставить микрик или геркон,
дойдя до которого включался бы реверс двигателя.

Что касаемо джойстика, они есть разные,( микрики, резисторы, и т д), отсюда и решения разные.
Цитата denisogloblin ()
как устранить проблему возвращение джойстика в положение 0
Если это резистивный джойстик, то алгоритм должен быть на управление скоростью шагового.
Т. е. вправо поворот шагового начинается с нулевой скорости, и увеличивается при отклонении джойстика в право,
при возвращении джойстика двигатель остановится.

Цитата denisogloblin ()
От потенциометров, сам не понимаю почему (можете подсказать) сервысходят с ума (дёргаются).
С ротора потенциометра на минус поставить кондер 0,5 мкФ. Плюс на потенциометр тоже желательно через RC цепочку подать.


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Вторник, 13.09.2016, 07:22
 
denisogloblin Дата: Вторник, 13.09.2016, 14:05 | Сообщение # 5
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
Цитата rw6cm ()
У шагового двигателя нет определения положения ротора.  Определить выполнил он команду или нет, не возможно.По этому нужно что то, что информировало бы контроллер о его действиях.
Иначе определить в каком положении находится сейчас "камера" будет не возможно.
Другой вариант если вам не нужен этот контроль, вы крутите "камеру" смотря в монитор.
В таком случае пойдет любой двигатель с редуктором (можно и шаговый), а чтобы не закручивал кабель достаточно поставить микрик или геркон,
дойдя до которого включался бы реверс двигателя.

Ну, сам этот агрегат не для уличных условий, а наблюдение за ним будет вживую. Так что точно всё это пока лишнее. Хотя, на будущее задел интересный...
Джойстик у меня сейчас обычный аналоговый, ну как-бы резисторный, с кнопкой в центре, с 5 контактами (никакой спецификации, номера/серии на нём нет :-( ).

Цитата rw6cm ()
Если это резистивный джойстик, то алгоритм должен быть на управление скоростью шагового.Т. е. вправо поворот шагового начинается с нулевой скорости, и увеличивается при отклонении джойстика в право,
при возвращении джойстика двигатель остановится.

Ну примерно да, этот вариант тоже рассматривается. Однако, джойстик пока у меня управляет серводвигателями. Пока бъюсь над задачей - что бы при возвращении в 0, что бы и моторы не возвращались в 0, а, верно, останавливались.
А шаговый я пока хочу лишь от кнопки вращать. Это вполне меня устраивает. Как сделать так, что бы одно нажатие (и удерживание) было вращение по часовой стрелки, а повторное нажатие (и удерживание) против. Уверен, так можно, но перед программой пасую. :-(

Цитата rw6cm ()
От потенциометров, сам не понимаю почему (можете подсказать) сервысходят с ума (дёргаются).С ротора потенциометра на минус поставить кондер 0,5 мкФ. Плюс на потенциометр тоже желательно через RC цепочку подать.

C конденсаторами пока не подружился - вечно нужных значений не хватает - надо прикупить. Но разобрался. Ага, подключил к цепи отдельной от ардуино, и подтягивающие резисторы установил. Теперь потенциометры крутят идеально сервы. Вот так бы сделать от джойстика! Потому что джойстик мне нравится :-)
 
jet-belan Дата: Среда, 14.09.2016, 01:58 | Сообщение # 6
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 0
Репутация: 1
Статус: Offline
denisogloblin , ставь обратно потенциометры. Центральный вывод на сигнал сервы пускай, а левый и правый вывод к плюсу и минусу 5вольт. Если будет работать не в ту сторону, то поменяй +- местами. Мунус как раз уберёт все дёргания сервы, дав плавный ход поворота. Потенциометры хоть фиксируются.

Добавлено (14.09.2016, 01:34)
---------------------------------------------
Если джойстик нравится, возьми пульт от управляемого самолёта или вертолёта, там джойстики фиксированные, правда один джойстик, одна ось.

Добавлено (14.09.2016, 01:38)
---------------------------------------------
Либо этот разбери и убери пружинки. Один косяк может быть, что джойстик под своим весом будет отклоняться, если уже стоит не вертикально. Чтоб этого избежать, придётся придумать как ход джойстика сделать по туже.

Добавлено (14.09.2016, 01:58)
---------------------------------------------
Мысль про серву 360°
1) Разбираешь серву.
2) На последней шестерне стачиваешь ограничитель.
3) Выносишь потенциометр наружу, и выставляешь его в центральное положение.
4) Когда потенциометр управления совпадает по значению с потенциометром сервы, мотор в состоянии покоя.
5) Когда ты начинаешь изменять значение потонциометра управления в ту или иную сторону, то серва начинает крутить двигатель, чтоб сравнять значения. А так как потенциометр сервы вынесен наружу и уже не крутится от двигателя, то последний вращается до бесконечности.
6) Как двигатель повернулся на нужный угол, сразу возвращаем ручку потенциометра управления в то положение где значения обоих потенциометров снова совпадают- двигатель останавливается.

П.С. прогрессивностью отклонения потенциометра управления, можно регулировать скорость вращения, плавность вращения и точность позиционирования этой "модернизированной" сервы))

 
denisogloblin Дата: Среда, 14.09.2016, 14:58 | Сообщение # 7
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
Цитата jet-belan ()
Если джойстик нравится, возьми пульт от управляемого самолёта или вертолёта, там джойстики фиксированные, правда один джойстик, одна ось.
Либо этот разбери и убери пружинки. Один косяк может быть, что джойстик под своим весом будет отклоняться, если уже стоит не вертикально. Чтоб этого избежать, придётся придумать как ход джойстика сделать по туже.

Хм. А иначе никак? Я то считал, думал, что программно можно отредактировать сигнал так, что бы джойстиком можно было управлять с замиранием двигателя. Неужели невозможно? Всё равно же мы управляем не на прямую двигателями, а через контроллер Ардуино  huh . Ну, допустим, отклонение от положения Ноль в крайнее положение - читается, а вот от любого положения, до положения 0 - мотор встаёт. Я не разбираюсь может в джойстиках, но наблюдал видео где машины на основе таких движков работают как-то так. Значит можно. Или это особый вид джойстика? Может кто разъяснить?

С потенциометрами я полностью разобрался, спасибо. Агась, надо всё верно подключить.
Ну а сервы за 70 руб, с пластиковым корпусом и пружины, я разбирать не хочу. Почти уверен, что лишь поломаю. Мне нравится идея с использованием двух серв и шагового, так будет очень точное позиционирование, в том числе с любым наклоном.

(Эх, уже чувствую, придётся оставить потенциометры и отказаться от джойстика :-( )
 
jet-belan Дата: Среда, 14.09.2016, 21:32 | Сообщение # 8
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 0
Репутация: 1
Статус: Offline
Если оставить джойстик и при егопоступлении в центральное положение нужна остановка поворотной оси, то нужно отказаться от серв, в пользу мотор редукторов с большим передаточным числом, чтоб у них был высокий момент удержания. У сервы обратная связь активная, и она будет возвращаться по положению джойстика
 
jet-belan Дата: Среда, 14.09.2016, 22:28 | Сообщение # 9
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 0
Репутация: 1
Статус: Offline

реализация через H-мост с простыми мотор редукторами.
https://yadi.sk/d/bFO-4ipsvAnRf

Добавлено (14.09.2016, 22:28)
---------------------------------------------
При смещении джойстика вниз или вверх,( влево или вправо) двигатель будет крутиться в ту или иную сторону согласно смещению джойстика. При возвращении джойстика в центральное положение, мотор будет останавливаться))

Прикрепления: 7157779.png(15Kb)
 
rw6cm Дата: Пятница, 16.09.2016, 07:53 | Сообщение # 10
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Цитата denisogloblin ()
Эх, уже чувствую, придётся оставить потенциометры и отказаться от джойстика
Описание внутри проекта.
Думаю разберетесь.
Прикрепления: Joystick_Serv.flp(347Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
denisogloblin Дата: Пятница, 16.09.2016, 20:21 | Сообщение # 11
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
jet-belan, за совет спасибо. Но по мне сложно, и пока сам не вижу, что это то, что нужно.

rw6cm, да вы тут просто постоянный мой СПАСИТЕЛЬ! Честь вам и хвала. Думаю, я вам уже обязан и в долгу.
Ого, как всегда всё сложно, что для меня словно китайский язык. Я то сам 5 блоков в программе установил, и думаю, что это гениально! А вот до такого бы я не допёр никогда  sad . Не знаю как этому учиться, да еще и некогда совсем...
Проект замечательный и интересный. Отлично!
Хотя, а почему тут только одна ось джойстика используется?
И еще, здесь возникла проблема. А вообще реально ли уменьшить скорость сервы? Ну очень резко. Долгий отклик, а если на полную нажать, то резко передвигается на 90 гр. А вот шаговый двигатель отлично крутит. В общем, он медленный, но тут это преимущество.
Я то хотел на джойстик 2 сервы и шаговый поставить. Думал шаговый крутить лишь от кнопки, но так лучше. Я думаю, нужно переделать проект так, что бы джойстик по Y управлял сервой Y, Джойсик по Х управлял сервой по X, а после нажатия на кнопку, джойстик бы начал управлять не сервой, а шаговым двигателем. Таким образом, конструкция могла бы быть очень-очень точным манипулятором. 
А можно ли уменьшить чувствительность, или это можно как-то сделать механически?
 
rw6cm Дата: Суббота, 17.09.2016, 01:07 | Сообщение # 12
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Что касаемо скорости плавности, и т д, все это надо настраивать когда проект завершен.
Захотите поставить дисплей и будете еще просить увеличить скорость )), так как скорость может зависеть и от периферии.
В остальном, все ваши вопросы реализованы в проекте,
просто надо внимательней разобраться.



PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Суббота, 17.09.2016, 01:49
 
denisogloblin Дата: Суббота, 17.09.2016, 15:57 | Сообщение # 13
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
Цитата rw6cm ()
В остальном, все ваши вопросы реализованы в проекте,просто надо внимательней разобраться.

Да, на самом деле, всё просто чудесно! Вчера чуть не всё понял (хотя, как это сделать, я и сегодня не понял )), а сегодня разобрался. Но за видео всё равно спасибо. Тем, кому тоже пригодится, будет сразу ясно. Удобно, что тут можно и углы ограничить, и даже, если надо, еще один двигатель встроить. 
Но всё очень сложно.  shock
Цитата rw6cm ()
Что касаемо скорости плавности, и т д, все это надо настраивать когда проект завершен.

Вот тут я измучился сегодня изучая ваш проект, так и не понял, как можно ограничить скорость. :-( Если у шагового это делать проще простого, да он и так медленный, то сервы всегда срываются с места. Тут, хоть у джойстика ограничители ставь. А, как я не ввязывался в проект, разве что, у меня опять сервы начинали сходить с ума. Ну что же я такой криворукий?
Ну, вроде особо перифирии не будет. Три реле, дисплея точно не будет. Неужели может скорость упасть? При чём, вроде при понижении напряжения и мощность упадёт, так что не хочется (подключены по отдельной линии). Подскажите лишь, как уменьшить чувствительность или ограничить скорость, тогда будет готово абсолютно! Благодарю.  smile
 
rw6cm Дата: Суббота, 17.09.2016, 20:39 | Сообщение # 14
Генерал-майор
Группа: Проверенные
Сообщений: 480
Награды: 44
Репутация: 32
Статус: Offline
Цитата denisogloblin ()
как уменьшить чувствительность или ограничить скорость,
Если под чувствительностью подразумевается реакция джойстика, то это можно изменить с помощью настройки полигона.
Добавить несколько точек перегиба, делая тем самым работу джойстика не линейной, а нужную для удобного управления.
После добавления точек нужна заново сделать калибровку нуля и крайних положений.
Скорость можно менять разными методами, но в данном случае нам нужно уменьшить скорость только сервов, не трогая шаговый.
Самый простой в данном случае метод, увеличить количество счета на один градус поворота.
т.е. сейчас 1 градус поворота равен одному такту счетчика, сделаем скорость в 4 раза меньше.
Для этого нужно разрешить счетчику считать до 360, но на серв подавать это число деленное на 4 т е те же 90 градусов. )
Но теперь серв повернется на один градус за 4 такта счетчика, что в 4 раза больше по времени.
Прикрепления: Joystick_Serv1.flp(325Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
denisogloblin Дата: Воскресенье, 18.09.2016, 20:21 | Сообщение # 15
Сержант
Группа: Проверенные
Сообщений: 33
Награды: 0
Репутация: 0
Статус: Offline
rw6cm, огромное вам спасибо! Особенно за конкретное разъяснение. А то в файле смотрел-смотрел, разобраться не мог полностью. Ага, значит я на верном пути был, как 3D Maxник, я тоже понял, что изменением графика можно изменить чувствительность, но выходили последствия не приятные. Вот о расчете градусов вот как описали, такого бы не додумал сам. Думал, просто ошибка будет, т.к. максимум 180. А оно вот как действует. Ну, здорово. Теперь проект готов, и действует.  smile
Будем знать, как делать подобные штуки.
 
Форум » Основной » Железо (контроллеры, шилды, датчики и др.) » Джойстик и управление моторами (Способы подключения джойстика и как им управлять)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика