Category: it

3 метра

Признание

Минутка чесания ЧСВ.

Строил я в прошлом году арабам в Кувейте одну квест комнату — делал в ней всю электронику и управляющее ПО, пробыл там месяц.
Кроме этой комнаты у их компании еще 15(!) комнат. И вот пишет мне на днях один из их главных инженеров:

-Алекс привет! Как дела?
(напрягаюсь, ибо обычно пишут, когда что-то сломалось).
-Привет!
-Мне нужна твоя помощь.
(ну точно что-то сломалось).
-У нас сломался квест, но не тот, что ты делал, а другой [далее следует описание проблемы].

Мдааа, в Москве сто раз такое бывало(у нас тут сломалось что-то, не посмотришь?), но у этих чуваков 16 квестов, куча инженеров, наверное за сотню человек от подрядчиков, которые все это строили, несколько человек чисто технического штатного персонала, а пишут они мне с другого конца земного шара :))

P.S. Проблему не решил, но думаю причину по симптомам назвал правильно. Если коротко: делайте бэкапы — единственная копия софта может и протухнуть. А может быть это вообще закладка в софте от подрядчиков была, тогда бэкапы могут и не помочь.

P.S. 2 Про мой квест уже несколько месяцев ничего не писали =)
promo alex_avr2 july 2, 2018 13:00 41
Buy for 200 tokens
Думаю многие слышали рассказы про огромные бункеры под Москвой, подземные города, секретное метро на случай ядерной войны. Многое в этих рассказах очевидно преувеличено, что-то придумано, но безусловно, основаны они не на пустом месте. Совсем недавно небольшой кусочек этих подземных тайн был…
3 метра

STM8

Вот и освоил для себя серию микроконтроллеров STM8. Ну освоил это, может быть, громко сказано, но научился программировать, разобрался в основах и написал нужную мне прошивку. Вообще STM8 для радиолюбительства и небольших серий устройств мне кажется мало подходит. Главный плюс - цена от 13-15р за микроконтроллер. Но уже за 30р можно взять куда более мощный STM32 и при количествах до сотни особого смысла экономить нет. Исключение - если кому-то очень уж нужно питать МК напрямую 5В или иметь EEPROM на борту.
В моем же случае выбора не было - мне понадобилось переписать прошивку готового китайского модуля. Железо модуля оказалось прекрасным, а вот прошивка немного не подошла. На все про все ушло полтора дня - пол дня на разобраться с программированием STM8, и настроить и запустить необходимую периферию (кварц, CCO, таймер, UART, порты), и день на собственно написание и отлаживание функционала.

После STM32 STM8 кажутся очень уж маленькими, медленными, простенькими. Восьмибитные регистры - прям как в старые добрые времена в AVR-ках, но с куда бОльшим функционалом, меньшей ценой и полноценным однопроводным отладчиком за 200 рублей :)
3 метра

STM32F030 SPI CRC ERRATA

А между тем, только сейчас заметил, что год назад вышла новая версия ERRATA для STM32F030. По сравнению с предыдущей версией выросла в объеме в два раза.

Чуть больше двух лет назад я не один день промучился пытаясь использовать возможность SPI в STM32F030 автоматически вычислять и добавлять CRC при отправке данных. Функция была мне крайне нужна. Объем, частота и скорость пересылки данных были очень высокими, так что даже используя аппаратный модуль вычисления CRC ресурсов МК бы не хватило. Проблема была в том, что функция автоматического добавления CRC к посылкам через SPI во-первых была крайне плохо документирована, во-вторых работала откровенно глючно. Я уж не помню всех подробностей и нюансов, но глюки были откровенные. При этом в интернете было несколько сообщений от людей столкнувшихся с такой же или близкой проблемой, но без внятных решений. Да и видимо этой функцией мало кто пользуется, поэтому информации было совсем мало. Разумеется я проверил ERRATA на серию, но на тот момент там не было ничего про это.

В конце концов, я решил проблему несколько корявым, на первый взгляд способом - я выяснил, что при первой отправке данных, при соблюдении ряда условий CRC всегда вычисляется и передается корректно, а вот при следующих посылках начинаются проблемы. Поэтому я поступил брутально - просто стал сбрасывать модуль SPI перед каждой передачей данных и настраивать заново, благо в регистре RCC есть биты для сброса различных модулей.

RCC->APB2RSTR |= RCC_APB2RSTR_SPI1RST;
RCC->APB2RSTR &= ~RCC_APB2RSTR_SPI1RST;

Думаю этот код можно упростить до двух атомарных операций, но что есть написанное 2+ года назад - то есть :)
Забавно, но этот подход сработал и полностью себя оправдал. Пока вы читали этот пост - где-то на этой планете модуль SPI был сброшен несколько миллионов раз :)

А сейчас я открыл свеженькую ERRAT-у и увидел. что там появились пункты про SPI+CRC аж четыре. Причем навскидку там нет моей проблемы, хотя сейчас разбираться уже лень. Дааа, знатно они с этой частью накосячили, наверное какой-то студент писал код в режиме аврала :)))



P.S. Вот было бы весело товарищам использующим SPL/HAL в случае столкновения с подобными проблемами. Вот все равно бы пришлось лезть и в документацию и в регистры и разбираться и переписывать всю работу со SPI на прямую работу с регистрами без лишних прослоек.
3 метра

Бэкапы

