Тег ‘паяльный бред’

Интернет вещей, комменты

iot-comments

Поддерживает ли ваша система умного дома непринужденное общение между экономичной лампочкой и унитазом с замашками тролля?

Таймеры здорового человека (не на ардуине)

Если вы еще не видели очередного ардуиносрача на хабре – читать тут:

https://habr.com/post/413779/

Собственно, автора можно показывать студентам-медикам в курсе общей психопатологии как наглядный пример “бреда изобретательства” – но странное впечатление производят поддерживающие его комментаторы. Кажется, что они заперлись в своем маленьком ардуино-мирке и активно не хотят признавать, что их “проблемы” (те же таймеры, например, или многозадачность) решены много лет назад.

Вот, скажем, в комментариях автор с гордостью заявляет – мол,

типовое время задержки в системе составляет 10 мс (но пиковые задержки могут быть значительно больше и не нормируются)

- и более того,

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

Вы примерно представляете себе, что такое 10 мс? Это примерно до хрена, если речь идет о несложной, в общем-то (но абсолютно реальной) задаче типа управления инжекторным двигателем – целый оборот коленвала при 6000 оборотах в минуту. За это время надо:

- открыть форсунки;
- закрыть форсунки (выдержав требуемое время впрыска);
- в нужный (с точностью до десятков микросекунд) момент жахнуть искрой в нужную пару цилиндров;
- прикрыть или приоткрыть регулятор холостого хода;
- сделать еще кучку полезных дел – например, считать показания десятка аналоговых датчиков (ну ладно, в конкретном цикле – можно обойтись и двумя, ДМРВ и ДПДЗ) и пересчитать параметры работы двигателя (время впрыска, опережение зажигания и так далее);

И это не какие-то там нереальные космические нанотехнологии, это в каждом сраном Жигуле стоит и надежно работает (на убогом SAF C509). Не знаю, конечно, как оно сделано в том же Январе или Микасе, а вот исходники MegaSquirtAVR вполне доступны для изучения (после минимальной гуглежки) и там ничего ужасного нет – в общих чертах, кстати говоря, это повторяет материал обсуждаемой лекции (где-то с 1:16:46). В системе поддерживается очередь событий (типа “открыть группу форсунок такую-то”, “закрыть группу форсунок такую-то” и так далее), в нужный момент (скажем, в верхней мертвой точке – она определяется по датчику положения коленвала, или при определенном угле поворота того же коленвала) очередная пачка событий со временами их срабатывания добавляется в очередь. Один из таймеров, “тикающий” с периодом в 4 микросекунды, начинает отсчет до ближайшего события, а при срабатывании прерывания, во-первых, выполняется связанный с событием код (довольно элементарный – “дернуть” одной из ножек микроконтролера), и во-вторых – начинается отсчет времени до следующего события из очереди. Все это работает на AtMega128 – и по отзывам, работает вполне неплохо.

Скажете, не всем надо управлять инжекторными двигателями? Хорошо, расскажу тогда про мой первый проект на микроконтролере – идейно, кстати говоря, очень похожий. Сделан он был, правда, не на AVR, а вовсе на PIC, и представлял собой PPM-кодер для аппаратуры радиоуправления. PPM – или Pulse Position Modulation – это распространенный стандарт, позволяющий “упаковать” сигналы для нескольких (до 8) сервомашинок в одну “посылку” длительностью около 20 мс. Принцип формирования (точнее, декодирования) PPM-сигнала показан на рисунке:

ppm-decode

Декодер, кстати говоря, делается на одной микросхеме CD4017 – схема есть тут (оттуда же я уволок и картинку выше):

http://rconline.ru/modules/smartsection/item.php?itemid=49

Длительность “посылки” составляет 20 мс, пауза между импульсами каждого из каналов – 0,3 мс, а длина каждого из “канальных” импульсов – от 1 до 2 мс (считая вместе с паузой). Для восьмиканальной (максимально доступное количество каналов в PPM-аппаратуре) длина синхроимпульса составит 4 мс. Кстати, теперь понятно, почему сервомашинки управляются таким, на первый взгляд, странным образом?

