Джойстик и управление моторами
- denisogloblin
- Рядовой
- Сообщения: 37
- Зарегистрирован: 17 июн 2016, 21:39
Джойстик и управление моторами
Искал в разных темах, но много разрозненнойинформации, и целой картины нет. Поэтому, хочется спросить совета, да попросить
поделиться опытом у тех, кто подобное делал.
Собрал агрегат, что-то вроде сервокронштейна: двасерводвигателя положения по осям X и Y. Например, можно ставить сверху Web
камеру. Но меня не удовлетворило то, что у серв ограничение на 180°.
Поэтому установил еще шаговый двигатель, и теперь верх может вращаться на 360° < !
Когда перешел к управлению - кнопки оказались неудобны. От потенциометров, сам не понимаю почему (можете подсказать) сервы
сходят с ума (дёргаются). А когда подключил джойстик - вот это мне понравилось!
Хорошо и в любых направлениях можно вращать. А нажатием на центр - удобно
поворачивать шаговым двигателем. Но вот какая неприятность тут присутствует, и
даже две. Для того, что бы не наматывать бесконечно провод, пришлось сделать
кнопку №2, для вращения шаговым в обратном направлении. А как сделать алгоритм,
например, что бы первое нажатие на джойстик было - поворот по часовой стрелки
(удержание кнопки), а второе нажатие - поворот против. Но это еще ладно, но вот
как устранить проблему возвращение джойстика в положение 0, и когда мотор при
этом тоже переходит в положение 0! Вот этого я совсем не знаю. Понимаю, от чего
так. Но, ведь, например, возможно же придумать алгоритм, где установка
джойстика до положения 0, будет игнорироваться мотором, пока джойстик не
перейдёт в отрицательное значение? Не знаю, ясно ли выразился. Но ведь им
управляют как-то сложными агрегатами??? А мне лишь надо, что бы кронштейн мог
фиксироваться в нужном положении.
Я в этом деле совсем новичок.
Проект приложил, и сделал благодаря этому видео.
[video]http://www.youtube.com/watch?v=8utYVG5YXO0[/video]
Добавлено (10.09.2016, 16:26)
---------------------------------------------
Неужели никто не даст подсказку?
поделиться опытом у тех, кто подобное делал.
Собрал агрегат, что-то вроде сервокронштейна: двасерводвигателя положения по осям X и Y. Например, можно ставить сверху Web
камеру. Но меня не удовлетворило то, что у серв ограничение на 180°.
Поэтому установил еще шаговый двигатель, и теперь верх может вращаться на 360° < !
Когда перешел к управлению - кнопки оказались неудобны. От потенциометров, сам не понимаю почему (можете подсказать) сервы
сходят с ума (дёргаются). А когда подключил джойстик - вот это мне понравилось!
Хорошо и в любых направлениях можно вращать. А нажатием на центр - удобно
поворачивать шаговым двигателем. Но вот какая неприятность тут присутствует, и
даже две. Для того, что бы не наматывать бесконечно провод, пришлось сделать
кнопку №2, для вращения шаговым в обратном направлении. А как сделать алгоритм,
например, что бы первое нажатие на джойстик было - поворот по часовой стрелки
(удержание кнопки), а второе нажатие - поворот против. Но это еще ладно, но вот
как устранить проблему возвращение джойстика в положение 0, и когда мотор при
этом тоже переходит в положение 0! Вот этого я совсем не знаю. Понимаю, от чего
так. Но, ведь, например, возможно же придумать алгоритм, где установка
джойстика до положения 0, будет игнорироваться мотором, пока джойстик не
перейдёт в отрицательное значение? Не знаю, ясно ли выразился. Но ведь им
управляют как-то сложными агрегатами??? А мне лишь надо, что бы кронштейн мог
фиксироваться в нужном положении.
Я в этом деле совсем новичок.
Проект приложил, и сделал благодаря этому видео.
[video]http://www.youtube.com/watch?v=8utYVG5YXO0[/video]
Добавлено (10.09.2016, 16:26)
---------------------------------------------
Неужели никто не даст подсказку?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Джойстик и управление моторами
Что мешает взять на 360*denisogloblin писал(а):Но меня не удовлетворило то, что у серв ограничение на 180°.
ссылка
Для этого нужен датчик положения кронштейна.denisogloblin писал(а):А мне лишь надо, что бы кронштейн могфиксироваться в нужном положении.
Что бы использовать здесь шаговый, нужен датчик точки отсчета шагов.
Последний раз редактировалось rw6cm 10 сен 2016, 20:02, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
- denisogloblin
- Рядовой
- Сообщения: 37
- Зарегистрирован: 17 июн 2016, 21:39
Джойстик и управление моторами
rw6cm, спасибо!
Кажется, на форуме только вы даёте ответы.
Кажется, на форуме только вы даёте ответы.
Вообщем-то ничего. Но их еще ждать, а хочется сделать что-то из того, что уже есть.rw6cm писал(а):Что мешает взять на 360*
Датчики? Что-то простой агрегат обрастает сложностями... Я думал лишь в ПО дело. А как же, разве нельзя скетч сделать, что бы просто управление от джойстика работало несколько иначе? Т.е. из крайнего положения наклона джойстика до нулевого двигатель не реагировал, а начинал вновь откликаться, когда джойстик вновь откланяется из нулевого положения?rw6cm писал(а):Для этого нужен датчик положения кронштейна.Что бы использовать здесь шаговый, нужен датчик точки отсчета шагов.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Джойстик и управление моторами
У шагового двигателя нет определения положения ротора. Определить выполнил он команду или нет, не возможно.denisogloblin писал(а):Датчики? Что-то простой агрегат обрастает сложностями...
По этому нужно что то, что информировало бы контроллер о его действиях.
Иначе определить в каком положении находится сейчас "камера" будет не возможно.
Другой вариант если вам не нужен этот контроль, вы крутите "камеру" смотря в монитор.
В таком случае пойдет любой двигатель с редуктором (можно и шаговый), а чтобы не закручивал кабель достаточно поставить микрик или геркон,
дойдя до которого включался бы реверс двигателя.
Что касаемо джойстика, они есть разные,( микрики, резисторы, и т д), отсюда и решения разные.
Если это резистивный джойстик, то алгоритм должен быть на управление скоростью шагового.denisogloblin писал(а):как устранить проблему возвращение джойстика в положение 0
Т. е. вправо поворот шагового начинается с нулевой скорости, и увеличивается при отклонении джойстика в право,
при возвращении джойстика двигатель остановится.
С ротора потенциометра на минус поставить кондер 0,5 мкФ. Плюс на потенциометр тоже желательно через RC цепочку подать.denisogloblin писал(а):От потенциометров, сам не понимаю почему (можете подсказать) сервысходят с ума (дёргаются).
Последний раз редактировалось rw6cm 13 сен 2016, 07:22, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
- denisogloblin
- Рядовой
- Сообщения: 37
- Зарегистрирован: 17 июн 2016, 21:39
Джойстик и управление моторами
Ну, сам этот агрегат не для уличных условий, а наблюдение за ним будет вживую. Так что точно всё это пока лишнее. Хотя, на будущее задел интересный...rw6cm писал(а):У шагового двигателя нет определения положения ротора. Определить выполнил он команду или нет, не возможно.По этому нужно что то, что информировало бы контроллер о его действиях.
Иначе определить в каком положении находится сейчас "камера" будет не возможно.
Другой вариант если вам не нужен этот контроль, вы крутите "камеру" смотря в монитор.
В таком случае пойдет любой двигатель с редуктором (можно и шаговый), а чтобы не закручивал кабель достаточно поставить микрик или геркон,
дойдя до которого включался бы реверс двигателя.
Джойстик у меня сейчас обычный аналоговый, ну как-бы резисторный, с кнопкой в центре, с 5 контактами (никакой спецификации, номера/серии на нём нет :-( ).
Ну примерно да, этот вариант тоже рассматривается. Однако, джойстик пока у меня управляет серводвигателями. Пока бъюсь над задачей - что бы при возвращении в 0, что бы и моторы не возвращались в 0, а, верно, останавливались.rw6cm писал(а):Если это резистивный джойстик, то алгоритм должен быть на управление скоростью шагового.Т. е. вправо поворот шагового начинается с нулевой скорости, и увеличивается при отклонении джойстика в право,
при возвращении джойстика двигатель остановится.
А шаговый я пока хочу лишь от кнопки вращать. Это вполне меня устраивает. Как сделать так, что бы одно нажатие (и удерживание) было вращение по часовой стрелки, а повторное нажатие (и удерживание) против. Уверен, так можно, но перед программой пасую. :-(
C конденсаторами пока не подружился - вечно нужных значений не хватает - надо прикупить. Но разобрался. Ага, подключил к цепи отдельной от ардуино, и подтягивающие резисторы установил. Теперь потенциометры крутят идеально сервы. Вот так бы сделать от джойстика! Потому что джойстик мне нравится :-)rw6cm писал(а):От потенциометров, сам не понимаю почему (можете подсказать) сервысходят с ума (дёргаются).С ротора потенциометра на минус поставить кондер 0,5 мкФ. Плюс на потенциометр тоже желательно через RC цепочку подать.
Джойстик и управление моторами
denisogloblin , ставь обратно потенциометры. Центральный вывод на сигнал сервы пускай, а левый и правый вывод к плюсу и минусу 5вольт. Если будет работать не в ту сторону, то поменяй +- местами. Мунус как раз уберёт все дёргания сервы, дав плавный ход поворота. Потенциометры хоть фиксируются.
Добавлено (14.09.2016, 01:34)
---------------------------------------------
Если джойстик нравится, возьми пульт от управляемого самолёта или вертолёта, там джойстики фиксированные, правда один джойстик, одна ось.
Добавлено (14.09.2016, 01:38)
---------------------------------------------
Либо этот разбери и убери пружинки. Один косяк может быть, что джойстик под своим весом будет отклоняться, если уже стоит не вертикально. Чтоб этого избежать, придётся придумать как ход джойстика сделать по туже.
Добавлено (14.09.2016, 01:58)
---------------------------------------------
Мысль про серву 360°
1) Разбираешь серву.
2) На последней шестерне стачиваешь ограничитель.
3) Выносишь потенциометр наружу, и выставляешь его в центральное положение.
4) Когда потенциометр управления совпадает по значению с потенциометром сервы, мотор в состоянии покоя.
5) Когда ты начинаешь изменять значение потонциометра управления в ту или иную сторону, то серва начинает крутить двигатель, чтоб сравнять значения. А так как потенциометр сервы вынесен наружу и уже не крутится от двигателя, то последний вращается до бесконечности.
6) Как двигатель повернулся на нужный угол, сразу возвращаем ручку потенциометра управления в то положение где значения обоих потенциометров снова совпадают- двигатель останавливается.
П.С. прогрессивностью отклонения потенциометра управления, можно регулировать скорость вращения, плавность вращения и точность позиционирования этой "модернизированной" сервы))
Добавлено (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 июн 2016, 21:39
Джойстик и управление моторами
Хм. А иначе никак? Я то считал, думал, что программно можно отредактировать сигнал так, что бы джойстиком можно было управлять с замиранием двигателя. Неужели невозможно? Всё равно же мы управляем не на прямую двигателями, а через контроллер Ардуино . Ну, допустим, отклонение от положения Ноль в крайнее положение - читается, а вот от любого положения, до положения 0 - мотор встаёт. Я не разбираюсь может в джойстиках, но наблюдал видео где машины на основе таких движков работают как-то так. Значит можно. Или это особый вид джойстика? Может кто разъяснить?jet-belan писал(а):Если джойстик нравится, возьми пульт от управляемого самолёта или вертолёта, там джойстики фиксированные, правда один джойстик, одна ось.
Либо этот разбери и убери пружинки. Один косяк может быть, что джойстик под своим весом будет отклоняться, если уже стоит не вертикально. Чтоб этого избежать, придётся придумать как ход джойстика сделать по туже.
С потенциометрами я полностью разобрался, спасибо. Агась, надо всё верно подключить.
Ну а сервы за 70 руб, с пластиковым корпусом и пружины, я разбирать не хочу. Почти уверен, что лишь поломаю. Мне нравится идея с использованием двух серв и шагового, так будет очень точное позиционирование, в том числе с любым наклоном.
(Эх, уже чувствую, придётся оставить потенциометры и отказаться от джойстика :-( )
Джойстик и управление моторами
Если оставить джойстик и при егопоступлении в центральное положение нужна остановка поворотной оси, то нужно отказаться от серв, в пользу мотор редукторов с большим передаточным числом, чтоб у них был высокий момент удержания. У сервы обратная связь активная, и она будет возвращаться по положению джойстика
Джойстик и управление моторами
[spoiler=Спойлер][/spoiler]
реализация через H-мост с простыми мотор редукторами.
https://yadi.sk/d/bFO-4ipsvAnRf
Добавлено (14.09.2016, 22:28)
---------------------------------------------
При смещении джойстика вниз или вверх,( влево или вправо) двигатель будет крутиться в ту или иную сторону согласно смещению джойстика. При возвращении джойстика в центральное положение, мотор будет останавливаться))
реализация через H-мост с простыми мотор редукторами.
https://yadi.sk/d/bFO-4ipsvAnRf
Добавлено (14.09.2016, 22:28)
---------------------------------------------
При смещении джойстика вниз или вверх,( влево или вправо) двигатель будет крутиться в ту или иную сторону согласно смещению джойстика. При возвращении джойстика в центральное положение, мотор будет останавливаться))
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Джойстик и управление моторами
Описание внутри проекта.denisogloblin писал(а):Эх, уже чувствую, придётся оставить потенциометры и отказаться от джойстика
Думаю разберетесь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
- denisogloblin
- Рядовой
- Сообщения: 37
- Зарегистрирован: 17 июн 2016, 21:39
Джойстик и управление моторами
jet-belan, за совет спасибо. Но по мне сложно, и пока сам не вижу, что это то, что нужно.
rw6cm, да вы тут просто постоянный мой СПАСИТЕЛЬ! Честь вам и хвала. Думаю, я вам уже обязан и в долгу.
Ого, как всегда всё сложно, что для меня словно китайский язык. Я то сам 5 блоков в программе установил, и думаю, что это гениально! А вот до такого бы я не допёр никогда . Не знаю как этому учиться, да еще и некогда совсем...
Проект замечательный и интересный. Отлично!
Хотя, а почему тут только одна ось джойстика используется?
И еще, здесь возникла проблема. А вообще реально ли уменьшить скорость сервы? Ну очень резко. Долгий отклик, а если на полную нажать, то резко передвигается на 90 гр. А вот шаговый двигатель отлично крутит. В общем, он медленный, но тут это преимущество.
Я то хотел на джойстик 2 сервы и шаговый поставить. Думал шаговый крутить лишь от кнопки, но так лучше. Я думаю, нужно переделать проект так, что бы джойстик по Y управлял сервой Y, Джойсик по Х управлял сервой по X, а после нажатия на кнопку, джойстик бы начал управлять не сервой, а шаговым двигателем. Таким образом, конструкция могла бы быть очень-очень точным манипулятором.
А можно ли уменьшить чувствительность, или это можно как-то сделать механически?
rw6cm, да вы тут просто постоянный мой СПАСИТЕЛЬ! Честь вам и хвала. Думаю, я вам уже обязан и в долгу.
Ого, как всегда всё сложно, что для меня словно китайский язык. Я то сам 5 блоков в программе установил, и думаю, что это гениально! А вот до такого бы я не допёр никогда . Не знаю как этому учиться, да еще и некогда совсем...
Проект замечательный и интересный. Отлично!
Хотя, а почему тут только одна ось джойстика используется?
И еще, здесь возникла проблема. А вообще реально ли уменьшить скорость сервы? Ну очень резко. Долгий отклик, а если на полную нажать, то резко передвигается на 90 гр. А вот шаговый двигатель отлично крутит. В общем, он медленный, но тут это преимущество.
Я то хотел на джойстик 2 сервы и шаговый поставить. Думал шаговый крутить лишь от кнопки, но так лучше. Я думаю, нужно переделать проект так, что бы джойстик по Y управлял сервой Y, Джойсик по Х управлял сервой по X, а после нажатия на кнопку, джойстик бы начал управлять не сервой, а шаговым двигателем. Таким образом, конструкция могла бы быть очень-очень точным манипулятором.
А можно ли уменьшить чувствительность, или это можно как-то сделать механически?
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Джойстик и управление моторами
Что касаемо скорости плавности, и т д, все это надо настраивать когда проект завершен.
Захотите поставить дисплей и будете еще просить увеличить скорость )), так как скорость может зависеть и от периферии.
В остальном, все ваши вопросы реализованы в проекте,
просто надо внимательней разобраться.[spoiler=Спойлер][video]http://www.youtube.com/watch?v=RfEyM8lezNo[/video][/spoiler]
Захотите поставить дисплей и будете еще просить увеличить скорость )), так как скорость может зависеть и от периферии.
В остальном, все ваши вопросы реализованы в проекте,
просто надо внимательней разобраться.[spoiler=Спойлер][video]http://www.youtube.com/watch?v=RfEyM8lezNo[/video][/spoiler]
Последний раз редактировалось rw6cm 17 сен 2016, 01:49, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
- denisogloblin
- Рядовой
- Сообщения: 37
- Зарегистрирован: 17 июн 2016, 21:39
Джойстик и управление моторами
Да, на самом деле, всё просто чудесно! Вчера чуть не всё понял (хотя, как это сделать, я и сегодня не понял )), а сегодня разобрался. Но за видео всё равно спасибо. Тем, кому тоже пригодится, будет сразу ясно. Удобно, что тут можно и углы ограничить, и даже, если надо, еще один двигатель встроить.rw6cm писал(а):В остальном, все ваши вопросы реализованы в проекте,просто надо внимательней разобраться.
Но всё очень сложно.
Вот тут я измучился сегодня изучая ваш проект, так и не понял, как можно ограничить скорость. :-( Если у шагового это делать проще простого, да он и так медленный, то сервы всегда срываются с места. Тут, хоть у джойстика ограничители ставь. А, как я не ввязывался в проект, разве что, у меня опять сервы начинали сходить с ума. Ну что же я такой криворукий?rw6cm писал(а):Что касаемо скорости плавности, и т д, все это надо настраивать когда проект завершен.
Ну, вроде особо перифирии не будет. Три реле, дисплея точно не будет. Неужели может скорость упасть? При чём, вроде при понижении напряжения и мощность упадёт, так что не хочется (подключены по отдельной линии). Подскажите лишь, как уменьшить чувствительность или ограничить скорость, тогда будет готово абсолютно! Благодарю.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Джойстик и управление моторами
Если под чувствительностью подразумевается реакция джойстика, то это можно изменить с помощью настройки полигона.denisogloblin писал(а):как уменьшить чувствительность или ограничить скорость,
Добавить несколько точек перегиба, делая тем самым работу джойстика не линейной, а нужную для удобного управления.
После добавления точек нужна заново сделать калибровку нуля и крайних положений.
Скорость можно менять разными методами, но в данном случае нам нужно уменьшить скорость только сервов, не трогая шаговый.
Самый простой в данном случае метод, увеличить количество счета на один градус поворота.
т.е. сейчас 1 градус поворота равен одному такту счетчика, сделаем скорость в 4 раза меньше.
Для этого нужно разрешить счетчику считать до 360, но на серв подавать это число деленное на 4 т е те же 90 градусов. )
Но теперь серв повернется на один градус за 4 такта счетчика, что в 4 раза больше по времени.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
- denisogloblin
- Рядовой
- Сообщения: 37
- Зарегистрирован: 17 июн 2016, 21:39
Джойстик и управление моторами
rw6cm, огромное вам спасибо! Особенно за конкретное разъяснение. А то в файле смотрел-смотрел, разобраться не мог полностью. Ага, значит я на верном пути был, как 3D Maxник, я тоже понял, что изменением графика можно изменить чувствительность, но выходили последствия не приятные. Вот о расчете градусов вот как описали, такого бы не додумал сам. Думал, просто ошибка будет, т.к. максимум 180. А оно вот как действует. Ну, здорово. Теперь проект готов, и действует.
Будем знать, как делать подобные штуки.
Будем знать, как делать подобные штуки.
Джойстик и управление моторами
у меня есть блок , можете попробовать.......
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось igrik1972 16 мар 2017, 00:08, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя