Ela.kpi.ua
Нац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут?мен? ?ГОРЯ С?КОРСЬКОГО?ФАКУЛЬТЕТ Б?ОМЕДИЧНО? ?НЖЕНЕР??(повна назва ?нституту/факультету)КАФЕДРА Б?ОМЕДИЧНО? ?НЖЕНЕР??(повна назва кафедри)До захисту допущено:Зав?дувач кафедри______ Владислав ШЛИКОВ (п?дпис) (Власне ?м’я, ПР?ЗВИЩЕ)?___?_____________2021 р.Дипломна роботана здобуття ступеня бакалавраза осв?тньо-профес?йною програмою ?Медична ?нженер?я? (назва)з? спец?альност? 163 ?Б?омедична ?нженер?я? (код та назва)на тему: Програмно-апаратний комплекс для досл?дження кровотоку в к?нц?вках. Програмне забезпечення.Виконав: студент 4 курсу, групи БМ-72 (шифр групи) Чапля Дмитро Володимирович _____ (пр?звище, ?м’я, по батьков?) (п?дпис) Кер?вник доц. каф. БМ? к.т.н. Богомолов Микола Федорович _____ (посада, науковий ступ?нь, вчене звання пр?звище, ?м’я, по батьков?) (п?дпис) Консультант 4 доцент к.т.н Демчук Гл?б В?кторович _____ (номер розд?лу)(посада, вчене звання, науковий ступ?нь, пр?звище, ?м’я, по батьков?) (п?дпис) Нормоконтроль ?нженер 1 категор?? Андре?в Петро ?ванович _____ (посада, вчене звання, науковий ступ?нь, пр?звище, ?м’я, по батьков?) (п?дпис) Рецензент ст. викл. каф. ТМБ?, Големб?овська Олена ?гор?вна _____ (посада, науковий ступ?нь, вчене звання, науковий ступ?нь, пр?звище, ?м’я, по батьков?) (п?дпис) Засв?дчую, що у ц?й дипломн?й робот? нема? запозичень з праць ?нших автор?в без в?дпов?дних посилань.Студент ____________ (п?дпис)Ки?в – 2021Нац?ональний техн?чний ун?верситет Укра?ни ?Ки?вський пол?техн?чний ?нститут?мен? ?горя С?корського?Факультет (?нститут) Б?омедично? ?нженер??Кафедра Б?омедично? ?нженер?? Р?вень вищо? осв?ти Перший (бакалаврський)Спец?альн?сть 163 ?Б?омедична ?нженер?я? Осв?тньо-профес?йна програма ?Кл?н?чна ?нженер?я? ЗАТВЕРДЖУЮЗав?дувач кафедри______ Владислав ШЛИКОВ (п?дпис) (Власне ?м’я, ПР?ЗВИЩЕ)?___?_____________2021 р.ЗАВДАННЯна дипломну роботу студентуЧапл? Дмитру Володимировичу(пр?звище, ?м’я, по батьков?)1. Тема роботи: Програмно-апаратний комплекс для досл?дження кровотоку в к?нц?вках. Програмне забезпечення.Кер?вник роботи Богомолов Микола Федорович доц. каф. БМ?, к.т.н., (пр?звище, ?м’я, по батьков?, науковий ступ?нь, вчене звання)затверджен? наказом по ун?верситету в?д ?27? травня 2021 р. № 1361-с2. Терм?н подання студентом роботи 06.06.20213. Вих?дн? дан? до роботи: наукова, медична та техн?чна л?тература; програмн? продукти: Python IDLE, Raspbian Jessie, Anydesk, Etcher, Mathlab, PulseLight Control, IRISYS 4000 Series Imager, Basler Video Recording Software, Wine.4. Зм?ст роботи: провести огляд л?тератури щодо метод?в досл?дження, використаних в робот?; розробити систему налаштувань та програмний продукт для роботи комплексу; розробити алгоритм проведення досл?дження; розглянути можлив? небезпеки використання комплексу.5. Перел?к ?люстративного матер?алу: презентац?я у Power Point6. Консультанти розд?л?в роботиРозд?лПр?звище, ?н?ц?али та посада консультантаП?дпис, датазавдання видавзавданняприйняв4Доц. к.т.н Демчук Гл?б В?кторович47. Дата видач? завдання 02.03.2021Календарний план№ з/пНазва етап?в виконання дипломно? роботи (проекту) Строк виконання етап?в роботи (проекту) Прим?тка1Огляд л?тературних джерел10.04.2021 р. – 25.04.2021 2Досл?дження ?снуючого програмного забезпечення26.04.2021 р. – 28.04.2021 р. 3Визначення мети роботи та основних функц?й програмного забезпечення29.04.2021 р. – 02.05.2021 р. 4Розробка алгоритму проведення досл?дження03.05.2021 р. – 05.05.2021 р. 5Створення програмного коду системи охолодження06.05.2021 р. – 09.05.2021 р. 6Реал?зац?я програмного забезпечення для проведення досл?дження10.05.2021 р. – 19.05.2021 р. 7Написання розд?лу ?Охорона прац??21.05.2021 р. – 31.05.2021 р. 7Оформлення дипломно? роботи31.05.2021 р. – 04.06.2021 р. 8Оформлення презентац?? для захисту роботи04.06.2021 р. – 06.06.2021 р. 9П?дготовка до захисту дипломно? робот?07.06.2021 р. – 13.06.2021 р.10Захист дипломно? роботи12.06.2021Студент ____________ Дмитро ЧАПЛЯ (п?дпис)(Власне ?м’я, ПР?ЗВИЩЕ)Кер?вник роботи ____________ Микола БОГОМОЛОВ(п?дпис)(Власне ?м’я, ПР?ЗВИЩЕ)АНОТАЦ?ЯТема дипломно? роботи: ?Програмно-апаратний комплекс для досл?дження кровотоку в к?нц?вках. Програмне забезпечення.?.Обсяг дипломно? роботи становить 50 стор?нок, м?ститься 16 ?люстрац?й, 7 таблиць. Загалом опрацьовано 27 джерел.Актуальн?сть: Досл?дження артер?й, вен та м?кроциркуляц?? п?д впливом р?зних фактор?в залиша?ться нагальною проблемою. ?нформац?я про стан кровотоку в к?нц?вках може знадобитися для д?агностики велико? к?лькост? захворювань, а саме: атеросклероз, варикоз, тромбоз ? тромбофлеб?т, ускладнення при цукровому д?абет?, гостра артер?альна непрох?дн?сть тощо. В робот? Пузика М.Ю. розгляда?ться створення апаратно? частини програмно-апаратного комплексу для досл?дження параметр?в кровотоку на основ? анал?зу спекл картини та даних в?д теплов?зора ? фотоплетизмограми в реальному час?. Для функц?онування цього комплексу було розроблено спец?ал?зований програмний код. Метою роботи ? розробка ПЗ для ПАК, налаштування материнсько? плати для сум?сно? роботи компонент?в, опис методики проведення досл?дження та розгляд алгоритм?в обробки ?нформац?? ? анал?зу досл?джень.Завданням роботи ?: розглянути теоретичн? основи д?агностичних методик, що використовують прилади зад?ян? в комплекс?, проанал?зувати ПЗ для прилад?в, що використовуються, розробка коду для материнсько? плати, створення програми для комп’ютера, описати методику проведення досл?дження пац?ента, розгляд алгоритм?в обробки ?нформац?? ? анал?зу.Ключов? слова: спекл-контрастн? зображення, фотоплетизмограма, теплов?зор, програмний код, Raspberry Pi.ABSTRACTTheme of the thesis: “Software and hardware complex for the diagnosis of blood flow in the extremities. Software development ”.The amount of work is 50 pages long, contains 16 illustrations, 7 tables. In total, 27 sources were processed. Relevance: The study of arteries, veins, and microcirculation under the influence of various factors remains an urgent problem. Information about the state of blood flow in the extremities may be needed to diagnose many diseases, namely: atherosclerosis, varicose veins, thrombosis and thrombophlebitis, complications of diabetes, acute arterial obstruction, and more. In the work of Puzyk M.Yu., the creation of a hardware part of the software-hardware complex for research of parameters of a blood-groove based on the analysis of speckles of a picture and data from the thermal imager and the photoplethysmogram in real-time is considered. A specialized program code has been developed for the functioning of this complex. The purpose of the work is to develop software for complex, configure the motherboard for interoperability of components, description of research methods, and consideration of algorithms for information processing and analysis of diagnostic techniques used by devices. The task of the work is: to consider the theoretical foundations of diagnostic techniques using devices involved in the complex, to analyze the software for used devices, to develop code for the motherboard, to create a computer program, to describe methods of patient research, algorithms for information processing and analysis.Keywords: speckle contrast images, photoplethysmogram, thermal imager, program code, Raspberry Pi.ЗМ?СТ TOC \o "1-3" \h \z \u СПИСОК УМОВНИХ СКОРОЧЕНЬ PAGEREF _Toc73639754 \h 8ВСТУП PAGEREF _Toc73639755 \h 9РОЗД?Л 1 ОГЛЯД Л?ТЕРАТУРИ PAGEREF _Toc73639756 \h 111.1 Лазерна спекл-контрастна в?зуал?зац?я PAGEREF _Toc73639757 \h 111.2 Комп’ютерна фотоплетизмограф?я PAGEREF _Toc73639758 \h 121.3 Медична термограф?я к?нц?вок PAGEREF _Toc73639759 \h 141.4 Програмне забезпечення для кодування плати PAGEREF _Toc73639760 \h 161.4.1 Операц?йна система PAGEREF _Toc73639761 \h 161.4.2 Середовище програмування PAGEREF _Toc73639762 \h 171.4.3 Робота з RPi.GPIO PAGEREF _Toc73639763 \h 181.4.4 Асинхронне програмування на Python PAGEREF _Toc73639764 \h 20Висновок до розд?лу 1 PAGEREF _Toc73639765 \h 21РОЗД?Л 2 РОЗРОБКА ПЗ ДЛЯ СИНХРОН?ЗАЦ?? ПРОГРАМНО-АПАРАТНОГО КОМПЛЕКСУ З КОМП’ЮТЕРОМ PAGEREF _Toc73639766 \h 222.1 Завантаження програм та ?х налаштування для роботи з Raspberry Pi PAGEREF _Toc73639767 \h 222.2 Налаштування в?ддаленого доступу PAGEREF _Toc73639768 \h 232.3 Анал?з ?снуючого програмного забезпечення PAGEREF _Toc73639769 \h 242.3.1 Теплов?зор IRI 4040 PAGEREF _Toc73639770 \h 242.3.2 Фотоплетизмораф Pulse Lite PAGEREF _Toc73639771 \h 262.3.3 КМОП камера PAGEREF _Toc73639772 \h 262.4 Встановлення емулятора Wine, для запуска програми роботи з ФПГ PAGEREF _Toc73639773 \h 272.5 Програмний код роботи системи охолодження PAGEREF _Toc73639774 \h 28Висновки до розд?лу 2 PAGEREF _Toc73639775 \h 32РОЗД?Л 3 МЕТОДИКА ПРОВЕДЕННЯ ДОСЛ?ДЖЕННЯ ТА АНАЛ?З РЕЗУЛЬТАТ?В PAGEREF _Toc73639776 \h 333.1 ?нструкц?я з використання ПАК PAGEREF _Toc73639777 \h 333.2 Алгоритм проведення досл?дження верхньо? к?нц?вки PAGEREF _Toc73639778 \h 343.3 Алгоритм проведення досл?дження нижньо? к?нц?вки PAGEREF _Toc73639779 \h 343.4 Опис алгоритму для обробки спекл-картини PAGEREF _Toc73639780 \h 35РОЗД?Л 4 ОХОРОНА ПРАЦ? PAGEREF _Toc73639781 \h 374.1 Характеристики об'?кту що проекту?ться PAGEREF _Toc73639782 \h 374.1.1 Характеристики об’?кту PAGEREF _Toc73639783 \h 374.1.2 Складов? частини об’?кту PAGEREF _Toc73639784 \h 384.1.3 Характер вза?мод?? об’?кту в систем? ?людина – об’?кт? PAGEREF _Toc73639785 \h 404.2 Оц?нка потенц?йних небезпек що створюються конструкц??ю об’?кту, який проекту?ться та заходи ?х усунення PAGEREF _Toc73639786 \h 404.2.1 Небезпека ураження електричним струмом PAGEREF _Toc73639787 \h 414.2.2 Небезпека займання PAGEREF _Toc73639788 \h 424.3 Розробка ??нструкц?? по техн?ц? безпеки при експлуатац?? спроектованого об’?кту? PAGEREF _Toc73639789 \h 44Висновки до розд?лу 4 PAGEREF _Toc73639790 \h 44ВИСНОВКИ PAGEREF _Toc73639791 \h 46СПИСОК Л?ТЕРАТУРИ PAGEREF _Toc73639792 \h 48ДОДАТОК А PAGEREF _Toc73639793 \h 51СПИСОК УМОВНИХ СКОРОЧЕНЬПЗ–Програмне забезпеченняПАК–Програмно-апаратний комплексЛСКА–Лазерний спекл-контрастний анал?зКМОН–Комплементарна структура метал-оксид-нап?впров?дникОС–Операц?йна системаВСТУППрограмно-апаратний комплекс (ПАК) для досл?дження характеристик кровотоку к?нц?вки вимага? розробки власного програмного забезпечення для коректно? роботи. Це обумовлено тим, що ПАК використову? прилади та електронн? компоненти (материнську плату, КМОП камеру, медичний теплов?зор, комп'ютерний фотоплетизмограф, манжету з насосом), кожен з яких ма? власне ПЗ для передач? та в?дображення даних на комп’ютер? чи власному екран?. Водночас сл?д врахувати, що кожен блок ПАК ма? особливост? п?дключення, р?зн? типи команд та розширень файл?в результату. Тож було прийнято р?шення розробити власне ПЗ, що дозволить керувати роботою кожного компонента в одному додатку [10-12]. Для правильно? роботи системи, материнська плата на основ? Raspberry Рi потребу? встановлення та вдосконалення операц?йно? системи. Щоб забезпечити безавар?йну роботу ПАК, в робот? було розроблено програмний код системи охолодження, що значно покращить стаб?льн?сть ? точн?сть роботи приладу.У раз? використання прототип?в комплексу на практиц?, л?кар? повинн? бути забезпечен? ч?ткою ?нструкц??ю по робот? з розроблюваним ПЗ.Для можливост? анал?зу отриманих результат?в в?ддалено а також для виконання серв?сних роб?т, необх?дно забезпечити можлив?сть двостороннього обм?ну файлами, та керування системою в режим? онлайн.Метою роботи ? розробка ПЗ для ПАК, налаштування материнсько? плати для сум?сно? роботи компонент?в, опис методики проведення досл?дження та розгляд алгоритм?в обробки ?нформац?? ? анал?зу д?агностичних методик, що використовують прилади.Завдання дипломно? роботи:1. Розглянути теоретичн? основи д?агностичних методик, що використовують прилади зад?ян? в комплекс?.2. Проанал?зувати ПЗ для прилад?в, що використовуються.3. Розробка системи налаштувань для материнсько? плати (Raspberry Pi).4. Розробка власного ПЗ для проведення досл?дження.5. Розгляд алгоритм?в обробки ?нформац?? ? анал?зу.6. Розробка схем проведення лабораторних досл?джень, в залежност? в?д ?х мети.7.Розробка детально? ?нструкц?? по робот? з створеним ПЗ.8. Налаштування ефективного в?ддаленого доступу до ПАК з будь-якого ПКРОЗД?Л 1ОГЛЯД Л?ТЕРАТУРИ1.1 Лазерна спекл-контрастна в?зуал?зац?яКоли когерентне св?тло в?д лазерного джерела вза?мод?? з нап?впрозорим середовищем, ?нтерференц?я м?ж вих?дними хвилями створю? зернист? структури крапок, як? кодують коливання фаз ус?х промен?в (випадкових вектор?в), що досягають точки.?Контраст лазерних спекл?в зменшу?ться при рус? об’?кт?в, що розс?юють св?тло, всередин? нап?впрозорого середовища.?Це каже про те, що контраст лазерного спекла може бути використаний для виведення динам?чних властивостей середовища. Зм?ни локально? динам?ки в спостережуваному об'?кт? (рух розс?юючих частинок) призводить до флуктуац?й спекл-структури. Рисунок 1.1 –Просторов? спекл-контрастн? зображення (верхн?й рядок), часов? спекл-контрастн? зображення ? зображення коеф?ц??нта спекл-динам?ки, розрахован? для транскран?ально? в?зуал?зац?? мозку миш? з використанням 10, 5, 3 ? 1 посл?довних спекл-зображень [1].Детектування под?бно? спекл-структури за допомогою камери з к?нцевим часом експозиц?? призводить до розмиття одержуваного спекл-зображення в областях, що в?дпов?дають руху розс?юючих частинок. Б?льш того, чим ?нтенсивн?ше рух в спостережуваному об'?кт?, тим б?льш розмитим буде спекл-зображення, ре?строване камерою. Статистичний анал?з спекл-структури дозволя? оц?нити середню швидк?сть частинок в середовищ? [1].Для реал?зац?? анал?зу спекл-структур в?дом? способи побудови оптичних систем ре?страц?? спекл-картин, як? можуть бути реал?зован? за схемами запису з л?нзово? ? безл?нзово? Фур'?-спеклограми з? з’?мними ? нез’?мними об'?ктивами цифрово? камери, з урахуванням характеристик джерел ? приймач?в оптичного випром?нювання, а також з урахуванням в?дстан? в?д розс?ю? об'?кта до площини ре?страц?? спекл-картин [5]. В к?нцевому результат? отримана спекл картина з камери переда?ться на ПК ? з урахуванням вс?х вищезазначених показник?в обробля?ться в середовищ? Matlab чи за допомогою власного ПЗ.1.2 Комп’ютерна фотоплетизмограф?яФотоплетизмограф?чний сигнал явля? собою зм?ну в час? обсягу кровоносно? судини п?д д??ю пульсових хвиль. Для ре?страц?? фотоплетизмограф?чного сигналу через досл?джувану д?лянку б?олог?чно? тканини пропуска?ться пот?к випром?нювання оптичного або ?нфрачервоного д?апазону. Величина сигналу вим?рю?ться як ослаблення випром?нювання, що проходить через досл?джуваний д?лянку б?олог?чно? тканини, що м?стить кровоносну судину (або в?дбитого в?д д?лянки досл?джувано? б?олог?чно? тканини). Ре?страц?я та вид?лення пульсово? складово? сигналу, що характеризу? зм?ну розм?р?в артер?альних судин з кожним серцевим циклом, дозволя? досл?джувати еластичн? властивост? кровоносних судин [6].Кожен фрагмент ФПГ-сигналу явля? собою периферичну пульсову хвилю. Максимум ц??? хвил? в?дпов?да? моменту максимального насичення кров? судиною - систол?, а м?н?мум - д?астол?. Ампл?туда ре?строваних коливань залежить в?д р?зниц? тиску в судинах при систол? ? д?астол?. Рисунок?1.2 – Схематичне зображення пульсово? хвил?. А1 в?дпов?да? анакротичному пер?оду (утворю?ться в пер?од систоли), А2 – Дикротичному (в?дпов?да? д?астол?чному пер?оду)Досл?джуван? параметри фотоплетизмограми групуються за двома ознаками:1. За вертикальною в?ссю вивчаються ампл?тудн? характеристики пульсово? хвил?, в?дпов?дн? анакротичному ? дикротичному пер?оду. Незважаючи на те, що ц? параметри ? в?дносними, ?х вивчення в динам?ц? нада? ц?нну ?нформац?ю про силу судинно? реакц??. У ц?й груп? ознак вивчаються ампл?туда анакротично? ? дикротично? хвил?, ?ндекс дикротично? хвил?. Останн?й показник ма? абсолютне значення ? ма? власн? нормативн? показники. 2. По горизонтальн?й ос? вивчаються часов? характеристики пульсово? хвил?, що надають ?нформац?ю про тривал?сть серцевого циклу, сп?вв?дношенн? та тривалост? систоли ? д?астоли. Ц? параметри мають абсолютн? значення ? можуть пор?внюватися з ?снуючими нормативними показниками. В ц?й груп? параметр?в вивчаються тривал?сть анакротично? фази пульсово? хвил?, тривал?сть дикротично? фази пульсово? хвил?, тривал?сть фази вигнання, тривал?сть пульсово? хвил?, ?ндекс висх?дно? хвил?, час наповнення, тривал?сть систол?чно? фази серцевого циклу, тривал?сть д?астол?чно? фази серцевого циклу, час в?дображення пульсово? хвил?, частота серцевих скорочень [7].1.3 Медична термограф?я к?нц?вокПринцип д?? теплов?зора базу?ться на перетворенн? випром?нення ?нфрачервоного спектру в видимий д?апазон св?тлового випром?нювання.Термограф?я, як сучасний, не?нвазивний метод д?агностики захворювань ? досить недооц?неною, незважаючи на широк? можливост? застосування в р?зних областях сучасно? кл?н?чно? медицини. ? великий пласт наукових напрацювань в област? д?агностики захворювань судин термограф?чними методами, можливост? цього методу з кожним роком розширюються у зв'язку з появою нових сучасних теплов?з?йних камер та розробкою нового програмного забезпечення.Ц?нн?сть термограф?чно? д?агностики проявля?ться особливо при необх?дност? проведення багаторазових досл?джень в процес? динам?чного спостереження ? л?кування [20].Варикозне розширення вен нижн?х к?нц?вок представлено нер?вном?рним м?шковидним повздовжн?м розширенням вен, що супроводжу?ться зупинкою роботи клапан?в ? порушенням кровотоку.Обстеження вен нижн?х к?нц?вок ? класичною ?люстрац??ю переваг теплов?з?йно? д?агностики перед ?ншими ?нструментальними методами досл?джень. Проблемою номер один в кл?н?чн?й флеболог?? сто?ть питання раннього розп?знавання варикозного розширення вен нижн?х к?нц?вок, розп?знавання т??? стад??, коли ще можливе л?кування цього дуже поширеного захворювання без х?рург?чного втручання.Прямим методом спостереження судин ? флебограф?я – рентген?вське досл?дження вен з введенням в них контрастно? речовини. Однак призначення обов'язково? флебограф?? при в?дсутност? в?зуальних ознак варикозного розширення вен, не ? доц?льним через велику долю шк?дливого впливу даного методу на орган?зм. Теплов?з?йна д?агностика здатна виявляти не т?льки видим? випадки варикозно? хвороби ? тромбофлеб?ту, а й застосовуватися для д?агностики прихованих ?х форм, коли при зовн?шньому огляд? вени не зм?нен?. Кр?м того, теплов?з?йна д?агностика дозволя? при необх?дност? б?льш точно визначити область х?рург?чного або склерозуючого втручання при л?куванн? варикозного розширення вен ? тромбофлеб?ту, наочно ? безпечно контролювати ефективн?сть проведеного л?кування, об'?ктивно оц?нювати тяжк?сть ? прогноз захворювання. INCLUDEPICTURE "/var/folders/9d/s5d2w82114141wxwsmcs4d4c0000gn/T/com.microsoft.Word/WebArchiveCopyPasteTempFiles/wpid-pic2_fmt.jpeg" \* MERGEFORMATINET Рисунок 1.3 – Термограма пац??нтки (20 рок?в) з варикозним розширенням вен, в?зуально не визнача?ться [19].Захворювання вен нижн?х к?нц?вок ? важливою соц?ально-економ?чно? проблемою. За даними ВООЗ К?льк?сть хворих хрон?чною венозною недостатн?стю зб?льшу?ться щор?чно на 2-4%. Захворювання вен нижн?х к?нц?вок в Укра?н? в тих чи ?нших формах д?агностуються у близько 20% дорослого населення [19].Варикозна хвороба ? тромбофлеб?т нижн?х к?нц?вок ? причиною тромбоембол?? легенево? артер??, одного з поширених ускладнень багатьох захворювань, що представля? загрозу для життя хворого. Частою (70%) причиною тромбоембол?? легенево? артер?? ? гострий тромбоз глибоких вен тазостегнового сегмента ? проксимальних в?дд?л?в вен нижн?х к?нц?вок (п?дкол?нно-бедренний сегмент) Вивчення температурних зм?н в тканинах нижн?х к?нц?вок при варикозн?й хвороб? може дати нову ?нформац?ю про стан м'яких тканин при прогресуванн? варикозно? хвороби з формувнням хрон?чно? венозно? недостатност?.1.4 Програмне забезпечення для кодування плати1.4.1 Операц?йна система?сну? ц?лий ряд дистрибутив?в Linux, як? п?дтримують роботу з Raspberry Pi. Кожен з них ма? сво? особливост?. Серед них на перше м?сце завжди ставлять дистрибутив Raspbian.Raspbian - це дистрибутив Linux, який заснований на ARM верс?? Debian 8 Jessie ? м?стить так? програми за замовчуванням - оф?сний пакет LibreOffice, веб-браузер, поштовий кл??нт - Claws Mail, ненавантажений ан?мац??ю робочий ст?л, а також ?нструменти для програмування. Його розробкою займа?ться Raspberry Pi Foundation ? саме його рекоменду? до використання. М?н?мальн? системн? вимоги для запуску Raspbian: розрядн?сть (32-bit), ЦП на р?вн? Pentium 4,1 ГГц, в?нчестер 780 Mб, оперативна пам'ять 135 Mб.Raspbian використову? середовище робочого столу PIXEL (Pi Improved Xwindows Environment, Lightweight). PIXEL заснована на LXDE ? OpenBox, але ма? певн? в?дм?нност? ? доопрацювання. Завдання розробник?в при його створенн? була в тому, щоб дати користувачам легку ? швидку оболонку, з якою буде просто працювати. Особливо це стосу?ться новачк?в, як? ран?ше не використовували Linux. Дистрибутив представлений у двох вар?антах: Raspbian Jessie з PIXEL ? граф?чною оболонкою, а також Raspbian Jessie Lite - ур?зана верс?я операц?йно? системи для установки базових елемент?в системи без граф?чно? оболонки [9].Рисунок 1.4 – Стартовий екран встановлення ОС Raspbian JessieОсновною перевагою верс?? Raspbian Jessie над ?? полегшеною верс??ю ? зручн?сть, та наочн?сть використання, при незначному п?двищенн? використовуваних потужностей.1.4.2 Середовище програмуванняДля створення додатку, який би контролював роботу ПАК, було обрано мову Python. Основними критер?ями для вибору були: простота, легк?сть розум?ння коду, повна сум?сн?сть з Raspberry Pi (в тому числ? ?снування специф?чних б?бл?отек, таких як RPi.GPIO, та комп?лятора), та висока швидкод?я.В Python ? досить багато GUI фреймворк?в (graphical user interface), однак т?льки Tkinter вбудований в стандартну б?бл?отеку мови. Його ключовою перевагою ? кросплатформов?сть, тому один ? той же код можна використовувати на Windows, macOS ? Linux.Одн??ю з його особливостей ? те, що Tkinter автоматично п?длаштову? зовн?шн?й ?нтерфейс п?д операц?йну систему на яку в?н встановлений. Тому додаток на будь-як?й ОС вигляда? так, н?би був написаний спец?ально для не?. INCLUDEPICTURE "/var/folders/9d/s5d2w82114141wxwsmcs4d4c0000gn/T/com.microsoft.Word/WebArchiveCopyPasteTempFiles/tkinter-os.png" \* MERGEFORMATINET Рисунок 1.5 – Зовн?шн?й вигляд в?кон Tkinter для р?зних ОС, Windows, macOS, Ubuntu.В план? використання, Tkinter – це в?дм?нний виб?р для створення GUI додатк?в в Python, якщо сучасний вигляд не явля?ться пр?оритетом, а велику роль гра? функц?ональн?сть ? швидкод?я.1.4.3 Робота з RPi.GPIOПотужним ?нструментом Raspberry Pi для роботи з зовн?шн?ми пристроями ? модуль GPIO. GPIO – (в?д англ. general-purpose input/output) низькор?вневий ун?версальний ?нтерфейс вводу-виводу прямого керування. В залежност? в?д модел? ? в?д 26 до 40 порт?в р?зного призначення. Приклад стандартного модуля, можна побачити на рисунку 1.6 INCLUDEPICTURE "/var/folders/9d/s5d2w82114141wxwsmcs4d4c0000gn/T/com.microsoft.Word/WebArchiveCopyPasteTempFiles/GPIO-Pinout-Diagram-2.png" \* MERGEFORMATINET Рисунок 1.6 – Зовн?шн?й вигляд, та призначення кожного з п?н?в.Будь-який з п?н?в GPIO може бути позначений (у програмному забезпеченн?) як вх?дний чи вих?дний п? ? використаний для широкого кола ц?лей.На плат? присутн? два виходи 5В ? два виходи 3В, а також к?лька вивод?в заземлення (0В), як? не можна налаштувати. Решта п?н?в - це порти загального призначення 3V3, тобто для входу-виходу р?вень лог?чно? ?1? – 3ВОкр?м простих команд введення та виведення, порти GPIO можуть використовуватися з р?зними альтернативними функц?ями, деяк? доступн? на вс?х штифтах, ?нш? на певних штифтах.Ш?М (широтно-?мпульсна модуляц?я):Програмне забезпечення Ш?М доступне на вс?х контактахАпаратна Ш?М доступна на GPIO12, GPIO13, GPIO18, GPIO19SPI – (посл?довний перифер?йний??нтерфейс):SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)I2C (посл?довна шина даних для зв'язку ?нтегральних схем)Дан?: (GPIO2); Годинник (GPIO3)Дан? EEPROM: (GPIO0); Годинник EEPROM (GPIO1)UART (ун?версальний асинхронний канал прийому-передач? даних):TX (GPIO14); RX (GPIO15)1.4.4 Асинхронне програмування на PythonАсинхронне програмування - це паралельне програмування, при якому одиниця роботи може виконуватися окремо в?д основного потоку виконання програми. П?сля завершення завдання основний пот?к отрима? пов?домлення про завершення або помилку робочого процесу. Цей метод ма? безл?ч переваг, таких як покращення продуктивност? програми та зб?льшення швидкод??.Найб?льш очевидним методом ? використання дек?лькох процес?в (multiprocessing). З терм?налу ви можете запустити програмний код будь-яку к?льк?сть раз?в, ? вс? скрипти будуть працювати незалежно та одночасно. Сама операц?йна система буде в?дпов?дати за розпод?л ресурс?в процесора м?ж ус?ма виконуваними процесами. Або ви можете використовувати спец?альну б?бл?отеку, яка може створювати к?лька процес?в.?ншим способом паралельного запуску дек?лькох завдань ? використання поток?в (threading) . Пот?к – це черга, дуже схожа на процес, але в процес? може бути дек?лька поток?в, ? вс? вони будуть сп?льно використовувати ресурси. Операц?йна система вид?лить пам'ять процесора на кожен пот?к, але модуль глобального блокування ?нтерпретатора (GIL) дозволить лише одному потоку Python працювати в одиницю часу, нав?ть якщо у вас багатопотоковий код. Це да? змогу використовувати лише 1 ядро для роботи програми, нав?ть якщо ?х ? дек?лька.Останн?м способом ? асинхронне програмування, де операц?йна система не бере участ?. З боку операц?йно? системи у вас буде процес лише з одним потоком, але ви все одно можете виконувати к?лька завдань одночасно.Asyncio - це асинхронний модуль програмування, представлений в Python 3.4. Асинхронн?сть ? альтернативою багатопотоковост? для написання паралельних програм. Асинхронн? под?? в?дбуваються незалежно один в?д одного (не синхрон?зовано один з одним), повн?стю в одному потоц?.На в?дм?ну в?д багатопотоковост?, в асинхронних програмах програм?ст контролю?, коли ? як в?дбува?ться дов?льне вит?снення, полегшуючи ?золяц?ю ? уникаючи умов гонки.Висновок до розд?лу 1В першому розд?л? було розглянуто теоритичн? основи метод?в лазерно? спекл-контрасно? в?зуал?зац??, медично? термограф?? та комп'ютерно? фотоплетизмограф??. Це да? змогу розробити програмне забезпечення для отримання та обробки даних сигнал?в. Також було розглянуто характеристики Raspberry Pi, ? вар?анти можливих операц?йних систем. Для написання в?конного додатку було обрано середовище Tkinter, мови Python. Розглянуто його основн? переваги та можливост? використання.З урахуванням характеристик модел? (Raspberry Pi 4), було прийнято р?шення використовувати верс?ю ОС Raspbian Jessie, оск?льки вона оптимально п?дходить для подальшо? роботи системи.Також було розглянуто можливост? порт?в GPIO, та вар?анти ?х використання. Для забезпечення роботи системи охолодження потребу?ться написання асинхронного коду, що дасть змогу контролювати роботу системи в одному додатку. Для цього було розглянуто можливост? мови Python, ?? б?бл?отеки для асинхронного програмування.РОЗД?Л 2РОЗРОБКА ПЗ ДЛЯ СИНХРОН?ЗАЦ?? ПРОГРАМНО-АПАРАТНОГО КОМПЛЕКСУ З КОМП’ЮТЕРОМ 2.1 Завантаження програм та ?х налаштування для роботи з Raspberry PiПроцес установки включа? наступн? кроки:– Завантаження ISO-образу Raspbian (файл представлений у вигляд? zip-арх?ву).– П?дготовка microSD карти (форматування у FAT32)– П?д’?днання microSD карти до Raspberry Pi.– Включення Raspberry Pi ? виконання дек?лькох первинних крок?в.Для завантаження доступн? три види образ?в: Raspbian with desktop and recommended software; Raspbian with desktop; Raspbian Lite. Був обраний перший вар?ант оск?льки це редакц?я з граф?чним оточенням, встановленим набором утил?т ? деякими програмами. Завантажений образ Raspbian потр?бно записати на microSD карту, для чого можна використати програму Etcher.Рисунок 2.1 – Утил?та Etcher для запису образу ОСВибрана microSD карта ма? в?дпов?дати наступним вимогам: Об’?м пам’ят? не менше 32ГБКлас швидкост? не нижче class10Вже п?сля цього можна вставляти карту пам’ят? в слот на зворотн?й сторон? плати ? переходити до безпосередного налаштування плати.Плату потр?бно п?дключити до телев?зора або мон?тора за допомогою кабелю HDMI ? вставити кабель блоку живлення в порт USB type-C. На плат? повинен загор?тися червоний св?тлод?од, який означа?, що живлення п?дключено. На екран? з’явиться в?кно первинного налаштування в якому треба пройти ре?страц?ю, в?дкорегувати розширення екрану та п?дключитися до мереж? Wi-Fi.2.2 Налаштування в?ддаленого доступуДля забезпечення ефективно? роботи ПАК ?сну? необх?дн?сть налаштування в?ддаленого доступу до Raspberry Pi.Найб?льш очевидний метод – використання п?дключення за допомогою SSH (англ. Secure SHell — ?безпечна оболонка?) — мережевий протокол р?вня застосунк?в, що дозволя? проводити в?ддалене керування комп'ютером ? тунелювання TCP-з'?днань (наприклад, для передач? файл?в). Схожий за функц?ональн?стю з протоколом Telnet ? rlogin, проте шифру? весь траф?к, в тому числ? ? парол?, що передаються [21]. Однак такий метод не ? оптимальним, оск?льки при п?дключенн? по SSH, у нас ? змога використовувати лише командну строку, а в?зуальна оболонка не п?дтриму?ться. Для роботи з в?зуальною оболонкою ? доц?льним використання VNC-сервера. Virtual Network Computing (VNC) - система в?ддаленого доступу до робочого столу комп'ютера, що використову? протокол RFB (англ. Remote FrameBuffer, в?ддалений кадровий буфер). Управл?ння зд?йсню?ться шляхом передач? натискань клав?ш на клав?атур? ? рух?в миш? з одного комп'ютера на ?нший ? ретрансляц?? вм?сту екрану через комп'ютерну мережу. Для налаштування VNC на Raspberry Pi, можна скористатись алгоритмом що описаний на ресурс? ?Амперка? [22].Оск?льки, перед початком роботи з ПАК, в?н проходить процедуру попердн?х налаштувань, у серв?сного ?нженера ? можлив?сть спростити процедуру встановлення в?ддаленого доступу, встановивши на виб?р один з додатк?в: Anydesk, Teamviwer. Встановлення цих додатк?в вимага? п?дключення засоб?в вводу/виводу до Raspberry Pi.2.3 Анал?з ?снуючого програмного забезпеченняРозробка власного програмного забезпечення для програмно-апаратного комплексу потребу? проведення анал?з вс?х наявних програм що йдуть в комплект? до прилад?в сум?сних з ПК (Теплов?зор IRI 4040; Комп'ютерний фотоплетизмограф Pulse Lite; КМОП камера Basler ace acA2040-90um).2.3.1 Теплов?зор IRI 4040Окр?м в?дображення температурних показник?в на екран?, теплов?зор IRI 4040 може також передавати данн? через SD-карту чи USB-кабель. Для сер?? 4000 компан?я Irisys дода? в комплект CD диск з програмним забезпеченням IRISYS 4000 Series Imager. Для запуску ПК повинен бути сум?сним з IBM п?д управл?нням Microsoft Windows - XP, VISTA (32 б?т) або б?льш нових верс?й; Програма працю? з в?дзнятими файлами в розширенн? ?.iri?, що являють собою ?нфрачервоне зображення.Рисунок 2.2 – В?кно програми IRISYS 4000 Series ImagerДля б?льш зручного анал?зу в програм? ?сну? список курсор?в вим?рювань (рис. 2.3). Рисунок 2.3 – Список курсор?в вим?рюваньВ?н показу? температуру в точц?, положення на екран? (в п?кселях) та р?зницю м?ж курсорами вим?рювань. В?н також в?добража? найгаряч?ш? та найхолодн?ш? вим?рювання на зображенн?, ?х р?зницю та середню температуру. Також можуть бути показан? максимальна, м?н?мальна та середня температури для поля анал?зу площ? (якщо вибрано в меню перегляду).2.3.2 Фотоплетизмораф Pulse LiteКомп’ютерний фотоплетизмограф Pulse Lite виходить сп?льно з ПЗ ?Pulse Lite Control?, що дозволя? ре?струвати пульсову хвилю, збер?гати фотоплет?змограмми в файл ? проводити контурний анал?з пульсово? хвил? ? анал?з вар?абельност? серцевого ритму. Програма сум?сна для операц?йно? системи Microsoft Windows (XP та старше) для 32 та 64 б?т. Для анал?зу фотоплетизмограми программа використову? файли формату ?.pwv?.а) б)Рисунок?2.4 – В?кно даних пац??нта (а); В?кно ?ндекс?в пульсово? хвил? (б)Для б?льш точного анал?зу в програм? можна ввести данн? пац??нта (рис. 2.4а) та обрати початок ? к?нець анал?зованого фрагмента - одну пульсову хвилю щоб пот?м в програм? вручну розставити маркери (рис. 2.4б).2.3.3 КМОП камераДля роботи КМОП камери Basler ace acA2040-90um п?д?йде будь яка програма для робити з обладнанням що запису? в?део оск?льки комп’ютер в?дразу розп?зна? такий тип пристро?в при п?дключенн? через USB. Розглянемо Basler Video Recording Software що йде з камерою в комплект? на диску. Рисунок?2.5 – В?кно Basler Video Recording SoftwareПрограма сум?сна з операц?йними системами Windows 7, Windows 8.1, Windows 10 (в 32-розрядн?й ? 64-розрядн?й верс??). Програма ма? так? функц?? як: перегляд в режим? реального часу; регулювання зображення; запис в?део в формат? Mpeg4; запис в?део з високою частотою кадр?в для анал?зу зображень в упов?льненому в?дтворенн?; упов?льнена в?део- та фотозйомка для покадрового анал?зу; зйомка зображень за сигналом апаратного тригера.2.4 Встановлення емулятора Wine, для запуска програми роботи з ФПГОск?льки в вибраному блоц? фотоплетизмографа нема можливост? запуску ? зупинки запису за допомогою програмних або апаратних тригер?в, а також роботи в автономному режим? (без з'?днання з ПК) ? необх?дн?сть запуску його ПЗ. Програма Pulse Light Control 2019 розроблена для роботи на ОС Windows, та 32 або 64 розрядних процесорах. Тому без попереднього налаштування середовища запустити ?? на Raspberry Pi можливост? нема?. ?сну? дек?лька шлях?в вир?шення ц??? проблеми:1) Створення порту програми для роботи з Linux-под?бними системами п?д управл?нням процесор?в технолог?? ARM2) Запуск програми в емулятор?Перший спос?б ? дуже трудом?стким, та вимага? наявност? початкового коду.Другий спос?б, в наших умовах, ? б?льш реальним. В якост? емулятора середовища WIN32 було використано особливу зб?рку емулятор?в 32 розрядного процесора ? ОС Windows.Рисунок?2.6 – Робота емулятору Wine Покрокова ?нструкц?я створення емулятора доступна на ресурс? novaspirit [13]. Також на github ? вже готовий образ диску з програмою ? детальною ?нструкц??ю встановлення [14].В результат роботи програми показаний в додатку на рисунку 2.6.2.5 Програмний код роботи системи охолодженняКонтроль робочо? температури приладу ? важливою складовою його правильно? роботи, оск?льки в даному ПАК ? велика к?льк?сть блок?в, чутливих до перегр?ву. Зг?дно техн?чно? документац??, робоча температура для лазера до 65°Процесора Raspberry Pi до 80°Перевищення температури негативно вплине на точн?сть вим?р?в ? швидкод?ю ПАК. В якост? системи термоконтролю використову?ться вбудований датчик температури CPU ? система Ice Tower. Програмний код виконаний як окремий пот?к (thread) програми "Диплом", кожн? три секунди, отриму? сигнал датчика, ? якщо значенн? б?льше порогового, на в?дпов?дний п?н порта GPIO надходить сигнал запуску кулера. Програмний код роботи системи охолодження показаний в додатку А.2.6 Програма для проведення досл?дження "Диплом"В якост? ?диного додатку для проведення досл?дження, було створено програму "Диплом.py". Додаток було написано мовою Python, з використанням б?бл?отеки граф?чного ?нтерфейсу Tkinter (Рисунок 2.7).Рисунок 2.7 – Зовн?шн?й вигляд програми ?Диплом?В основному в?кн? програми ? можлив?сть керувати живленням окремих компонент?в ПАК, тиском в манжет?, та процесом запису досл?дження за допомогою окремих в?джет?в Checkbutton ? Button.Також в в?кн? можна легко сл?дкувати за етапами досл?дження за допомогою в?джету progressbar.Тривал?сть ? к?льк?сть етап?в можна налаштовувати.П?сля завершення досл?дження програма в?дкрива? папку з файлами запис?в фотоплетизмографа, камери ? теплов?зора. Детальна ?нструкц?я роботи з програмою, буде описана в розд?л? 3.1.Для б?льш наглядно? в?зуал?зац?? роботи додатка ?Диплом? пропону?ться функц?ональна схема (рис. 2.8)Рисунок 2.8 – Функц?ональна схема роботи додатка ?Диплом?Як видно на схем?, робота оператора ПАК проводиться незалежно в?д роботи системи охолодження. Це було досягнуто за допомогою використання дек?лькох поток?в. Оск?льки переб?г досл?дження, його тривал?сть, та блоки ПАК як? будуть зад?ян? обира? оператор – функц?онально? схеми досл?дження не ?сну?. Висновки до розд?лу 2 В практичн?й частин? було розглянуто систему попередн?х налаштувань Raspberry Pi, в тому числ? орган?зац?ю в?ддаленого доступу. Також було розглянуто функц?онал програмного забезпечення до кожного з блок?в ПАК: Теплов?зор IRI 4040; Комп'ютерний фотоплетизмограф Pulse Lite; КМОП камера Basler ace acA2040-90um, що використову?ться для обробки сигнал?в ПАК. Для керування системою охолодження, живлення ? початку/к?нця запису для вс?х компонент?в ПАК було створено в?конний додаток ?Диплом?. В?н був написаний за допомогою граф?чного ?нтерфейсу “Tkinter” середовища програмування Python IDLE. Цей додаток легко комп?лю?ться на Raspberry Pi 4 п?д керуванням Raspbian Jessie, оск?льки в б?бл?отеку стандартних компонент?в для ц??? ОС входить Python 3.8 IDLE. РОЗД?Л 3МЕТОДИКА ПРОВЕДЕННЯ ДОСЛ?ДЖЕННЯ ТА АНАЛ?З РЕЗУЛЬТАТ?В3.1 ?нструкц?я з використання ПАК?нструкц?я з використання ПАК:Перед початком роботи впевн?ться в неушкодженост? ?золяц??, та над?йному встановленн? ПАК на жорстк?й поверхн?. Запуст?ть материнську плату в?дпов?дною кнопкою на корпус?. Дочекайтесь повного завантаження системи (близько 30 сек)При робот? з в?ддаленого ПК, в?дкрийте додаток Anydesk, та п?дключ?ться до робочого столу Raspberry Pi. Запуст?ть додаток ?Диплом? Для подач? живлення на кожен з блок?в ПАК встанов?ть галочку на в?дпов?дному блоц?. Керуйте накачкою манжети за допомогою утримання кнопок ?Зб?льшити Тиск? та ?Зменшити Тиск?. Ступ?нь стисканн? к?нц?вки пац??нта манжетою для проведення оклюз?йно? проби оператор обира? з власного досв?ду, однак в модиф?кованому в?дпов?дним чином блоц? ПАК встановлене порогове значення тиску, для уникнення травмування.Керуйте початком запису за допомогою кнопки ?Старт!?При переход? на наступний етап, п?дтвердьте продовження досл?дження кнопкою ?Старт!?Для завершення досл?дження натисн?ть кнопку ?Ф?н?ш? В в?кн? з файлами результат?в, вибер?ть потр?бн? записи, та перешл?ть ?х на ПК за допомогою функц?оналу Anydesk, для подальшого анал?зу. 3.2 Алгоритм проведення досл?дження верхньо? к?нц?вкиАлгоритм проведення досл?дження верхньо? к?нц?вки:1) Перед проведенням досл?дження пац??нт ма? заспоко?тись, сид?ти нерухомо, близько 10 хвилин, для зменшення ймов?рност? рух?в. 2) Про?нформувати пац??нта про переб?г досл?дження3) Надягти пац??нту манжету, та викласти руку на ст?л внутр?шньою поверхнею передпл?ччя вверх, так щоб манжета була на р?вн? серця.4) Накле?ти на передпл?ччя прямокутний шматок медичного пластиру розм?ром 2х3 см. Це референтна область для спекл-контрасного анал?зу, що дозволить вирахувати флуктуац??? спекл-картини в?д дихальних ? ?нших рух?в. 5) Ув?мкнути живлення вс?х блок?в ПАК. 6) Перший етап досл?дження – запис фону – 1 хв7) Другий етап досл?дження – запис оклюз?йно? пробиА) Подача тиску на манжету – 20 секБ) Запис стану оклюз?? – 20 секВ) Зменшення тиску в манжет? – 5 сек8) Трет?й етап досл?дження – запис стану п?сля оклюз?йно? проби – 1 хв9) Анал?з отриманих результат?вА) Анал?з ФПГ, перерахунок АТ з ФПГБ) Анал?з даних термограмиВ) Анал?з спекл-?нтерферограми 10) Постановка д?агнозу3.3 Алгоритм проведення досл?дження нижньо? к?нц?вкиАлгоритм проведення досл?дження нижньо? к?нц?вки:1) Перед проведенням досл?дження пац??нт ма? заспоко?тись, сид?ти нерухомо, близько 10 хвилин, для зменшення ймов?рност? рух?в. 2) Про?нформувати пац??нта про переб?г досл?дження3) Надягти пац??нту манжету на гом?лку. Викласти ногу паралельно тазу, на ст?л внутр?шньою поверхнею гом?лки вверх.4) Поголити д?лянку гом?лки для анал?зу. Накле?ти на п?дготовлену д?лянку прямокутний шматок медичного пластиру розм?ром 2х3 см. Це референтна область для спекл-контрасного анал?зу, що дозволить вирахувати флуктуац??? спекл-картини в?д дихальних ? ?нших рух?в. 5) Ув?мкнути живлення вс?х блок?в ПАК. 6) Перший етап досл?дження – запис фону – 1 хв7) Другий етап досл?дження – запис оклюз?йно? пробиА) Подача тиску на манжету – 20 секБ) Запис стану оклюз?? – 20 секВ) Зменшення тиску в манжет? – 5 сек8) Трет?й етап досл?дження – запис стану п?сля оклюз?йно? проби – 1 хв9) Вим?ряти АТ з передпл?ччя10) Анал?з отриманих результат?вА) Анал?з ФПГ, перерахунок АТ з ФПГ, розрахунок гом?лково-плечового ?ндексу.Б) Анал?з даних термограмиВ) Анал?з спекл-?нтерферограми 11) Постановка д?агнозу3.4 Опис алгоритму для обробки спекл-картиниДля обробки спекл картини, яку зняла камера, буде використовуватися вже ?снуючий алгоритм створений в середовищ? Matlab. Програма розроблена для отримання справжнього контрасту спекл потоку та швидкост? потоку, вим?ряно? ЛСКА при одноразов?й експозиц??, яка спец?ально працювала шляхом усунення статичного розс?ювання, оц?нки та корекц?? шуму. ?сну? дв? основн? програми: (1) кал?брування системи. Кал?брування системи поляга? у вим?рюванн? параметр?в вс??? системи. Анал?зуючи поточне темне зображення та обробляючи результати в?дбитого стандартного об'?му, ми можемо отримати необх?дну системну ?нформац?ю. (2) вим?рювання виб?рки. Вим?рювання зразк?в поляга? у вим?рюванн? справжнього контрасту спекл?в потоку та швидкост? потоку в експеримент? з вим?рювання витрати. Ц? дв? програми не залежать одна в?д одно?. Дан? першо? можна прочитати у друг?й, або параметри друго? програми можна встановити самост?йно. Ця програма ? методом демодуляц?? даних. Рисунок 2.1 – м?стить огляд повних процедур кал?брування системи, вим?рювання зразк?в, корекц?? шуму та статичного розс?ювання [3].50431702937510Вим?рювання виб?рки020000Вим?рювання виб?рки5043956880110Кал?брування системи00Кал?брування системи-2146301337310В?дбитий стандартний об’?м020000В?дбитий стандартний об’?м26680754210685Визначення часу декореляц??00Визначення часу декореляц??34131253327644Визначення спекл-контрасту просторових областей00Визначення спекл-контрасту просторових областей19138903327791Визначення спекл-контрасту часових областей00Визначення спекл-контрасту часових областей33947102358390Визначення динам?чно? частки00Визначення динам?чно? частки19361152358390Оц?нка шуму вим?рювання00Оц?нка шуму вим?рювання34943471230399Визначення фактору когерентност?, β020000Визначення фактору когерентност?, β19202401289165Визначення фактору шуму020000Визначення фактору шуму2278264405765Визначення темного зображення на камер? nd020000Визначення темного зображення на камер? nd2907453-1905Процес020000Процес-2194983349625Пот?к020000Пот?к736602520315Динам?чний зразок020000Динам?чний зразок555837446405Камера020000Камера55435542333Об’?кт020000Об’?ктРисунок 3.1 – Схема процедур кал?брування системиРОЗД?Л 4ОХОРОНА ПРАЦ?Дании? розд?л дипломного проектування виконуватиметься за планом №1, оск?льки комплексна дипломна робота передбача? проектування програмно-апаратного комплеку для досл?дження кровотоку в к?нц?вках.В якост? об'?кту для анал?зу потенц?йних небезпек було обрано частину ПАК, а саме материнську плату, плату керування живленням ? блок живлення. Основна мета цього розд?лу – виявити та оц?нити потенц?йн? небезпеки ? ризики для пац??нта та л?каря, що створюються конструкц??ю об’?кту чи зовн?шн?ми чинниками на цей об’?кт, а також засоби ?х усунення.4.1 Характеристики об'?кту що проекту?ться4.1.1 Характеристики об’?ктуОсновн? техн?чн? характеристики об'?кту наведен? в табл. 4.1.Таблиця 4.1 – Характеристики об’?кту№Найменування приладу та функц?ональних блок?вОсновн? характеристикиК?льк?стьПозиц?я на рисунку1.Материнська плата Raspberry Pi 4 Model BНапруга живлення: 5 ВСтрум живлення: 1,2 АМаксимальний струм: 3 АТемпературний режим: -10…80 0С112.Плата керування живленнямВх?дна напруга – 12ВШирина дор?жок подач? живлення – 1,5 ммШирина дор?жок керування – 0,4ммКлюч? – Troyka v.3123.Блок живленняВх?дна напруга – 220 ВВх?дний струм < 16 А, 50 ГцВих?дна напруга –12 ВВих?дний струм < 5 А, пост?йний13Продовження таблиц? 4.1№Найменування приладу та функц?ональних блок?вОсновн? характеристикиК?льк?стьПозиц?я на рисунку4.перетворювач DC-DC з 12В в 5В, з USB-C виходомВх?дна напруга – 12 ВВх?дний струм < 3АВих?дна напруга – 5 ВВих?дний струм < 3АМатер?ал корпуса – АВС-пластик145.Вторичн? перетворювач? живленняВх?дна напруга – 12 ВВх?дний струм < 3АВих?дна напруга <6 В15Класи використаних компонент?в за способом та ступенем захисту були зазначен? в?дпов?дно до ДСТУ EN 61140:2015 ?Захист проти ураження електричним струмом. Загальн? аспекти щодо установок та обладнання? та ДСТУ EN 61558-2-16:2018 ?Безпечн?сть трансформатор?в, реактор?в, силових блок?в живлення та аналог?чних пристро?в напругою живлення до 1100 В?4.1.2 Складов? частини об’?ктуСкладов? частини об’?кту та зв’язки м?ж компонентами можна побачити на схем? зображен?й на рисунку 4.1.Рисунок 4.1 – Функц?ональна схема живлення пристрою для досл?дження кровотоку в к?нц?вках.Струм в?д джерела живлення пода?ться на материнську плату через ?нвертор, який зменшу? значення пост?йного струму з 12 В до 5 В ? ма? вих?д USB тип C, сум?сний з вбудованим портом живлення. Окр?м цього струм пода?ться на плату контролю живленням, (ключовий блок – ключ Troyka v3). Керування ключами викону? материнська плата. Для деяких компонент?в ПАК потр?бно конф?гурувати параметри живлення, на схем? це вторинн? перетворювач? живлення (перетворювач DC-DC з 12В в 6В, блок живлення лазера). 4.1.3 Характер вза?мод?? об’?кту в систем? ?людина – об’?кт?Таблиця 4.2 – Вза?мод?я об’?кту в систем? ?людина – об’?кт?№Найменування функц?онального блокаВид в?дображення ?нформац??к?льк?сть1.?ндикаторний св?тлод?од блоку живленняСв?дчить про прот?кання струму через блок живлення12.?ндикаторний св?тлод?од материнсько? платиСв?дчить про роботу материнсько? плати. Можна спостер?гати через вентиляц?йний отв?р на корпус? приладу1Оск?льки для анал?зу було обрано частину ПАК, що в?дпов?да? за живлення, користувач не ма? можливост? прямо? вза?мод?? з об’?ктом. ?ндикатори на блоц? живлення та материнськ?й плат? не ? ун?версальними джерелами ?нформац?? щодо коректност? функц?онування ПАК. Несправн?сть об’?кта також можна визначити за наступними ?ндикаторами: Запах гор?лого, видимий димТр?ск, ?скр?ння пров?дник?в4.2 Оц?нка потенц?йних небезпек що створюються конструкц??ю об’?кту, який проекту?ться та заходи ?х усуненняДля того, щоб використання даного приладу було безпечним, без шкоди для здоров'я людини, повинн? бути дотриман? вимоги до безпеки, як? у даному випадку встановлюються для запоб?гання ураження електричним струмом та виникнення пожеж?. 4.2.1 Небезпека ураження електричним струмомОц?нка та анал?з джерел, причин, насл?дк?в небезпек електричного характеру наведена в таблиц? 4.3Таблиця 4.3 – Оц?нка небезпек електричного характеру№ Найменування функц?онального блоку Джерело небезпекиПричини небезпекиНасл?дки небезпеки1.Блок живленняВих?д розряду на металев? кр?плення корпусуНесправн?сть блоку живлення, нев?дпов?дн?сть конкретного виробу вимогам тест?в на ЕМСУраження електричним струмом2.Дроти подач? живлення до блоку живленняСтрум мереж?Ушкодження ?золяц??Ураження електричним струмомНеобх?дн?сть забезпечення безпеки користувач?в вимага? створення техн?чних, орган?зац?и?них, режимних та експлуатац?и?них заход?в ?з охорони прац? – таблиця 4.4. № Група номенклатурних заход?в з ОП Вид заходу Критер?и? вибору 1.Техн?чн? засобиВикористання подв?йно? електромагн?тно? розв’язки при проектування блоку живленняГарантування неможливост? подач? напруги мереж? на пристр?йПодв?йна ?золяц?я струмопров?дних частин, герметичнии? корпус приладу. запоб?гання контакту з? струмопров?дними частинами приладуПрограмне налаштування роботи системи охолодженняунеможливлення перегр?ву елемент?в та ??х виходу з ладу 2.Орган?зац?йн? засоби?нструктаж з експлуатац??; ?нструктаж з електробезпекиНавчання персоналу роботи з приладом з урахуванням питань електробезпекиПродовження таблиц? 4.4№ Група номенклатурних заход?в з ОП Вид заходу Критер?и? вибору 2.Орган?зац?йн? засоби?нструктаж з експлуатац??; ?нструктаж з електробезпекиНавчання персоналу роботи з приладом з урахуванням питань електробезпеки3.Режимн? засобиРегулярна перев?рка справност? внутр?шн?х компонент?в блоку живлення (обов’язково з вимкненою напругою)Зниження ймов?рност? поломки блоку живлення4.Експлуатац?йн? засобиВ?зуальна перев?рка ц?л?сност? складових частин (дрот?в) та корпусуЗабезпечення безпечного використання приладуОписан? в таблиц? 4.4 заходи сутт?во п?двищують електричну безпечн?сть приладу при и?ого використанн?.4.2.2 Небезпека займанняМожливост? виникнення небезпеки пожеж? зумовлена коротким замиканням на блоц? живлення, перегр?вом плати контролю живленням. У таблиц? 4.5 наведении? анал?з можливостеи? виникнення небезпеки загоряння. Таблиця 4.5 – Основн? небезпеки пов’язан? з виникненням займання№ Найменування функц?онального блокуДжерело небезпекиПричини небезпекиНасл?дки небезпеки1.Блок живленняСтрум короткого замиканняНесправн?сть блоку живлення Загорання приладу та виникнення пожеж?2.Плата керування живленнямВисока напругаНесправн?сть блоку живлення, несправн?сть платиВиникнення пожеж?Висока температураПерегр?в ключ?вТаблиця 4.6 – Реальн? та нормативн? фактори небезпеки № Фактор небезпеки Реальне значенняНормативн? значення1. Температура ключ?вб?льше 80 °С50…55 °С2.Герметичн?сть корпусу блоку живлення В?дсутняПовинна бути3.?мпульсн? зм?ни напруги мереж?присутн?в?дсутн?4.Клас пожеж?Клас А (Гор?ння твердих речовин)П?дклас 1 (супроводжу?ться тл?нням)Гор?ння пластмасових частин корпус?в приладу та блоку живленняКлас Е (Гор?ння електроустановок п?д напругою)Гор?ння внутр?шн?х частин блоку живлення та струмопров?дних частин п?д’?днаних до мереж?Таблиця 4.7 – Заходи з забезпечення охорони прац?№ Група номенклатурних заход?в з ОПВид заходуКритер?й вибору1Техн?чн? засобиПрограмне налаштування роботи системи охолодженняМ?н?м?зац?я можливост? перегр?ву ключ?в при штатному режим? роботи системиЗакритий пластиковий корпус блоку живленняУникнення контакту навколишнього середовища та персоналу з д?ючими елементами схеми2.Орган?зац?йн? заходи?нструктаж з експлуатац??; ?нструктаж з протипожежно? безпекиНавчання персоналу роботи з приладом з урахуванням питань протипожежно? безпеки3.Режимн? засобиРегулярна перев?рка справност? внутр?шн?х компонент?в блоку живлення (обов’язково з вимкненою напругою)Зниження ймов?рност? поломки блоку живленняПерев?рка внутр?шн?х електропров?дних з’?днань м?ж компонентамиЗниження ймов?рност? перегр?ву струмопров?дних частинПродовження таблиц? 4.7№ Група номенклатурних заход?в з ОПВид заходуКритер?й вибору4.Експлуатац?йн? засобиВ?зуальна перев?рка ц?л?сност? складових частин (дрот?в) та корпусуЗабезпечення безпечного використання приладуМон?торинг температури блоку живлення та плати керування живленнямСво?часна реакц?я на перегр?вОбран? заходи з охорони прац? забезпечують умови для безпечного використання приладу в ц?лому та м?н?м?зують и?мов?рн?сть виникнення гор?ння складових приладу.4.3 Розробка ??нструкц?? по техн?ц? безпеки при експлуатац?? спроектованого об’?кту?Перед використанням обов’язково ознайомитись з ?нструкц??ю приладу;Налаштування правильно? роботи приладу та його техн?чне обслуговування ма? зд?йснюватися представником компан?? розробника. Використання при пошкоджен?й ?золяц?? – заборонено.У раз? виникнення ?скр?ння, загорання будь-яких компонент?в приладу – вимкнути подачу живлення. Техн?чне обслуговування проводити не р?дше н?ж раз на р?к. Висновки до розд?лу 4У цьому розд?л? було розглянуто та оц?нено потенц?йн? небезпеки, створен? в результат? проектування ПАК для людей, як? його використовують. Розроблено заходи щодо зменшення та усунення ризик?в. Основними небезпеками ? ризики ураження електричним струмом та пожеж? в?д короткого замикання. Було розроблено ?нструкц?ю з техн?ки безпеки при експлуатац?? об'?кту. Дотримуючись представлено? ?нструкц?? можна звести до м?н?муму вищезазначен? основн? небезпеки.ВИСНОВКИДля керування системою охолодження, живлення ? початку/к?нця запису для вс?х компонент?в ПАК було створено в?конний додаток ?Диплом?. В?н був написаний за допомогою граф?чного ?нтерфейсу “Tkinter” середовища програмування Python IDLE.Для подач? живлення було написано програмний код, що керу? GPIO портами в Raspberry Pi 4, до яких п?д’?днан? силов? ключ?. При встановленн? позиц?? ?True? в?дпов?дно? кнопки перев?рки (check button), на GPIO порт?, що прив’язаний до ц??? кнопки, з’явля?ться напруга що в?дпов?да? лог?чн?й одиниц? для ключа ? ключ замика? контакти живлення певного блоку.Для керування роботи системи охолодження було розроблено програмний код, що використову? значення температури CPU Raspberry Pi. При досягнен? певно? температури (в нашому випадку 50°С), програма вмика? кулер, який посилю? теплов?ддачу пристрою. Керуючий сигнал на ключ кулера п?д’?днаний до порту GPIO, що п?дтриму? ШИМ-модуляц?ю, це да? можлив?сть керувати швидк?стю обертання кулера. Для керування манжетою було зд?йснено модиф?кац?ю тонометра UA-888-AC. Зараз цифров? значенн? тиску в манжет? отримуються у додатку, ? ? можлив?сть керувати ?? накачкою ? скиданням тиску, що дозволя? л?карям б?льш як?сно проводити оклюз?йну пробу.Для в?дправки команди початку або к?нця запису, на КМОП-камер? ? теплов?зор? використовуються апаратн? тригери, що дозволя? використовувати ?х без встановлення ПЗ на Raspberry Pi. П?сля зак?нчення досл?дження, файли запису коп?юються в сховище Raspberry Pi, з карт пам’ят? встановлених в теплов?зор? ? камер?. Вибраний нами фотоплетизмограф не ма? апаратних тригер?в ? можливост? роботи в автономному режим?, тому нами було використано спец?альний емулятор, з?браний на основ? емулятора QEMU ? середовища Wine, що дозволило запустити додаток для Win32 на Raspberry Pi 4 з процесором технолог?? ARM. Використання цього емулятора обмежу? швидкод?ю системи, тому запуск додатк?в для теплов?зора ? КМОП-камери не ? доц?льним. В розд?л? охорони прац? були проанал?зован? можлив? небезпеки, що виникають п?д час роботи системи керування живленням, було розроблено ?нструкц?ю щодо роботи системи.В розд?л? 3 було запропоновано алгоритми проведення досл?джень для верхн?х ? нижн?х к?нц?вок, створено ?нструкц?ю по робот? з створеним ПЗ ? розглянуто алгоритм обробки даних ЛСКА. В подальшому пропону?ться створити порт вс?х додатк?в для можливост? ?х використання на ОС Linux з процесорами ARM, або використовувати ориг?нальн? блоки теплов?зора та камери, з написанням ?диного додатку для обробки вс?х даних досл?дження.Була проведена апробац?я результат?в досл?дження на ХIX М?жнародн?й науково-техн?чн?й конференц?? ?Ф?зичн? процеси та поля техн?чних ? б?олог?чних об’?кт?в? з тезами МЕТОДОЛОГ?Я ЗАСТОСУВАННЯ ЛАЗЕРНО? СПЕКЛ-Д?АГНОСТИКИ В МЕДИЦИН? – Кременчук: КрНУ, 2020, ??? Всеукра?нськ?й науково-техн?чн?й конференц?? студент?в та асп?рант?в ?Рад?оелектрон?ка в ХХ? стол?тт??, з тезами МЕТОД ФУР’?-СПЕКТРОСКОП?? ДЛЯ ДОСЛ?ДЖЕННЯ ХАРАКТЕРИСТИК Б?ОТКАНИН– Ки?в, 2020. – С. 5-6, ??? М?жнародн?й науково-практичн?й конференц?? ??нформац?йн? системи та технолог?? в медицин?? (IСM–2020) з тезами СУЧАСН? МЕТОДИ Д?АГНОСТИКИ ОНКОЛОГ?ЧНИХ ЗАХВОРЮВАНЬ?, 2020. – С. 177-178, а також статею у фаховому журнал?: АНАЛ?З СТАНУ КРОВОТОКУ НА БАЗ? ЛАЗЕРНОГО ДОППЛЕР?ВСЬКОГО АНЕМОМЕТРА / М. Ф. Богомолов, А. А. Троц, Д. В. Чапля. // Б?омедична ?нженер?я ? технолог?я. – №4.СПИСОК Л?ТЕРАТУРИ1. Сдобнов А.Ю., Кальченко В.В., Быков А.В., Попов А.П., Молодый Г., Меглинский И.В., Визуализация кровотока методом лазерных спекл-контрастных измерений в условиях неэргодичности. Оптика и спектроскопия, 2020р, том 128, вып. 6. С. 773–780.2. Fercher A., Briers J. Flow visualization by means of single-exposure speckle photography. 1981p.3. Github [Електронний ресурс]: [Веб-сайт]. – Режим доступу: – Chenge Wang, Processing Procedure of Laser Speckle Contrast, 2020р.4. Богомолов М.Ф., Пузик М.Ю., ЛАЗЕРНИЙ СПЕКЛ-КОНТРАСТНИЙ АНАЛ?З ДЛЯ ДОСЛ?ДЖЕННЯ М?КРОЦИРКУЛЯЦ?? В СУДИНАХ, Б?омедична ?нженер?я ? технолог?я. – 2020. – №4.5. П.В. ПАВЛОВ, И.Э. ВОЛЬФ, Н.В. МОСКВИН, ПРИМЕНЕНИЕ МЕТОДА СПЕКЛ-СТРУКТУР ОПТИЧЕСКОГО ИЗЛУЧЕНИЯ В ЗАДАЧАХ НЕРАЗРУШАЮЩЕГО КОНТРОЛЯ, Воздушно-космические силы. Теория и практика. – № 6, – 2018р.6. Я. С. Мамонтов, АНАЛИЗ И КЛАССИФИКАЦИЯ ФОТОПЛЕТИЗМОГРАММ С ПОМОЩЬЮ НЕЙРОННОЙ СЕТИ ХОПФИЛДА, Вестник НГУ. Серия: Информационные технологии. Том 12, выпуск 4, 2014р.7. Е.Л. Малиновский, Учебно-методическое пособие по использованию пальцевой фотоплетизмографии, 2013р.8. Материал из Национальной библиотеки им. Н. Э. Баумана, Raspbian, 2019р.9. Сергей Стельмах, Raspbian PIXEL — лучший дистрибутив Linux для Raspberry PI, 2017р.10. IRISYS Multi-Purpose Thermal Imagers IRI 4000 Series [Електронний ресурс] – Режим доступу до ресурсу: . 11. User-manual-Pulse-Lite-Control [Електронний ресурс]. – 2019. – Режим доступу до ресурсу: . 12. Программное обеспечение Basler для записи видео [Електронний ресурс] – Режим доступу до ресурсу: . 13. HOW TO RUN X86 ON ARM [Електронний ресурс] – Режим доступу до ресурсу: . 14. RPi-QEMU-x86-wine SD-card image [Електронний ресурс] // 2018 – Режим доступу до ресурсу: . 15. Как установить программное обеспечение Windows на Raspberry Pi с помощью Wine [Електронний ресурс] – Режим доступу до ресурсу: . Tkinter — создание графического интерфейса в Python [Електронний ресурс] – Режим доступу до ресурсу: . 17. Abu Ashraf Masnun. Асинхронный Python: различные формы конкурентности [Електронний ресурс] / Abu Ashraf Masnun – Режим доступу до ресурсу: . 18. RPi Tutorial EGHS:GPIO Protection Circuits [Електронний ресурс] – Режим доступу до ресурсу: . 19. Ранняя диагностика заболеваний сосудов нижних конечностей с применением инфракрасной термографии [Електронний ресурс] – Режим доступу до ресурсу: . Замечник Т. В. Возможности термографии в диагностике варикозной болезни нижних конечностей / Т. В. Замечник, С. И. Ларин., 2009.21. SSH [Електронний ресурс] – Режим доступу до ресурсу: shorturl.at/iorD5.22. Настройка удалённого рабочего стола на Raspberry Pi [Електронний ресурс] – Режим доступу до ресурсу: . В.И. Букатый Взаимодействие низкоинтенсивного лазерного излучения с кровью человека. // Математика и механика. Физика. – 2007. – Т. 310. №2. – С. 121–125.24. Алгоритм оценки артериального давления по времени распространения пульсовой волны [Електронний ресурс] – Режим доступу до ресурсу: shorturl.at/kASU2.25. Окклюзионная проба: методы анализа, механизмы реакции, перспективы применения [Електронний ресурс]. – 2018. – Режим доступу до ресурсу: . ?НТЕГРОВАНА СИСТЕМА ВИЗНАЧЕННЯ ПОРУШЕНЬ М?КРОЦИРКУЛЯЦ?? КРОВ? [Електронний ресурс] – Режим доступу до ресурсу: . Лазерная спекл-контрастная визуализация микроциркуляции крови в тканях поджелудочной железы при лапароскопических вмешательствах [Електронний ресурс] – Режим доступу до ресурсу: КЭ_2020_опубл2.pdf.27. ДСТУ EN 61140:2015/Зм?на №1:2015 Захист проти ураження електричним струмом. Загальн? аспекти щодо установок та обладнання.ДОДАТОК АПрограмний код для комплексуfrom tkinter import *from tkinter.ttk import Checkbutton, Button, Progressbar, Styleimport timefrom time import sleepimport threading #б?бл?отека роботи з потоками (для асинхронних функц?й)import RPi.GPIO as GPIO # б?бл?отека GPIOimport cv #б?бл?отека роботи з камерою та теплов?зоромimport sys # обробка системних винятк?вfrom re import findall # регулярн? вирази (системн? команди)import subprocessfrom subprocess import check_output # робота з п?дпроцесамиimport oswindow = Tk() window.title("Диплом")w = window.winfo_screenwidth()h = window.winfo_screenheight()w = w//2 # середина екранаh = h//2 w = w - 300 # зсув в?д серединиh = h - 200i=1window.geometry('600x400+{}+{}'.format(w, h))window.resizable(width=False, height=False)s = Style(window)s.layout("LabeledProgressbar", [('LabeledProgressbar.trough', {'children': [('LabeledProgressbar.pbar', {'side': 'top', 'sticky': 'ns'}), ("LabeledProgressbar.label", {"sticky": ""})], 'sticky': 'nswe'})])p = Progressbar(window, orient="horizontal", length=300, style="LabeledProgressbar")p.place(relx="0.25",rely="0.4")s.configure("LabeledProgressbar", text="0 % ")#//////////////////////// кнопка "Старт!" поетапно проводить досл?дження. к?льк?сть ? тривал?сть етап?в можна зм?нювати def go(): global i if i==1: capture=cv.CaptureFromCAM(-1) fourcc=cv.CV_FOURCC('M','J','P','G') fps = 50 w,h=640,480 stream=cv.CreateVideoWreter("new1.avi", fourcc, fps, (w,h)) while i<31: frame=cv.QueryFrame(capture) cv.WriteFrame(stream, frame) sleep(0.2) p.step() s.configure("LabeledProgressbar", text="етап 1: {0} % ".format(i)) window.update() i=i+1 return if i==31: capture=cv.CaptureFromCAM(-1) fourcc=cv.CV_FOURCC('M','J','P','G') fps = 50 w,h=640,480 stream=cv.CreateVideoWreter("new2.avi", fourcc, fps, (w,h)) while i<61: frame=cv.QueryFrame(capture) cv.WriteFrame(stream, frame) sleep(0.2) p.step() s.configure("LabeledProgressbar", text="етап 2: {0} % ".format(i)) window.update() i=i+1 return else: capture=cv.CaptureFromCAM(-1) fourcc=cv.CV_FOURCC('M','J','P','G') fps = 50 w,h=640,480 stream=cv.CreateVideoWreter("new3.avi", fourcc, fps, (w,h)) while i!=101: frame=cv.QueryFrame(capture) cv.WriteFrame(stream, frame) sleep(0.2) p.step() s.configure("LabeledProgressbar", text="етап 3: {0} % ".format(i)) window.update() i=i+1 i=1 #//////////////////////// кнопака "Ф?н?ш" в?дкрива? папку з записаними файламиdef finish(): subprocess.Popen(['xdg-open','/pi/.../']) #в?дкрива? папку з файлами запису для подальшого експорту#/////////////////////// накачка тиску в манжет?def PresureUp(): GPIO.setwarnings(False) controlPin = 20 # Номер керуючого GPIO п?на для ключа кулера pinState = True GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу GPIO.output(controlPin, pinState) sleep(3) pinState = False GPIO.output(controlPin, pinState) return#/////////////////// зменшення тиску в манжет?def PresureDown(): GPIO.setwarnings(False) controlPin = 21 # Номер керуючого GPIO п?на для ключа кулера pinState = True GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу GPIO.output(controlPin, pinState) sleep(3) pinState = False GPIO.output(controlPin, pinState) returnframe_p=Frame(window, bg='yellow',bd=2)frame_p.pack(side="left",anchor="sw")frm4=Frame(window, bg='blue', bd=1)frm4.pack(side="top", anchor="se")lbl=Label(frm4, text="T° ")lbl.pack(fill='both')lbl_2=Label(frm4, text="done")lbl_2.pack(fill='both')frm2=Frame(window, bg='tomato', bd=3)frm2.pack(side="bottom", anchor="se")btn1 = Button(frm2, text="Старт!", command=go)btn2 = Button(frm2, text="Ф?н?ш", command=finish)btn1.pack(fill='both')btn2.pack(fill='both')frm3=Frame(window, bg='green', bd=3)frm3.place(x="300",rely="0.865")btn3 = Button(frm3, text="Зб?льшити Тиск")btn3.bind('<ButtonPress-1>',PresureUp)btn4 = Button(frm3, text="Зменшити Тиск")btn4.bind('<ButtonPress-1>',PresureDown)btn3.pack(fill='both')btn4.pack(fill='both')#///////////////////////////////////////////////////// код контролю живленння блок?вdef result_chk_b_P(): GPIO.setwarnings(False) controlPin = 24 # Номер керуючого GPIO п?на для ключа кулера pinState = False GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу if chk_b_P_state.get()==True: pinState = True GPIO.output(controlPin, pinState) else: pinState = False GPIO.output(controlPin, pinState) chk_b_P_state = BooleanVar()chk_b_P = Checkbutton(frame_p, text='Живлення Пульсоксиметра', var=chk_b_P_state, command=result_chk_b_P)chk_b_P.pack(fill='both')def result_chk_b_T(): GPIO.setwarnings(False) controlPin = 14 # Номер керуючого GPIO п?на для ключа кулера pinState = False GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу if chk_b_T_state.get()==True: pinState = True GPIO.output(controlPin, pinState) else: pinState = False GPIO.output(controlPin, pinState) chk_b_T_state = BooleanVar()chk_b_T = Checkbutton(frame_p, text='Живлення Теплов?зора', var=chk_b_T_state, command=result_chk_b_T)chk_b_T.pack(fill='both')def result_chk_b_o(): GPIO.setwarnings(False) controlPin = 8 # Номер керуючого GPIO п?на для ключа кулера pinState = False GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу if chk_b_o_state.get()==True: pinState = True GPIO.output(controlPin, pinState) else: pinState = False GPIO.output(controlPin, pinState) chk_b_o_state = BooleanVar()chk_b_o = Checkbutton(frame_p, text='Живлення Оптично? Схеми', var=chk_b_o_state, command=result_chk_b_o)chk_b_o.pack(fill='both')def result_chk_b_M(): GPIO.setwarnings(False) controlPin = 25 # Номер керуючого GPIO п?на для ключа кулера pinState = False GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу if chk_b_M_state.get()==True: pinState = True GPIO.output(controlPin, pinState) else: pinState = False GPIO.output(controlPin, pinState) chk_b_M_state = BooleanVar()chk_b_M = Checkbutton(frame_p, text='Живлення Манжети', var=chk_b_M_state, command=result_chk_b_M)chk_b_M.pack(fill='both')def result_chk_b_C(): GPIO.setwarnings(False) controlPin = 23 # Номер керуючого GPIO п?на для ключа кулера pinState = False GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу if chk_b_C_state.get()==True: pinState = True GPIO.output(controlPin, pinState) else: pinState = False GPIO.output(controlPin, pinState) chk_b_C_state = BooleanVar()chk_b_C = Checkbutton(frame_p, text='Живлення Камери', var=chk_b_C_state, command=result_chk_b_C )chk_b_C.pack(fill='both')#///////////////////////////////////////////////////#//////////////////////// робота системи охолодження ///////////////////def get_temp(): temp = check_output(["vcgencmd","measure_temp"]).decode() # subprocess.check_output() переда?мо значення температури Raspberry CPU зм?нн?й temp temp = float(findall('\d+\.\d+', temp)[0])# використову?мо regular expression, щоб отримати числове значення window.update() return(temp)def FunControl():#функц?я роботи кулера GPIO.setwarnings(False) # в?дключа?мо GPIO warnings tempOn = 50 # Включа?мо кулер коли температура б?льше 50degC threshold = 10 # порогове значення в градусах на яке температура може бути б?льше стартового controlPin = 12 # Номер керуючого GPIO п?на для ключа кулера pinState = False # Статус кулера GPIO.setmode(GPIO.BCM) # використання BCM нумерац?? п?н?в GPIO.setup(controlPin, GPIO.OUT, initial=0) # встановлення п?ну GPIO як виходу while True: temp = get_temp() if temp > tempOn and not pinState or temp < tempOn - threshold and pinState: pinState = not pinState # Зм?на сигналу на п?н? GPIO.output(controlPin, pinState) lbl.configure(text=str(temp)+ " " + str(pinState)) sleep(3)t=threading.Thread(target=FunControl)t.start()#////////////////////////////////////////////////////////////////////////window.mainloop() ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.