Так вот, имея “в активе” PIC16F72 с АЦП и прочитанные пару глав из самоучителя Корабельникова (не смейтесь – но 11 лет назад в жанре “введение в микроконтролеры для чайников” выбор был между слегка упоротым Корабельниковым и полностью шизофреническим 123avr) я соорудил вполне приличный кодер для PPM-сигнала, поддерживающий до 8 каналов с 8-битным разрешением (для аппаратуры радиоуправления 8 бит – уже неплохая разрядность, в самой дорогой аппаратуре можно встретить 10-битные АЦП). Опять же, все очень просто – запускаем таймер с частотой 10 МГц (для удобства счета), и радостно пользуемся тем фактом, что один отсчет этого таймера – это в точности 0,1 микросекунды. При срабатывании прерывания таймера – просто загружаем в него либо значение, соответствующее длительности паузы, либо заранее вычисленную длительность “сигнального” импульса. Немного сложнее, чем генерация обычного ШИМ на том же таймере – но принцип примерно тот же.

Про многозадачную операционную систему на PIC рассказывать, наверное, не буду – собственно, под видом “операционной системы” предлагался просто способ организации кода в виде относительно независимых “задач”. Этого в “самоучителе” не было – но найти ее и использовать не представляло особого труда.

При чем здесь ардуино? Наверное, ни при чем – если, конечно, не обращать внимания на огромное количество совершенно поверхностных материалов “для начинающих”. Честное слово, даже упоротый Корабельников, невероятно многословно рассказывающий в своем “самоучителе”, как организовывать задержки с использованием аппаратного таймера и прерываний, намного лучше любого материала “про ардуино”, где то же самое предлагается делать с помощью разнообразных задержек типа delay() (библиотека же Timer1 считается в среде ардуинщиков каким-то “высшим пилотажем”, а заодно и не работает на некоторых платформах).

А где приличные корпуса для всякой электроники искать?

Есть девайс, внутри устроенный примерно так:

shield-lcd

Хочется выпустить небольшую – скажем, из 10-20 устройств “серию”, и хочется подобрать под это дело корпус приличного вида – что-то, например, в таком духе:

alpha-driver-display

Ну или даже таком:

blunik-ii

В общем, хочется нормальный пластиковый корпус размером где-то 85×50x25 мм с окошком для ЖК-индикатора – и вот тут сразу возникает вопрос – а где такие искать? Продукция фирмы Gainta, в изобилии имеющаяся в Чип-и-Дипе, выглядит убого, а заодно требует доработки напильником. Вдобавок, ни в каталоге Чип-и-Дипа, ни в каталоге самой Gainta нет минимально приличного параметрического поиска (последний вообще сегодня сдох). Вот не поверю я, что негде взять приличную “мыльницу” с заранее проделанным отверстием для “стандартного” ЖК-дисплея, типа какого-нибудь Winstar 1602B.

Общественность что-нибудь подскажет?

2018 год

…а люди все еще с удивлением обнаруживают, что внутри ардуины стоит атмега, и что эту атмегу можно программировать на ассемблере:

https://movaxbx.ru/2018/06/05/как-программировать-arduino-на-ассемблере/

TI Store

Посмотрел я цены в московских магазинах на некоторые детальки производства Texas Instruments и стало мне немного печально. Возьмем, к примеру, какой-нибудь модуль с WiFi – да хоть CC3200MOD.

Чип-и-Дип готов привезти под заказ за 3-4 недели и хочет за это 1380 рублей.

Компэл/Терраэлектроника/Электронщик – тут вариантов несколько больше. Например, 1520 рублей за одну штуку и отгрузку на следующий день. Если берете три штуки или согласны подождать две недели – то цена падает до 1300-1350 рублей. Если же вы – человек серьезный и собираетесь использовать эти модули в серийном устройстве – то партия от 15 штук обойдется вам в 700 рублей за штуку.

