Меню English Ukrainian російська Головна

Безкоштовна технічна бібліотека для любителів та професіоналів Безкоштовна технічна бібліотека


USB-сигналізатор часу прийому антибіотиків. Енциклопедія радіоелектроніки та електротехніки

Безкоштовна технічна бібліотека

Енциклопедія радіоелектроніки та електротехніки / Медицина

Коментарі до статті Коментарі до статті

Люди похилого віку, змушені регулярно приймати лікарські препарати, часто мають труднощі з самостійним дотриманням режиму їх прийому. Адже від своєчасного виконання приписів лікаря іноді залежить не лише здоров'я, а й саме життя. Крім звичайних організаційних методів вирішення проблеми можна використовувати і технічні засоби. До них відноситься і пропонований сигналізатор, який щодобово за введеним у нього розкладом подає сигнали, що нагадують про необхідність прийому ліків.

Багато людей похилого віку з цілком зрозумілих причин відчувають труднощі у роботі з сучасними програмними продуктами. Що стосується пристроїв-сигналізаторів, то більшість з них фактично є дещо модернізованими будильниками, нездатними працювати за розкладом навіть з двома-трьома видами препаратів і ергономічно не пристосовані до використання людьми похилого віку.

Загальний вигляд розробленого автором сигналізатора, що має вісім незалежних каналів (за кількістю осередків для ліків), кожен з яких може бути налаштований на подачу до чотирьох сигналів, що нагадують на добу (всього може бути подано 32 сигнали), показаний на рис. 1. Для введення або коригування розкладу прийому ліків пристрій з'єднують за інтерфейсом USB з комп'ютером, на якому запускають спеціальну програму. Коли розклад завантажено, сигналізатор працює автономно.

USB-сигналізатор часу прийому ліків
Рис. 1. Загальний вигляд сигналізатора

Як апаратна, і програмна частини сигналізатора розроблені з урахуванням їх використання людьми похилого віку, зокрема з ослабленим зором. Поводження з пристроєм гранично спрощено, а в програмі застосовані алгоритмічні та інтерфейсні рішення, що значно підвищують зручність роботи. Крім того, у конструкції сигналізатора вжито заходів електробезпеки.

Живлять сигналізатор від мережі ~230 В, а у разі пропадання в ній напруги він автоматично переходить на живлення від вбудованої акумуляторної батареї. Потужність, що споживається від мережі, не перевищує 5 Вт, тривалість роботи від акумуляторної батареї ємністю 800 мА·ч досягає трьох діб. Цим забезпечено збереження розкладу навіть за тривалого відключення мережного питания.

Схема сигналізатора зображено на рис. 2. Принцип його роботи простий: значення поточного часу програма мікроконтролера щомиті порівнює із заданим часом подачі сигналів. У разі збігу пристрій подає звуковий сигнал, що представляє собою одну з декількох мелодій, що вибирається за бажанням, і включає світловий індикатор відповідного осередку з ліками. У той же час відбувається переведення часу подачі цього сигналу на добу вперед. Для вимикання звукового та світлового сигналів достатньо натиснути кнопку підтвердження SB1.

USB-сигналізатор часу прийому ліків
Рис. 2. Схема сигналізатора (натисніть , щоб збільшити)

Використаний в сигналізаторі мікроконтролер ATmega8A-PU (DD1) здатний працювати при зниженому до 2,7 напруги живлення. Тактова частота мікроконтролера 12 МГц задано кварцовим резонатором ZQ1. Вузол звукової сигналізації зібраний мікросхемі музичного синтезатора УМС8-08 (DD2). Мікроконтролер включає звуковий сигнал, подаючи високий рівень вхід S мікросхеми синтезатора. Сигнал безперервно звучить до натискання кнопки SB1. Джерелом звуку служить п'єзовипромінювач HA1. Гучність регулюють змінним резистором R16. Мелодії перебирають натисканням кнопки SB2 під час відтворення. Більш детальну інформацію про мікросхеми серії УМС наведено в [1].

