Menu English Ukrainian Russia Laman Utama

Perpustakaan teknikal percuma untuk penggemar dan profesional Perpustakaan teknikal percuma


ENSIKLOPEDIA ELEKTRONIK RADIO DAN KEJURUTERAAN ELEKTRIK
Perpustakaan percuma / Skim peranti radio-elektronik dan elektrik

USB-penyebar masa mengambil ubat. Ensiklopedia elektronik radio dan kejuruteraan elektrik

Perpustakaan teknikal percuma

Ensiklopedia elektronik radio dan kejuruteraan elektrik / Медицина

Komen artikel Komen artikel

Orang tua yang terpaksa mengambil ubat secara teratur sering mengalami kesukaran untuk mengekalkan rejimen mereka sendiri. Tetapi kadang-kadang bukan sahaja kesihatan, tetapi juga kehidupan itu sendiri bergantung pada pelaksanaan tepat pada masanya arahan doktor. Sebagai tambahan kepada kaedah organisasi biasa untuk menyelesaikan masalah, cara teknikal juga boleh digunakan. Ini termasuk penggera yang dicadangkan, yang menghantar isyarat setiap hari mengikut jadual yang dimasukkan ke dalamnya, mengingatkan anda tentang keperluan untuk mengambil ubat.

Ramai orang yang lebih tua boleh difahami menghadapi kesukaran bekerja dengan produk perisian moden. Bagi peranti penggera, kebanyakannya sebenarnya adalah jam penggera yang agak moden, tidak dapat berfungsi mengikut jadual walaupun dengan dua atau tiga jenis ubat dan secara ergonomik tidak sesuai digunakan oleh orang yang lebih tua.

Pandangan umum penggera yang dibangunkan oleh pengarang, yang mempunyai lapan saluran bebas (mengikut bilangan sel untuk ubat), setiap satunya boleh dikonfigurasikan untuk menghantar sehingga empat isyarat peringatan setiap hari (sebanyak 32 isyarat boleh dihantar), ditunjukkan dalam Rajah. 1. Untuk memasukkan atau melaraskan jadual ubat, peranti ini disambungkan melalui antara muka USB ke komputer di mana program khas dijalankan. Apabila jadual dimuatkan, penggera beroperasi secara autonomi.

Pemasa Ubat USB
nasi. 1. Pandangan umum penggera

Kedua-dua bahagian perkakasan dan perisian penggera direka bentuk dengan mengambil kira penggunaannya oleh warga emas, termasuk mereka yang mengalami masalah penglihatan. Mengendalikan peranti adalah sangat mudah, dan program ini menggunakan penyelesaian algoritma dan antara muka yang meningkatkan kemudahan penggunaan dengan ketara. Di samping itu, langkah keselamatan elektrik telah diambil dalam reka bentuk penggera.

Penggera dikuasakan daripada rangkaian ~230 V, dan sekiranya berlaku kegagalan kuasa, ia bertukar kepada kuasa secara automatik daripada bateri boleh dicas semula terbina dalam. Kuasa yang digunakan dari rangkaian tidak melebihi 5 W, masa operasi dari bateri dengan kapasiti 800 mAh mencapai tiga hari. Ini memastikan keselamatan jadual walaupun semasa gangguan bekalan elektrik jangka panjang.

Litar penggera ditunjukkan dalam Rajah. 2. Prinsip pengendaliannya adalah mudah: program mikropengawal membandingkan nilai masa semasa setiap saat dengan masa isyarat yang ditentukan. Jika terdapat padanan, peranti mengeluarkan isyarat bunyi, yang merupakan salah satu daripada beberapa melodi, boleh dipilih sesuka hati, dan menghidupkan penunjuk cahaya sel yang sepadan dengan ubat. Pada masa yang sama, masa untuk menghantar isyarat ini dipindahkan ke hari berikutnya. Untuk mematikan isyarat bunyi dan cahaya, hanya tekan butang pengesahan SB1.

Pemasa Ubat USB
nasi. 2. Litar penggera (klik untuk besarkan)

Pengawal mikro ATmega8A-PU (DD1) yang digunakan dalam peranti penggera mampu beroperasi pada voltan bekalan yang dikurangkan kepada 2,7 V. Kekerapan jam mikropengawal 12 MHz ditetapkan oleh resonator kuarza ZQ1. Unit penggera bunyi dipasang pada litar mikro pensintesis muzik UMS8-08 (DD2). Mikropengawal menghidupkan isyarat audio dengan menghantar tahap tinggi ke input S cip pensintesis. Isyarat berbunyi secara berterusan sehingga butang SB1 ditekan. Sumber bunyi ialah pemancar piezo HA1. Isipadu dikawal oleh perintang pembolehubah R16. Melodi diisih dengan menekan butang SB2 semasa main semula. Maklumat lebih terperinci tentang litar mikro siri UMS diberikan dalam [1].