Примерно такая же картина – и на eFind, розница в Москве хочет 1300-1500 рублей (отдельные барыги задирают цену и до 2000), оптовая цена не опустится ниже 650-700 рублей, как в Терре.

А что же “у них”? Оказывается, в TI Store – магазине на сайте Texas Instruments – есть не только разнообразные отладочные платы, но и множество деталей производства все того же Texas Instruments. CC3200MOD стоит там в розницу (до 10 штук) всего 11,88 $ – по текущему курсу это 738 рублей.

Оптовая цена там опускается до 8-10 долларов – но не забывайте, что оптовую партию надо еще и растаможить, так что разница с Компэлом практически неощутима. Интереснее подход к “рознице”. TI Store осуществляет доставку Fedex-ом, причем стоимость доставки International Economy указана, как 0,0 $ (и это действительно так). Итого, заказав в понедельник для проверки парочку CC3200MOD, я получу их уже в следующий вторник по цене 738 рублей/штука – наверное, недостижимый вариант для московской розницы. Неплохо, да?

Я, конечно, в такую щедрость TI не особо верю – так что в заключение хотел бы спросить – а какие тут скрыты подвохи?

UPD Согласно таможенной декларации, стоимость посылки составляет не 23,76 $, а что-то около 18 $. Соответственно, стоимость доставки – около 6 $. Возможно, у TI какой-то хитрый контракт с Fedex – потому что по калькулятору на федексовском сайте, стоимость одной только доставки из Далласа в Москву переваливает за сотню баксов.

UPD2 Получил свой заказ – и даже не во вторник, как прогнозировал Fedex, а вовсе в понедельник. Итого – могу рекомендовать, вполне подходит для небольших и “разовых” заказов.

Хабр продолжает радовать

ohm-law

Отсюда: https://habr.com/post/412749/.

Ну и заодно – деревенский кружок любителей электроники в исполнении “Яндекса”:

https://habr.com/company/jugru/blog/358378/

Напомню, что тот же самый “Яндекс” недавно искал офигенно крутого электронщика.

Эталонный индус на форуме по электронике

Дилип Кумар Джаякумар пишет (я попытался передать орфографию и пунктуацию оригинала в переводе):

Привет, Мы стартап, создающий IoT-устройства для Умного Дома и Мониторинга Окружающей Среды. У нас нет инженера или со-основателя который знает разработку и или инженерию электроники. У нас только есть идея продукта и мы думаем, что WiFi система-на-чипе TI – это хороший выбор процессора для продукта. Я хотел бы поговорить с экспертом по продукту из TI, чтобы я мог объяснить больше про продукт и идею. Спасибо!

По-моему, таких наглых товарищей не было даже в яцуткинской библиотеке.

А вот еще посмеяться

Я тут в очередной раз откопал стюардессу Intel Edison и случайно наткнулся на статейку на хабре:

https://habr.com/company/intel/blog/260943/

Если коротко – чуваки организовали на этом самом Edison опрос “электрокардиографа” с Bluetooth (электрокардиограф я пишу в кавычках, потому что вряд ли это устройство сертифицировано, как медицинское). Задача практически тривиальная – тем более, они там сами и пишут:

…работать с 6 одновременными потоками ЭКГ с частотой дискретизации 500Гц

Не знаю, какая разрядность у тамошнего АЦП – предположим, что 24 бита, с хорошим запасом (на самом деле в “электрофизиологии” редко нужна разрядность свыше 10 бит, тем более, если речь идет об ЭКГ, но специализированные АЦП для физиологических измерений выпускают с разрядностью до 24 бит). Итого “6 одновременных потоков ЭКГ с частотой дискретизации 500 Гц” превращаются в смешные 72000 бит/с – не так уж и много данных, не правда ли?