У сигналізаторі є не показаний на схемі трансформаторний джерело стабілізованої напруги 5 В, зібраний за традиційною схемою на інтегральному стабілізаторі 7805. У разі зникнення напруги в мережі живлення пристрій переходить на живлення від акумуляторної батареї GB1. Середній струм, який споживається від неї, не перевищує 5 мА. За наявності напруги в мережі батарея постійно заряджається завдяки ланцюгу VD5, VD6, R18. Однак рекомендується раз на місяць її відключати і виконувати повний цикл розрядки до напруги 3 і зарядки за допомогою зовнішнього зарядного пристрою.

Мікросхему музичного синтезатора УМС8-08 можна замінити на іншу із серій УМС7 та УМС8. Вони різняться лише набором мелодій. Транзистор КТ3102Б можна замінити на КТ3102Г, КТ3102Е або імпортний BC547, а також на КТ315Б або КТ315Г, якщо зменшити опір резистора R17 до 51 кОм. Замість діодів КД522Б підійдуть КД521А, КД521Б, КД522А, 1N4148 та аналогічні. Усі постійні резистори - С2-33Н або МЛТ. Оксидні конденсатори С3 та C6 - К50-83, К50-16 або імпортні. Інші конденсатори - керамічні К10-73-1б, К10-17в. Світлодіоди придатні будь-які в корпусах діаметром 5 мм бажаного кольору свічення. В авторському варіанті як HL1 встановлений світлодіод зеленого кольору світіння, щоб не турбувати хворого даремно, решта - червоного кольору. Роз'єм XS1 – розетка USB-BF.

Акумуляторна батарея GB1 складена з трьох Ni-Mh акумуляторів типорозміру AA ємністю 80 мА·год. Можна використовувати акумулятори та іншої ємності, але при цьому бажано підібрати резистор R18 такого опору, щоб початковий струм зарядки розрядженої до напруги 3 батареї був чисельно дорівнює 0,1 її номінальної ємності.

Сигналізатор зібраний на стандартній перфорованій монтажній платі розмірами 70x50 мм із кроком перфорації 2,54 мм. Спосіб монтажу – навісний з фіксацією термоклеєм. Зважаючи на простоту схеми, друкований монтаж не застосовувався. Всі елементи пристрою, крім світлодіодів HL2-HL9, розміщені в пластмасовій електротехнічній розподільній коробці IP67 виконання розмірами 80x80x40 мм.

Роз'єм XS1 розташований на невеликій друкованій платі, навпроти нього в стінці коробки вирізано отвір відповідних розмірів. Елементи HA1, HL1, GB1, R16, SB1 зафіксовані на кришці коробки термоклеєм. Кнопка SB2, яка не відноситься до органів оперативного управління, знаходиться на монтажній платі. На рис. 3 показано взаємне розташування монтажної плати та виносних елементів усередині розподільної коробки.

USB-сигналізатор часу прийому ліків
Мал. 3. Взаємне розташування монтажної плати та виносних елементів усередині розподільної коробки

Лікарські препарати розміщені в типовій касетниці для радіодеталей із восьми осередків із висувними ящиками. Кожна її комірка має розміри 112x55x120 мм. Загальні габарити касетниці – 224x110x120 мм. Оскільки осередки негерметичні, але досить місткі, ліки слід зберігати у заводських упаковках. Касетниця забезпечує також захист від світла, необхідний зберігання деяких видів ліків. На лицьових панелях осередків передбачені пази для табличок із назвами ліків.

Розподільна коробка закріплена на лівій бічній стінці касетниці гвинтами М3 з гайками. Світлодіоди HL2-HL9 розташовані по одному на лицьовій панелі кожного осередку і з'єднані з пристроєм гнучкими проводами, покладеними в трубки ПХВ усередині осередків та спаленими на тильній стороні касетниці. Запас довжини кожної пари проводів, що йдуть до світлодіодів, повинен забезпечувати вільне висування осередку на 75...80 % повністю відкритого стану.

Файл USB_HID_ Note.hex, що додається до статті, слід завантажити в програмну пам'ять мікроконтролера. Конфігурація мікроконтролера повинна відповідати показаній у табл. 1. Налагодження правильно зібраний пристрій не вимагає. Бажану яскравість світлодіодів можна встановити, змінюючи їх струм у межах 5...10 мА добіркою резисторів R7-R15.

