Обсуждаем цифровые устройства...
Ответить

Re: Таймер-контроллер для засветки фоторезиста

Вс апр 24, 2016 11:30:53

1 - A - NCL - 24 нога Atmega8
3 - B - NCR - 25 нога Atmega8

Re: Таймер-контроллер для засветки фоторезиста

Пн апр 25, 2016 13:00:13

MOHCTEP, Спасибо помогло.
На радостях, что осталось только прошить контролер и можно пользоваться, совсем забыл про прошивку EEPROM.
Скажите, а Вы не планировали добавить в меню хотя бы 2 профиля? Для фоторезиста и маски.
А то как то не совсем удобно каждый раз время менять. Да и на время жизни EEPROM это отрицательно влияет.
Я конечно понимаю, что в зависимости от интенсивности использования, оно исчисляется десятилетиями, но всё же :)

Re: Таймер-контроллер для засветки фоторезиста

Пн апр 25, 2016 15:55:10

sysop :) Замечательно!
sysop писал(а):а Вы не планировали добавить в меню хотя бы 2 профиля?
Да планировал и писал тут... Место в памяти есть, а вот с алгоритмом управления - засада. Пока толкового не придумалось ничего. Буду рад любым советам по поводу: 1 - где показывать эти профили и 2 - как построить взаимодействие с ними пологичнее, т.е. возможность редактирования, записи и чтения задержек. Если получится толковый алгоритм взаимодействия, то обязательно сделаю и выложу.

Re: Таймер-контроллер для засветки фоторезиста

Вт апр 26, 2016 09:15:35

Я конечно не силён в программировании МК, возможно есть какие то сложности в обработке иерархизации меню, но с точки зрения пользователя, мне видеться довольно простое решение.
Надо добавить дополнительно два пункта, по одному в каждый режим 1.05 и 5.05 - выбор профиля (см. рисунок). Соответственно установка и чтение задержек.
Получается, что в 1.05 мы выбираем профиль для установки времени задержки. А в 5.05 выбираем нужный нам профиль для запуска.
Вложения
профили.png
вариант управления профилями
(475 байт) Скачиваний: 914

Re: Таймер-контроллер для засветки фоторезиста

Вт апр 26, 2016 11:52:32

sysop писал(а):Я конечно не силён в программировании МК
:) Я тоже, но если найдется толковый алгоритм, думаю - управился бы.
sysop писал(а):Надо добавить дополнительно два пункта, по одному в каждый режим 1.05 и 5.05
С 1.05 вроде понятно и пожалуй соглашусь, если додискутируем логику управления полностью. Видимо придется в 1.1 добавить еще какое-то управление? А 5.05 зачем и как оно видится?

Re: Таймер-контроллер для засветки фоторезиста

Ср апр 27, 2016 11:49:27

Попробую объяснить более подробно и с картинками.
Для использования профилей, надо выполнить две задачи.

1) Ввести в меню пункт редактирования (установка времени задержки) профилей.
Например:
После короткого нажатия на енкодер, при выбранной пиктограмме "Часы".
Мы попадаем не в режим установки задержки, как в текущей версии, а как раз в режим выбора профиля.
Допустим у нас будет 2 профиля - "Photoresist" и "Mask".
Енкодером выбираем нужный нам для редактирования профиль. И коротким нажатием входим в режим установки времени задержки нужного нам профиля. Аналогично и для остальных профилей. Будь их 2 или 3 и более. Длинное нажатие на енкодер, аналогично текущей версии - выход в основное меню.

2) Ввести в меню пункт использование соответствующего профиля в зависимости от типа выполняемых работ.
Например:
Енкодером выбираем пиктограмму "GO", после короткого нажатия, попадаем в меню выбора профиля. Выбираем нужный нам профиль и после короткого нажатия, запускается отсчёт времени. Ну в общем как и в текущей версии.
Для наглядности изобразил всё это дело на картинке.
Вложения
Menu.png
(80.76 KiB) Скачиваний: 962

Re: Таймер-контроллер для засветки фоторезиста

Ср апр 27, 2016 12:27:36