Но держитесь крепче – чуваки не зря взяли Intel Edison, весьма неслабый микрокомпьютер с двухядерным Intel Atom, работающим на частоте 500 МГц, 1 Гб оперативной памяти и Linux в качестве операционной системой – ведь обработкой ЭКГ они занялись на node.js, и при таких вводных…

Объем занимаемой памяти процессом редко превышает 100 МБ.

Следующий абзац, пожалуй, стоит привести целиком (орфография и пунктуация оригинала сохранены):

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

Не знаю, конечно, справится ли с “обсчетом” (обычно требуется какая-то фильтрация данных, “классика” здесь – фильтр Баттерворта или что-то подобное) шестиканальной ЭКГ какой-нибудь AVR – но, скажем, на ARM Cortex-M4 (который стоит на порядок дешевле Edison) можно справиться и с на порядок большим объемом данных без каких-либо проблем.

Еще немного про всякую электронику

Китайская бумага для ЛУТ – для тех, кому надоела глянцевая из журналов. Печатать надо на “блестящей” стороне, процесс “переноса” – точно такой же, как обычно (китайцы пишут, что надо использовать ламинатор – но и утюгом получается приемлемо). Главное отличие – легко отделяется, не требуя “оттирания” пальцем (хотя намочить все-таки желательно). Пачка из 10 листов A4 стоит 80 рублей, в моем случае китайцы обсчитались и прислали 20 – но слегка мятых. Возможно, имеет смысл отрезать кусочки и приклеивать их при печати на “подложку” из обычной бумаги.

Пленочные трафареты OSH Stencils – приемлемо, но в целом не очень аккуратно – в паре мест на довольно простом трафарете из серии “AtMega и два резистора” есть дефекты, правда, особо ни на что не влияющие. “Мостики” между площадками с шагом 0,8 мм получились какие-то уж очень тонкие (может, конечно, это косяк моего проекта – но надо записать в блокнотик что-то типа “не забыть проверить припуск маски и трафарета”). Везут из Штатов, самый экономичный вариант – трекающийся до Домодедово (или что там у вас ближе) USPS First Class w/Tracking (и тут наврали!). Минимальный заказ мне обошелся в 8,45 $ (чуть больше 500 рублей) – что, конечно, дешевле Резонита (там аналогичный заказ обошелся бы в 2000 рублей за подготовку производства, что-то около 100 рублей за сам трафарет и 400 рублей доставка – итого 2500 рублей). Стальной трафарет аналогичных размеров у этих товарищей стоил бы около 18 долларов – то есть уже 1100 рублей. В общем, интересно для всякой мелочевки, не критичной ко времени.

Узкоспециальный вопрос про автоэлектронику

А вот как в 2018 году кошерно запитывать всякие автомобильные приблуды на микроконтролерах? Мне знакомы два варианта.

Первый, быдлячий: использовать линейный стабилизатор напряжения наподобие 78L05 или КР142ЕН5А, что примерно одно и то же. Достоинства – дешево и крайне тупо, недостатков же куда больше. При потреблении хотя бы в 0,1 А линейный стабилизатор должен рассеивать 0,9 Вт – то есть работать практически в режиме печки. Не очень ясно поведение “кренки” и при характерных “автомобильных” особенностях входного напряжения. Успокаивать себя словами “вон в терратрипе стоит и ничего” не получается – видели бы вы тот терратрип :)

Вариант второй – заморочиться и вкорячить импульсный преобразователь. Их выпускается довольно много, и при желании они позволяют вписаться в довольно скромные габариты (скажем, LM53601 вполне официально занимает всего лишь 11,2×12,7 мм со всей обвязкой – правда, и стоит в Москве от 441 рубля в розницу). Более дешевый и распространенный вариант – MC34063A (10-30 рублей в зависимости от объема партии), к сожалению, требующая гораздо более габаритной обвязки. Это сложно назвать проблемой – но когда размеры устройства определяются блоком питания, возникает ощущение, что что-то здесь не так.

