LINUX.ORG.RU

Сообщения Vit

 

Нужна упрощенная модель ИК-нагрева печатной платы (пайка)

Форум — Science & Engineering

Есть такой ИК нагреватель, который светит вверх. Над ним на расстоянии 1-2 см стоит плата, которую надо прожарить по термопрофилю. Плата за пределы нагревателя не свисает, сквозняков нет и т.п. При этом хочется иметь 2 режима работы:

1. Тру, по термопаре, которая прижимается сверху платы. Из минусов - надо к каждой плате датчик монстырить. Ну там штатив с телескопической штангой - это все размеры и лишние трудности.

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

Собственно, есть 2 вопроса:

1. Можно ли как-то «просто» описать модель подобной системы? Ну типа что лампа - это черный ящик с транспортной задержкой и фиксированной скоростью потери энергии... (это только для примера, возможно вариант совсем нерабочий)

Не обязательно в аналитическом виде. По табличкам тоже сойдет, если их можно заполнить на ходу во время калибровки.

2. Какие есть практические способы «откалибровать» нижнюю термопару по верхней? Чтобы потом достаточно точно проигрывать термопрофиль.

 , инфракрасный нагреватель

Vit
()

Как точно можно управлять нагревателем через zero-cross симистор?

Форум — Science & Engineering

Есть нагревательная кассета их кварцевых трубок, которой хочется изображать термопрофиль пайки. Соответственно, управлять этой байдой хочется максимально просто (симистором со встроенным zero-cross детектором). Но при этом чтобы не пролетало мимо уставок больше чем на 3-5 градусов.

Фазовое управление городить не хочется - больше деталей, помех, и вообще слегка гиморнее.

Кто-нибудь может объяснить, реально ли с низкочастотным PWM-управлением добиться желаемой точности? Если делать в лоб, и ставить период ШИМ-а 1 секунду, то получается и точность задания уставки фиговая, и проскок большой. Надо как-то уменьшать период, и делать чтобы наполнение менялось постоянно, но не могу сообразить как правильно.

По исходным требованиям/данным цифры примерно такие:

- до 150С греем со скоростью 2С/сек, потом ждем сколько надо
- до 230С греем со скоростью 4С/сек, потом сколько надо ждем, и охлаждаем либо самоходом либо с пропеллером

Параметры нагревателей примерно такие:

- керамический понтовый и дорогой elshtеin разогревается ~ 1-2 минуты
- кассета из кварцевых трубок - точно не знаю, наверное 15-30сек
- датчики К-термопары, считаем что инерции нет и точность достаточная

Ну или если решение сложное - просто дайте ссылки, где можно почитать как современные нагревалки делают. Хоть на нейронках, если там возможна быстрая и автоматическая калибровка.

 нагреватель

Vit
()

Если в схеме обесточить половину, цифровые выходы могут погореть?

Форум — Linux-hardware

Тут немного дурацкая ситуация. Есть esp32 и TFT LCD. Оба в рабочем режиме запитываются от 5 вольт (TSP-05), и на обоих стоят независимые стабилизаторы 3.3v. Это уже готовые девайсы, которые подпиливать не хочется. С нуля бы я конечно делал немного иначе.

Но есть еще режим программирования, когда через USB питается только esp32. При этом на его выходах будет болтаться обесточенный дисплей. Это может стать проблемой или не заморачиваться?

 

Vit
()

Нужна модель изменения сопротивления для коллекторника переменного тока

Форум — Science & Engineering

https://github.com/speedcontrols/ac_sc_grinder/tree/master/doc#motors-resista...

Делаем регулятор с бездатчиковой стабилизацией оборотов. Пока для коллекторников переменного тока (бормашинки, дрелики и т.п. без магнитиков). Обнаружился довольно мутный эффект - у мотора реально меняется активное сопротивление, в зависимости от оборотов и нагрузки. Именно активное, я не ошибся.

А поскольку от сопротивления мотора зависит вычисляемая скорость на низких оборотах, начинаются всякие нехорошие эффекты. В итоге в ПИ-регуляторе приходится расслаблять коэффициенты. Когда пытались на глаз сделать коррекцию сопротивления (почти от балды), то интегральный коэффициент уменьшился в разы. Хотелось бы подвести под это дело научную базу. Я конечно могу с умным видом потрындеть про искры в щетках, но нарисовать формулы и расписать алгоритм калибровки это не помогает.

Кто-нибудь разбирался с подобным эффектом?

 моторы,

Vit
()

Апргейд SSD в макбуке

Форум — Linux-hardware

