Интерфейс дериватографа CIS->ATmega8+PSU->UART->PC

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Аватара пользователя
otmyavrozok
Нашел транзистор. Понюхал.
Сообщения: 195
Зарегистрирован: Вт ноя 18, 2008 22:38:13
Откуда: Я просто странник...

Сообщение otmyavrozok »

Я использовал ADC0820 напрямую,там сигнал,до 2-х вольт.
Аватара пользователя
acm_fan
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 12, 2009 23:00:03
Откуда: Днепропетровск
Контактная информация:

Сообщение acm_fan »

Итак, работа завершена, диплом сдан, устройство функционирует успешно.

Вкратце опишу каждый из пунктов выполненной работы.

Датчики
Мной были приобретены два сканера 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) МК с панельки во время наладки программы :D
Вложения
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
Откуда: Днепропетровск
Контактная информация:

Сообщение acm_fan »

Ниже добавлены схемы, печатные платы, прошивка и полученные результаты с помощью созданного интерфейса.
Вложения
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!
Ответить

Вернуться в «Интеграция с ПК»