Разработка светодиодной матрицы
Рисунок
2.2 - Общий вид микроконтроллера PIC16F628A
Рисунок
2.3 – Расположение выводов микроконтроллера PIC16F628A
Рисунок
2.4 – Структурная схема микроконтроллера PIC16F628A
2.4
Разработка функциональной схемы устройства
Зная
тип микроконтроллера, согласно п.1.1 разрабатываем функциональную схему
светодиодной матрицы (Рис. 2.5).
МК
«+»
3,5-5В
Рисунок
2.5 – Функциональная схема светодиодной матрицы:
ДСтр1-
ДСтр5 – драйвер строки;
ДСтб1-
ДСтб1- драйвер столбца.
2.5
Разработка алгоритма управления
Мы
рассмотрим два случая световых эффектов для светодиодной матрицы.:
1.
Эффект 1 - движущиеся строки и столбцы;
2.
Универсальная программа для
программирования любых световых эффектов. + пример работы - "вращающийся
крест".
Для
эффекта 1 алгоритм будет иметь вид, представленный на рисунке 2.6.
Рисунок
2.6 – Алгоритм программы эффекта 1 для светодиодной матрицы
Теперь
составим алгоритм для универсальной программы (Рис. 2.7).
Рисунок
2.7 – Алгоритм универсальной программы для светодиодной матрицы
Контроллер
управляет драйверами строк и столбцов светодиодной матрицы, в качестве которых
выступают обычные биполярные транзисторы.
Чтобы
подключить строки 1, 2, 3, 4, 5 к шине питания - нужно подать "1" на
выходы контроллера RA2, RA3, RA1, RA7, RA6 соответственно, а для того, чтобы
подключить столбцы 1, 2, 3, 4, 5 к нулевой шине (к земле) - нужно подать
"0" на выходы контроллера RB3, RB4, RB5, RB6, RB7 соответственно.
Для
первого и второго варианта основная проблема нашей матрицы в том, что на ней
невозможно включить несколько произвольных светодиодов одновременно в разных
строках и столбцах. Однако, в одном столбце (или строке) одновременно включить
несколько произвольных светодиодов можно. Но! Если мы будем включать нужные нам
светодиоды, например, построчно, при этом очень быстро меняя строки, то для
глаза рисунок сольется и будет казаться точно таким же, как если бы мы
произвольно включили несколько светодиодов в разных строках и столбцах.
То
есть, фактически, картинка показывается за пять циклов: сначала первая строка,
потом вторая, потом третья и так далее до пятой строки, после чего все циклы
повторяются, но, за счет очень быстрого переключения строк, мы видим один
статичный кадр (фрейм) - Рисунок 2.8.
Рисунок
2.8 – Пример фрейма
Так
как каждый фрейм у нас состоит из пяти строк, в каждой из которых по пять
столбцов, то весь фрейм кодируется 5*5 битами. Для удобства будем использовать
один байт на столбец (старшие три бита использовать не будем), итого получим 5
байт на фрейм.
Переключая
такие псевдостатичные картинки (но уже с различимой для глаза скоростью) можно
получить динамическое изображение. Шесть (к примеру) фреймов для нашей матрицы
займут в памяти 5*6=30 байт. Фреймы можно хранить в памяти данных EEPROM. Она
имеет размер 128 байт, то есть позволяет хранить до 25 фреймов. Посчитаем:
25*5=125 + 2 байта (для хранения информации о количестве загруженных фреймов и
о скорости смены фреймов).
Если
соединить контроллер с компьютером через USART, то можно будет загружать фреймы
прямо с компьютера.
Светодиод
загорается в том случае, если он подключен и к питанию и к земле.
В
нашем примере мы будем загружать фреймы из EEPROM в ОЗУ, причём только в
нулевой банк, в котором, за вычетом всех пользовательских переменных, на фреймы
остается 86 байт, то есть максимум 17 фреймов.
Для
реализации динамической картинки "вращающийся крест" нам понадобится
6 фреймов (Рисунок 2.9).
Рисунок
2.9 – Реализация картинки «вращающийся крест»
2.6
Разработка программного обеспечения
микроконтроллера
Мы
рассмотрим программы для двух случаев, как было описано в п.2.4.
Листинг
программы для первого случая (Эффект-1) приведен в Приложении Б, а для эффекта
«Вращающийся крест» в Приложении В.
2.7
Выбор, описание и расчеты элементной
базы
Рассмотрим
принципиальную схему (Приложение Д).
Транзисторы
VT1- VT5 - это драйверы строк (в открытом состоянии они подключают соответствующие
строки к шине питания), VT6 - VT10 - драйверы столбцов (в открытом состоянии
они подключают соответствующие столбцы к земле). Когда на базы транзисторов
VT1-VT5 подан высокий уровень ("1") - они открываются, когда низкий
("0") - закрываются. Для транзисторов VT6 - VT10 все наоборот, -
когда на базах высокий уровень ("1") - транзисторы закрыты, а когда
низкий ("0") - открыты. Если светодиод оказывается подключен и к
земле и к питанию - через него начинает протекать ток, и, соответственно, он
светится.
Использование
драйверов обусловлено тем, что максимальный ток порта ввода/вывода ограничен
25мА, а при полностью включенной строке или столбце суммарный ток светодиодов порядка
50 мА, т.е. мы не можем подключать строки и столбцы непосредственно к выводам контроллера.
Элементы:
R1-
R25 = 220 Ом. Эти резисторы являются токоограничивающими (ограничивают токи,
протекающие через светодиоды). В общем-то светодиоды бывают разные - у одних
номинальный ток 10мА, у других 5 мА, у одних падение 1,5В, у других 2В и т.д.
Как в общем случае посчитать номинал токоограничивающего резистора?
RTO=(UПИТ-UD-UTR1-UTR2)/IНОМ,
(2.1)
где
UПИТ - напряжение питания,
UD
- падение напряжения на светодиоде,
UTR1
- падение напряжения (коллектор-эмиттер) на открытом транзисторе 1 (драйвер
строки),
UTR2
- падение напряжения (коллектор-эмитер) на открытом транзисторе 2 (драйвер
столбца),
IНОМ
- номинальный ток светодиода.
R26
- R35 = 470 Ом. Эти резисторы ограничивают токи баз транзисторов.
R36
= 1 кОм. Резистор, подтягивающий -MCLR к питанию.
С1
= 0,1 мкФ. Конденсатор, фильтрующий ВЧ помехи по питанию контроллера .
VT1
- VT5 = КТ315 (падение напряжения в открытом состоянии 0,4 В);
VT6
- VT10 = КТ361 (падение напряжения в открытом состоянии 0,4 В).
Спецификация
элементной базы приведена в Приложении Ж.
2.8
Разработка схемы электрической
принципиальной
По
имеющемуся набору данных построим электрическую схему светодиодной матрицы в
САПР Accel Eda (Рис. 2.10).
Рисунок
2.10 – Схема электрическая принципиальная светодиодной матрицы в САПР Accel Eda
3
ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ОБЪЕКТА РАЗРАБОТКИ
В
данном разделе проводится технико-экономический расчет стоимости светодиодной
матрицы.
Стоимость
устройства будет состоять из стоимости разработки ПО для микроконтроллера,
стоимости разработки конструкторской документации (КД) и стоимости сборки и
испытания устройства.
3.1 Расчет
расходов на ПО, которое разрабатывается
Исходные
данные для расчета стоимости разработки ПО, которое разрабатывается приведены в
таблице 3.1.
Таблица 3.1 – Исходные данные по предприятию
№п/п |
Статьи затрат |
Усл.
обоз. |
Ед. изм. |
Значения |
|
|
|
Проектирование
и разработка ПО |
|
1 |
Часовая тарифная ставка программиста |
Зпр
|
грн. |
8,00 |
|
2 |
Коэффициент сложности программы |
с |
коэф. |
1,40 |
|
3 |
Коэффициент коррекции программы |
Р |
коэф. |
0,05 |
|
4 |
Коэффициент увеличения расходов труда |
Z |
коэф. |
1,3 |
|
5 |
Коэффициент квалификации программиста |
k |
коэф. |
1,0 |
|
6 |
Амортизационные
отчисления |
Амт
|
% |
10,0 |
|
7 |
Мощность компьютера, принтера |
WМ
|
Квт/ч |
0,40 |
|
8 |
Стоимость ПЕОМ IBM
Sempron LE1150(AM2)/1GB/TFT
|
Втз
|
грн. |
3200,00 |
9 |
Тариф на электроэнергию |
Це/е
|
грн. |
0,56 |
10 |
Норма дополнительной зарплаты |
Нд
|
% |
10,0 |
11 |
Отчисление на социальные расходы |
Нсоц
|
% |
37,2 |
12 |
Транспортно-заготовительные расходы |
Нтр
|
% |
4,0 |
Эксплуатация П0 |
|
13 |
Численность обслуживающего персонала |
Чо
|
чел |
1 |
|
14 |
Часовая тарифная ставка обслуживающего персонала |
Зпер
|
грн. |
6,00 |
15 |
Время обслуживания систем |
То
|
час/г |
150 |
16 |
Стоимость ПЕОМ |
Втз
|
грн. |
3200,00 |
17 |
Норма амортизационных отчислений на ПЕОМ |
На
|
% |
10,0 |
18 |
Норма амортизационных отчислений на ПЗ |
НаПО
|
% |
10,0 |
19 |
Накладные расходы |
Рнак
|
% |
25,0 |
20 |
Отчисление на содержание и ремонт ПЕОМ |
Нр
|
% |
10,0 |
21 |
Стоимость работы одного часа ПЕОМ |
Вг
|
грн. |
6,5 |
Первичными
исходными данными для определения себестоимости ПО является количество исходных
команд (операторов) конечного программного продукта. Условное количество
операторов Q в программе задания может быть оценено по формуле:
, (3.1)
где у – расчетное количество
операторов в программе, что разрабатывается (единиц);
с –
коэффициент сложности программы;
р –
коэффициент коррекции программы в ходе ее разработки.
Рассчитанное
количество операторов в разработанной программе – 500.
Коэффициент
с – относительная сложность задания относительно
отношения к типичной задаче, сложность которой принята более 1, лежит в границах
от 1,25 до 2,0 и выбирается равным 1,30.
Коэффициент коррекции программы р
–
увеличение объема работ за счет внесения изменений в программу лежит в границах
от 0,05 до 0,1 и выбирается равным 0,05.
Подставим
выбранные значения в формулу (3.1) и определим величину Q:
Q
= 200∙1,3 (1 + 0,05) = 273.
3.2 Расчет
расходов на создание ПО
Расчет
расходов на ПО проводится методом калькуляции расходов, в основу которого
положена трудоемкость и заработная плата разработчиков. Трудоемкость разработки
ПО рассчитывается по формуле:
(3.2)
где
То – расходы труда на описание задания;
Ти –
расходы труда на изучение описания задания;
Та
– расходы труда на разработку алгоритма решения
задания;
Тп –
расходы труда на составление программы по готовой блок-схеме;
Тотл
– расходы труда на отладку программы на ЭВМ;
Тд
– расходы труда на подготовку документации.
Составные расходы труда, в свою очередь, можно
определить по числу операторов Q для ПО, которое разрабатывается. При оценке
расходов труда используются:
-
коэффициенты квалификации разработчика алгоритмов и программ – k;
– увеличение
расходов труда в результате недостаточного описания задания – Z.
Коэффициент
квалификации разработчика характеризует меру подготовленности исполнителя к
порученной ему работе (он задается в зависимости от стажа работы), k = 1,0.
Коэффициент
увеличения расходов труда в результате недостаточного описания задания
характеризует качество постановки задания, выданного для разработки программы,
в связи с тем, что задание требовало уточнения и некоторой доработки. Этот
коэффициент принимается равным 1,3.
Все
исходные данные приведенные в таблице 3.1.
а)
Трудоемкость разработки П0 составляет:
Расходы труда
на подготовку описания задания То принимаются равными 5 чел/час,
исходя из опыта работы.
Расходы труда
на изучение описания задания Те с учетом уточнения описания и
квалификации программиста могут быть определены по формуле:
; (3.3)
Ти
=
273∙1,3/80∙1 = 5(чел/час)
Расходы труда
на разработку алгоритма решения задачи рассчитываются по
формуле:
; (3.4)
Та=273/25∙1
= 11 (чел/час)
Расходы труда на составление программы по готовой
блок-схеме Тп рассчитываются по формуле:
; (3.5)
(чел/час)
Расходы труда на отладку программы на ПЕОМ Тотл
рассчитываются по формуле:
-
при автономной
отладке одного задания:
-
; (3.6)
(чел/час)
-
при комплексной отладке задания:
; (3.7)
(чел/час)
Расходы труда на подготовку документации по заданию Тд
определяются по формуле:
, (3.8)
где Тдр
– расходы труда на подготовку материалов в
рукописи:
; (3.9)
(чел/час)
Тдо
– расходы труда на редактирование, печать и
оформление документация:
. (3.10)
(чел/час)
Подставляя приобретенных значений в
формулу (3.8), получим:
(чел/час)
Определим
трудоемкость разработки ПО, подставив полученные значения составляющих в
формулу (3.2):
Страницы: 1, 2, 3, 4, 5
|