Интересно и главное на что-то продуктивное уже похоже. У меня вариант посложнее получился в разработке.
1 Выбрав часы (п. 1 меню) попадаем в меню выбора пресетов. Их 4. Поворотом выделяем, при этом показывается имя пресета(5 символов) и его время задержки. Кликом выбираем и переходим в меню "установить/редактировать" выбранный пресет.
2 Выбрав "установить" переход снова в меню "1", время пресета считаем выбранным.
3 Выбрав "редактировать" попадаем в экран, где сверху время, снизу имя и надпись "ОК". Вот тут - засада. Хочется, да и нужно сохранить функционал удержания кнопки, как безусловный возврат без изменений. Если переключать разряды кликом, а поворотом менять значение (как и было - так быстрее), то проблема с "ОК" - при клике просто переключится разряд. Если переключать разряды поворотом, а значение набивать кликами, то с ОКеем - порядок, но запаришься менять имя, значение будет меняться только в одну сторону, по кругу. Придумал сюда фишку с курсором: клик - курсор меняется(на заливку) и можно поворотом выбрать новое место. Еще клик, курсор стал подчеркиванием и поворотом меняем значение. Оно работает, но простыня кода стала невменяемой, блин. Да и с интуитивной доступностью вижу проблемы и на схеме этакую пакость трудно будет показать. :)

Re: Таймер-контроллер для засветки фоторезиста

Ср апр 27, 2016 13:24:51

Нууу .... монументально, но на мой взгляд избыточно.
Если использовать устройство только для изготовления печатных плат, то мне сложно представить для чего понадобиться более двух пресетов.
И если предположить, что кто то будет использовать устройство для других задач - сделать 3 или 4 пресета. И то только в том случае, если устройство используется в потоковом производстве. А для штучного можно будет как и сейчас отредактировать существующие пресеты.
С функцией "Установить" ваще заморочка. Лишнии действия, они со временем будут напрягать и раздражать. Ну забыл человек какой установил пресет. Включил экспозицию. И тут возглас "Блиииин". Надо лезть в редактор и устанавливать другой пресет. А в моём варианте у человека нет шансов на ошибку.
Есть ещё вариант с введением разового таймера без сохранения в EEPROM перед началом экспозиции. Т.е. "GO" > (выбор 1 пресет или 2 пресет или разовый таймер, в случае разового таймера > установка времени задержки) > экспозиция. Это и гибко и понятно. Не надо будет лазить в меню, редактировать, сохранять, выходить, входить в "GO", выбирать, экспонировать.
Редактор имён ...... думаю что более 70% пользователей никогда не будут использовать эту функцию чисто из за лени.
Мы же с Вами (имеется ввиду всех читателей) люди определённой профессии или хобби, мы по этому и собрали это устройство. И нам хоть назови их Р1 Р2 Р3..... мы будем знать что за что отвечает. А домохозяйке, к примеру, что так, что так, не будет понятно для чего это всё.
К тому же устройство в большинстве случаев должно быть интуитивно понятно в управлении.
Хотя решать всё равно Вам, как автору. А мы будем только рады любым улучшениям.

Re: Таймер-контроллер для засветки фоторезиста

Ср апр 27, 2016 18:35:39

sysop писал(а):для чего понадобиться более двух пресетов.
Разнотипные шаблоны: бумага, калька, пленка... Собственно из-за этого и задумался над названиями. Хоть в 5 символов, но что-то поосмысленней Р1,Р2 можно воткнуть.
Так... Пока уперся в сохранение пресетов. И разовый таймер тоже нравится...))

Re: Таймер-контроллер для засветки фоторезиста

Чт апр 28, 2016 09:15:09

Немного лирического отступления.
Для поднятия настроения.
Ложился спать я в размышлении.
Уснул. Проснулся. Есть решение!

Многочисленное кол-во пресетов (ограничено только памятью МК)
Имена пресетов до 16 символов
Возможность использования редактора имён
Стандартное управление во всех подпунктах меню
Интуитивно понятный интерфейс
может что то забыл, по ходу объяснения коснёмся каждого пункта.
:) Ну прям как - Покупайте наших слонов.