Таблиця 1

розряди Стан
CKOPT 0
ККСЕЛ [3: 0] 1111
SUT [1: 0] 10
ПОВ 1
WDE 1
RSTDISBL 1

З точки зору специфікації USB пристрій відноситься до класу HID [2] з програмною реалізацією USB інтерфейсу на основі відомого драйвера AVR V-USB [3]. Нагадаю, що в цьому випадку потрібно переключити інтерфейс в низькошвидкісний режим USB 1.1, який згідно специфікації виконують за допомогою резистора, включеного між інтерфейсними лініями D- і Vавтобус (У цьому випадку це резистор R4).

Використаний один із типових варіантів підключення мікроконтролера з його живленням зниженою напругою через діоди VD1 та VD2. Застосування цих діодів бажано незважаючи на наявність акумуляторної батареї, оскільки унеможливлює вплив її напруги на узгодження логічних рівнів шини USB та мікроконтролера.

Мікроконтролер працює з тактовою частотою 12 МГц, однією з ряду допустимих для V-USB. Його програма написана мовою C у середовищі розробки AVR Studio 4. Текст програми (файл main.c) містить докладний коментар. Використані реліз драйвера vusb-20100715 [4] та компілятор WinAVR-20100110 [5].

Бібліотека V-USB добре документована, тому тут будуть розглянуті лише моменти, що безпосередньо стосуються реалізації проекту або пов'язані з його особливостями. Покроковий процес створення програми на основі бібліотеки V-USB докладно описаний у [6].

Основні моменти, на які слід звернути увагу під час створення програми в AVR Studio:

- у папку проекту мають бути скопійовані всі файли з папки usbdrv архіву V-USB;

- до проекту AVR Studio слід додати файли usbdrv.c, usbdrvasm.S, oddebug.c (через пункт контекстного меню "Add Existing Source File(s)..." у дереві проекту);

- У налаштуваннях проекту (Projects → Configuration Options → General → Frequency, Hz) тактова частота мікроконтролера повинна бути задана рівною 12000000 Гц. На підставі цього значення AVR Studio визначить компілятора константу F_CPU, яку використовує V-USB.

Необхідна конфігурація V-USB містить файл usbconfig.h, який також повинен знаходитися в папці проекту. Штатний файл конфігурації слід замінити тим, що додається до статті. У табл. 2 перераховані найважливіші константи, визначені у цьому файлі. Можливість вільної розробки USB HID пристроїв пов'язана з важливим моментом - у ній повинні застосовуватись пари ідентифікаторів VID/PID згідно з документом USB-IDs-for-free.txt з бібліотеки V-USB [3].

Таблиця 2

Константа значення Зміст
USB CFG IOPORTNAME D Порт підключення шини
USB CFG DMINUS BIT 4 Розряд порту, до якого підключено лінію D-
USBCFGDPLUSBIT 2 Розряд порту, до якого підключена лінія D+ (має бути з'єднана з входом переривання INTO)
USB CFG INTERFACE CLASS 3 (HID) Клас пристрою
USB CFG MAX BUS POWER 100 Максимальний струм споживання від USB шини. мА
USB CFG HID REPORT DESCRIPTOR LENGTH 22 * Довжина дескриптора HID-репорту
USB CFG VENDOR ID OxCO, 0x16 Ідентифікатор виробника пристрою
USB CFG DEVICE ID OxDF, 0x05 Ідентифікатор продукту

*) Це значення має дорівнювати розміру символьного масиву PROGMEM usbHidReportDescriptor в програмі.

У програмі використаний формат часу UNIX, де значення часу є числом секунд, що пройшли з 00:00:00 UTC 01.01.1970 р. Сигналізатор не відображає час візуально, що дозволяє уникнути зайвого ускладнення схеми та алгоритму його роботи. Для передачі timestamps - чотирибайтних значень часу UNIX - служить змінна pdata.