Короче говоря – а подскажите какой-нибудь DC/DC преобразователь со следующими параметрами:

- входное напряжение 8-24 В (можно более широкий диапазон);
- выходное напряжение 3,3 В;
- выходной ток 500 мА;
- цена с минимально необходимой обвязкой в пределах 100 рублей в московской рознице;
- габариты “готового” БП по возможности меньше.

Ну или объясните убедительно, что можно не выпендриваться и ставить те же “кренки”.

UPD Во всяких Январях и прочих Микасах никто не стесняется ставить обычные линейные стабилизаторы – так и буду поступать в не особо потребляющих устройствах.

А это – извращение?

Раз уж последние записи у меня – про connected car и тому подобную ерунду – то вспомнился такой вот эпизод. Я как-то признался, что пробовал писать параметры от электронного блока управления двигателя в файл формата EDF, который обычно используется для всякого рода измерений в биологии и медицине. Нет, ну никто же не запрещает в поле Patient’s name написать GAZ-3111? В остальном же формат прекрасно подходит для 8- и 16-битных данных от ЭБУ (их туда можно писать вообще почти без обработки). Меня, правда, за это назвали извращенцем – ну что ж, бывает.

А вот недавно приспичило мне поискать первоисточник фразы о том, что команда McLaren “в течение одной гонки получает около 750 миллионов цифр от своего гоночного болида”. Взята она, как оказалось, из русского перевода выступления исполнительного директора фирмы McLaren Electronics Питера ван Манена на TED и целиком звучит так:

We’re logging about 500 different parameters within the data systems, about 13,000 health parameters and events to say when things are not working the way they should do, and we’re sending that data back to the garage using telemetry at a rate of two to four megabits per second. So during a two-hour race, each car will be sending 750 million numbers.

Замечу, что переводчики здесь накосячили, переведя numbers, как “цифры”. Речь, скорее всего, идет о 32- или 16-битных числах, получаемых от датчиков.

Меня, как известного извращенца (см. выше) заинтересовала содержательная часть выступления ван Манена – где он рассказывает, что цинично пытаясь казаться хорошими McLaren Electronics установила систему, похожую на формульную телеметрию, в детской больнице Бирмингема, сумела намерить что-то хорошее, и в целом даже кому-то помогла.

Так вот – что является бОльшим извращением – использовать для записи параметров “автомобильной” телеметрии формат, изначально предназначенный для записи физиологических параметров, или использовать для регистрации физиологических параметров автомобильную систему телеметрии?

Забавное про “полупроводниковую” экономику

Делаю сейчас одно устройство, в котором используется так называемая K-линия – немного напоминающий UART автомобильный диагностический интерфейс (он же ISO 9141). Преобразователей из K-линии в UART и подобные интерфейсы (тот же RS232) придумано довольно много, мне лично нравится вариант на логической микросхеме. Из обвязки нужно всего лишь два резистора, диод и транзистор, а стоимость деталей в чип-и-диповской рознице – менее 50 рублей (особенно, если не гнаться за какими-нибудь низковольтными вариантами логики), а “оптом” – думаю, упадет рублей до 10-15.

Для состоятельных парней выпускаются специализированные микросхемы – всякие MC33199, MC33290, L9637, или более актуальная (то есть еще встречающаяся в продаже) Si9243 – внутри там примерно то же самое, только в корпусе SOIC-8. В розницу эта микросхема стоит около 70 рублей, оптовая цена опускается до 40.

А теперь следите за руками – специализированная микросхема оказывается выгоднее, если к стоимости компонентов добавить стоимость монтажа. В случае с решением “на логике” мы имеем 22 точки пайки, а на специализированной микросхеме – всего 8. Стоимость ручного (точнее, “полуавтоматического”) монтажа – что-то порядка 2-3 рублей за точку пайки – и 14 “лишних” точек съедят всю экономию.

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