Peranti penggera mempunyai sumber pengubah voltan stabil 5 V, tidak ditunjukkan dalam rajah, dipasang mengikut litar tradisional pada penstabil bersepadu 7805. Sekiranya berlaku kehilangan voltan dalam rangkaian bekalan, peranti bertukar kepada kuasa daripada bateri GB1. Purata arus yang digunakan daripadanya tidak melebihi 5 mA. Jika terdapat voltan dalam rangkaian, bateri dicas semula secara berterusan terima kasih kepada litar VD5, VD6, R18. Walau bagaimanapun, adalah disyorkan untuk mematikannya sebulan sekali dan melakukan kitaran penuh nyahcas kepada voltan 3 V dan mengecas menggunakan pengecas luaran.

Litar mikro pensintesis muzik UMS8-08 boleh digantikan dengan yang lain daripada siri UMS7 dan UMS8. Mereka berbeza hanya dalam set melodi. Ia dibenarkan untuk menggantikan transistor KT3102B dengan KT3102G, KT3102E atau BC547 yang diimport, serta dengan KT315B atau KT315G, jika rintangan perintang R17 dikurangkan kepada 51 kOhm. Daripada diod KD522B, KD521A, KD521B, KD522A, 1N4148 dan yang serupa adalah sesuai. Semua perintang tetap ialah C2-33N atau MLT. Kapasitor oksida C3 dan C6 - K50-83, K50-16 atau diimport. Kapasitor yang tinggal adalah seramik K10-73-1b, K10-17v. Mana-mana LED sesuai dalam perumah dengan diameter 5 mm warna cahaya yang dikehendaki. Dalam versi pengarang, LED hijau dipasang sebagai HL1, supaya tidak mengganggu pesakit, selebihnya berwarna merah. Penyambung XS1 - soket USB-BF.

Bateri GB1 terdiri daripada tiga bateri Ni-Mh bersaiz AA dengan kapasiti 80 mAh. Anda boleh menggunakan bateri dengan kapasiti lain, tetapi adalah dinasihatkan untuk memilih perintang R18 dengan rintangan sedemikian sehingga arus pengecasan awal bateri yang dilepaskan kepada voltan 3 V secara berangka sama dengan 0,1 kapasiti nominalnya.

Penggera dipasang pada plat pelekap berlubang standard berukuran 70x50 mm dengan pic penembusan 2,54 mm. Kaedah pemasangan: berengsel dengan penetapan pelekat cair panas. Oleh kerana kesederhanaan litar, pendawaian bercetak tidak digunakan. Semua elemen peranti, kecuali LED HL2-HL9, diletakkan di dalam kotak pengedaran elektrik plastik reka bentuk IP67 dengan dimensi 80x80x40 mm.

Penyambung XS1 terletak pada papan litar bercetak kecil; bertentangan dengannya, lubang dengan saiz yang sesuai dipotong di dinding kotak. Elemen HA1, HL1, GB1, R16, SB1 dipasang pada penutup kotak dengan gam panas. Butang SB2, yang tidak berkaitan dengan kawalan operasi, terletak pada papan litar. Dalam Rajah. Rajah 3 menunjukkan kedudukan relatif papan litar dan elemen jauh di dalam kotak agihan.

Pemasa Ubat USB
nasi. 3. Kedudukan relatif papan litar dan elemen jauh di dalam kotak simpang

Ubat diletakkan dalam kaset standard untuk komponen radio yang terdiri daripada lapan sel dengan laci. Setiap sel mempunyai dimensi 112x55x120 mm. Dimensi keseluruhan pemegang kaset ialah 224x110x120 mm. Oleh kerana sel tidak tertutup, tetapi agak luas, ubat-ubatan harus disimpan dalam bungkusan asalnya. Pemegang kaset juga menyediakan perlindungan daripada cahaya, yang diperlukan untuk menyimpan jenis ubat tertentu. Panel hadapan sel mempunyai alur untuk plat dengan nama ubat.

Kotak pengedaran diikat pada dinding sebelah kiri kotak kaset dengan skru dan nat M3. LED HL2-HL9 terletak satu demi satu pada panel hadapan setiap sel dan disambungkan kepada peranti dengan wayar fleksibel yang diletakkan di dalam tiub PVC di dalam sel dan digabungkan pada bahagian belakang kotak kaset. Rizab panjang setiap pasangan wayar yang menuju ke LED harus memastikan sambungan bebas sel kepada 75...80% daripada keadaan terbuka sepenuhnya.