Максимальна кількість сигналів, що подаються за добу, задано в програмі константою NUM_CALLS. Для зберігання значень часу використано масив u_time розміром NUM_CALLS+1. У цьому елемент масиву u_time[NUM_CALLS] містить поточний час, інші - час подачі сигналів. Кожному каналу (комірці касетниці з ліками) відведено по чотири елементи масиву. Наприклад, першому осередку - елементи c u_time[0] по u_time[3], другий - з u_time[4] по u_time[7] тощо. буд. Якщо значення елемента масиву дорівнює нулю, відповідний сигнал вважається неактивним. Такий підхід дозволяє спростити алгоритм передачі та обробки інформації.

Описуючий структуру пакета дескриптор і процедури передачі usbFunctionWrite і usbFunctionRead інформації створені на основі типових рішень. Базові функції докладно описані в заголовку usbdrv.h з [3]. Процедури доповнено умовами перевірки кількості оброблених каналів. Число елементів масиву, що отримується пристроєм від комп'ютера, на одиницю більше, ніж відправляється, оскільки для синхронізації комп'ютер завжди передає поточний час.

На початку головної процедури main() відбувається конфігурування регістрів введення-виведення, встановлення коефіцієнта поділу тактової частоти рівним 256 і початкове завантаження регістра таймера TCNT1 числом, необхідним формування інтервалу часу тривалістю 1 с. Переривання за переповненням таймера за замовчуванням вимкнено.

Після цього програма входить до основного циклу. Якщо підключення до USB відсутнє, будуть дозволені переривання глобально та по переповненню таймера 1. У циклі for кожен елемент масиву u_time[i] з ненульовим значенням буде перевірено на рівність поточного часу. Якщо рівність виявлено, буде включено звуковий сигнал і світлодіод відповідного осередку, а час спрацьовування цього каналу збільшено на 86400 с (на добу).

Потім відбувається перевірка рівня входу PB0. Якщо він низький (кнопка SB1 натиснута для підтвердження прийому сигналу), на всіх виходах будуть встановлені низькі логічні рівні, що вимкне сигнали.

Паралельно з цим щомиті по переповненню таймера 1 відбувається запуск процедури обробки переривання TIMER1_OVF_vect. Вона відновлює попереднє встановлення лічильника TCNT1, інкрементує значення поточного часу в елементі масиву u_time[NUM_CALLS], змінює стан виходу PB1 (підключений до нього світлодіод HL1 блимає з періодом 2 с).

При підключенні пристрою до USB на вхід PC5 надходить високий рівень лінії Vbus шини USB. У цьому випадку виконання умови if (PINC & (1<<5)) забороняє переривання переповнення таймера 1 і активізує драйвер V-USB. Вмикається та безперервно світить світлодіод HL1.

Після активізації драйвера V-USB стає можливим обмін інформацією USB. У циклі викликається функція usbPoll(), що підтримує інтерфейс в активному стані за відсутності обміну інформацією. Докладніше про процес передачі інформації описано в розділі статті, що стосується програми для комп'ютера.

Перейдемо до розгляду комп'ютерної програми введення розкладу сигналізатор USB_HID_Note. Як видно вже з її головного вікна (рис. 4), особливу увагу в процесі розробки було приділено оптимізації інтерфейсу для зручності роботи користувачам поважного віку. Програма працює під керуванням Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008. Її працездатність під Windows 10 та Windows Server 2012 не перевірена, але є підстави припускати, що вона працюватиме нормально.

USB-сигналізатор часу прийому ліків
Рис. 4. Головне вікно комп'ютерної програми введення розкладу сигналізатор

Після запуску програми з підключеним до комп'ютера сигналізатором натисніть на екранну кнопку "Підключити". Буде відображено повідомлення про спробу підключення. Якщо вона пройшла успішно, стануть доступні екранні кнопки "прочитати все" і "Зберегти".

Для введення розкладу достатньо вибрати номер комірки з першого списку (селектора), а номер сигналу для цього комірки - з другого списку. Потім встановити потрібний час подачі сигналу, клацанням по прапорцю зліва від номера дозволити або заборонити вибрану комбінацію осередку і сигналу (при цьому змінюється колір прапорця) і написати назву препарату в єдиному доступному рядку. Назва препарату прив'язується до номера комірки, тому вміст рядка змінюється лише при перемиканні першого селектора. Прапор роздільної здатності відноситься до обраної комбінації номерів комірки та сигналу.

