Джойстик и управление моторами

Использование дисплеев и обсуждение пользовательских блоков к ним
Ответить
Аватара пользователя
denisogloblin
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#1

Сообщение denisogloblin » 10.09.2016{, 16:26}

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

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

Добавлено (10.09.2016, 16:26)
---------------------------------------------
Неужели никто не даст подсказку?
Вложения
Joystick.flp
(62.3 КБ) 103 скачивания

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Джойстик и управление моторами

#2

Сообщение rw6cm » 10.09.2016{, 19:57}

denisogloblin писал(а):Но меня не удовлетворило то, что у серв ограничение на 180°.
Что мешает взять на 360*
ссылка
denisogloblin писал(а):А мне лишь надо, что бы кронштейн могфиксироваться в нужном положении.
Для этого нужен датчик положения кронштейна.

Что бы  использовать здесь шаговый, нужен датчик точки отсчета шагов.
Последний раз редактировалось rw6cm 10.09.2016{, 20:02}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Аватара пользователя
denisogloblin
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#3

Сообщение denisogloblin » 12.09.2016{, 15:01}

rw6cm, спасибо!
Кажется, на форуме только вы даёте ответы.
rw6cm писал(а):Что мешает взять на 360*
Вообщем-то ничего. Но их еще ждать, а хочется сделать что-то из того, что уже есть.
rw6cm писал(а):Для этого нужен датчик положения кронштейна.Что бы  использовать здесь шаговый, нужен датчик точки отсчета шагов.
 Датчики? Что-то простой агрегат обрастает сложностями... Я думал лишь в ПО дело. А как же, разве нельзя скетч сделать, что бы просто управление от джойстика работало несколько иначе? Т.е. из крайнего положения наклона джойстика до нулевого двигатель не реагировал, а начинал вновь откликаться, когда джойстик вновь откланяется из нулевого положения?

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Джойстик и управление моторами

#4

Сообщение rw6cm » 12.09.2016{, 16:01}

denisogloblin писал(а):Датчики? Что-то простой агрегат обрастает сложностями...
У шагового двигателя нет определения положения ротора.  Определить выполнил он команду или нет, не возможно.
По этому нужно что то, что информировало бы контроллер о его действиях.
Иначе определить в каком положении находится сейчас "камера" будет не возможно.
Другой вариант если вам не нужен этот контроль, вы крутите "камеру" смотря в монитор.
В таком случае пойдет любой двигатель с редуктором (можно и шаговый), а чтобы не закручивал кабель достаточно поставить микрик или геркон,
дойдя до которого включался бы реверс двигателя.

Что касаемо джойстика, они есть разные,( микрики, резисторы, и т д), отсюда и решения разные.
denisogloblin писал(а):как устранить проблему возвращение джойстика в положение 0
Если это резистивный джойстик, то алгоритм должен быть на управление скоростью шагового.
Т. е. вправо поворот шагового начинается с нулевой скорости, и увеличивается при отклонении джойстика в право,
при возвращении джойстика двигатель остановится.
denisogloblin писал(а):От потенциометров, сам не понимаю почему (можете подсказать) сервысходят с ума (дёргаются).
С ротора потенциометра на минус поставить кондер 0,5 мкФ. Плюс на потенциометр тоже желательно через RC цепочку подать.
Последний раз редактировалось rw6cm 13.09.2016{, 07:22}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Аватара пользователя
denisogloblin
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#5

Сообщение denisogloblin » 13.09.2016{, 14:05}