Fail USB_HID_Note.hex yang dilampirkan pada artikel harus dimuatkan ke dalam memori program mikropengawal. Konfigurasi mikropengawal mesti sepadan dengan yang ditunjukkan dalam jadual. 1. Peranti yang dipasang dengan betul tidak memerlukan pemasangan. Kecerahan LED yang dikehendaki boleh ditetapkan dengan menukar arusnya dalam 5...10 mA menggunakan pilihan perintang R7-R15.

Jadual 1

Pelepasan Keadaan
CKOPT 0
CKSEL [3: 0] 1111
SUT [1: 0] 10
BODEN 1
W.D.E. 1
RSTDISBL 1

Dari sudut pandangan spesifikasi USB, peranti ini tergolong dalam kelas HID [2] dengan pelaksanaan perisian antara muka USB berdasarkan pemacu AVR V-USB yang terkenal [3]. Izinkan saya mengingatkan anda bahawa dalam kes ini adalah perlu untuk menukar antara muka ke mod USB 1.1 berkelajuan rendah, yang, mengikut spesifikasi, dilakukan menggunakan perintang yang disambungkan antara talian antara muka D- dan Vbas (dalam kes ini ini adalah perintang R4).

Salah satu pilihan standard untuk menyambungkan mikropengawal dengan bekalan kuasanya pada voltan yang dikurangkan melalui diod VD1 dan VD2 telah digunakan. Penggunaan diod ini adalah wajar walaupun terdapat bateri, kerana ia menghapuskan pengaruh voltannya pada penyelarasan tahap logik bas USB dan mikropengawal.

Pengawal mikro beroperasi pada frekuensi jam 12 MHz, salah satu julat yang dibenarkan untuk V-USB. Programnya ditulis dalam C dalam persekitaran pembangunan AVR Studio 4. Teks program (fail main.c) mengandungi ulasan terperinci. Keluaran pemacu vusb-20100715 [4] dan pengkompil WinAVR-20100110 [5] telah digunakan.

Perpustakaan V-USB didokumenkan dengan baik, jadi hanya mata yang berkaitan secara langsung dengan pelaksanaan projek atau berkaitan dengan ciri-cirinya akan dipertimbangkan di sini. Proses langkah demi langkah untuk mencipta program berdasarkan perpustakaan V-USB diterangkan secara terperinci dalam [6].

Perkara utama yang perlu diberi perhatian semasa membuat program dalam AVR Studio:

- semua fail daripada folder usbdrv arkib V-USB mesti disalin ke folder projek;

- fail usbdrv.c, usbdrvasm.S, oddebug.c harus ditambah pada projek AVR Studio (melalui item menu konteks "Tambah Fail Sumber Sedia Ada..." dalam pepohon projek);

- dalam tetapan projek (Projek → Pilihan Konfigurasi → Umum → Frekuensi, Hz), frekuensi jam mikropengawal hendaklah ditetapkan kepada 12000000 Hz. Berdasarkan nilai ini, AVR Studio akan menentukan kepada pengkompil pemalar F_CPU yang digunakan oleh V-USB.

Konfigurasi V-USB yang diperlukan terkandung dalam fail usbconfig.h, yang juga harus terletak dalam folder projek. Fail konfigurasi standard harus diganti dengan yang dilampirkan pada artikel. Dalam jadual 2 menyenaraikan pemalar paling penting yang ditakrifkan dalam fail ini. Kemungkinan pembangunan percuma peranti USB HID dikaitkan dengan perkara penting - ia mesti menggunakan pasangan pengecam VID/PID mengikut dokumen USB-IDs-for-free.txt daripada perpustakaan V-USB [3].

Jadual 2

berterusan Nilai Содержание
USB CFG IOPORTNAME D Pelabuhan sambungan bas
USB CFG DMINUS BIT 4 Bit port yang mana garisan D disambungkan
USBCFGDPLUSBIT 2 Bit port yang mana talian D+ disambungkan (mesti disambungkan ke input gangguan INTO)
KELAS ANTARA MUKA USB CFG 3 (HID) Kelas peranti
KUASA BAS CFG MAX USB 100 Penggunaan arus maksimum dari bas USB. mA
PANJANG DESKRIPTOR LAPORAN HID CFG USB 22 * Panjang deskriptor laporan HID
ID VENDOR CFG USB OxCO, 0x16 ID pengilang peranti
ID PERANTI CFG USB OxDF, 0x05 ID produk

*) Nilai ini mestilah sama dengan saiz tatasusunan aksara PROGMEM usbHidReportDescriptor dalam program.