Так заповнюють усі необхідні осередки. Стан осередків за замовчуванням - вимкнено, активувати їх немає необхідності. Якщо потрібно, можна змінити настройки комірок. Введені значення зберігаються динамічно.

Після натискання на екранну кнопку відбуваються передача розкладу сигналізатор і його запис файл конфігурації. Про результат передачі буде виведено повідомлення. Розклад, що зберігається в сигналізаторі, можна прочитати з нього натисканням на екранну кнопку . Після цього у вікні програми його можна переглянути, за необхідності відредагувати та завантажити назад у сигналізатор. Натискання на екранну кнопку стирає назву ліків у відповідному вікні, даючи можливість записати інше.

Важливою особливістю сигналізатора є зупинка таймера поточного часу при підключенні до USB. У момент закриття комп'ютерної програми відбувається автоматичний запис у сигналізатор розкладу та поточного часу (синхронізація). Тому, закривши програму, слід якомога швидше відключити від сигналізатора USB-кабель, щоб звести до мінімуму різницю між істинним та "системним" часом.

Втім, навіть різниця в кілька хвилин у цьому випадку некритична, тому жодних заходів щодо усунення цієї особливості не вжито. Якщо після завершення роботи програми USB_HID_Note сигналізатор випадково залишився надовго підключеним до комп'ютера, достатньо запустити цю програму заново, натиснути на екранну кнопку , Потім на і відразу на або просто закрити програму. Правильний відлік часу буде відновлено сигналізатором, після чого USB-кабель можна від'єднати.

Найменування лікарських засобів зберігаються у файлі конфігурації програми та виводяться на екран комп'ютера при підключеному сигналізаторі. Разом із введенням у програму розкладу слід подбати про те, щоб кожен осередок касетниці був забезпечений биркою з відповідним написом.

Програма USB_HID_Note написана мовою C++ серед програмування Qt 5.3.2. Вибір цього середовища обумовлений її безплатністю, кросплатформенністю, широкими можливостями та унікальними вбудованими засобами для створення та налагодження додатків будь-якого рівня у поєднанні з гнучкістю інтерфейсних рішень. Тип реалізації програми - Qt Widget. Вихідний текст віджету – файл widget.cpp. Повністю проект зібраний до архіву USB_HID_Note_ pro.zip, доданого до статті.

Особливість програми - пряме звернення до функцій бібліотек SetupAPI та HID. Тому в комп'ютері, на якому відбувається компіляція, потрібна наявність файлів setupapi.lib і hid.lib, які відповідають версії його операційної системи. Ці файли зазвичай входять до пакета WinDDK. Щоб не було необхідності повністю встановлювати весь пакет WinDDK, файли різних версій WinDDK 7600. 16385.1 зібрані автором в одну папку winddk_libs, яка є на FTP-сервері редакції. Компіляція та налагодження можуть проводитися під Windows 7, Windows Server 2008 R2, Windows Vista SP1, Windows Server 2003 SP1, Windows XP SP3 або пізніших. У файлі .pro мають бути явно вказані повні шляхи до бібліотек, наприклад, як у табл. 3.

Таблиця 3

USB-сигналізатор часу прийому ліків

Відкомпільований виконуваний файл програми разом із файлами конфігурації (.cfg) та стилів (.qss) знаходяться у доданій до статті папці USB_HID_Note. Там знаходяться необхідні динамічні бібліотеки Qt (файли .dll). Як відомо, ця вимога є обов'язковою для будь-якої програми, розробленої в Qt. Список цих бібліотек для наведеного випадку наведено в табл. 4.

Таблиця 4

USB-сигналізатор часу прийому ліків

Усі бібліотеки копіюють з папки ..ToolsQtCreator in, за винятком двох останніх, які копіюють з ..5.3mingw482_32pluginsplatforms і розміщують у відповідній підпапці робочої папки програми. Можна також самостійно скопіювати їх з комп'ютера, на якому виконувалася компіляція програми, у робочу або системну папку програми (розмір архіву – 126 Мбайт, у розпакованому вигляді – 400 Мбайт).