rw6cm писал(а):У шагового двигателя нет определения положения ротора.  Определить выполнил он команду или нет, не возможно.По этому нужно что то, что информировало бы контроллер о его действиях.
Иначе определить в каком положении находится сейчас "камера" будет не возможно.
Другой вариант если вам не нужен этот контроль, вы крутите "камеру" смотря в монитор.
В таком случае пойдет любой двигатель с редуктором (можно и шаговый), а чтобы не закручивал кабель достаточно поставить микрик или геркон,
дойдя до которого включался бы реверс двигателя.
Ну, сам этот агрегат не для уличных условий, а наблюдение за ним будет вживую. Так что точно всё это пока лишнее. Хотя, на будущее задел интересный...
Джойстик у меня сейчас обычный аналоговый, ну как-бы резисторный, с кнопкой в центре, с 5 контактами (никакой спецификации, номера/серии на нём нет :-( ).
rw6cm писал(а):Если это резистивный джойстик, то алгоритм должен быть на управление скоростью шагового.Т. е. вправо поворот шагового начинается с нулевой скорости, и увеличивается при отклонении джойстика в право,
при возвращении джойстика двигатель остановится.
Ну примерно да, этот вариант тоже рассматривается. Однако, джойстик пока у меня управляет серводвигателями. Пока бъюсь над задачей - что бы при возвращении в 0, что бы и моторы не возвращались в 0, а, верно, останавливались.
А шаговый я пока хочу лишь от кнопки вращать. Это вполне меня устраивает. Как сделать так, что бы одно нажатие (и удерживание) было вращение по часовой стрелки, а повторное нажатие (и удерживание) против. Уверен, так можно, но перед программой пасую. :-(
rw6cm писал(а):От потенциометров, сам не понимаю почему (можете подсказать) сервысходят с ума (дёргаются).С ротора потенциометра на минус поставить кондер 0,5 мкФ. Плюс на потенциометр тоже желательно через RC цепочку подать.
C конденсаторами пока не подружился - вечно нужных значений не хватает - надо прикупить. Но разобрался. Ага, подключил к цепи отдельной от ардуино, и подтягивающие резисторы установил. Теперь потенциометры крутят идеально сервы. Вот так бы сделать от джойстика! Потому что джойстик мне нравится :-)

jet-belan
Рядовой
Сообщения: 75
Зарегистрирован: 17.04.2016{, 10:09}
Репутация: 0

Джойстик и управление моторами

#6

Сообщение jet-belan » 14.09.2016{, 01:58}

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
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#7

Сообщение denisogloblin » 14.09.2016{, 14:58}

jet-belan писал(а):Если джойстик нравится, возьми пульт от управляемого самолёта или вертолёта, там джойстики фиксированные, правда один джойстик, одна ось.
Либо этот разбери и убери пружинки. Один косяк может быть, что джойстик под своим весом будет отклоняться, если уже стоит не вертикально. Чтоб этого избежать, придётся придумать как ход джойстика сделать по туже.
Хм. А иначе никак? Я то считал, думал, что программно можно отредактировать сигнал так, что бы джойстиком можно было управлять с замиранием двигателя. Неужели невозможно? Всё равно же мы управляем не на прямую двигателями, а через контроллер Ардуино  . Ну, допустим, отклонение от положения Ноль в крайнее положение - читается, а вот от любого положения, до положения 0 - мотор встаёт. Я не разбираюсь может в джойстиках, но наблюдал видео где машины на основе таких движков работают как-то так. Значит можно. Или это особый вид джойстика? Может кто разъяснить?

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

(Эх, уже чувствую, придётся оставить потенциометры и отказаться от джойстика :-( )

jet-belan
Рядовой
Сообщения: 75
Зарегистрирован: 17.04.2016{, 10:09}
Репутация: 0

Джойстик и управление моторами

#8

Сообщение jet-belan » 14.09.2016{, 21:32}

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

jet-belan
Рядовой
Сообщения: 75
Зарегистрирован: 17.04.2016{, 10:09}
Репутация: 0

Джойстик и управление моторами

#9

Сообщение jet-belan » 14.09.2016{, 22:28}

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

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

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Джойстик и управление моторами

#10

Сообщение rw6cm » 16.09.2016{, 07:53}

denisogloblin писал(а):Эх, уже чувствую, придётся оставить потенциометры и отказаться от джойстика
Описание внутри проекта.
Думаю разберетесь.
Вложения
Joystick_Serv.flp
(347.42 КБ) 104 скачивания
Win10-64, FLProg (portable)

Аватара пользователя
denisogloblin
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#11

Сообщение denisogloblin » 16.09.2016{, 20:21}

jet-belan, за совет спасибо. Но по мне сложно, и пока сам не вижу, что это то, что нужно.

rw6cm, да вы тут просто постоянный мой СПАСИТЕЛЬ! Честь вам и хвала. Думаю, я вам уже обязан и в долгу.
Ого, как всегда всё сложно, что для меня словно китайский язык. Я то сам 5 блоков в программе установил, и думаю, что это гениально! А вот до такого бы я не допёр никогда  . Не знаю как этому учиться, да еще и некогда совсем...
Проект замечательный и интересный. Отлично!
Хотя, а почему тут только одна ось джойстика используется?
И еще, здесь возникла проблема. А вообще реально ли уменьшить скорость сервы? Ну очень резко. Долгий отклик, а если на полную нажать, то резко передвигается на 90 гр. А вот шаговый двигатель отлично крутит. В общем, он медленный, но тут это преимущество.
Я то хотел на джойстик 2 сервы и шаговый поставить. Думал шаговый крутить лишь от кнопки, но так лучше. Я думаю, нужно переделать проект так, что бы джойстик по Y управлял сервой Y, Джойсик по Х управлял сервой по X, а после нажатия на кнопку, джойстик бы начал управлять не сервой, а шаговым двигателем. Таким образом, конструкция могла бы быть очень-очень точным манипулятором. 
А можно ли уменьшить чувствительность, или это можно как-то сделать механически?

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Джойстик и управление моторами

#12

Сообщение rw6cm » 17.09.2016{, 01:07}

Что касаемо скорости плавности, и т д, все это надо настраивать когда проект завершен.
Захотите поставить дисплей и будете еще просить увеличить скорость )), так как скорость может зависеть и от периферии.
В остальном, все ваши вопросы реализованы в проекте,
просто надо внимательней разобраться.
СпойлерПоказать
[video][/video]