Program ini menggunakan format masa UNIX, di mana nilai masa ialah bilangan saat yang telah berlalu sejak 00:00:00 UTC 01.01.1970/XNUMX/XNUMX. Penggera tidak memaparkan masa secara visual, yang mengelakkan komplikasi litar dan algoritma yang tidak perlu operasinya. Pembolehubah pdata digunakan untuk menghantar cap masa - nilai masa UNIX empat bait.

Bilangan maksimum isyarat yang dihantar setiap hari ditentukan dalam program dengan pemalar NUM_ CALLS. Untuk menyimpan nilai masa, tatasusunan u_time bersaiz NUM_CALLS+1 digunakan. Dalam kes ini, elemen tatasusunan u_time[NUM_CALLS] mengandungi masa semasa dan selebihnya - masa isyarat dihantar. Setiap saluran (sel kaset ubat) diperuntukkan empat elemen tatasusunan. Sebagai contoh, sel pertama mengandungi elemen dari u_time[0] hingga u_time[3], yang kedua - dari u_time[4] hingga u_time[7], dsb. Jika nilai elemen tatasusunan ialah sifar, isyarat yang sepadan dianggap tidak aktif. Pendekatan ini membolehkan kami memudahkan algoritma untuk menghantar dan memproses maklumat.

Deskriptor yang menerangkan struktur pakej dan prosedur pemindahan maklumat usbFunctionWrite dan usbFunctionRead dicipta berdasarkan penyelesaian standard. Fungsi asas diterangkan secara terperinci dalam fail pengepala usbdrv.h daripada [3]. Prosedur ini dilengkapi dengan syarat untuk menyemak bilangan saluran yang diproses. Bilangan elemen tatasusunan yang diterima oleh peranti daripada komputer adalah lebih satu daripada yang dihantar, kerana komputer sentiasa menghantar masa semasa untuk penyegerakan.

Pada permulaan prosedur utama main(), daftar I/O dikonfigurasikan, faktor pembahagian frekuensi jam ditetapkan kepada 256, dan daftar pemasa TCNT1 pada mulanya dimuatkan dengan nombor yang diperlukan untuk membentuk selang masa 1 saat. Gangguan limpahan pemasa dilumpuhkan secara lalai.

Selepas ini, program memasuki gelung utama. Jika tiada sambungan USB, gangguan akan didayakan secara global dan pada limpahan pemasa 1. Dalam gelung for, setiap elemen tatasusunan u_time[i] dengan nilai bukan sifar akan disemak untuk melihat sama ada ia sama dengan arus masa. Jika seri dikesan, buzzer dan LED sel yang sepadan akan dihidupkan, dan masa tindak balas saluran ini meningkat sebanyak 86400 s (sehari).

Kemudian tahap pada input PB0 diperiksa. Jika ia rendah (butang SB1 ditekan untuk mengesahkan penerimaan isyarat), semua output akan ditetapkan kepada tahap logik rendah, yang akan mematikan isyarat.

Selari dengan ini, setiap saat apabila pemasa 1 melimpah, prosedur pengendalian gangguan TIMER1_OVF_vect dilancarkan. Ia memulihkan pratetap pembilang TCNT1, menambah nilai masa semasa dalam elemen tatasusunan u_time[NUM_ CALLS] dan menukar keadaan output PB1 (LED HL1 yang disambungkan kepadanya berkelip dengan tempoh 2 saat).

Apabila peranti disambungkan ke USB, input PC5 menerima tahap tinggi daripada talian Vbus bas USB. Dalam kes ini, keadaan if (PINC & (1<<5)) melumpuhkan limpahan pemasa 1 mengganggu dan mengaktifkan pemacu V-USB. LED HL1 menyala dan menyala secara berterusan.

Selepas mengaktifkan pemacu V-USB, ia menjadi mungkin untuk bertukar maklumat melalui USB. Gelung memanggil fungsi usbPoll(), yang memastikan antara muka aktif tanpa adanya pertukaran maklumat. Proses pemindahan maklumat diterangkan dengan lebih terperinci dalam bahagian artikel berkenaan program komputer.

Mari kita teruskan untuk mempertimbangkan program komputer untuk memasukkan jadual ke dalam peranti isyarat USB_HID_Note. Seperti yang dapat dilihat dari tetingkap utamanya (Rajah 4), perhatian khusus semasa proses pembangunan telah diberikan untuk mengoptimumkan antara muka untuk memastikan kemudahan penggunaan untuk pengguna yang lebih tua. Program ini berjalan di bawah Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008. Prestasinya di bawah Windows 10 dan Windows Server 2012 belum diuji, tetapi ada sebab untuk menganggap bahawa ia akan berfungsi seperti biasa.