PS А заодно можно сделать вывод, что “узкоспециализированная” микросхема более выгодна и для производителя, чем “универсальная” стандартная логика – себестоимость их производства одинакова, а вот продать первую можно значительно дороже.

Вопрос возник

Православно ли использовать ладан вместо канифоли при пайке?

Ну и покороче

А то в предыдущей записи слишком многа букв :)

Столкнулся с небольшим багом в примерах к микроконтролеру CC3200 (ARM Cortex-M4 + WiFi). Если в многозадачной системе поменять настройки WiFi (они пишутся в подключенную к микроконтролеру флешку), а затем перезапустить сопроцессор WiFi (для применения новых настроек) способом, указанным во всех примерах, можно получить полностью неработоспособный WiFi – настройки не успевают записаться (ну вот так мне показалось – особо в подробности не вдавался). Решение очевидное – небольшая пауза при перезапуске. Я озвучил его на форуме техподдержки коллеге по несчастью 26 апреля в 1:25 PM по форумному времени – а ровно через три с половиной часа сотрудник техподдержки предложил то же самое в соседней теме.

Закон парных случаев?

Схема вместо картинок

Кажется, в детской практически книжке Борисова переход от картинок к условным обозначениям радиодеталей происходил где-то на десятой странице, непосредственно после решения вопроса “где достать детали для детекторного приемника”. Тем более удивительным мне представляется, что на популярных сайтах “про Ардуино” вместо простой и практически очевидной принципиальной схемы оперируют вот такими красивыми картинками с одним лишь недостатком – понять, что же здесь изображено, весьма затруднительно.

fritzing-breadboard

Эксперты, где вы?

Выложили фотографии остатков американских “Томагавков”. В мятых железках я не особо понимаю, а вот что касается электроники – интересно, куда делись многочисленные эксперты, которые ставили диагноз по фотографиям “черного ящика” Су-24?

tomahawk-parts-1

tomahawk-parts-2

Пайка в печке

Хочу поделиться впечатлениями от сборки и использования контролера печки для пайки оплавлением по мотивам описанного Олегом Артамоновым – собственно, это будет большой и развернутый комментарий к статье по ссылке:

http://olegart.ru/wordpress/reflow-soldering/

Собственно, такой девайс понадобился мне для сборки относительно “серийных” изделий – но что значит “серийных”? Скажем, “серые коробочки” для любительского и ретро-ралли разошлись уже тиражом в несколько десятков штук – правда, в процессе проектирования находится более продвинутый вариант. Пайка вручную даже пяти AtMega, пусть даже в “человеческом” корпусе с шагом выводов 0,8 мм – занятие малоинтересное по определению. В общем, запаивая к новому сезону очередную “партию” коробочек, я задумался – а нельзя ли как-то упростить это дело?

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

В принципе, вариантов переделки электродуховки в печку для пайки довольно много, но иностранцы почему-то не склонны к экономии в такого рода проектах. Например, зачем-то они используют твердотельные реле – да, это стильно, модно и молодежно, но одновременно – довольно дорого (раза в два дороже “дискретных” тиристора и оптопары). Зачастую используют готовые контролеры типа Controleo – да, с ним вся переделка печки сводится к правильному подключению проводов, но сам контролер стоит совершенно неприличных денег (да, силовой части в нем нет, придется городить несколько твердотельных реле и блок питания, а это дополнительные расходы). Короче говоря, контролер за авторством Олега Артамонова показался мне более приближенным к российским реалиям – с легкодоставаемыми компонентами (все есть в Чип-и-Дипе и Терраэлектронике) и в целом доступный для повторения.

Сама электродуховка “для опытов” досталась мне бесплатно, будучи вытащенной из лежащего на балконе хлама. Подходящие дешевые печки стоят “в магазине” что-то около 2000-3000 рублей, б/у можно найти либо в собственном хламовнике (бесплатно), либо на каком-нибудь авито (недорого).

