четверг, 3 января 2013 г.

Удаленное управление лабораторным оборудованием


 ... так в общем виде звучала тема моего дипломного проекта.

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

 В период написания, даже не так (написался он буквально за 2 недели) - в период реализации присутствовала и лень, и опускались руки, но в итоге в моей голове постоянно генерировались мысли/идеи как же выпутаться из сложившейся ситуации, т.к. сдаваться я не собирался! Место было даже для монотонного копи/паста кусков кода, текста и т.п. когда голова уже отказывалась думать, а на остановку просто не было времени.

 Ну, что я всЁ о грустном да о грустном...? Ведь было и "пиФко" вместо напряженного рабочего дня и хорошая компания, сидели мы (проект разбит на двух людей) у преподавателя в "коморке" за паяльной станцией куда постоянно захаживали знакомые по делу и просто так.. А постоянно включенное радио Рокс бодрило своими эфирами.

 Немного о сути проекта..

Задача: Разработать систему удаленного управления лабораторным оборудованием. Подсистему передачи и визуализации данных. Подсистему сбора данных и управления.

...слова, конечно, красивые, громкие, но на деле, как сейчас принято говорить у меня на работе, scope был значительно урезан...

 Задействованные технологии:
Микроконтроллер фирмы NXP LPC1768 - это семейство ARM Cortex-M3   с   широчайшим  набором внутренней периферии:  Ethernet, USB Host/Client, CAN, RS232, SPI, I2C и т.д.


 
Подключенная периферия:

v Ethernet 10/100M PHY - KS8721BL, тип интерфейса – RMII

v USB2.0 - full speed Host, Client

v CAN PHY

v RS232 приемопередатчик

v 56 линий PIO микроконтроллера.



Программирование/отладка:

v Стандартный 20-ти выводной разъем для подключения JTAG программатора/отладчика LPC1768.

v Загрузка через COM порт.

Для сбора данных и управления лабораторным оборудованием LPC1768 располагает: 
v 8 канальным 12 битным АЦП

v 10 битный ЦАПом

v ШИМом для управления мотором 
v до 70 линий ввода-вывода общего назначения

Многозадачная операционная система реального времени RTX Keil, которая осуществляет управление процессорным временем, семафорами (для распределения ресурсов), событиями (для синхронизации задач) и почтовыми ящиками (для связи между задачами). RTX легко настраивается при помощи файла конфигурации.
 

 Собственно взаимодействие компонентов, с фотографиями того, что получилось в итоге:


 Не буду мучать "сухим" текстом, что и как происходит, а приведу UML-диаграмму действий:
 (прошу прощения за украинский язык в некоторых местах и за не совсем приемлемое качество, исходники не сохранились, восстанавливал из чего было..)

Так же была просчитана экономическая часть, результаты которой приведены чуть ниже:

Расчет стоимости аппаратного обеспечения, необходимого для функционирования программного продукта

-->
Наименование оборудования
Цена, грн./шт.
Количество, шт.
Стоимость, грн.
1.Стенд SK-MLPC1768
698,00
1
698,00
2.Индикатор TIC32
70,00
1
70,00
3.Резистор SMD 4,7 кОм
1,50
2
3,00
3.Резистор SMD 100Ом
1,50
15
22,50
4.Стабилизатор напряжения 3,3V
24,00
1
24,00
5.Транзисторы
2,50
3
7,50
6.Блок питания 9V
30,00
1
30,00
Итого: Стоимость покупки оборудования, грн.
855,00
Стоимость транспортно-заготовочных затрат (3%), грн.
25,65
Стоимость монтажных работ и настройка (4%), грн.
34,20
Стоимость аппаратного обеспечения, грн.
914,85


Результаты расчетов себестоимости разработки программного продукта

-->
Наименование показателя
Обозначение
Значение
грн.
%
1. Стоимость затратных материалов, грн.
См
236,20
1,41
2. Стоимость на общую заработную плату разработчиков ПО, грн.
Сзп
7969,89
47,45
3. Отчисления с заработной платы разработчиков ПО в фонды соц. страхования, грн.
Ссоц
2063,75
12,29
4. Затраты на оплату машинного времени при разработке программного продукта, грн
Соб
6356,63
37,85
5. Другие накладные расходы, грн.
Сін
168,38
1,00
Итого: Сумма затрат на разработку ПО, грн.
СПЗ
16794,85
100



... вот, приблизительно, в таком стиле выглядел мой дипломный проект. Я опустил кучу исходного кода, хвастаться там особо нечем..
 Отмечу только, что больше всего "головняка" было связано с адекватным заведением Web-сервера (да, да мы по сети стучались на наш микроконтроллер и он отдавал нам HTML'ину с текущими значениями датчиков), как же мы все таки "танцевали", когда увидели эту страничку на своем мониторе :) А как вы танцуете, когда у вас на стенде зажегся светодиод?? :)
 Так же пришлось по-мучаться с I2C протоколом (мы заводили  экранчик TIC32 c RGB подсветкой), в итоге нашел в сети программную реализацию и допилял ее до необходимого состояния (отладка I2C - это совершенно отдельная история, был я не один и мату было много :) ), благо операционка реального времени у нас была мультизадачная и можностей контроллера хватало, что бы гонять кучу процессов одновременно..

 Ну, а сейчас немного фотографий (из тех, что выжили, в основном из телефона)..

 Это мы на стадии "чертов LPC, давай фурыч!!!"


 Разводкой, в основном, занимался мой напарник


 А это, всего на всего, - сверлю отверстия для ножек МК в плате


Демонстрационная плата, наглядно показывающая чем, в будущем, с помощью нашего проекта можно будет управлять (в основном задействована периферия встроенная в плату SK-MLPC1768)


 Итоговый модуль управления лабораторными стендами


 Ну и на последок, небольшое видиео, что умел делать наш промежуточный вариант (окончательный так и не был запечатлен)




Комментариев нет:

Отправить комментарий