Pemasa Ubat USB
nasi. 4. Tetingkap utama program komputer untuk memasukkan jadual ke dalam peranti penggera

Selepas memulakan program dengan peranti penggera yang disambungkan ke komputer, tekan butang pada skrin "Untuk memasangkan". Mesej akan dipaparkan yang menunjukkan hasil percubaan sambungan. Jika ia berjaya, butang pada skrin akan tersedia "baca semua" dan "Simpan".

Untuk memasukkan jadual, hanya pilih nombor sel daripada senarai juntai bawah pertama (pemilih) dan nombor isyarat untuk sel ini daripada senarai kedua. Kemudian tetapkan masa isyarat yang dikehendaki, klik pada bendera di sebelah kiri nombor untuk membenarkan atau melumpuhkan gabungan sel dan isyarat yang dipilih (warna bendera berubah) dan tulis nama ubat dalam satu-satunya baris yang tersedia. Nama ubat terikat pada nombor sel, jadi kandungan baris berubah hanya apabila pemilih pertama ditukar. Bendera dayakan merujuk kepada gabungan nombor sel dan isyarat yang dipilih.

Jadi isi semua sel yang diperlukan. Keadaan lalai sel dilumpuhkan; tidak perlu mengaktifkan kesemuanya. Jika perlu, tetapan sel boleh diubah. Nilai yang dimasukkan disimpan secara dinamik.

Dengan menekan butang skrin Jadual dipindahkan ke peranti penggera dan ditulis ke fail konfigurasi. Mesej akan dipaparkan yang menunjukkan hasil pemindahan. Jadual yang disimpan dalam peranti penggera boleh dibaca daripadanya dengan menekan butang skrin . Selepas ini, anda boleh melihatnya dalam tetingkap program, mengeditnya jika perlu, dan memuatkannya semula ke dalam peranti penggera. Menekan butang pada skrin memadamkan nama ubat dalam tetingkap yang sepadan, memberi peluang untuk menulis satu lagi.

Ciri penting penggera ialah ia menghentikan pemasa semasa apabila disambungkan ke USB. Pada masa program komputer ditutup, jadual dan masa semasa direkodkan secara automatik dalam penggera (penyegerakan). Oleh itu, selepas menutup program, anda harus memutuskan sambungan kabel USB dari peranti penggera secepat mungkin untuk meminimumkan perbezaan antara masa sebenar dan "sistem".

Walau bagaimanapun, walaupun perbezaan beberapa minit dalam kes yang sedang dipertimbangkan adalah tidak kritikal, jadi tiada langkah telah diambil untuk menghapuskan ciri ini. Jika, selepas melengkapkan program USB_HID_Note, peranti penggera secara tidak sengaja kekal disambungkan ke komputer untuk masa yang lama, cuma mulakan program ini semula dan tekan butang pada skrin , kemudian seterusnya dan di sana atau tutup sahaja program. Masa penggera yang betul akan dipulihkan, selepas itu kabel USB boleh diputuskan.

Nama-nama ubat disimpan dalam fail konfigurasi program dan dipaparkan pada skrin komputer apabila peranti penggera disambungkan. Bersama dengan memasukkan jadual ke dalam program, anda harus memastikan bahawa setiap sel kaset dilengkapi dengan tag dengan tulisan yang sesuai.

Program USB_HID_Note ditulis dalam C++ dalam persekitaran pengaturcaraan Qt 5.3.2. Pilihan persekitaran ini adalah kerana sifat bebasnya, platform merentas, keupayaan yang luas dan alatan terbina dalam yang unik untuk mencipta dan menyahpepijat aplikasi dari mana-mana peringkat, digabungkan dengan fleksibiliti penyelesaian antara muka. Jenis pelaksanaan aplikasi ialah Qt Widget. Teks sumber widget ialah widget fail.cpp. Keseluruhan projek disusun ke dalam arkib USB_HID_Note_ pro.zip, dilampirkan pada artikel.

Ciri khas program ini ialah akses terus kepada fungsi pustaka SetupAPI dan HID. Oleh itu, komputer di mana penyusunan berlaku mesti mempunyai fail setupapi.lib dan hid.lib yang sepadan dengan versi sistem pengendaliannya. Fail ini biasanya disertakan dalam pakej WinDDK. Untuk mengelakkan keperluan untuk memasang sepenuhnya keseluruhan pakej WinDDK, fail pelbagai versi daripada WinDDK 7600. 16385.1 telah dikumpulkan oleh pengarang ke dalam satu folder winddk_libs, yang tersedia pada pelayan FTP pejabat editorial. Penyusunan dan penyahpepijatan boleh dijalankan di bawah Windows 7, Windows Server 2008 R2, Windows Vista SP1, Windows Server 2003 SP1, Windows XP SP3 atau yang lebih baru. Fail .pro mesti secara eksplisit menunjukkan laluan penuh ke perpustakaan, contohnya, seperti dalam jadual. 3.