У меня старый макбук (кажется mid 2014), и захотелось дешево и сердито проапгрейдить SSD. Это значит, взять карточку M2 и воткнуть ее через переходник. Может, кому пригодится, там не все гладко.

1. В любом случае, стоит сначала проапгрейдить макось, чтобы всосалась новая фирмварь. Там драйверы NVME. По той же причине, старую планку лучше сохранить. И на всякий случай сделать загрузочный USB.

2. В старые макбуки (до 2015) советуют ставить NGFF. Чтобы не было проблем с засыпанием. В любом случае, такое нашел только у KingSpec, и планка не заработала ни с одним из переходников. В один из них она нормально вообще не втыкалась - конденсатор мешал на обратной стороне платы.

3. Нормально заработал Kingston A1000 (NVME). Он не самый быстрый, зато жрет не очень много. Не гонитесь за понтовыми самсунгами.

4. Переходники бывают разной толщины. Места мало, надо тонкий. У меня взлетел вот такой.

5. Длина [переходник + Kingston] получилась чуть больше чем надо. Родным винтом не поджать, и шляпа наезжает на чип. Я взял другой винт, но можно наверное поджать скотчем на основе пенки, отрезав нужный кусок.

------------

6. Убунту ставил на весь диск, предварительно убедившись, что можно поставить макось с USB. Стандартно не работает вафля, причем если ставить с USB-стика, а не с CD-ROM, то ручками устанавливать драйвер гиморно - зависимости не цепляются. Нужен интернет. Подходящего WiFi-свистка у меня не было. К счастью, обнаружилось, что инет можно раздать с андроида через Bluetooth. Причем поскольку мобилка тянет инет с вафли, платный мобильный траффик не расходуется. Bluetooth поднимается на раз через менюшку, ставить ничего не надо.

Вроде все, нищебродский апдгрейд удался. По деньгам - 100$ за SSD 500Gb, и копеечные переходники. Ну еще я вроде как попал на кривой KingSpec, но обогатился знаниями :). С засыпаниями макоси не разбирался - не надо было. Но на моделях 2015+ пишут что вроде ок. На предыдущих можно подхимичить с режимами сна, тоже не особо вникал что как.

 ,

Vit
()

Посоветуйте алгоритм детектора автоколебаний

Форум — Development

Хочется попробовать настраивать ПИ-регулятор, крутя коэффициенты до возникновения автоколебаний. Способ один из стандартных, все ок.

Вопрос - а как эти автоколебания детектить программно? Желательно дешево и сердито.

Пока в голову пришло только посчитать дисперсию (~ шумы) на выходе без регулятора, а потом включить регулятор и если дисперсия заметно выше - значит пошел возбуд.

 

Vit
()

Как бы покрасивее заменить отсутствующие генераторы?

Форум — Development

https://github.com/speedcontrols/ac_sc_grinder/blob/master/src/calibrator.h

Как можно покрасивее записать бизнес-логику? В процессе калибровки надо проделать линейную последовательность действий. Местами иногда бывают циклы, но без фанатизма. Снаружи это все дергается через метод ".tick()", а дальше «крутись как хочешь».

Не нравится мне как выглядит код. Ни когда это был единый switch, ни после разбивки на мелкие функции. Суть простого алгоритма тонет в особенностях реализации. Что можно придумать, чтобы улучшить читаемость?

PS. Тащить ради этого RTOS как-то не хочется.

 , ,

Vit
()

Как «размазать» поиск медианы?

Форум — Development

Нужно считать медиану на последовательности отсчетов длиной 8...128.

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

Как это проделать наиболее эффективным образом (с минимумом обращений к памяти)? Можно сделать 2 массива (с нижней половиной и верхней половиной значений). Тогда добавление 2 новых элементов в худшем случае будет ~ 1/2 линейного скана (когда оба элемента попадают в одну половину).

Что-то еще можно придумать? Все для Cortex-m0/m3, где обращение к памяти - 5 тактов.

 median filter

Vit
()

Какие бы прописать заголовки кеширования для скриптов?

Форум — Web-development

На http://fontello.com/ после апгрейдов юзерам иногда начинают валиться ошибки, которые лечатся по ctrl+F5. Хоть и не до конца понятно почему, но в кеше что-то-как-то неудачно застревает.

Я бы мог конечно насувать всяких no-cache, но не уверен что это самая удачная идея. Какие вообще есть варианты, если контент страницы генерится скриптом?

В принципе есть мысль добавить eTag и втыкать must-revalidate. Это самое удачное решение или есть лучше? Стримов нет, так что возможность влепить etag есть всегда.

 

Vit
()

Где взять рыбу договора с иностранным клиентом?

Форум — Talks