Плату устройства я немного переделал – во-первых, заменил SMD-шные резисторы и конденсаторы на выводные (просто их у меня много, да и паять вручную кучу SMD совсем неинтересно), во-вторых, сделал ее односторонней с несколькими перемычками на верхнем слое – для изготовления по “лазерно-утюговой” технологии (кстати, переход с SMD на выводные детали это дело значительно упрощает). Заодно выкинул “лишнее” – например, USB-порт и реле. Избавившись от USB, можно было бы попробовать и заменить микроконтролер на более дешевый – как выясняется, прошивка с ампутированным обменом по USB прекрасно влезет и в AtMega8, но я понадеялся, что получится использовать готовую прошивку без доработок. Забегая вперед, скажу – они понадобились, в первую очередь из-за того, что в выкидывании всякого ненужного барахла я немного поторопился и избавился от термодатчика TMP37.

Заодно я поменял габариты платы, рассчитывая вписать ее в корпус Gainta G767 (я придерживаюсь той точки зрения, что проектируя печатную плату – надо сразу задуматься, в какой корпус ее поставить) – но с этим облажался по-крупному. Конечно, надо было сначала купить этот корпус и промерить его “по месту” – но я понадеялся на чертеж и лоханулся с размерами. Вот какое там расстояние между крепежными отверстиями для платы? Я подумал, что в чертеже ошибка – но нет, кто-то додумался указать расстояние именно между этими двумя точками. Интересно, каким инструментом его можно замерить? Добавлю еще, что вычислить расстояние между крепежными отверстиями возможно лишь в том случае, если известны диаметры стоек.

Еще из моей лажи – я не сразу заметил, что несмотря на то, что дисплеи Winstar WH1602A (самый дешевый в продаже) и WH1602J (а этот использован в схеме) имеют очень похожие разъемы, назначение выводов в этих разъемах совсем разное – и после того, как я просто припаял дисплей к плате на “гребенке” и долго выяснял, почему он не работает, мне все равно пришлось сидеть и долго запаивать проводочки :)

Довольно важный вопрос, почему-то обойденный стороной в описании на сайте Олега – калибровка датчика температуры. Судя по всему, в ранних прошивках она была жестко зашита в контролер – а в выложенной на сайте версии прошивки появилась возможность немного варьировать параметры. К сожалению, описания этого процесса либо нет, либо оно погибло вместе с сайтом fclab.ru – так что кратенько прокомментирую, что нужно сделать. Используемая в устройстве термопара типа K (как в мультиметрах) имеет практически линейную характеристику в интересующем нас диапазоне от +25 до +250 °С – поэтому в EEPROM микроконтролера прошиваются два 16-битных числа, первое из которых для термопары равно 31 (расчет этого коэффициента можно увидеть в файле thcouple.c в исходниках прошивки) – и без особой необходимости менять его не надо. Второе число задает сдвиг шкалы – в единицах, равных 1/4 °С. Например, значение -100 увеличит показания температуры на 25 °C, а 100 – напротив, уменьшит их на ту же величину. Так как я выкинул термодатчик, показания которого принимались за температуру холодного спая термопары, пришлось записать в эту ячейку памяти -100 – приняв “комнатную температуру” за 25 °C. Конечно, можно было бы сделать и лучше – но, как показала практика, и так нормально. Показания прибора, когда термопара засунута в чайник с кипящей водой – около 96-97 °С, что можно считать более-менее приемлемым. Так как я выкинул дополнительный термодатчик, пришлось все-таки поставить WinAVR и добавить в прошивку обнуление показаний канала АЦП, к которому тот был подключен – иначе “градусник” начинал безбожно врать.