Jadual 3

Pemasa Ubat USB

Fail boleh laku yang disusun atur cara bersama-sama dengan fail konfigurasi (.cfg) dan gaya (.qss) terletak dalam folder USB_HID_Note yang dilampirkan pada artikel. Perpustakaan dinamik Qt yang diperlukan (fail.dll) juga terdapat di sana. Seperti yang anda ketahui, keperluan ini adalah wajib untuk mana-mana aplikasi yang dibangunkan dalam Qt. Senarai perpustakaan ini untuk kes yang sedang dipertimbangkan diberikan dalam Jadual. 4.

Jadual 4

Pemasa Ubat USB

Semua perpustakaan disalin daripada ..ToolsQtCreator dalam folder, kecuali dua yang terakhir, yang disalin daripada ..5.3mingw482_32pluginsplatforms dan diletakkan dalam subfolder sepadan folder kerja program. Anda juga boleh menyalinnya sendiri dari komputer di mana program itu disusun ke folder kerja atau sistem program (saiz arkib - 126 MB, dibongkar - 400 MB).

Algoritma program adalah berdasarkan penyelesaian standard yang diberikan dalam [7]. Ciri-ciri pelaksanaan dikaitkan, pertama sekali, dengan penggunaan bahasa pengaturcaraan yang berbeza (berbeza dengan yang diterangkan dalam sumber Delphi dan C#). Untuk menggunakan fungsi HID API dan SetupAPI, anda mesti memasukkan fail pengepala hidsdi.h dan setupapi.h, masing-masing.

Pengendali klik butang pada skrin ialah prosedur on_Connect Button_clicked(). Pertama, fungsi pemacu HidD_GetHidGuid menentukan GUID yang dikaitkan dengan HID. Fungsi SetupAPI kemudiannya dipanggil untuk mencipta enumerator antara muka dan mendapatkan nama HID peranti. Ini diterangkan secara terperinci dalam [7] pada ms. 333. Dalam kes ini, fungsi menentukan nama produk atau nombor sirinya sengaja tidak digunakan. Hanya pasangan VID/PID disemak. Ini dilakukan untuk mengelakkan kemungkinan penggunaan komersil peranti. Nilai VID/PID ditentukan oleh pemalar Dev_VID_PID dalam fail global_vars.h.

Setelah peranti dikesan, kawalan dipindahkan kembali kepada pemacu HID. Fungsi CreateFile meminta pemegangnya, HidD_GetPreparsedData mengembalikan penunjuk kepada penimbal yang mengandungi maklumat tentang parameter peranti dan HidP_GetCaps mengembalikan struktur dengan nilai parameter ini.

Tidak seperti kaedah yang biasa digunakan dengan saiz laporan yang ditetapkan secara langsung dalam program, di sini nilainya ditentukan oleh elemen struktur Caps.FeatureReportByteLength yang diperoleh daripada deskriptor. Ini membolehkan anda mencipta penyelesaian yang lebih universal yang tidak memerlukan perubahan pada program dan menyusunnya semula apabila saiz laporan dalam deskriptor peranti berubah.

Pertukaran maklumat sebenar berlaku menggunakan Fungsi HidD_Get (baca) dan HidD_SetFeature (tulis), dipanggil dalam prosedur yang sepadan data_read() dan data_transfer() dalam kitaran mengikut bilangan sel. Seperti yang telah dinyatakan, bilangan elemen tatasusunan yang diterima oleh peranti isyarat adalah lebih banyak daripada yang dihantar, kerana untuk penyegerakan komputer sentiasa menghantar masa semasa.

Ulasan terperinci yang menerangkan tujuan prosedur yang paling penting tersedia dalam teks program. Tujuan prosedur yang selebihnya adalah sama ada standard atau intuitif, contohnya, on_comboBox_ currentIndexChanged() - pengendali untuk peristiwa perubahan indeks comboBox. Baris qDebug yang dikomen dan yang disertakan hanya bertujuan untuk menyahpepijat atur cara. Jika anda perlu menyahpepijat dan melihat kemajuan pertukaran maklumat dalam tetingkap penyahpepijat Qt terbina dalam, semua arahan ini hendaklah dinyahkomen.

Program ini menyimpan konfigurasi umum dalam fail settings.cfg. Ia adalah dalam format teks biasa dan boleh diedit secara manual jika perlu. Bahagian [Umum]nya mengandungi bilangan sel NUM_BOX=8 dan bilangan isyarat setiap sel NUM_BOX_CALL=4, dalam bahagian [view] kedudukan tetingkap program pada skrin ditentukan dalam integer. Bahagian [nama] mengandungi nama ubat mengikut sel, bahagian [digunakan] - bendera aktiviti sel, bahagian [masa] - nilai masa tindak balas dalam format cap masa UNIX. Yang terakhir ini terutamanya bersifat maklumat, kerana nilai operasi terletak dalam ingatan mikropengawal pengesan. Apabila mengedit fail secara manual, sila ambil perhatian bahawa parameter nama berada dalam format kod sumber C/C++/Java (contohnya, u3256).

Dan sebagai kesimpulan, beberapa cadangan untuk mereka yang ingin menukar secara bebas bilangan isyarat yang dihantar oleh peranti. Jika bilangan sel ditetapkan, agak mudah untuk menukar bilangan isyarat setiap sel. Dalam program mikropengawal, untuk ini adalah perlu, pertama sekali, menukar pemalar NUM_CALLS. Nilainya hendaklah sama dengan hasil darab bilangan sel dan bilangan maksimum isyarat bagi setiap sel. Dalam kes yang dipertimbangkan dalam artikel, ia adalah sama dengan 8x4=32. Kedua, dalam suis... kes... prosedur, bilangan pernyataan kes dalam setiap baris mestilah sama dengan bilangan isyarat setiap sel. Dalam kes ini, hujah pernyataan kes mesti membentuk urutan berterusan dari 0 hingga NUM_CALLS-1. Badan fungsi dan pernyataan rehat kekal tidak berubah. Program itu kemudiannya mesti disimpan dan disusun semula.

Tiada pelarasan diperlukan dalam program komputer. Ia cukup untuk menukar nilai pemalar NUM_BOX_CALL (bilangan isyarat setiap sel) dalam fail settings.cfg. Ia mesti betul-betul sesuai dengan apa yang disertakan dalam program mikropengawal.

Program untuk mikropengawal dan komputer boleh dimuat turun dari ftp://ftp.radio.ru/pub/2017/01/signal.zip.

Kesusasteraan

  1. Drinevsky V., Sirotkina G. Pensintesis muzik siri UMS. - Radio, 1998, No. 10, hlm. 85.
  2. Bas Bersiri Universal. Maklumat HID. - URL: usb.org/developers/hidpage/.
  3. V-USB. - URL: obdev.at/products/vusb/index.html.
  4. Arkibvusb-20100715 pemandu. - URL: obdev.at/downloads/vusb/vusb-20100715.tar.gz.
  5. Penyusun WinAVR-20100110. - URL: sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-201 0 0110-install.exe/download.
  6. USB untuk AVR. Bahagian 2. Kelas HID pada V-USB. - URL: we.easyelectronics.ru/electro-and-pc/usb-dlyaavr-chast-2-hid-class-na-v-usb.html.
  7. Agurov P. Amalan pengaturcaraan USB. - St. Petersburg: "BHV-Petersburg", 2006.

Pengarang: D. Pankratiev

Lihat artikel lain bahagian Медицина.

Baca dan tulis berguna komen pada artikel ini.

<< Belakang

Berita terkini sains dan teknologi, elektronik baharu:

Kebisingan lalu lintas melambatkan pertumbuhan anak ayam 06.05.2024

Bunyi yang mengelilingi kita di bandar moden semakin menusuk. Walau bagaimanapun, sedikit orang berfikir tentang bagaimana bunyi ini menjejaskan dunia haiwan, terutamanya makhluk halus seperti anak ayam yang belum menetas dari telur mereka. Penyelidikan baru-baru ini menjelaskan isu ini, menunjukkan akibat yang serius untuk pembangunan dan kelangsungan hidup mereka. Para saintis telah mendapati bahawa pendedahan anak ayam zebra diamondback kepada bunyi lalu lintas boleh menyebabkan gangguan serius kepada perkembangan mereka. Eksperimen telah menunjukkan bahawa pencemaran bunyi boleh melambatkan penetasan mereka dengan ketara, dan anak ayam yang muncul menghadapi beberapa masalah yang menggalakkan kesihatan. Para penyelidik juga mendapati bahawa kesan negatif pencemaran bunyi meluas ke dalam burung dewasa. Mengurangkan peluang pembiakan dan mengurangkan kesuburan menunjukkan kesan jangka panjang bunyi lalu lintas terhadap hidupan liar. Hasil kajian menyerlahkan keperluan ...>>

Pembesar suara wayarles Samsung Music Frame HW-LS60D 06.05.2024

Dalam dunia teknologi audio moden, pengeluar berusaha bukan sahaja untuk kualiti bunyi yang sempurna, tetapi juga untuk menggabungkan fungsi dengan estetika. Salah satu langkah inovatif terkini ke arah ini ialah sistem pembesar suara tanpa wayar Samsung Music Frame HW-LS60D yang baharu, dipersembahkan pada acara World of Samsung 2024. Samsung HW-LS60D bukan sekadar sistem pembesar suara, ia adalah seni bunyi gaya bingkai. Gabungan sistem 6 pembesar suara dengan sokongan Dolby Atmos dan reka bentuk bingkai foto yang bergaya menjadikan produk ini sebagai tambahan yang sempurna untuk mana-mana bahagian dalam. Samsung Music Frame baharu menampilkan teknologi canggih termasuk Audio Adaptif yang menyampaikan dialog yang jelas pada mana-mana tahap kelantangan, dan pengoptimuman bilik automatik untuk penghasilan semula audio yang kaya. Dengan sokongan untuk sambungan Spotify, Tidal Hi-Fi dan Bluetooth 5.2, serta penyepaduan pembantu pintar, pembesar suara ini bersedia untuk memuaskan hati anda. ...>>

Cara Baharu untuk Mengawal dan Memanipulasi Isyarat Optik 05.05.2024

Dunia sains dan teknologi moden berkembang pesat, dan setiap hari kaedah dan teknologi baharu muncul yang membuka prospek baharu untuk kita dalam pelbagai bidang. Satu inovasi sedemikian ialah pembangunan oleh saintis Jerman tentang cara baharu untuk mengawal isyarat optik, yang boleh membawa kepada kemajuan ketara dalam bidang fotonik. Penyelidikan baru-baru ini telah membolehkan saintis Jerman mencipta plat gelombang yang boleh disesuaikan di dalam pandu gelombang silika bersatu. Kaedah ini, berdasarkan penggunaan lapisan kristal cecair, membolehkan seseorang menukar polarisasi cahaya yang melalui pandu gelombang dengan berkesan. Kejayaan teknologi ini membuka prospek baharu untuk pembangunan peranti fotonik yang padat dan cekap yang mampu memproses jumlah data yang besar. Kawalan elektro-optik polarisasi yang disediakan oleh kaedah baharu boleh menyediakan asas untuk kelas baharu peranti fotonik bersepadu. Ini membuka peluang besar untuk ...>>

Berita rawak daripada Arkib

Alat telinga berliku sendiri 06.12.2008

Semua orang tahu set kepala wayarles kecil untuk telefon bimbit yang membolehkan anda bercakap tanpa memegang telefon di tangan anda. Peranti yang berguna, tetapi baterinya cepat habis.

Di Amerika Syarikat, fon telinga wayarles telah dipatenkan yang tidak perlu dicas semula. Ia dicas dengan sebarang pergerakan, pusingan dan kecondongan kepala pemakai atau, jika peranti ini berada di dalam poket atau beg, dengan sebarang gegaran. Magnet yang kecil tetapi kuat berayun di dalam gegelung semasa pergerakan, mendorong daya gerak elektrik dalam gilirannya, yang mengecas bateri.

Pengeluaran peranti itu masih belum bermula, walaupun beberapa syarikat telah menghasilkan jam tangan elektronik pergelangan tangan dengan prinsip pengecasan yang sama selama lebih daripada satu dekad.

Berita menarik lain:

▪ Galas yang tidak memerlukan pelinciran

▪ Jam tangan pintar Canyon Wasabi

▪ Penggantian murah untuk berlian

▪ Penggalian di Stonehenge

▪ Bagaimana otak mengingati wajah

Suapan berita sains dan teknologi, elektronik baharu

 

Bahan-bahan menarik Perpustakaan Teknikal Percuma:

▪ bahagian tapak Pengesan kekuatan medan. Pemilihan artikel

▪ artikel Mereka akan memesan - esok saya akan menjadi pakar perbidanan. Ungkapan popular

▪ artikel Mengapa kita berkelip? Jawapan terperinci

▪ artikel Kermek vyemchatolistny. Legenda, penanaman, kaedah aplikasi

▪ artikel Penguat dengan pengubah yang sepadan. Ensiklopedia elektronik radio dan kejuruteraan elektrik

▪ artikel Bekalan kuasa berkuasa, 13,5 volt. Ensiklopedia elektronik radio dan kejuruteraan elektrik

Tinggalkan komen anda pada artikel ini:

Имя:


E-mel (pilihan):


Komen:





Semua bahasa halaman ini

Laman utama | Perpustakaan | artikel | Peta Laman | Ulasan laman web

www.diagram.com.ua

www.diagram.com.ua
2000-2024