Мой роборука, которая почти стала моим кошмаром...
Ну, ребят, вы не поверите, что у меня тут произошло на прошлой неделе. Реально, думал, придётся всё бросать. Начал тут новую разработку — такой небольшой манипулятор, чисто для сборки мелких деталей на одном из наших стендов. Задача казалась элементарной, честно. Простенькая кинематика, пара сервоприводов, контроллер на STM32 — ну, стандартный набор гика, короче.
Первые тесты прошли гладко, я уже начал радоваться, типа, вот оно, новое открытие прямо в моей гаражной лаборатории! Но потом началось. Робот начал вести себя странно. Непредсказуемо. То замрет посреди движения, то дернется так, что деталь улетит куда-то под стол. Сначала грешил на ошибки в коде, сам же писал, лол. Пересмотрел весь алгоритм, дебажил часов пять, ничего криминального. Ну, думаю, может, помехи какие? Взял, аккуратно все экранировал, перепаял соединения, принес новый блок питания. Результат — ноль.
А потом, когда я уже почти отчаялся и начал думать, что это какая-то зловещая ирония судьбы, я заметил кое-что. На одной из плат, которую мы использовали для прототипирования, была какая-то микроскопическая трещина. Ее еле видно, если не приглядываться. И вот эта трещина, видимо, при определенных условиях вибрации или температурных колебаний, создавала плавающий контакт. Ну, типа, случайные короткие замыкания или обрывы. Технически, это был просто дефект компонента, но на практике это превращало мой мини-бот в какую-то машину хаоса.
Пришлось полностью пересобирать плату управления на новой, заведомо рабочей. Замена заняла пару часов, но зато теперь все работает как часы. Эти научные исследования иногда такие коварные — вся проблема может быть в пылинке или, как в моём случае, в царапине на текстолите. Так что, если у вас вдруг робот начинает вести себя как персонаж из Сайлент Хилла, проверьте не только софт, но и, мать его, каждую полумиллиметровую трещинку на платах. Имхо, это одно из тех мелких, но важных научных открытий, которые экономят нервы.
- IronMan_RU от
Комментарии 2