И так. После клика на "Часы", попадаем в листинг пресетов. Отказываемся от отображения всех на одном экране!
Отображаем по очереди по одному.
----------
| Бумага |
| 00:04:30 |
----------
Поворот енкодера - следующий пресет. и так до последнего. Что дальше - решайте сами, или возвращаться к первому, т.е. гонять по кругу, или стоять на месте и ждать поворота енкодера в обратную сторону.
Далее клик по выбранному пресету.
И вот тут вуаля :)
т.к. мы знаем имя, мы же видели его при входе, нам не надо его отображать на экране!
отображается в верхней строке время, редактируется как и сейчас. Но! с права появляется как раз Ваш "ОК"
Но что бы сохранить управление однотипно во всех меню - добовляем к "ОК" Y/N
примерно так:
----------
| 00:04:30 OK:n |
| ^ |
----------
Кликом меняем разряд, вращением енкодера - меняем значение.
клик на "n" - переход к первому разряду, т.е. снова режим редактора.
меняем "n" на "Y", клик ......
и вот тут у нас есть два варианта
1) не использовать редактор имён - сохраняем значение в EEPROM и выходим в основное меню
2) использовать редактор - сохраняем время в EEPROM и переходим к редактированию имени, вплоть до 16 символов
----------
| Paper |
| ^ |
----------
управление то же, клик переход на следующий разряд, вращение - изменение символа
после клика на последнем разряде - исчезает редактируемое имя, и появляется наш новый "OK Y|n"
клик на "n" - возврат к редактированию. Изменяем "n" на "Y", клик - сохраняем в EEPROM и выходим в главное меню
При этом в любом меню сохраняется функция выхода без сохранения при длительном нажатии на енкодер.
Ну а в 5.05 уже наверное догадались. Такой же листинг, с указанием имени и времени. Поворотом - выбираем нужный нам пресет. Клик - запуск экспонирования.
Всё удобно и функционально, осталось только узнать ..... реализуемо ли ?
P.S. уффф настрочил

Re: Таймер-контроллер для засветки фоторезиста

Чт апр 28, 2016 12:35:26

Капитально, практически ООП. :))
Как вариант возьму на заметку. Правда сейчас в разработке другой алгоритм, чуть проще ранее озвученного.
Клик по иконке часов -- выбор одного из 4-х пресетов. Выбрав пресет, сразу можно его и отредактировать (время и имя). Удержание кнопки - записывает отредактированный пресет в ПЗУ, а его время в таймер. Если пресет не менялся, то и запись в ПЗУ не делается. Здесь логика управления не пострадала и добавился лишь один экран в блок-схему общения.
Удалось перевести дисплей на 4-х битную шинку. Имеются, пока непонятные, проблемы с записью в ЕЕПРОМ: иногда пишет мусор или вообще не обновляется информация. Думаю - победю, побеждю ликвидирую, со временем.

В принципе приемлемая дебаг сборка будет готова к вечеру. Если откликнутся добровольные бета тестеры, готовые потестить и потом "завалить" доброжелательной критикой и мудрыми советами и рекомендациями - могу выложить.

Re: Таймер-контроллер для засветки фоторезиста

Чт апр 28, 2016 13:21:18

sysop
Отличный алгоритм управления. Я за него лапами и хвостом. :))

Re: Таймер-контроллер для засветки фоторезиста

Сб апр 30, 2016 15:30:21

Версия 3.00
Добавлено:
1 - 4 поименованных установки времени экспозиции (пресета).
2 - Возможность редактирования времени и наименования любого пресета.
Изменения:
1 - LCD переведен на 4-битную шину данных.
2 - Алгоритм общения: добавлены экраны + косметика.
3 - Оптимизирована работа с EEPROM:
3.1 - Время теперь не записывается. Запоминается актуальный пресет, вместе с настройками(звук, свет, вакуум), упакованными в 1 байт.
3.2 - Запись в память осуществляется, только, если параметр изменился.
4 - Настройки (звук, свет, вакуум) запоминаются теперь в момент старта таймера.
Схема общения:
Изображение
Из новинок: экраны 1.1 - 1.4, это просмотр значений пресетов. Кликом выбирается нужный пресет и откроется редактор. В редакторе кликом выделяется нужный символ(подчеркивается), а вращением меняется его значение. Выделение идет по кругу CCW. Вначале время(1.1.1) - от секунд к часам, затем - имя(1.1.2), 5 символов, от первого к пятому.
Удержание кнопки, это:
1) Значение времени пресета становится выдержкой таймера.
2) Если в пресете что-то поменяли, то он перезапишется в ЕЕПРОМе, о чем сообщит экран 1.5.
3) Выход в экран 1.
:)) Получился негаданный подарок к празднику Светлой Пасхи! С чем Вас всех и поздравляю! :beer:
Вложения
Atmega8_LCD_Timer3_0_8bits.rar
LCD data bus 8 bits
(5.72 KiB) Скачиваний: 540
Atmega8_LCD_Timer3_0_4bits.rar
LCD data bus 4 bits
(5.78 KiB) Скачиваний: 380

Re: Таймер-контроллер для засветки фоторезиста

Вт май 03, 2016 14:25:32

Версия 3.01

Изменения:
1 В редакторе пресетов курсор, при выборе символа - мигающий, при изменении его значения - подчеркивание.
Лучше воспринимается: чего, где и как меняется.

2 Экран 5.1(подтверждение записи пресета в память) исчезает сам через 4 секунды, либо по клику/удержанию. Надо/не надо?