Надо корректно оформить получение валюты. С минимумом бумаг. За продажу рекламы. Многобукф про ответственность сторон и разрешение споров не надо - типа, «факт платежа означает что работы выполнены должным образом и договор закрыт». Судиться и предъявлять претензии точно никто не будет, бумажки только ради того чтобы на месте все провести.

Можно где-нибудь взять рыбу, желательно на английском, чтобы «заказчик» просто подписал и прислал фотку? Вроде на русском надо только для разрешения споров а их не будет. Напрягать вторую сторону с русским текстом и бегать с нотариально заверенными переводами не хочу.

PS. В валютном отделе банка говорят, что их подобный подход в принципе устраивает, просят прислать макет для окончательной проверки.

PPS. Если готовой рыбы нет, может кто сделает за мзду малую?

 договоры

Vit
()

stm32, нужна нормальная библиотека эмуляции EEPROM через FLASH

Форум — Linux-hardware

Есть App note 2954, в котором довольно понятно все расписано. Проблема в том, что нет готовой библиотеки, которую можно просто подключить и пользоваться. Обычно везде захардкожены хедеры, причем там что переменные нельзя перекрыть - вместо подключения библиотеки надо ручками копировать код и править файлы.

Из наиболее правдоподобного нашел это:

1. https://github.com/jeelabs/embello/blob/master/lib/driver/romvars.h

- Симпатично сделано, но нужен низкоуровневый драйвер FLASH (похоже что от ардуины, а у меня просто HAL)
- Нельзя уменьшить размер потребляемой памяти (она всегда выделяется под максимально возможное количество переменныx)

2. https://github.com/offchooffcho/STM32-1/tree/master/lib/EEPROMEmulation_AN

Тут код лежит в общей солянке, надо выдирать.

Еще непонятно, как сделать чтобы не хардкодить адрес свободного флеша на хвосте, а определять автоматически.

==============

Как-то утомляет ситуация с эмбедами. Вроде даже библиотеки кто-то пишет, но как копнешь - все через одно место...

Может кто знает или делал нормально оформленную библиотеку которую можно воткнуть в platformio как зависимость и не уродоваться с копированием/правкой исходников?

PS. Ну или может кто возьмется сделать нормально...

 , ,

Vit
()

stm32f103c8t6 - 220v на АЦП через делитель прокатит?

Форум — Linux-hardware

https://easyeda.com/speed/AC-speed-control-for-grinder

Нужно мерять положительный кусок синусоиды. Ну зафигачен делитель 301:1. И что-то у меня по мере отладки возникли сомнения насчет номиналов - не будет ли великовато входное сопротивление.

По мануалу у АЦП на входе должно быть 0.5-50K для 1/4LSB 12bit. Верхнее плечо делителя < 100K делать вообще нельзя (греться будет). Это получается что без буферного усилителя вообще никак что-ли?

На всякий случай, напоминаю вопрос: можно ли 220v втулить на stm32c103 через простой делитель и мерять хотя бы 10бит? Если совсем нельзя - чего-б такое придумать из говна и палок...

 ,

Vit
()

Посоветуте оптимальный алгоритм поиска медианы

Форум — Development

есть stm32 c ацп, к которому хочется привернуть фильтр шума. Обычно советуют медианный.

Ну ок, допустим мне надо искать медиану для 5-9 отсчетов (uint16_t). Как это сделать наиболее быстрым образом? В идеале - просто ссылка на годную библиотеку, ну и какие-то бенчмарки минимальные, желательно для ARM Cortex M0-M3.

PS Вики и stackoverflow в общих чертах смотрел.

 , median,

Vit
()

Как правильно ждать прерываний в idle-цикле?

Форум — Development

Есть прошивка для эмбедов, в которой все работает по прерываниям. Чтобы процессор меньше жрал, хочется в конце main() воткнуть что-то подобное:

while(1) {
  __WFI();
}

Но вроде в мануалах еще пишут про всякие DSB и т.п. для корректного завершения записи в память. А в линуксовом ядре навороты для совсем сложных случаев, которые сходу понять проблемматично.

Есть ли какой-то относительно простой и стандартный способ сделать бесконечный цикл ожидания прерываний, для ARM-одноядерников? Запутался уже.

 , , ,

Vit
()

Куда пропадает static const массив?

Форум — Linux-hardware

https://github.com/speedcontrols/ac_sc_grinder/blob/4cc29e5b15530b104045d4c02...

Есть проесть под stm32 в platformio. Объявляю массив констант. Все собирается. При этом в выхлопе размер PROGMEM/DATA не меняется никак. Размер .bin/.elf тоже. Ради эксперимента пробовал сильно увеличить размер массива - изменений нет.

