Panther-tank
- Войдите на сайт для отправки комментариев
Добрый день. Подарил сыну гусеничную машинку на arduino uno. Собрали, научились заливать скетчи. Ультрозвуковые датчики, как голову, поварачивает сервомашинка, которая в один момент сломалась. Заказал аналогичные, но вот незадача, если при управлении через блютуз со смартфона вручную поворачивать этой сервой (на смартфоне ползунок) то вправо до 0 градусов поворачивает без проблем, а влево, если сразу указать 180 градусов, не реагирует. Отрабатывает поворот если указывать 176 градусов максимум. Соответственно в режиме автоматического определения препятствий крутит головой от прямо (99 гр) до право (0гр), влево не поворачивает.
Вопрос, как ограничить пределы работы сервы от 5 до 175 градусов, чтобы не до конца поворачивала, но поворачивала. Спасибо за помощь.
Ну так научились же скетчи заливать - пора учиться их менять. Ей же ардуина крутит ?
Моих навыков найти место, где задать углы сервы в скетчах не хватило.
Вот здесь скетч и библиотеки https://github.com/keywish/keywish-panther-tank/tree/Panther-tank-V5.0/Lesson/PantherTank_AllFunction
Сам код скетча https://github.com/keywish/keywish-panther-tank/blob/Panther-tank-V5.0/Lesson/PantherTank_AllFunction/PantherTank_AllFunction.ino
Подскажите плз куда капнуть
У Вас, как всегда, два варианта:
1. Учиться, начиная с мигания светодиодом.
2. Заказать работу за деньги в разделе "Ищу исполнителя".
Собственно, во всех разделах кроме "Ищу исполнителя", "Проекты" и "Отвлеченные темы" принято помогать только тем, кто хочет научиться.
Существует, конечно, вероятность получить от кого-то код на халяву, но на форуме это осуждается.
Lembios, Есть же множество красивых, интересных радиоуправляемых игрушек, которыми можно просто сразу играть без всякого программирования. Зачем покупать машинки на ардуинах, если не изучать программирование? Я только бегло глянул скетч. Он вполне понятно, читабельно написан. Имена переменных, функций осмысленные. Никаких проблем, чтобы найти где именно запрограммирована реакция танка на команды с блютуз и конкретно на команды поворота сервы. Ничего "подозрительного" я там не увидел, должно крутиться! (Но повторюсь, глядел не сильно вникая.) Велика вероятность, что Вы что-то не так собрали/подключили, проверяйте!
У меня есть подозрение, что я, возможно, не ту сервомашинку купил. Купил самые дешёвые, рассчитанные на движение в 180 градусов. Видел на али, рассчитанные на 360, может в них проблема?
Разбираться в коде учусь, но ткните носом где именно можно ограничить углы поворота.
Пересобрал сломанную серву из шестиренок новой. Поворот головы стал работать корректно. Значит проблема именно в моделях сервоприводов. Продолжаем развивать с сыном тему и собираем руку-манипулятор. Сервы на руке ведут себя также, как и голова, при выславлении 180гр, не крутит, 177 - крутит норм. Я понимаю, что покупка других серво на 360гр может и решат эти проблемы, но вопрос остаётся открытым, как ограничить углы работы сервоприводов, чтобы и обычные 180 гр работали корректно в пределах своей работоспособности.
Не кидайте плз тапками.
Строго говоря, у серв нет ни 177, ни 180, а есть только длительность управляющего импульса. А пересчет из указываемого Вами угла в требуемую серве ширину импульса осуществляет библиотека.
Так вот, в библиотеке надо настраивать константы под конкретную серву.
Могу ошибаться (отказ от ответственности).
Первый параметр в SetServoDegree - номер контакта подключения сервы. Второй параметр - угол на который надо повернуть. Анализируйте при получении по блютус второй параметр, и ограничте его значение для тех серв, где это надо.
Если проблема еще актуальна.Было тоже самое, поменял в параметрах 1000000 на 1050000 и поворот на 180 градусов заработал
void Emakefun_Servo::setServoPulse(double pulse) {
double pulselength;
pulselength = 1050000; // 1,000,000 us per second
pulselength /= 50; // 50 Hz