3 BUG:: при возврате из экранов 1.1 ... 1.4 в экран 1 (без выбора пресетов) применяется пресет, выделенный на момент возврата,
а должен бы, ранее примененный. Fixed.

4 BUG:: При наборе имени пресета, попадаются и спецсимволы. Fixed! Набор ограничен кодами 32...255.
Теперь, при левом вращении энкодера, "упираемся" в пробел.

Выкладываю только версию для 4 битной шинки, так как она у меня нормально работает и на 8 битах. Проверить на 4 битах не имею возможности. Может у кого-то есть этот проект в макетном варианте? Было бы здорово проверить работоспособность прошивки на реальной схеме(шине).
Все ж зацепила последняя идея алгоритма sysop`а. :) Потихоньку над ней работаю.
Вложения
v 3.01.rar
(5.97 KiB) Скачиваний: 473

Re: Таймер-контроллер для засветки фоторезиста

Вс май 08, 2016 20:26:34

Нехорошая новость. Безвозвратно утеряны наработки и исходники предыдущих версий. Дальнейшая поддержка по ним стала невозможной. :cry:

Хорошая новость. Благодаря общению с sysop-ом, написал обновление, во многом повторяющее предложенный им алгоритм общения. За пару дней тестирования, вроде убил все попавшиеся баги и недочеты, однако, так как версия писалась с нуля, возможно остались какие-то незамеченные проблемы, даже решенные в более ранних версиях. Пишите - буду править, по возможности.
Схему общения не выкладываю, интересен фактор Вашего интуитивного восприятия. Пишите Ваши оценки, замечания, предложения.
Выкладываю опять версии для полной и половинной шинок, на всяк случай. У меня обе нормально работают на 8 битах. Просьба о проверке на 4 битной шине так же актуальна.

version 3.05
Добавлено:
Пара иконок, пара экранов.
Изменения:
1 - 6 редактируемых профилей(пресетов). Каждый содержит время задержки и 16-ти символьное наименование.
2 - Алгоритм общения.

UV_timer_v305x4bits.rar
Версия 3.05 для 4-х битной шины
(18.97 KiB) Скачиваний: 372

UV_timer_v305x8bits.rar
Версия 3.05 для 8-ми битной шины
(18.87 KiB) Скачиваний: 415

Re: Таймер-контроллер для засветки фоторезиста

Ср май 11, 2016 13:52:56

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

Теперь про версию 3.05. 4 бит.
У меня, по крайней мере, затруднений в понимании логики работы не возникло. С моргающим курсором стало лучше.
Не совсем правда удобно менять время в профилях. При входе в редактор - курсор моргает на единицах секунд. На дисплее у нас 01:51:36 (к примеру), нам надо установить 00:05:00. Крутить секунды долго, по этому кликаем до единиц часов, а дальше .... ээээ .... по кругу через все символы имени, что бы добраться до единиц минут. Вот если б редактирование начиналось с с десятков часов, ну т.е. с противоположной стороны, и при клике двигалось в сторону секунд, было бы удобнее. Установил время > долгий клик > выход с сохранением. И не приходится клацкать по всему имени, тем более что оно теперь 16 символов. Хоть это теперь придётся делать гораздо реже, а может и всего один раз. Но тем не менее, замечание на будущее.
Теперь про подсветку.
Я честно говоря не помню как она работала на прежне прошивке, но в 3.05 после окончания экспонирования включается подсветка - а зачем?
а если человек отошёл куда то по каким либо причинам (ну приспичило ему :) ), таймер отработал, УФ выключился, а подсветка включилась и продолжает засвечивать фоторезист, не с такой интенсивностью конечно, но делает своё дело. Зумер конечно пикает, сообщая о том что пора бежать и доставать "пирожки" из печки, а ни кого нет! На мой взгляд не мешало бы вынести её вообще в отдельную иконку и включать по необходимости как фонарик. Ведь она нужна в основном для совмещения шаблонов. По этому я её сделал нижней. Очень удобно подсвечивать стекло на котором лежат шаблоны.
ИзображениеИзображениеИзображениеИзображениеИзображениеИзображение
Ну при беглом осмотре пока всё. Если что ещё найду отпишусь.
А и ещё чуть не забыл.
А зачем нужен файл .elf ? Я его не прошивал.

Re: Таймер-контроллер для засветки фоторезиста

Ср май 11, 2016 16:00:52

sysop И Вам спасибо за удовольствие от чтения столь развернутого ответа, за фотографии и за сочувствие тоже! :) Теперь попробую ответить.
sysop писал(а):Не совсем правда удобно менять время в профилях. При входе в редактор - курсор моргает на единицах секунд. На дисплее у нас 01:51:36 (к примеру), нам надо установить 00:05:00. Крутить секунды долго, по этому кликаем до единиц часов, а дальше .... ээээ .... по кругу через все символы имени, что бы добраться до единиц минут.
А зачем такой мазохизм-то? Селекция времени, от секунд к часам, выбрана сознательно, после экспериментов с ее направлением(и туда и обратно), как наиболее быстрая и наименее потенциально ошибочная. И не нужно пытаться обнулить часы единицами секунд. Достаточно накрутить цифру на текущем разряде и "перекликнуть" на следующий - старший. 5 кликов и несколько поворотов - и все готово. Если ошиблись, то необязательно "проходить" через наименование. Быстрее будет выйти из профиля и снова зайти. Опять курсор будет на секундах и можно оперативно исправиться.
sysop писал(а):Теперь про подсветку.
в 3.05 после окончания экспонирования включается подсветка - а зачем?
Точно так же было и в прежних версиях. Подсветка обеспечивает минимальный комфорт при установке и снятии платы. Вот у меня подсветка сверху 4 красными ледами, которых для этого вполне достаточно. У Вас подсветка белая, которая в спектре, по идее, уже содержит прилично уф, да еще и близко расположена к плате. Тут действительно есть реальная возможность пересветить резист, если зазеваешься...
sysop писал(а):На мой взгляд не мешало бы вынести её вообще в отдельную иконку и включать по необходимости как фонарик.
Имхо, ненужное усложнение алгоритма в пику интуитивности. Но, поскольку именно Ваши пожелания, "сон" и советы помогли дальнейшему развитию проекта, в качестве "ужасной мсти", я попытаюсь схимичить версию для Вас, если расскажете, как где и что Вам видится, в плане подсветки.
sysop писал(а):А зачем нужен файл .elf ?
Где-то на форуме читал, что он содержит все сразу, вроде как его одного достаточно, чтоб и флеш и еепром прошить. Но, не уверен, вложил на всякий пожарный.
Хочу спросить: вот у Вас смд диоды и близко к плате. Как обстоят дела с тонкими дорожками/промежутками и боковой засветкой?

ЗЫ. Вот вариант с автоотключением.

version 3.06
Добавлено:
Возможность автоотключения подсветки по таймауту.
Выбирается в экране активации панелей и подсветки. Если "auto OFF" активирован, то,
по отработке экспозиции, разрешенная подсветка погаснет автоматически через 10 секунд, иначе будет гореть, дожидаясь клика.
UV_timer_v306x4bits.rar
Версия 3.06 х 4 бита
(19.08 KiB) Скачиваний: 395

Re: Таймер-контроллер для засветки фоторезиста

Чт май 12, 2016 09:18:50

С часами интуитивно сразу не допёр. Теперь всё понятно. Спасибо.
Хочу спросить: вот у Вас смд диоды и близко к плате. Как обстоят дела с тонкими дорожками/промежутками и боковой засветкой?

Всё дело в том, что с резистом я связался не давно и ещё только учусь с ним работать. По этому ещё нет статистики по тонкости дорожек и боковой засветки. Честно говоря пока не очень нравится. К ЛУТу приноровился так, что Atmega32 в TQFP не говоря уж об Atmega8 в TQFP, получались идеально. Да и по времени, ЛУТ гораздо быстрее у меня получается. А так, если хотите, давайте шаблон и я с ним поэкспериментирую для статистики :) Установку собирал в основном для маски, там большая точность мне не нужна. Да и старенький сканер в качестве корпуса, недавно достался на халяву. Вот и решил попробовать что то новое для себя, дабы не бездельничать.

Re: Таймер-контроллер для засветки фоторезиста

Чт май 12, 2016 20:16:28

Понятно. Для маски может и нормально будет. Вообще агрегат понравился. :))

Re: Таймер-контроллер для засветки фоторезиста

Чт май 19, 2016 00:25:14

version 3.07
Добавлено:
Отдельный экран настройки подсветки. Косметика.
Изменения:
Управление подсветкой вынесено в отдельный экран. Возможности экрана:
1 - Активация/деактивация включения подсветки до и после экспозиции.
UV_timer_v307x4bits.rar
Версия 3.07 х 4 бита
(6.3 KiB) Скачиваний: 414

Алгоритм:
Изображение
Думаю, самые удачные версии, это - 3.05 и 3.07. Ну и коль существенных замечаний от вас нет, считаю обе версии своеобразными релизами. Фантазия на всякие штучки-дрючки у меня закончилась, значит и обновлять больше нечего. :)
Ответить