Что я делаю не так?

Массив юзается, вроде оптимизатор его выкидывать не должен.

 , ,

Vit
()

Чем спаять k-термопару, чтобы без сварного шарика?

Форум — Linux-hardware

Хочется мерять температуру платы, которую жарит паяльная станция. Народ много чего перепробовал, но в итоге пришел к выводу, что надо выбирать самые мелкие и самые легкие термопары.

Моя гениальная идея заключается в том, чтобы взять самый голимый датчик от мультиметра, откусить шарик, сделать скрутку и пропаять тугоплавким припоем. Вроде есть припои на 450-550C (я в них не очень разбираюсь), должны хорошо подойти для нашего случая.

Собсная, вопросов два:

- Какой выбрать припой? Желательно поширпотребнее, типа «электрод для TIG-сварки алюминия».
- Чего еще надо иметь и уметь, чтобы успешно паять газовой горелкой/турбозажигалкой дома на коленке?

 термопара

Vit
()

Зачем в RTD три провода, если длина всего 30см?

Форум — Linux-hardware

https://ru.aliexpress.com/item/Three-wire-precision-platinum-resistance-tempe...

Есть RTD-датчики. Под них бывают 3/4-проводное включение, чтобы компенсировать сопротивление проводов. Вопрос - нахрена компенсация при маленькой длине провода (см фотачки по ссылке)? Это ж не 100 метров. На глаз ошибка меньше 0.1С должна быть.

Мне надо мерять температуру термостола, диапазон 100-300 градусов, точность 1-2 градуса (лучше точно не надо). Есть мысль взять PT1000, и просто как плечо делителя влепить на вход АЦП у stm32. Без всяких навернутых MAX31865, и даже без усилителя. Шоп дешево и сердито. Прокатит?

 rtd,

Vit
()

Зачем нужны SnPb припои c 2% серебра?

Форум — Linux-hardware

Расскажите, вот есть ПОС-61 (я о составе) с миллионом мелких вариаций и всякими примочками в виде флюсов.

А зачем в подобный (по составу) припой добавляют 2% серебра? Просто интересно. На температуру оно не влияет, механических и электрических свойств вроде радикально менять не должно. В чем смысл?

PS. Интересуюсь в разрезе пайки плат. Лудить кастрюли и чугунные унитазы не надо.

 

Vit
()

Как к регулировке оборотов привернуть ограничение мощности?

Форум — Development

Допустим, надо регулировать обороты двигателя. Мы их вычисляем через BackEMF, или с тахогенератора если повезет. Короче, мерять параметры умеем. Дальше смотрим ошибку, подаем ее на ПИД и все зашибись.

Теперь хочется добавить еще одно условие - ограничить максимальную потребляемую мощности двигателя. Ну, чтобы если в нее уперлись, то обороты не росли (или даже сбрасывались). Двойной ПИД делать категорически не хочется.

Это можно реализовать на одном ПИД-е или задача не имеет внятного аналитического решения? Например, какой-то сумматор «оборотов с ваттами» слепить, на входе ПИД-а. У меня не получается формулу микшера нарисовать, чтобы ограничитель ваттов был «главнее», но перескок обратно на обороты происходил гладко, без рывка.

 

Vit
()

Помогите дописать фирмварь esp8266 конфигурилки девайсов

Форум — Job

https://github.com/speedcontrols/wifi-configurator

По мотивам предыдущей темы. Хочется сделать девайс, который позволит легко конфигурировать всякие устройства с мобилки и сильно разгрузить написание прошивок. То есть, вместо того чтобы городить систему менюшек, просто описываем ее в формате JSON-форм и делаем очень простой строковый протокол а ля модем. Дальше подключаем по UART платку Wemos D1 mini, она выставляет наружу точку доступа и «делает все зашибись».

Уже сделана вся вебня, эмуляторы для вебдева, рыба прошивки с captive portal и раздачей вебни, мануалы и т.п.

Надо доделать на C:

- Перегнать дефолтный синхронный сервер на асинхронный.
- Привернуть software uart и сделать проброс команд (строк) из вебни и обратно + блокировки от одновременного запуска.

В принципе немного, но я не очень люблю C и не горю желанием в него погружаться. Я конечно в итоге осилю, если не будет выхода, но предпочел бы отдать на сторону. Т.к. опенсорсы, то надо делать качественно, не просрамить и всё такое.

Все детали есть в репе, старался делать понятно и подробно документировал.

Кто хочет поучаствовать - пишите на vitaly@rcdesign.ru и чего хотите.

 

Vit
()

RSS подписка на новые темы