Да, еще один волнующий многих вопрос по поводу прошивки – какие использовать значения fuse. В принципе, все написано и в тексте – но чтобы не вдумываться в фразы типа “в конфигурации отключены DIV8, JTAGEN и HWBEN” – приведу здесь значения, которые мне подсказал “AVR fuses calculator” – L=0xDE, H=0xDD, E=0xCF.

Больше, наверное, никаких проблем и не возникло – ну разве что внезапно выяснилось, что в Москве проблематично недорого купить термопару – имеющаяся у меня термопара от мультиметра в металлическом корпусе оказалась довольно инерционной в показаниях, а провод явно пованивал при нагреве до 250 °C. Да, в некоторых магазинах (Промэлектроника, например) термопары типа K можно купить рублей за 100 – но только не в том случае, если такое желание внезапно возникло в пятницу в конце рабочего дня. В общем, проще и дешевле всего оказалось купить в Юлмарте самый дешманский мультиметр модели 838 (кстати, сравнив его со своим десятилетней давности Mastech 830, я просто офигел, насколько деградировали дешманские мультиметры). Заодно мне достались два разъема-”банана” – термопару я подключил проводками к клеммной колодке.

С учетом покупки мультиметра бюджет проекта составил примерно те самые 3000 рублей, которые жаба не позволила тратить на “подготовку производства” в Резоните – и надо сказать, что я в целом остался доволен – даже нанося паяльную пасту (я взял на пробу Multicore CR36) вручную из шприца (медицинского, с обрезанной толстой иглой), удалось добиться вполне приемлемого количества брака (прежде всего слипшихся ножек на микросхемах с малым шагом – это исправляется с помощью паяльника и “оплетки для выпайки”). Но главное – это скорость монтажа, нанести пасту, расставить детали и сунуть несколько плат в печку получается намного быстрее, чем в случае, когда все надо запаивать вручную. Надо бы попробовать нанести паяльную пасту через трафарет – я, конечно, попробовал вырезать какое-то подобие трафарета из прозрачной пленки, но ножом это делать неудобно, и те же ножки микроконтролера я объединил в одну широкую прорезь – замыканий получается меньше, чем при ручном нанесении, но все равно они иногда случаются.

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

А что случилось с Чип-и-Дипом?

Смотрю цены на разные микроконтролеры – и неожиданно ЧиД оказывается одним из наиболее выгодных вариантов.

Atmega8A – 75 рублей в розницу в ЧиДе, и 74,51 – оптом в Терраэлектронике или Электронщике (я так понимаю, что он ищет, в частности, и в Терре) (UPD Терра=Компэл=Электронщик).

STM32F103RBT6 – 190 в розницу в ЧиД, и 212 – в Терре (правда, начиная от 40 штук – Терра выгоднее).

LPC1768FBD100.551 – 350 в ЧиД – и опять же, Терра может что-то противопоставить только при партии от 40 штук.

Кто-то в лесу сдох?

Reflow soldering

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

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

Internet of Cunts

Решил я на днях погуглить про чипы CC2541 – благо парочка модулей на них с, простите, алиэкспресса досталась мне совершенно бесплатно. Кроме того, надо было прикинуть возможность реализации прошлогоднего “кошмара техинспекции” – так что я искал реально “вглубь”, настолько, что даже наткнулся на вот такое объявление на Freelansim:

Мы французская компания, специализирующаяся в разработке IOT дивайсов.
На данный момент мы разработали нашу прошивку сами. Эта прошивка в рабочем состоянии и уже используется в серийной продукции.
Однако теперь нам нужно очистить код, и добавить новые функции. Для этого мы ищем талантливого разработчика с опытом работы с IAR 8051 и встроенным программированием.

https://freelansim.ru/tasks/194715

Слово perifit в нике автора объявления легко выводит на страничку “французской компании” – она так и называется, Perifit, и делает вагинальные тренажеры с Bluetooth.

perifit

Сокращая соответствующие мышцы, можно играть в нехитрые игры на смартфоне, пока устройство не накроется пиздой – в прямом и переносном смысле.