Алгоритм програми заснований на стандартних рішеннях, наведених у [7]. Особливості реалізації пов'язані, насамперед, із використанням різних мов програмування (на відміну описаних у джерелі Delphi і C#). Для використання функцій HID API та SetupAPI необхідно підключити заголовні файли hidsdi.h та setupapi.h відповідно.

Обробник натискання на екранну кнопку – процедура on_Connect Button_clicked(). Спочатку за допомогою функції драйвера HidD_GetHidGuid визначається GUID, пов'язаний з HID. Потім викликаються функції SetupAPI для створення перечислювача інтерфейсу та отримання HID-ім'я пристрою. Докладно це описано у [7] на с. 333. У цьому випадку навмисно не використані функції визначення імені продукту або його серійного номера. Проводиться лише перевірка пари VID/PID. Так зроблено, щоб уникнути можливості комерційного використання пристрою. Значення VID/PID задані константою Dev_VID_PID у файлі global_vars.h.

Після виявлення пристрою керування знову передається драйверу HID. Функція CreateFile просить його дескриптор, HidD_GetPreparsedData повертає покажчик на буфер, що містить інформацію про параметри пристрою, а HidP_GetCaps повертає структуру зі значеннями цих параметрів.

На відміну від звичайно використовуваного способу з розміром репорту, що присвоюється безпосередньо в програмі, його значення визначає елемент структури Caps.FeatureReportByteLength, що отримується з дескриптора. Це дозволяє створити більш універсальне рішення, яке не потребує внесення змін до програми та повторної її компіляції при зміні розміру репорту в дескрипторі пристрою.

Власне обмін інформацією відбувається за допомогою функцій HidD_Get Feature (читання) та HidD_SetFeature (запис), що викликаються у відповідних процедурах data_read() та data_transfer() у циклах відповідно до числа комірок. Як зазначалося, кількість елементів масиву, прийнятих сигналізатором, на одиницю більше, ніж відправляються, оскільки для синхронізації комп'ютер завжди передає поточний час.

Детальний коментар з описом призначення найважливіших процедур є у тексті програми. Призначення інших процедур або стандартне або інтуїтивно зрозуміле, наприклад, on_comboBox_ currentIndexChanged() - обробник події зміни індексу comboBox. Закоментовані рядки qDebug та їх супутні були призначені лише для налагодження програми. При необхідності налагодження та перегляду у вікні вбудованого Qt-відладчика ходу обміну інформацією всі ці інструкції слід розкоментувати.

Загальну конфігурацію програма зберігає у файлі settings.cfg. Він має звичайний текстовий формат, за потреби його можна редагувати вручну. Його секція [General] містить число осередків NUM_BOX=8 і число сигналів на осередок NUM_BOX_CALL=4, у секції [view] цілими числами встановлено положення вікна програми на екрані. Секція [names] містить найменування препаратів по осередках, секція [used] – прапори активності осередків, секція [times] – значення часу спрацьовування у форматі UNIX timestamp. Останні носять переважно інформаційний характер, оскільки робочі значення перебувають у пам'яті мікроконтролера сигналізатора. При ручному редагуванні файлу слід врахувати, що параметри name мають формат C/C++/Java source code (наприклад, u3256).

І насамкінець кілька рекомендацій тим, хто бажає самостійно змінити кількість сигналів, що подаються пристроєм. Якщо число комірок фіксовано, кількість сигналів на комірку змінити порівняно нескладно. У програмі мікроконтролера при цьому необхідно, по-перше, змінити константу NUM_CALLS. Її значення повинно дорівнювати добутку числа осередків на максимальну кількість сигналів на кожну комірку. У розглянутому статті статті воно дорівнює 8x4=32. По-друге, у процедурі switch... case... число операторів case у кожному рядку має дорівнювати числу сигналів на одну комірку. У цьому аргументи операторів case повинні утворювати безперервну послідовність від 0 до NUM_CALLS-1. Тіло функції та оператор break залишаються без змін. Потім програму необхідно зберегти та заново відкомпілювати.

У програмі для комп'ютера жодних налаштувань не потрібно. Достатньо змінити значення константи NUM_BOX_CALL (кількість сигналів на комірку) у файлі settings.cfg. Воно має суворо відповідати закладеному у програму мікроконтролера.