Последний раз редактировалось rw6cm 17.09.2016{, 01:49}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Аватара пользователя
denisogloblin
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#13

Сообщение denisogloblin » 17.09.2016{, 15:57}

rw6cm писал(а):В остальном, все ваши вопросы реализованы в проекте,просто надо внимательней разобраться.
Да, на самом деле, всё просто чудесно! Вчера чуть не всё понял (хотя, как это сделать, я и сегодня не понял )), а сегодня разобрался. Но за видео всё равно спасибо. Тем, кому тоже пригодится, будет сразу ясно. Удобно, что тут можно и углы ограничить, и даже, если надо, еще один двигатель встроить. 
Но всё очень сложно. 
rw6cm писал(а):Что касаемо скорости плавности, и т д, все это надо настраивать когда проект завершен.
Вот тут я измучился сегодня изучая ваш проект, так и не понял, как можно ограничить скорость. :-( Если у шагового это делать проще простого, да он и так медленный, то сервы всегда срываются с места. Тут, хоть у джойстика ограничители ставь. А, как я не ввязывался в проект, разве что, у меня опять сервы начинали сходить с ума. Ну что же я такой криворукий?
Ну, вроде особо перифирии не будет. Три реле, дисплея точно не будет. Неужели может скорость упасть? При чём, вроде при понижении напряжения и мощность упадёт, так что не хочется (подключены по отдельной линии). Подскажите лишь, как уменьшить чувствительность или ограничить скорость, тогда будет готово абсолютно! Благодарю. 

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Джойстик и управление моторами

#14

Сообщение rw6cm » 17.09.2016{, 20:39}

denisogloblin писал(а):как уменьшить чувствительность или ограничить скорость,
Если под чувствительностью подразумевается реакция джойстика, то это можно изменить с помощью настройки полигона.
Добавить несколько точек перегиба, делая тем самым работу джойстика не линейной, а нужную для удобного управления.
После добавления точек нужна заново сделать калибровку нуля и крайних положений.
Скорость можно менять разными методами, но в данном случае нам нужно уменьшить скорость только сервов, не трогая шаговый.
Самый простой в данном случае метод, увеличить количество счета на один градус поворота.
т.е. сейчас 1 градус поворота равен одному такту счетчика, сделаем скорость в 4 раза меньше.
Для этого нужно разрешить счетчику считать до 360, но на серв подавать это число деленное на 4 т е те же 90 градусов. )
Но теперь серв повернется на один градус за 4 такта счетчика, что в 4 раза больше по времени.
Вложения
Joystick_Serv1.flp
(324.91 КБ) 81 скачивание
Win10-64, FLProg (portable)

Аватара пользователя
denisogloblin
Рядовой
Сообщения: 37
Зарегистрирован: 17.06.2016{, 21:39}
Репутация: 0

Джойстик и управление моторами

#15

Сообщение denisogloblin » 18.09.2016{, 20:21}

rw6cm, огромное вам спасибо! Особенно за конкретное разъяснение. А то в файле смотрел-смотрел, разобраться не мог полностью. Ага, значит я на верном пути был, как 3D Maxник, я тоже понял, что изменением графика можно изменить чувствительность, но выходили последствия не приятные. Вот о расчете градусов вот как описали, такого бы не додумал сам. Думал, просто ошибка будет, т.к. максимум 180. А оно вот как действует. Ну, здорово. Теперь проект готов, и действует. 
Будем знать, как делать подобные штуки.

igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Джойстик и управление моторами

#16

Сообщение igrik1972 » 11.03.2017{, 20:05}

у меня есть блок , можете попробовать.......
Вложения
djost-FBD-.ubi
(268.13 КБ) 112 скачиваний
Последний раз редактировалось igrik1972 16.03.2017{, 00:08}, всего редактировалось 1 раз.

Ответить

Вернуться в «Дисплеи и индикаторы»