Давненько я не писал обзоры, вот решил поделиться информацией как я сделал автоматику для своей пивоварни. Так же в этом обзоре расскажу об изготовлении печатных плат с помощью китайского фоторезиста.
Для чего же мне понадобилась автоматика?
Автоматика нужна для облегчения процесса
затирания солода, т.к. этот контроллер сам будет следить за температурой, поддерживать ее и поднимать до необходимой температурной паузы. Так же сигнализировать звуковым сигналом о необходимом вмешательстве, например, нужно засыпать солод или сделать йодную пробу.
Делать я свою автоматику решил из готового проект
ArdBir. Работает она на arduino, к нему подключается датчик температуры, два реле, дисплей и кнопки. Первое реле управляет ТЭНом, второе реле насосом. Насос для затирания очень удобен, т.к. отпадает необходимость за весь процесс затирания перемешивать затор (подробнее как варить пиво, рекомендую прочитать в моих ранних
обзорах)
Первую автоматику я собрал с помощью модулей:
— Arduino mini
— Блок из двух реле на 15А
— Дисплей 2004
— Температурный датчик
— 4 кнопки
— БП на 5 вольт
Удобство модульной сборки, только состоит в том, что достать все детали не составит труда и паять практически ничего не нужно. Но самый большой минус — это огромное количество проводов, а дешевое китайское реле создавало помехи на дисплее, по этому механическое реле пришлось заменить твердотельным.
Со временем я пришел к выводу, что надо собрать свою автоматику на чипе с 64кб памяти (у arduino mini всего 32 кб) на одной плате. Готового решения я не нашел, по этому сам стал создавать схему и в последующем плату для своей поделки.
Схема:
Схему разработал и рисовал так сказать на коленке и для себя, по этому возможны кое-какие недочеты, но схема полностью рабочая:
Плата:
Схему нарисовал, далее осталось нарисовать плату, сначала рисовал с помощью программы
Sprint-Layout 6, очень удобная, но маловато в ней функционал, по этому решил от нее уйти в сторону программы
DipTrace и вот что у меня получилось:
Скачать исходники можно
тут.
Как видно свою пивоварню я назвал QRBeer и это уже версия 0.5…
Плата готова, осталось ее как-то изготовить. Для этого я решил использовать
фоторезист. Почему именно им, а не ЛУТ? Просто решил испробовать для себя такую новую технологию, ЛУТ я уже испробовал, так сказать пощупал, не скажу, что мне она понравилась…
Фоторезист:
Для изготовления печатных плат с помощью фоторезиста понадобится:
— Пленка для принтера
—
Фоторезист пленочный
— УФ лампа
— Сода кальцинированная
УФ лампа
Для начала поделюсь информацией как я делал свою
УФ лампу. Сначала хотел использовать готовую лампу, а потом решил собрать ее на шести 3Вт светодиодах:
Светодиоды и
БП куплены так же на тао:
Светодиоды приклеил на радиатор
термоклеем, хотя можно было их собрать на текстолите, сомневаюсь, что они перегрелись бы.
Вот что у меня получилось:
Изготовление платы
1. Итак, шаблон я подготовил, осталось его только распечатать на пленке. Как я писал выше нужна пленка для принтера, я испробовал пленку как для лазерного принтера, так и для струйного, лучший вариант получается только на пленке для струйной печати. Печатать нужно в негативе и в зеркальном отражении:
Шаблон я сразу заламинировал, что бы отпечатки пальцев и мусор легко можно был смыть.
2. Далее нужно зашкурить нашу будущую плату (фальгированный стеклотекстолит). Для этого подойдет слегка смоченная обычная губка или меламиновая губка:
3. После этой процедуры, медь ещё нужно обезжирить ацетоном:
Как видно на моем фото обезжиривал я обычной салфеткой, а ацетон я перелил в бутылочку от перекиси, так удобнее брать…
4. Следующим шагом нужно обрезать фоторезист под свою будущую плату слегка с запасом и аккуратно снять верхнюю защитную пленку, что бы не повредить его. Если фоторезист отечественный, отклеивать нужно матовую сторону, если китайский, то тут разницы нет…
5. Далее наклеиваем фоторезист на текстолит, что бы под фоторезистом не появились воздушные пузыри, иначе в таких местах дорожки не проявятся, обрезаем лишнее…
Процесс наклеивания фоторезиста напоминает наклеивание защитной пленки на телефон.
6. Когда фоторезист наклеен, текстолит с ним нужно пропусить через ламинатор 2-3 раза или воспользоваться теплым утюгом и проглаживать через лист бумаги сложенным в два раза:
Главное фоторезист не перегреть, а то получится вот так:
Если при наклеивании фоторезиста получился «косяк», то лучше его убрать (смыть или соскоблить) и заново наклеить, а то после травления платы будет печально… Я же убирать этот фоторезист не буду, покажу конечный результат.
7. Накладываем на текстолит с фоторезистом шаблон и прижимаем стеклом (я взял его от старой фоторамки), а на стекло устанавливаем груз:
8. Засвечиваем фоторезист с помощью УФ лампы. Моей лампы хватает примерно 2 минуты:
Как видно фоторезист который засветился поменял цвет со светло-синего до темно-синего, причем засвеченный фоторезист очень хрупкий.
9. Убираем стекло и шаблон. Лишний фоторезист можно (не обязательно) обрезать и аккуратно отделить пинцетом:
10. Следующим шагом следует щелочью смыть непроявившийся фоторезист, для этого берем 2 стакана воды и столовую ложку кальцинированной соды, хорошенько размешиваем. Отклеиваем верхнюю защитную пленку у фоторезиста и опускаем в щелочной раствор наш текстолит.
11. Берем кисточку и трем по фоторезисту в щелочи, постепенно непроявленный фоторезист смывается:
Щелочь можно не выливать, а оставить на следующую плату или для смывания фоторезиста после травления, но об этом чуть позже…
12. Травление платы:
Тут два способа доступнее всего: травление хлорным железом или перекисью+лимонная кислота и соль. Про хлорное железо писать не буду, а вот с помощью перекиси пожалуй опишу:
— 100 мл. перекиси водорода 3% — продается она в аптеке за 7-12 рублей
— 30 гр. лимонной кислоты (есть в любом продуктовом магазине)
— 1 ст. ложка соли (подойдет как мелкая так и каменная)
Все это смешивается в емкости и погружается туда плата с готовым фоторезистом, через некоторое время на плате появляются пузыри:
А через некоторое время «голая медь» полностью протравится:
Кстати, если травить в более высокой температуре, например у лампы накаливания или в водяной ванне, то тремя травления уменьшится, главное не переусердствовать, иначе лишнее протравится…
13. Убирать фоторезист удобнее всего в этой же щелочи, в которой смывали непротравленный фоторезист, минут через 20 он сам отпадет и ничего тереть не надо…
А вот и мои «косяки»:
Хоть и не значительные, но все же, а во всем виновата невнимательность, не заметил пузырьки воздуха под фоторезистом или перегрел…
Следующая плата у меня получилась «чистая»:
14. Далее сверлим отверстия и лудим плату:
15. Припаиваем все детали и отмываем от лишнего флюса:
Припаивал SMD компоненты китайской инфракрасной паяльной станцией, очень удобно:
Вот и все, самое сложное позади, осталось прозвонить дорожки на предмет короткого замыкания и приступить к программирования чипа.
Программирование atmega644
1. Для начала программирования нужно загрузить в него bootloader. Делается это не сложно с помощью Arduino UNO, но для начала нужно скачать и установить программу
Arduino.
2. Следующим шагом в установленную программу добавить
Sanguino или взять сразу готовую сборку:
Arduino+Sanguino
3. Заливаем на UNO скетч ArduinoISP:
4. И подключаем к UNO нашу плату:
В соответствии инструкции скетча:
// pin name
// slave reset: 10:
// MOSI: 11:
// MISO: 12:
// SCK: 13:
Получается по моей схеме так:
5. Далее устанавливаем в настройках нашу плату и загружаем bootloader:
Если все удачно прошло, то увидим сообщение: «Запись загрузчика завершена»
На этом загрузка bootloader'a завершена, можно подключать дисплей, кнопки, датчик температуры и заливать
скетч автоматики.
Корпус еще не сделал, но все работает:
Почти все детали покупал на тао:
—
Atmega644 — 7.5元
—
Радиатор — 8元
—
SMD кнопки — 0.1元
—
Кнопки — 0.5元/шт.
—
Оптрон MOC3023 — 0.6元/шт.
—
Семистор BTA16-600C — 0.8元/шт.
—
Семистор BTA41-800B — 4元/шт.
—
Пищалка — 0.43元/шт.
—
Дисплей 2004 — 16.3元/шт.
—
Датчик температуры DS18b20 — 5.79元/шт.
Выводы
По автоматике:
Работает отлично, без нареканий и в любой момент можно добавить нужные модули, например, wifi, что бы управлять автоматикой и снимать логи варки через комп или смартфон…
Китайские детали:
Стоят минимум в 2 раза дешевле, чем в ближайшем магазине, качество не хуже…
Фоторезист:
Знакомство понравилось, в следующий раз буду пробовать фоторезист пастой (уже заказал), который исключит попадание воздуха и перегрев…
Общий:
Опыт в создании платы интересен, но это у меня все еще beta версия платы, которые я буду улучшать, модернизировать, тоже самое и по программированию чипа, идей много, а времени…
На этом все, надеюсь не слишком утомил, если будут вопросы или что-то упустил в обзоре, пишите, по возможности постараюсь ответить.
PS. Так же приглашаю в "
Клуб домашних пивоваров" в контакте, мы всем рады, делимся своими рецептами, хвастаемся своим оборудованием и помогаем в решении каких-либо проблем.
А уже дома утюжу и травлю
Кстати, китайская спецбумажка для ЛУТа мне понравилась
(принтер НР + новый картридж от Кактуса)
Как вариант — народ юзает подложку от самоклеющихся обоев 333 ..350р за 10м. Хватит надолго -))
Плюс — по всем фронтам!
P.S. Осталось собрать робота, чтобы осуществлял доставку пива до дивана)))
а то будет как в том мультике — за себя я маленький съел — а самый большой за тебя )
А вопрос не на камеру, сколько пивасика собственного изготовления выпиваете за неделю? Надеюсь, в нормы потребления алкоголя, определённые ВОЗ и гласящие:
укладываетесь? ;-)
А свой продукт он не для того что бы напиться, а насладиться…
Неужели мне одному думается что русским человекам безусловно пошло бы на пользу примеривать на себя общемировые здравоохранительные нормы? :-)
Как минимум, дольше бы жили в среднем!
Вы на мой ник посмотрите :-)
И ссылочку получить, если возможно)
Извиняюсь за качество, делал на телефон
размеры указаны на ТАО верно?
верх 40х40
низ по красному стеклу 400х300?
суровый мужик 250°!
А за доставку платили?
Удивляюсь, что у вас вообще засвечивается.
Далеко не у каждого фоторезиста такая сенсибилизация.
mySKU.me/blog/aliexpress/32491.html — вот тут делал с роутером
За создание платы уважение.
оказалось по инструкции икея из готового комплекта
Да и вообще чего прикопались! автор придумал плату развел оттестил — получает полезный и вкусный продукт!
а вы тут мешаете )
такой обзор всяко интереснее читать чем трусы и фонарики, предоставленные бесплатно…
Но все-таки у автора в тыщу раз интереснее получались обзоры про само пивоварение :)
На Асме такую штуку можно собрать на мизерном контроллере…
а если с выключенной делать — то асм запросто проиграет ардуине
Естественно писать надо понимая, что пишешь, а не тупо понацеплять всех подряд библиотек и радоваться.
За сим разрешите спор прекратить. Вы, ребята, не писали всерьез ни на асме ни на с.
Скорее это как сравнить арифмометр с калькулятором :)
Компьютеры, телефоны, смартфоны, телевизоры, принтеры, роутеры, фотоаппараты… Кругом все напичкано поделками :)
Потешьте свое самолюбие, ага :)
— спец расширения набора инструкций: математика, криптография, видеокодирование
— низкоуровневые части системного софта (прошивки, биос, ядро)
Не, то, чтобы компилятор это всё неправильно напишет, но напрямую это проще написать.
Ещё есть примеры, когда не то, чтобы бороться, но подсказать компилятору и цпу нужно — наиболее ожидаемые ветки ветвления (уменьшить вероятность промаха предсказателя переходов), барьеры (запрет переупорядочивания инструкций)
BIOS на асме? Все десятки мегабайт кода? Серьезно? AMI давно бы загнулась, если бы ей приходилось поддерживать и развивать свои продукты на ассемблере :)
Прошивки… А почему бы не написать «программы»? Тоже очень емкий термин самого широкого толкования :)
Ядро — чье? Операционной системы Windows? Да ладно Вам :))
Все это пишется на Си с использованием специализированных библиотек и редких вставок ассемблерных инструкций.
И тем более все это не имеет никакого отношения к 99% программистов микроконтроллеров.
Все это, за очень редким исключением, делается средствами самого компилятора и препроцессора. Это и есть работа программиста — подсказывать компилятору что требуется получить в итоговом коде.
>BIOS на асме? Все десятки мегабайт кода?
Я написал «низкоуровневые части системного софта».
Да, это правда, в BIOS очень мало кода (по объёму) написано на ассемблере. SPI флешки сейчас по 8-16 Мб, так что экономить место экономически нецелесообразно.
Кода там не десятки, а сотни Мб, это если про исходники.
Windows исходники я не видел, если не считать утечек. А Linux ядром периодически занимаюсь, именно код для _борьбы_ с компилятором там есть.
Вы не знаете людей которые тут пишут — поэтому рекомендую подобные выводы делать только точно убедившись в своей правоте, иначе рискуете выглядеть смешно
Нет конечно, куда нам :)
Кстати, я давно заметил, если написать на Си хитровывернутую (но формально рабочую) чушь, то и компилятор может такого наворотить!
Я как-то измывался ради интереса над компилятором, описывая в исходниках один алгоритм в разных извращенных формах. В большинстве случаев он все-таки правильно понимал, собака, что нужно получить в конечном итоге :)
А иной раз — наоборот, не с первого раза удается заставить компилятор НЕ оптимизировать какой-то кусок :)
Даже лаконичные сишные библиотеки, например для какого-нибудь дисплея, имеет смысл расковырять и выдрать необходимые куски кода, так как очень часто бывает, что процентов 70-80 её функционала просто не нужно в проекте. Но опять же — нужно время чтоб её раскурить, и голова соответственно.
ЗЫ: я не знаю кто этот Дихалт и почему он должен быть для меня авторитетом :)
ЗЗЫ: А давайте возьмем какой-нить алгоритм (сортировки массива, к примеру) и Вы напишете его на асме, а я на Си и скомпилирую. И сравним результаты по размеру и по скорости работы :)
(не забудьте ещё оба засечь время написания :) )
Это всего лишь маркетинг.
Вот готовый, рабочий, совсем не сложный проект с исходниками: asis-kbr.ru/forum/viewtopic.php?f=11&t=115
Если Вы перепишете его на С не потеряв функционал и втисните в Тини13 сниму шляпу и признаю что писать надо исключительно на С, а компиляторы реально творят чудеса.
Но уверен на 99%, что никто из присутствующих диванных теоретиков этого не сможет сделать.
Дерзайте.
Я же предложил Вам несложный путь сравнения ручного ассемблера и работы компилятора.
Удачи.
Да, 0.01% задач требуют ассемблер. Программисты остальных 99.99% задач рвут на себе волосы от огорчения.
И тот пример абсолютно не имеет к этому тезису отношения, так как легко пишется на Си в течении пары дней :)
Дайте систему команд Андроида с растактовкой и андроид-ассемблер, прикину этот тетрис. ;)
Каких команд? Консольных? :))
Если бы я не был уверен в том, что такого не существует, я бы поискал для Вас :)
Правильно, программа-транслятор. Переводящая текстовые мнемоники в машинные коды.
Что есть «команды Андроида»? :))) Что есть «система команд «широко распространенной платформы»»? :))
Транслятору ассемблера абсолютно пофиг для какой ОС Вы в нем пишете — хоть для Андроида, хоть для Винды, хоть для DOS :) Ему важно только чтобы он сам (транслятор) выполнялся в предназначенной для него системе :) И «инструментов-ассемблеров» существует множество, вполне профессиональных.
Идете на arm.com и скачиваете спецификацию нужного ядра со всем набором инструкций, если Вы имеете в виду ее под «системой команд» :)
Ассемблер для ARM тоже легко находится в свободном доступе.
а горох в грузовик нужно пинцетом грузить — так больше войдет — каждую горошину подогнать к соседям можно!
Ведь согласитесь — все что можно погрузить экскаватором — можно погрузить пинцетом…
тока люди балбесы — так не делают, навалят гороху как попало — а могло бы на 20 кг больше войти…
так и тут
Вы предлагаете автору переписать чужой скетч на асме? так он пива не дождется )
Кому там что пофиг? Да, существуют кросс-ассемблеры (работают в одной среде, а собирают код для другой, для тех же микроконтроллеров, например), но кроме обязательного исполнения в заданной среде (Win32, например) самого ассемблера обязательно и исполнение выходного кода в предназначенной для него среде. Нельзя на AVR-асме написать прогу под Винду или на MASM'е написать код для PIC16.
Схожу и скачаю (есть у меня пара плат на STM32F1 (архитектуры ARM) с не очень большими объёмами памяти). Но какое по-вашему отношение имеет ARM к Андроиду? Это разные плоскости. Под ARM действительно есть ассемблеры, под Андроид — нету. И до предъявления опровержения в виде Андроид-ассемблера и описания системы команд Андроида, от участия в этом флуде воздержусь… ;)
То есть Вы требуете от меня «команды Андроида», а потом меня же и спрашиваете что это такое? :)))
Это называется «инструкция» :)
На этом вопросе можно окончить беседу с Вами как с великим знатоком ассемблера :)
Выходному коду после ассемблера не нужны никакие среды :)
Я не заставляю Вас писать в AVR-асме под винду :)
А теперь подумайте как следует почему так :)
Самое непосредственное — большинство устройств с Андроидом работают на ARM-ах :)
Ага… Интересно, а если бы я сказал «написать задачу, выполняемую под freeRTOS на AVR, Вы бы тоже начали искать „систему команд“ этой операционки? :)))
Да уж… По крайней мере пока не узнаете получше все то, о чем флудите, чтобы не выдавать анекдоты, достойные баша :)
Обязательно напишите потом, что у вас получилось с пастой.
8 кстати маловато было бы — библиотеки экрана любят кушать память, а 32 бы думаю вполне хватило
Пс: судя по лужению полигонов, автор частый покупатель припоя )
Вывод текста на экран, измерение и поддержание температуры, обработка кнопок… Ну нет в этом ничего ресурсоемкого :)
Глянул быстро — там у Вас одна библиотека LCD на нескольких языках занимает 95% :)
но возможно у автора будет мультиязычная пивоварня…
продегустирует и захочет на турецком с ней пообщаться )
но это ардуино со своими библиотеками делает свои дела — не влазит китайский — добавим памяти…
Я когда-то делал на AVR плеер из обычного CD-привода — с LCD, переключением и выбором треков, паузой, ускоренного воспроизведения, рандомайзом треков, выводом CD-text, работой по IDE и т.п., все влезало в 8 кб :)
автор за это время много литров продукта уже произведет и продегустирует!
Сейчас нашел тот проект — там была еще и возможность управления через ИК ДУ :) Исходники — 30625 байт, скомпилированный бинарник — 7185 байт :)
или последнюю взять на арме
Мне ничего этого не требуется, я не пользуюсь ардуиновскими скетчами с кучей ненужных приблуд, съедающих память :)
1. Вопрос стоит о памяти для хранения исполняемой программы — ROM, а не об оперативной памяти :)
2. Во внешней памяти с медленной последовательной шиной доступа можно хранить только какие-то параметры, которые один раз при запуске считываются и иногда после настроек записываются. Или плюс к ним еще какие-то константы — коэффициенты, строки текста и т.п. Однако это порождает другие проблемы:
2.1 Потребуется больше оперативной памяти для хранения этих самых констант, строк текста и т.п. :)
теоретически можно куски кода подгружать оттуда — если свой менеджер сделать
подождите идет загрузка китайского языка…
через минуту:
подождите идет выгрузка китайского языка…
ардуино норм комплект — но нужно чуть думать прежде чем делать и все будет норм…
большинство библиотек позволяет отключать ненужный функционал…
а если не позволяют — то «добавить» нетрудно, в некоторых случаях проще вообще без библиотеки.
Сообщество + стандарты + доступность — двигатель прогресса
сделал — работает — допилил )
И в принципе, винить их сложно — сама суть таких платформ подталкивает к этому пути :)
думаю тут превалирует, что-то сделать с минимальными усилиями на изучении теории и получить удовольствие
Могу только добавить, что «разбор со всем этим делом» вполне может себя оправдать в дальнейшем, когда нужно будет что-то изменить, добавить. Я, например, вообще не люблю когда не понимаю как работает то, что я делаю :) А то получается «блондинка за рулем» — при малейшей проблеме становишься в тупик, потому что нет никаких мыслей о ее причине :)
Так-то автор молодец — сделал свою плату вместо типовой ардуины, макетной платы и клубка проводов. Но меня слегка возмущает, что задача на 5-8 КБ у него едва вмещается в 32 :)
А про инфракрасную паяльную станцию можно поподробней?
фото готовой продукции!!! с рыбкой и довольным автором
mySKU.me/blog/taobao/27427.html
mySKU.me/blog/taobao/24195.html
mySKU.me/blog/taobao/14224.html
Повторяться не люблю )))
вкуснее стало?
Интересно.
фОльгированный
сИмистор
[grammar-nazi-mode off]
А так — титанический труд (в это включен и труд по написанию поста, это едва ли не бОльших усилий требует)!
монописуально. если в составе есть хмель, а без него это мутная жидкость, а не пиво, то фитоэстрогены будут в наличии.
и я не ратую, чтобы отказывались от напитка, я говорю, что литр в день очень много.
В прошлом году был у родственников в Волгоградской области, привез им литров 10 пива, за 1 вечер все выпили ))
ну, ТЭН понятно, подойдёт практически любой.
А насос? Там же он качает практически кипяток, и при этом не должен вносить вредных примесей.
Или вы на готовом шасси всё делаете? (смотрю на Speidel Braumeister)
2. Нет подтяжки резета.
3. Нет подтяжки управляющих нагрузкой пинов. Внутренняя подтяжка меги слабая.
Это всё что увидел за один взгляд)) Без упрёка. Просто делюсь.
2. Вот с резетом мне было не совсем понятно, по этому пока так оставил.
3. А вот по этому пункту как-то не понятно.
2. Резет через 4.7к на питание.
3. Выходы с МК которые на оптопары тоже надо было притянуть через резисторы, но на землю.
Но это я бы так поступил, чтобы не было незапланированных перегрузок МК и случайных включений насосов, клапанов и др. нагрузки.