![]() 1 / 1 / 0
Регистрация: 15.08.2024
Сообщений: 5
|
|
Помехи на сервоприводы29.03.2025, 00:51. Показов 1881. Ответов 7
Всем здравствуйте.
Собираю робота на arduino, nrf24l01, драйвера мотора bts7960, fpv камеры и сервоприводах(танк с манипулятором). Сервы, когда робот находится не в движении дергаются(но не сильно), но когда я даю газ в пол, то происходит полная жесть: сервы начинают сходить с ума и дергаться почти на весь свой оборот. Дергания доходят до того, что он может просто сломаться(манипулятор) или ардуино потеряет сигнал. Я так понимаю проблема здесь в помехах от моторов, на осциллографе я мерил серву и когда машина в движении, то шим там скачет. Сервы я питаю через понижайки, на каждую из них я поставил конденсатор 1000мкф, но не помогло. Я также пробовал пины серво соединить с землей при помощи резисторов 10кОм. Еще ставил кондеры на моторы, но успеха это тоже не принесло... Кто знает в чем проблема или как ее решить, помогите пожалуйста. Файлы с кодом и схему я прикрепил.
0
|
29.03.2025, 00:51 | |
Ответы с готовыми решениями:
7
Подскажите мощные сервоприводы для передвижения от 50-100 кг Сервоприводы Сервоприводы и светодиоды AVR ATmega 328p |
284 / 60 / 12
Регистрация: 15.05.2019
Сообщений: 293
|
|||||||
29.03.2025, 05:45 | |||||||
И потом, между 120 и 140 (последнее else) там фиксированное значение - тоже может дёргать. И ещё проверьте - когда с пульта сигнала нет...
1
|
![]() 1 / 1 / 0
Регистрация: 15.08.2024
Сообщений: 5
|
|
29.03.2025, 12:53 [ТС] | |
Спасибо большое, сделал то, что вы закомментировали, стало заметно лучше, но проблема полностью не исчезла.
1) Вы также написали что в последнем else фиксированное значение. В этом else идет торможение( то есть если ничего не тронуто то торможу ), а как это можно сделать не фиксированным? 2) По поводу сигнала с пульта(я так понял выключить пульт): дергания остаются
0
|
284 / 60 / 12
Регистрация: 15.05.2019
Сообщений: 293
|
||||||
29.03.2025, 18:41 | ||||||
я имел ввиду что джойстик когда по центру, то должен выдавать возможно 128, но он не может точно всегда выдавать такое значение - колебания всегда есть. А драйвера робота тут же обрабатывают, потому что у Вас всё время опрос в цикле без особой обработки сигнала. Видите у Вас 140 и 120 - а внутри ничего нет - это что-то вроде deadzone, на которую контроллер не реагирует.
Я думаю, что может поможет поставить фильтр чтобы подавал сигнал на моторы, если отклонение не более чем 2-4, то сигналы не меняются, и возможно это предотвратит дёргания.
0
|
![]() 1 / 1 / 0
Регистрация: 15.08.2024
Сообщений: 5
|
||||||
29.03.2025, 19:23 [ТС] | ||||||
Я изменил код(надеюсь что правильно), помехи остались. Роботу конечно стало легче, но когда моторы на полную работают, то его все равно начинает трясти. Но воть с этим кодом при движении назад сначала срабатывает одна гусеница а потом вторая(странное явление). А deadzone я как раз и делал для того, чтобы убрать колебания в стартовом положении джостиков. Но вроде как значения джостика не колеблются. Я постарался кинуть код в c++, но у меня он его не выделяет. Сервы у меня на 270 градусов, но попробую поменять. А у вас нет телеграма?
И может быть такой фильтр стоит на сервы поставить, если такое вообще возможно.
0
|
284 / 60 / 12
Регистрация: 15.05.2019
Сообщений: 293
|
|||||||
30.03.2025, 03:16 | |||||||
****** Пояснения (решил добавить). Улучшения с: - мёртвой зоной (DEADZONE) для джойстика ; - защитой от дрожания (abs(...) > 2) ; (это когда-то в 92м я от дребезга контактов такое придумал на ассемблере для ВМ80, вот теперь и для джойстика понадобилось на Си. ![]() - автостопом, если сигнал не приходит (signalTimeout), - функцией stopMotors(), (это просто в отдельной функции) - защитой сервоприводов (writeClamped), (эта функция помягче). - отдельной функцией lineFollow(). ('nj тоже в отдельной функции) // Если серво до 180°, то перепишите везде так writeClamped(servoFour, map(recieved_data[8], 0, 255, 0, 180), 180); // Если до 270° , то перепишите везде так writeClamped(servoFour, map(recieved_data[8], 0, 255, 0, 270), 270); // вариант что в коде - просто обрезает до 180 writeClamped(servoFour, map(recieved_data[8], 0, 255, 0, 270), 180); ******** Попробуйте вот так:
телеграм есть конечно, но меня там часто нет. ))
0
|
![]() 1 / 1 / 0
Регистрация: 15.08.2024
Сообщений: 5
|
|
30.03.2025, 13:07 [ТС] | |
Попробовал все как вы написали. Моторы только странно реагируют на джостик. Иногда влево и в право не работает и моторы включаются по одному, НО дребезг серв исчез на 99% и это ОЧЕНЬ КРУТО! Сервы у меня должны быть по заверениям китайцев дот 270, но что-то походу пошло не так) Я также вместо A0 A1 поставил 14 15(заменил типо на цифровые и дребезга почти и нет). Ваш алгоритм с 92 года работает до сих пор и это круто. Я бы сам хотел освоить c++, если знаете крутые курсы или что-то похожее, то расскажите) Я вот думаю, а есть ли смысл поставить кондер между пинами серв и земли? Я на ослике мерил и там шим скакал жутко
1
|
284 / 60 / 12
Регистрация: 15.05.2019
Сообщений: 293
|
||||||||||
30.03.2025, 14:22 | ||||||||||
![]() Добавлено через 59 минут ps: Я только что посмотрел в интернете, там действительно ставят диод (в некоторых схемах). Хотя, по идее, на плате драйвера должен был бы быть уже... pps: не перепутайте полярность диода, чтобы выходной транзистор не вылетел.... Добавлено через 8 минут ppps: вспомнил как. ))) Я не мог долго понять (вопрос возник в 88м (хотя годя два до этого нам Фортран преподавали ))) ), и я тогда же, составил первую свою схему управления памятью на двух дешифаратора к155ид3), а ещё через пару лет попала в руки книга, и несколько месяцев изучал эту книгу Самофалова "Микропроцессоры") каким образом программа (написанная) управляет железом, и в результате меня прорвало - - я понял как текст управляет железом... ![]()
0
|
30.03.2025, 14:22 | |
Помогаю со студенческими работами здесь
8
Помехи в бортовой сети при использовании DC-DC для питания GSM модуля Блок питания создает помехи Как избавится от импульсной помехи? Помехи на землю от ADM660 Помехи в кабельном ТВ из-за Wi-Fi роутера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
|
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution
В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
|
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
|
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
|
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
|
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
|
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
|
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
|
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
|
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
|