Интерфейс дериватографа CIS->ATmega8+PSU->UART->PC
- otmyavrozok
- Нашел транзистор. Понюхал.
- Сообщения: 195
- Зарегистрирован: Вт ноя 18, 2008 22:38:13
- Откуда: Я просто странник...
- acm_fan
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт фев 12, 2009 23:00:03
- Откуда: Днепропетровск
- Контактная информация:
Итак, работа завершена, диплом сдан, устройство функционирует успешно.
Вкратце опишу каждый из пунктов выполненной работы.
Датчики
Мной были приобретены два сканера Mustek 1248 UB (б/у), из которых были извлечены датчики Canon – CLG-60216G-002. Их распиновка и внешний вид похожи на датчик, что использовался в 1200 CU Plus (CNE-60216K-000), но... Они не взаимозаменяемы. Пришлось корректировать регистрационный узел (новая обвязка вокруг транзисторов, что работают в ключевом режиме). Благо, все получилось лучше, чем казалось изначально, а именно на АЦП теперь поступает напряжение от 5 В (с коллектора транзистора), когда датчик не освещен, и до ~ 0,3 В, когда он освещен. Последняя величина зависит от интенсивности света, также можно (нужно!) отрегулировать это напряжение так, чтобы уровень шумов при этом не падал ниже 2,55 В. Шумы есть, конденсаторы емкостью 470 нФ очень помогают, но не полностью. Конечно, в таком ключе можно было уже подумать и про компаратор, но на момент приобретения сканеров основной блок уже был готов…
Следует отметить, что в дериватографе заложен принцип изменения интенсивности свечения ламп в зависимости от выставленной продолжительности эксперимента, т.е. при 400 минутах (максимум) - свечение самое тусклое. Однако, как я понимаю, эту ручку можно теперь вообще не трогать, потому как для нас как раз важна хорошая интенсивность. Я выставил, как будет видно на примере, так, что при положении ручки на 100 минутах напряжение составляет ~ 0,85 В.
Алгоритм
Далее, алгоритм пришлось изменять, потому как "точки" оказались очень даже неслабыми по протяженности отрезками (на шкалу в 200 мм имеем ~ 4725 точек).
Если вкратце, считаем кол-во "темных" точек, что появились после зафиксированного луча, если их больше 25 (1 мм) - запоминаем координату, а при обработке от нее отнимаем 25. Считаем именно "темные" (значение 255, или полученное темновое напряжение при калибровке) точки, потому как "световые" отрезки получаются неравномерными (с ярко выраженным пиком по центру, хвосты могут "гулять" как им заблагорассудится).
Таким образом, если между двумя такими отрезками (даже не точками) расстояние будет меньше 1 мм, то будет фиксироваться более удаленный от начала отчета луч. Алгоритм не идеальный, но вполне нормальный. Может случиться так, что будет зафиксирован пик отрезка, далее будет уровень освещенности слабый (напряжение на коллекторе больше 2,55 В), а потом появится хвост, который будет хорошо зафиксирован (напряжение ниже 2,55 В на коллекторе). Все вышесказанное будет относится к 1 лучу, я на вскидку прикинул, что 1 мм это хороший запас для протяженности отрезка, который относится для к 1 лучу. На графиках момент, когда 2 кривые сближаются, а потом 1 пропадает, виден неплохо
, но также иногда происходит и дубляж одного и того же луча. Еще я увеличил общее количество вот таких зафиксированных координат до 8.
Схемотехника
Основной блок
На выходе VREF я поставил электролитический конденсатор, а следовало бы керамический. Использованный мной китайский трансформатор греется просто ужасно, больше, чем небольшой радиатор со стабилизатором напряжения
К пинам 9 и 10 по схеме подключается питание (+ 12 В, схему не привожу, банальный трансформатор, диодный мост, электролит на 470 мкФ, предохранитель и тумблер перед первичной обмоткой). Оптическая развязка с ПК подразумевает перевод в активное состояние выхода RTS (7 ножка СОМ-разъема) при подключении (в программе обработки это учтено). Пины 14-17 – COM-разъем, 11-13 – тумблер (замыкание 11 и 12 или 11 и 13), 1-8 – гнездо под витую пару (8Р8С).
Регистрационный блок
Как уже было сказано, транзисторы, работающие в ключевом режиме, пины 9 (нейтральный провод), 10 (АО1), 11 (АО2) для подключения щупа осциллографа с целью регулировки режима работы транзистора, 1-8 – разъем для витой пары. Еще я ввел кнопки, но осциллографом оказалось удобнее контролировать напряжение
К контактным площадкам подпаиваются шлейфы для датчиков. Последние я укрепил встык 1 к 1 на планке, в роли которой выступил ПВХ плинтус. Крючками, что расположены по краям, обхватываем ручки барабана.
Мертвая зона получилась порядка 2 см, рекомендовано ее размещать в начале весовой шкалы (это получается где-то 10 делений из 100).
Программная обработка
Задействовался Excel, VBA и компонент для работы с COM-портом – mscomm32.ocx. Программа снабжена комментариями, кто хочет – может ознакомится. Сложность обработки заключается в использовании аппроксимированной функции для перевода координат лучей в температуру, с массой все попроще – весовая шкала линейная. Погрешность полученных результатов не более 2%. Если откровенно, то при выборе предела шкалы в 125 °С погрешность до 20 °С около 3%, но… Так холодно при работе не бывает
Наименьшая погрешность при выборе предела в 250 °С – 0,6%.
Результаты
В процессе регистрации ход кривых можно контролировать в реальном времени, но на слабых машинах это приводит к уменьшению зафиксированных блоков с 81 до 20-15 за минуту. Рекомендуется переключаться с листа, где отрисовываются графики, на любой другой, впрочем все это указано в замечаниях в самом файле.
В целом я доволен выполненной работой.
P.S. Могу точно сказать, что использование ISP при работе с МК более чем оправданно, потому как я замучался вытаскивать (раз 20) МК с панельки во время наладки программы
Вкратце опишу каждый из пунктов выполненной работы.
Датчики
Мной были приобретены два сканера Mustek 1248 UB (б/у), из которых были извлечены датчики Canon – CLG-60216G-002. Их распиновка и внешний вид похожи на датчик, что использовался в 1200 CU Plus (CNE-60216K-000), но... Они не взаимозаменяемы. Пришлось корректировать регистрационный узел (новая обвязка вокруг транзисторов, что работают в ключевом режиме). Благо, все получилось лучше, чем казалось изначально, а именно на АЦП теперь поступает напряжение от 5 В (с коллектора транзистора), когда датчик не освещен, и до ~ 0,3 В, когда он освещен. Последняя величина зависит от интенсивности света, также можно (нужно!) отрегулировать это напряжение так, чтобы уровень шумов при этом не падал ниже 2,55 В. Шумы есть, конденсаторы емкостью 470 нФ очень помогают, но не полностью. Конечно, в таком ключе можно было уже подумать и про компаратор, но на момент приобретения сканеров основной блок уже был готов…
Следует отметить, что в дериватографе заложен принцип изменения интенсивности свечения ламп в зависимости от выставленной продолжительности эксперимента, т.е. при 400 минутах (максимум) - свечение самое тусклое. Однако, как я понимаю, эту ручку можно теперь вообще не трогать, потому как для нас как раз важна хорошая интенсивность. Я выставил, как будет видно на примере, так, что при положении ручки на 100 минутах напряжение составляет ~ 0,85 В.
Алгоритм
Далее, алгоритм пришлось изменять, потому как "точки" оказались очень даже неслабыми по протяженности отрезками (на шкалу в 200 мм имеем ~ 4725 точек).
Если вкратце, считаем кол-во "темных" точек, что появились после зафиксированного луча, если их больше 25 (1 мм) - запоминаем координату, а при обработке от нее отнимаем 25. Считаем именно "темные" (значение 255, или полученное темновое напряжение при калибровке) точки, потому как "световые" отрезки получаются неравномерными (с ярко выраженным пиком по центру, хвосты могут "гулять" как им заблагорассудится).
Таким образом, если между двумя такими отрезками (даже не точками) расстояние будет меньше 1 мм, то будет фиксироваться более удаленный от начала отчета луч. Алгоритм не идеальный, но вполне нормальный. Может случиться так, что будет зафиксирован пик отрезка, далее будет уровень освещенности слабый (напряжение на коллекторе больше 2,55 В), а потом появится хвост, который будет хорошо зафиксирован (напряжение ниже 2,55 В на коллекторе). Все вышесказанное будет относится к 1 лучу, я на вскидку прикинул, что 1 мм это хороший запас для протяженности отрезка, который относится для к 1 лучу. На графиках момент, когда 2 кривые сближаются, а потом 1 пропадает, виден неплохо
Схемотехника
Основной блок
На выходе VREF я поставил электролитический конденсатор, а следовало бы керамический. Использованный мной китайский трансформатор греется просто ужасно, больше, чем небольшой радиатор со стабилизатором напряжения
Регистрационный блок
Как уже было сказано, транзисторы, работающие в ключевом режиме, пины 9 (нейтральный провод), 10 (АО1), 11 (АО2) для подключения щупа осциллографа с целью регулировки режима работы транзистора, 1-8 – разъем для витой пары. Еще я ввел кнопки, но осциллографом оказалось удобнее контролировать напряжение
Мертвая зона получилась порядка 2 см, рекомендовано ее размещать в начале весовой шкалы (это получается где-то 10 делений из 100).
Программная обработка
Задействовался Excel, VBA и компонент для работы с COM-портом – mscomm32.ocx. Программа снабжена комментариями, кто хочет – может ознакомится. Сложность обработки заключается в использовании аппроксимированной функции для перевода координат лучей в температуру, с массой все попроще – весовая шкала линейная. Погрешность полученных результатов не более 2%. Если откровенно, то при выборе предела шкалы в 125 °С погрешность до 20 °С около 3%, но… Так холодно при работе не бывает
Результаты
В процессе регистрации ход кривых можно контролировать в реальном времени, но на слабых машинах это приводит к уменьшению зафиксированных блоков с 81 до 20-15 за минуту. Рекомендуется переключаться с листа, где отрисовываются графики, на любой другой, впрочем все это указано в замечаниях в самом файле.
В целом я доволен выполненной работой.
P.S. Могу точно сказать, что использование ISP при работе с МК более чем оправданно, потому как я замучался вытаскивать (раз 20) МК с панельки во время наладки программы
- Вложения
-
- Program (Excel).rar
- Программа для регистрации и обработки результатов, а также модуль для ее работы
- (254.09 КБ) 479 скачиваний
-
- D04.png
- Внешний вид листа "f (T, °C)"
- (55.95 КБ) 1006 скачиваний
-
- D03.png
- Внешний вид листа "f (t, мин)"
- (56.75 КБ) 1037 скачиваний
-
- 02.png
- Внешний вид передней панели основного блока
- (9.83 КБ) 782 скачивания
-
- 090518_040003.jpg
- Внешний вид всего устройства (в момент наладки)
- (81 КБ) 1310 скачиваний
Hallowed be Thy Name, Iron Maiden!
- acm_fan
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Чт фев 12, 2009 23:00:03
- Откуда: Днепропетровск
- Контактная информация:
Ниже добавлены схемы, печатные платы, прошивка и полученные результаты с помощью созданного интерфейса.
- Вложения
-
- Results.part004.rar
- Файл с результатами проведенного эксперимента
- (280.64 КБ) 388 скачиваний
-
- Results.part003.rar
- Файл с результатами проведенного эксперимента
- (300 КБ) 350 скачиваний
-
- Results.part002.rar
- Файл с результатами проведенного эксперимента
- (300 КБ) 331 скачивание
-
- Results.part001.rar
- Файл с результатами проведенного эксперимента
- (300 КБ) 373 скачивания
-
- Project.rar
- Проекты Proteus (схемы), Ares (печатные платы), AVR Studio (прошивка)
- (153.45 КБ) 613 скачиваний
Hallowed be Thy Name, Iron Maiden!