Jump to content

    

Eddy_Em

Участник
  • Content Count

    1484
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Eddy_Em

  • Rank
    Проприетарщина must die!
  • Birthday 11/25/1980

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

6974 profile views
  1. Да уж, неправильные вы МК выбрали: дороговато…
  2. Вы что, реально по 1400р за штучку эту дрянь покупали?.. Зачем барыг кормить-то? Берите уж тогда в "чип-дипе"... Там хоть свои барыги.
  3. Можно взять двигатель с двухсторонним валом и на задний вал надеть трехсотрублевый оптический энкодер 200 штрихов на оборот. И контролировать вращение вала не считая шаги, а считая отсчеты энкодера. Таким образом легко будет определить, что двигатель уперся. Кстати, многие современные драйверы ШД умеют "самостоятельно" определять заклинивание вала по анализу потребляемого тока. Посмотрите в сторону тринамиковских. Правда, цена там, конечно, не стольник... А вообще, в некоторых железяках мне, бывало, приходилось без концевика гонять двигатель до упора с явно большим, чем нужно, числом шагов. Это приводило в конце-концов к проблемам с механикой (то что-нибудь раскрутится от вибрации, то "съестся").
  4. А можно ссылочку, а то сейчас проблематично найти нефейковые, да еще и чтобы продавец тебя не кинул (часто последнее время дают левый трек и жди, как дурак, пока "защита" истечет, чтобы доказать, что продавец - мошенник).
  5. Для чего-нибудь совсем мелкого можно ch55x использовать. Но у них большая проблема с размером оперативки: мало что можно развернуть на 1кБ. Да еще и ядро 8051 восьмибитное… Вот мне для своих поделок на 2-3 года с лихвой запасов хватит, но если шабашку захочу сделать — уже придется искать, где докупить STM32F072 или F103 (но первые мне значительно больше нравятся, особенно тем, что у них в 48-ногом корпусе хватает выходов, чтобы одновременно тремя шаговиками с обратной связью управлять, у других не найти разведенных трех таймеров в режиме энкодера + еще трех в режиме PWM OUT)…
  6. Я бы эту гадость не брал: там в основе ардуина. Лучше самому сделать на вменяемом МК. Ну, или если так хочется таки атмель использовать, то хотя бы на подходящем по ресурсам. И с обратной связью. Ни в коем случае нельзя делать управление ЧПУ без обратной связи по положению валов двигателей.
  7. Что-то вроде AS5048. Точно не припомню, какую конкретно модель решили на пробу купить, надо коллегу спрашивать — он закупками занимается. Лично я считаю, что бесконечный цикл с конечными автоматами (и прерываниями по необходимости) — единственный вменяемый способ разработки на микроконтроллерах. Если кому-то вдруг этого мало и нужна операционка, то пусть уже берет Cortex-A, ставит туда линукс и развлекается уже в линуксе! Все очень просто: ставим на вал двигателя энкодер (в идеале — чтобы было столько же отсчетов на оборот, сколько делает ШД шагов). Генерируем ШИМ, а для счета шагов используем другой таймер, к которому подключен энкодер. Периодически проверяем, что у нас там с изменением положения (например, в прерывании третьего таймера). Если за определенный промежуток времени энкодер не сдвинулся в нужном направлении, определяем ситуацию как STALL и пытаемся соскочить на меньшей скорости. Если не выходит за N подходов — останавливаемся и устанавливаем состояние в ERROR_STALL. "Замкнутый цикл" — очень удобная штука для управления шаговиками в ситуациях, когда крайне важно знать, где он сейчас находится и не пропускает ли он шаги. На 3D-принтерах и ЧПУ-фрезерах вообще нельзя по-другому!!! Кстати, STM32F072 о 48 ногах имеет достаточное количество таймеров, чтобы обслуживать одновременно 3 шаговика в режиме "замкнутый цикл". И еще таймеры на другие нужды останутся. И CAN есть, чтобы уйму драйверов на одну шину навешать и не париться с самопальным протоколом по RS-485.
  8. У китайцев большая проблема с чтением документации: на модулях с A4988 и DRV8825 они неправильно припаяли микросхемы (для рассеивания тепла есть пятак на брюхе чипа, т.е. радиатор надо ставить с противоположной стороны платы). Ставить радиатор на чип сверху смысла нет, это как через 2мм стеклотекстолита пытаться тепло отвести! Что до TMC2130 — классная вещь и стоит своих денег! Ведь можно ими по SPI управлять: рамп задавать и т.п. Ну или стандартный STEP/DIR использовать. Зато этот почти не греется. Мы с коллегой посмотрели, сколько китайцы дерут за CAN-драйвер ШД с магнитным энкодером (от 6000р и выше), при том, что себестоимость выходит тысячи в полторы-две рублей, и я решил разработать аналогичную вещь на основе STM32F042, TMC2130 и 14-битном холловском датчике. Даже с нынешними нереально задранными ценами на STM32, получится значительно дешевле, чем готовое брать!
  9. Ну и чушь! Это ж как, интересно, в линуксе получить "жесткий детерминизм", если он вообще не ртось ни разу? И не надо про кубы тут расписывать: с STM32 элементарно можно работать без всякой дряни. Другое дело, что, как правильно заметил Сергей, сейчас проблемы с поставками МК (в результате цены загнули в 6..10 раз: если год назад я брал STM32F072CBT6 по 60-70 рублей за штучку, то сейчас за них 400-500 просят!).
  10. Рекомендую попробовать, например, STM32F072: у него достаточно таймеров, чтобы одновременно работать с тремя шаговыми двигателями (три таймера на генерирование сигналов STEP и три таймера на прием данных от инкрементальных энкодеров). Сам собираюсь управление одной штукой на этом МК сделать. Другой недорогой вариант — STM32F303, но там уже кортекс-М4 со всеми вытекающими…
  11. Я категорически против ртосей. Я считаю, что если нет MMU, то и ртось никакая не поможет. Дешевле (в плане разработки и траты ресурсов МК) самому навелосипедить конечные автоматы. А если есть MMU, так ставим туда линукс и не паримся. Без понятия, что такое mqtt и azure, мне это не нужно и никогда не понадобится. P.S. Погуглил. Все с вами ясно.
  12. Не нужен никакой жоквайрь! Со стороны клиента это будет всего-то полторы страницы кода на жабоскрипте. А со стороны сервера все равно выдумывать, как запросы обрабатывать. Я когда-то свою собственную библиотечку использовал на компе для обработки веб-запросов, сейчас решил использовать libonion (классная библиотечка, много времени экономит, но немного сыроватая - нужно допиливать). Но с компом, как я уже говорил, проще: там линукс, там все легко. Можно хоть на баше сервер для локалки забульбенить (у меня так два 0.5-метровых телескопа сейчас работают, ожидают, пока руки дойдут; а еще данные с одной all-sky камеры обрабатываются, архивируются и выставляются в веб при помощи баш-скрипта).
  13. А я вот даже для управляемой розетки беру "апельсинку-0" за 1000 рублей, к ней приколпачиваю по USB плату на STM32F0х2, а уж эта плата занимается включением/отключением релюшек и симисторов с контролем силы тока и прочими плюшками. В данном случае "апельсинка" нужна лишь потому, что я не могу сделать имплементацию sshd на микроконтроллере. По ssh из скриптов запускаю команды, релюшка их выполняет. Еще могу обратиться курлом, неткатом или из браузера на определенный порт и увидеть статистику в удобном виде параметр=значение.
  14. А что, есть варианты без этой гадости? Как? Я бы попробовал на STM32F407. Но с другой стороны, у меня на железяках во внутренней сети может быть с десяток одновременных коннектов, поэтому чтобы не насиловать микроконтроллер, я использую "апельсинку" в качестве сервера (зачастую даже и без nginx, свой самопальный демон все нужное делает), а с МК связываюсь по USB. Вообще, идеальным была бы комбинация возможностей МК и линукса: эдакий комбинированный процессор кортекс-а, у которого была бы вся периферия кортексов-м. И с ней можно было бы работать вменяемым образом (а не через sysfs или /dev/kmem). А то получается, что дорогущий одноплатник за тысячу рублей у меня играет роль тупого посредника между ethernet и МК.
  15. Так руками написать html/css/js будет намного быстрей и надежней. Тем более для кортексов-м. Правда, я бы таки не парился и поставил хотя бы "малинку-0" для веба. Под линуксом веб-морду делать на nginx'е намного приятней, чем мучиться с жирным тормозящим lwIP на микроконтроллерах (особенно весело там поллинг устраивать, когда нет MMU и malloc/free невозможно использовать - остается лишь заранее задать фиксированное максимальное количество подключений).