Кому как, а мне вся история с вирусом WannaCry пошла на пользу. Как только услышал о нем - сразу сделал очередной бэкап всех критичных данных, неделю назад. А сегодня уронил основной рабочий ноут (Т420) со стола на пол. Ноут жив, диск, разумеется нет. Редкий случай, когда я порадовался, что на неделе больше тупил, чем работал, иначе бы все пошло насмарку.
Самое смешное, что в ноуте стоял второй диск SSD, купленный еще в прошлом году, как раз с целью перенести на него систему в т.ч. для защиты от таких случаев. Но огромное количество используемого софта и постоянный загруз по работе так и не позволили это сделать. Но теперь придется. И да, пожалуй надо озаботиться автоматизированными бэкапами в надежное место. Самое ценное, я конечно, часто бэкаплю, но есть немало вещей, которые бэкапятся раз в месяц-два вручную, а это уже не очень хорошо. В этот раз сравнительно повезло, что бэкап был недавно. Ну и, конечно, часть не самых критичных данных увы все равно пропала - такие как настройки программ.
3 метра

Изготовление трафаретов для печатных плат на бюджетном плоттере

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



Способов довольно много, перечислю основные вкратце:

1)Вырезать вручную из пленки острым ножом.
2)Изготовить трафарет из металла травлением, используя технологию аналогичную технологии изготовления печатных плат (ЛУТ, фоторезист).
3)Заказать лазерную резку из полиамидной или другой пленки в специализированной или не очень фирме.
4)Заказать лазерную резку из листа нержавеющей стали у нас или в Китае.
5)Знаю прецеденты изготовления трафаретов на специализированном фрезере.

Collapse )
3 метра

Учет электронных компонентов

Неделю назад я искал софтину для учета комплектующих. Вкратце, суть проблемы - я занимаюсь производством электроники и делаю много разных печатных плат (сейчас актуальных более 30 типов). На каждой плате есть компоненты, многие пересекаются, некоторые уникальны, всего сотни две наименований и десятки тысяч единиц в наличии. Разумеется, удержать это все в голове нереально и я периодически сталкиваюсь с ситуацией, что мне срочно нужно сделать какие-то платы, а какой-нибудь компонент внезапно закончился. Раньше я использовал эксель для хранения данных и расчета необходимого количества к закупке. Но экселевская таблица разрослась в итоге до таких размеров, что пользоваться ей стало практически невозможно, кроме того в экселе если и можно, то как-то сложно (и я не горел желанием изучать как) сделать некоторые полезные функции. Ну, например, сказать ему, что я произвел столько-то и столько-то таких и таких плат и автоматически пересчитать все запасы.

После прошлого поста я занялся поиском готового софта, который мог бы решить мою задачу. В целом подобный софт называется ERP (Enterprise Resource Planning, планирование ресурсов предприятия) и кроме, собственно учета склада и производства, включает еще кучу всяких функций.

Я изучил десятки программ и грубо они делятся на три группы:
1)Мелкие софтины, заточенные под конкретные задачи, часто довольно странные и чаще всего очень скудные по функционалу и не гибкие.
2)Средние софтины, часто бесплатные (или условно бесплатные), а также открытые (или условно открытые). Есть весьма навороченные.
3)Огромные монстры для огромных заводов. Стоимость подписки может составлять тысячи долларов в месяц за рабочее место (и думаю это не предел, многие просто не пишут о ценах).
Collapse )

В общем вышло так, как это часто бывает - под конкретную задачу оказалось проще и быстрее написать программу состоящую из 500 строк кода, чем использовать монструозные системы, с кучей подводных камней и сложностей. Да, может быть они во многом сделаны "правильнее", но вот эта правильность иногда уж больно напоминает бюрократию в худших ее проявлениях :)
3 метра

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

Давненько я не писал про расстановщик. Между тем в нем появилось небольшое нововведение. Я уже рассказывал об источнике света для нижней камеры, той, которая смотрит на детальки снизу, чтобы определить их точное положение на сопле. Этот источник света очень важен, т.к. изображение с камеры обрабатывается программой машинного зрения и плохая картинка даст неправильный результат.



Collapse )
3 метра

Orange Pi Lite

Вот прогресс в области одноплатных компьютеров дошел и до меня.

Приехала ко мне недавно вот такая плата:



Называется Orange Pi Lite. Стоит 1000 рублей с доставкой из Китая. На платке есть пара USB портов и WiFi. Поставил на нее линукс. Работает все отлично, более того даже играет Full HD видео, для чего собственно и заказывалась. Хотя на больших битрейтах заметны пропуски кадров, но для моих задач не критично.

Заказать можно тут.
Дистрибутив линукса подготовленный специально для этой платы брал отсюда.

Кроме этой платы производитель выпускает еще несколько более дорогих вариантов - с Ethernet, встроенной флеш памятью, CVBS выходом и т.п. Посмотреть модели и их характеристики можно тут.
3 метра

Про подъемники

Работал я год назад над одним проектом, где нужен был подъемный механизм с такими характеристиками: поднимаемый груз - куб размером примерно 1х1х1 метр, масса около 60 кг, высота подъема около 1 метра. Груз не менялся, поднимать и опускать его надо было примерно за минуту.

Не трудно посчитать, что для совершения подобной работы нужен двигатель мощностью 10Вт, ну с учетом КПД, всяких потерь на трение, запаса и прочего пусть будет 50-100Вт с лихвой. Однако, разработчики пошли своим путем и поставили автомобильную лебедку мощностью около 1500 Вт с тяговым усилием что-то в районе 3-5 тон. Автомобильная лебедка как водится питается от 12В и кушает что-то в районе 130 Ампер, так что под это дело был закуплен еще и огромный черный гроб - блок питания 12В и кажется 80А.

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

Collapse )
3 метра

ThinkPad

Вот, собрал в стопочку во время уборки. Нет, не коллекционирую. Нет, не фанат(если только чуть-чуть). Да, подумываю купить еще один (реально нужен).



X220
600E
T23
600E
T61
T420

Кроме одного все живые. Правда одному нужен IDE диск 2.5"...