Програми для мікроконтролера та комп'ютера можна завантажити з ftp://ftp.radio.ru/pub/2017/01/signal.zip.

література

  1. Дріневський В., Сироткіна Г. Музичні синтезатори серії УМЗ. – Радіо, 1998, № 10, с. 85.
  2. Universal Serial Bus. HID Information. - URL: usb.org/developers/hidpage/.
  3. V-USB. - URL: obdev.at/products/vusb/index.html.
  4. Архівдрайверівус-20100715. - URL: obdev.at/downloads/vusb/vusb-20100715.tar.gz.
  5. Компілятори WinAVR-20100110. - URL: sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-201 0 0110-install.exe/download.
  6. USB для AVR. Частина 2. HID Class на V-USB. - URL: we.easyelectronics.ru/electro-and-pc/usb-dlyaavr-chast-2-hid-class-na-v-usb.html.
  7. Агур П. Практика програмування USB. – С.-Пб.: "БХВ-Петербург", 2006.

Автор: Д. Панкратьєв

Дивіться інші статті розділу Медицина.

Читайте та пишіть корисні коментарі до цієї статті.

<< Назад

Останні новини науки та техніки, новинки електроніки:

Машина для проріджування квітів у садах 02.05.2024

У сучасному сільському господарстві розвивається технологічний прогрес, спрямований на підвищення ефективності догляду за рослинами. В Італії було представлено інноваційну машину для проріджування квітів Florix, створену з метою оптимізації етапу збирання врожаю. Цей інструмент оснащений мобільними важелями, що дозволяють легко адаптувати його до особливостей саду. Оператор може регулювати швидкість тонких проводів, керуючи ним із кабіни трактора за допомогою джойстика. Такий підхід значно підвищує ефективність процесу проріджування квітів, забезпечуючи можливість індивідуального налаштування під конкретні умови саду, а також сорт та вид фруктів, що вирощуються на ньому. Після дворічних випробувань машини Florix на різних типах плодів результати виявились дуже обнадійливими. Фермери, такі як Філіберто Монтанарі, який використовував машину Florix протягом кількох років, відзначають значне скорочення часу та трудовитрат, необхідних для проріджування кольорів. ...>>

Удосконалений мікроскоп інфрачервоного діапазону 02.05.2024

Мікроскопи відіграють важливу роль у наукових дослідженнях, дозволяючи вченим занурюватися у світ невидимих ​​для ока структур та процесів. Однак різні методи мікроскопії мають обмеження, і серед них було обмеження дозволу при використанні інфрачервоного діапазону. Але останні досягнення японських дослідників із Токійського університету відкривають нові перспективи вивчення мікросвіту. Вчені з Токійського університету представили новий мікроскоп, який революціонізує можливості мікроскопії в інфрачервоному діапазоні. Цей удосконалений прилад дозволяє побачити внутрішні структури живих бактерій із дивовижною чіткістю в нанометровому масштабі. Зазвичай мікроскопи в середньому інфрачервоному діапазоні обмежені низьким дозволом, але нова розробка японських дослідників дозволяє подолати ці обмеження. За словами вчених, розроблений мікроскоп дозволяє створювати зображення з роздільною здатністю до 120 нанометрів, що в 30 разів перевищує дозвіл традиційних метрів. ...>>

Пастка для комах 01.05.2024

Сільське господарство - одна з ключових галузей економіки, і боротьба зі шкідниками є невід'ємною частиною цього процесу. Команда вчених з Індійської ради сільськогосподарських досліджень – Центрального науково-дослідного інституту картоплі (ICAR-CPRI) у Шимлі представила інноваційне вирішення цієї проблеми – повітряну пастку для комах, яка працює від вітру. Цей пристрій адресує недоліки традиційних методів боротьби зі шкідниками, надаючи дані про популяцію комах у реальному часі. Пастка повністю працює за рахунок енергії вітру, що робить її екологічно чистим рішенням, яке не вимагає електроживлення. Її унікальна конструкція дозволяє відстежувати як шкідливі, так і корисні комахи, забезпечуючи повний огляд популяції в будь-якій сільськогосподарській зоні. "Оцінюючи цільових шкідників у потрібний час, ми можемо вживати необхідних заходів для контролю як комах-шкідників, так і хвороб", - зазначає Капіл. ...>>

