Сделал : равномерно махать лазерной указкой по стене. В итоге машет совсем неравномерно

У меня в картонной коробке собран прототип приборчика на беспаячной макетке. В том числе аналоговая клавиатурка и дисплей для менюшки. Изредка “зависает” в меню: ходит по пунктам, но не выбирает. Потом чудесным образом само чинится без перезапуска. Я эти глюки даже отлаживать не начинаю, пока не перенесу основу в пайку и корпус. А была бы такая шикарная тема…

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

Видимо мне повезло, видео смотрится.
Пока не будет переделана сборка до состояния “движется только то что должно” с нормальной фиксацией проводов между подвижной и неподвижной частью вопросы стабильности и равномерности преждевременны. Мне что-то вспомнился ролик со стиралкой с кирпичами в баке…

1 лайк

Как вы яхту назовёте, так она и поплывёт…

При помощи отладочной выдачи. Ни с того ни с сего ВДРУГ посреди исполнения скетча запускается setup(). Сетап паркует серву в крайнем левом положении, потому она и прерывает работу внезапно.

Скажите, это что - неправильная ардуина?

Если залит выложенный скетч - чушь! У вас либо отваливается “сигнал” либо не тот скетч на видео.

либо проваливается питание…

Было подключено к компьютеру. Переподключил к павербанку другим кабелем - проблема осталась. Попробую поменять ардуину.

схемы нет, дальше пустой разговор.

1 лайк

Питание → перезапуск → пауза 0.5-1.5 сек, а там(у ТС) всё быстро.

Отцепите от сервы провода лазера. Разместите серву механически на другой платформе отдельной от ардуинки. По возможности подключите амперметр в цепь питания.

Ещё раз говорю, увеличьте задержки после servo.write(), скажем до 3000мс. Может у вас “серва” тормознутая…

Если речь о sg90 то:
Спецификация:
Происхождение: материковый Китай
Состояние: Новое
Напряжение питания: 4,2-6 В
SG90 9G сервопривод 450 модель вертолета с фиксированным крылом, стандартный сервопривод контроля 90
Технические характеристики: 180 градусов; 360 градусов (опционально)
Параметры продукта:
Название продукта: маленький сервопривод 9G
Крутящий момент продукта: 1,6 кг/см (48 В)

Скорость реакции: 0,3SC/60 ГРАДУСОВ

Рабочее напряжение: 4,2-6 В
Рабочая температура: 0-55 градусов
Преполоса действия: 10 США
Носитель передачи: пластик
Режим работы: аналоговый
Размер продукта: 333012 мм/1,291,180,47 дюйма
Особенности продукта:
Обычный микродвигатель, тяговая сила поступает только стандартной версии сервопривода 9G, в настоящее время является очень хорошими экономическими характеристиками сервопривода!
Из-за уменьшенной тяговой силы производитель рекомендует использовать его только для небольших моделей электрических самолетов, а не для более крупных самолетов и электрических вертолетов.
180 градусов влево и вправо 90 градусов, вращение на 360 градусов не перестанет!

https://aliexpress.ru/item/1005005929037037.html?sku_id=12000034890725134&spm=a2g2w.productlist.search_results.0.5f092b04atOeFW

Это же элементарно проверить: достаточно измерить время выполнения команды.

Setup запускается после перезагрузки - похоже, у Вас проблемы с питанием. Нужно питать серву от отдельного источника (не от Ардуины).

Это я попробовал, конечно. Не лечит.

Попробовал, не лечит

P.S. Я перепаял устройство, как-то доработал скетч - проблема осталась. Возможно, где-то что-то я закоротил - завтра буду проверять; если не поможет, попробую поменять ардуину

Во-от , хорошо. Значит дело не в “асинхронности”)). Питание серво и ардуино правильно будет разделить. Или , как минимум, поставить конденсатор ~470мкф на 16+ вольт, как можно ближе к контактам 5V и GND платы ардуино (соблюдая полярность)

Конденсатор может не помочь … если плата ардуино собрана нормально там стоит стабилизатор у которого потолок 800 ма
SG90 в моменте новый может потреблять до от 500 до 700-750 ма … в итоге ардуина рессетиться.(кстати на видео заметно что ей иногда не хватает тяги просто дергание ..Да и плата так дергается , что усб вполне может просаживаться) , а если серва подуставшая , то потребление еще больше , и плата если аналог китай там иногда вместо 1117 ставят 78l05 у него вообще ток 100-200 ма … так что серво по любому надо питать от отдельного источника … И зафиксируйте плату жестко , чтобы только провода болтались!!!

Правда?
Вы всерьез считаете, что стабилизаторы Uno и Nano обеспечивают одинаковый ток нагрузки?

Все что нужно знать. Подключите к нормальному БП на 5В - отдельный провод питания на вывод 5В ардуины и отдельный провод питания на серву. У вас когда серва стартует питание уходит в защиту.

В сущности - так и есть, write() не ждёт окончания поворота. Однако, это не баг и не влияет на работу при правильном использовании.