Випадкова новина з Архіву

Світовий океан встановив новий температурний рекорд 05.08.2023

Згідно з даними, отриманими кліматичною обсерваторією Європейського союзу, світовий океан досяг нового температурного рекорду, піднімаючись до 20,96°C. Це значення перевищує попередній рекорд 20,95 °C, зафіксований у березні 2016 року. Незважаючи на виключення полярних регіонів, Національне управління океанічних та атмосферних досліджень США (NOAA) також повідомило про схожі тенденції: середня температура поверхні моря досягла 21,06 °C 4 квітня, перевищивши попередній максимум 21,01 °C, зафіксований у березні 2016 року. .

Вчені застерігають, що перегрів океанів може спричинити глибокі наслідки для морської екосистеми та прибережних угруповань. Більше того, океани вже поглинули 90% надлишкового тепла, яке виробляється людською діяльністю, головним чином, внаслідок спалювання викопних палив. Накопичення парникових газів у атмосфері продовжує посилювати цей процес.

Цей висхідний тренд надає довгострокові наслідки, справляючи потенційний вплив на міграційні патерни певних видів тварин і сприяючи поширенню інвазивних організмів. Такі зміни можуть наражати на ризик рибні ресурси та продовольчу безпеку в різних частинах світу.

Крім того, підвищення температури океанів загрожує здатності планети абсорбувати вуглекислий газ (CO2), створюючи хибне коло у посиленні глобального потепління. Нещодавнє явище Ель-Ніньо, яке супроводжується підвищенням температури океанських вод, тільки почалося і, ймовірно, посилить цей процес.

Прогнозується, що найгірші наслідки поточного Ель-Ніньо будуть помітні до кінця 2023 року і продовжаться у наступні роки. Незважаючи на те, що короткострокові фактори можуть вплинути, головною довгостроковою причиною зростання температури океанів, безумовно, є накопичення парникових газів в результаті діяльності людини, особливо спалювання викопного палива.

Цей тривожний тренд спостерігається на тлі низки рекордів у всьому світі. Наприклад, у Флориді (США) на узбережжі було зареєстровано температуру 38,3°C, що, можливо, є глобальним рекордом для точкового виміру. Також поверхневі води Північної Атлантики досягли рекордно високої середньої температури в 24,9 ° C, перевищуючи попередні значення на цю пору року.

Згідно зі звітом Міжурядової групи експертів зі зміни клімату (МГЕЗК) за 2019 рік, Середземне море зафіксувало свій найспекотніший липневий день, середня температура склала 28,71°C. Частота хвиль морської спеки подвоїлася з 1982 року, наголошуючи на необхідності скорочення викидів забруднюючих речовин, інакше до 2100 року вони можуть стати вдесятеро інтенсивнішими порівняно з початком 20-го століття.

Інші цікаві новини:

▪ Гібридно-електричне повітряне таксі Plana

▪ Якісне вирощування на кремнії напівпровідникових лазерів

▪ Світлодіод товщиною 3 атоми для надтонких гнучких екранів

▪ Синаптичний транзистор, що імітує людський мозок

▪ Google представив свій планшет

Стрічка новин науки та техніки, новинок електроніки

 

Цікаві матеріали Безкоштовної технічної бібліотеки:

▪ Розділ сайту Прошивки. Добірка статей

▪ стаття Безпечний. Крилатий вислів

▪ стаття Чи можна помітити брехню співрозмовника? Детальна відповідь

▪ стаття Головний дизайнер. Посадова інструкція

▪ стаття Вимірювання частоти за допомогою авометра. Енциклопедія радіоелектроніки та електротехніки

▪ стаття Паперова сумка з подвійною стінкою. Секрет фокусу

Залишіть свій коментар до цієї статті:

ім'я:


E-mail (не обов'язково):


коментар:





All languages ​​of this page

Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт

www.diagram.com.ua

www.diagram.com.ua
2000-2024