Menu English Ukrainian Russo Casa

Libreria tecnica gratuita per hobbisti e professionisti Libreria tecnica gratuita


ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA
Libreria gratuita / Schemi di dispositivi radioelettronici ed elettrici

USB-annunciatore del tempo di assunzione di farmaci. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / Medicina

Commenti sull'articolo Commenti sull'articolo

Gli anziani costretti ad assumere regolarmente farmaci spesso hanno difficoltà a mantenere il proprio regime. Ma a volte non solo la salute, ma anche la vita stessa dipende dalla tempestiva attuazione delle istruzioni del medico. Oltre ai consueti metodi organizzativi per risolvere il problema, possono essere utilizzati anche mezzi tecnici. Tra questi c'è l'allarme proposto, che ogni giorno invia segnali secondo il programma inserito, ricordando la necessità di assumere farmaci.

Molte persone anziane hanno comprensibilmente difficoltà a lavorare con i moderni prodotti software. Per quanto riguarda i dispositivi di allarme, la maggior parte di essi sono in realtà sveglie un po' modernizzate, incapaci di funzionare secondo un programma anche con due o tre tipi di farmaci ed ergonomicamente non adatte all'uso da parte di persone anziane.

La visione generale dell'allarme sviluppata dall'autore, che dispone di otto canali indipendenti (a seconda del numero di celle per i farmaci), ciascuno dei quali può essere configurato per inviare fino a quattro segnali di promemoria al giorno (in totale si possono inviare 32 segnali inviato), è mostrato in Fig. 1. Per inserire o modificare un programma di farmaci, questo dispositivo è collegato tramite un'interfaccia USB a un computer su cui viene eseguito un programma speciale. Quando la programmazione viene caricata, l'allarme funziona in modo autonomo.

Timer per farmaci USB
Riso. 1. Vista generale del dispositivo di segnalazione

Sia la parte hardware che quella software dell'allarme sono progettate tenendo conto del loro utilizzo da parte di persone anziane, comprese quelle con problemi di vista. La gestione del dispositivo è estremamente semplificata e il programma utilizza soluzioni algoritmiche e di interfaccia che aumentano notevolmente la facilità d'uso. Inoltre, nella progettazione dell'allarme sono state adottate misure di sicurezza elettrica.

L'allarme è alimentato da una rete da ~230 V e, in caso di interruzione di corrente, passa automaticamente all'alimentazione dalla batteria ricaricabile integrata. La potenza consumata dalla rete non supera i 5 W, il tempo di funzionamento di una batteria con una capacità di 800 mAh raggiunge i tre giorni. Ciò garantisce la sicurezza del programma anche durante un'interruzione di corrente a lungo termine.

Il circuito di allarme è mostrato in Fig. 2. Il principio del suo funzionamento è semplice: il programma del microcontrollore confronta ogni secondo il valore dell'ora corrente con il tempo del segnale specificato. Se c'è una corrispondenza, il dispositivo emette un segnale sonoro, che è una delle numerose melodie selezionabili a piacimento, e accende l'indicatore luminoso della cella corrispondente con il medicinale. Nello stesso momento, l'ora per l'invio di questo segnale viene trasferita al giorno successivo. Per disattivare le segnalazioni sonore e luminose è sufficiente premere il pulsante di conferma SB1.

Timer per farmaci USB
Riso. 2. Circuito dispositivo di segnalazione (clicca per ingrandire)

Il microcontrollore ATmega8A-PU (DD1) utilizzato nel dispositivo di allarme è in grado di funzionare con una tensione di alimentazione ridotta a 2,7 V. La frequenza di clock del microcontrollore di 12 MHz è impostata dal risonatore al quarzo ZQ1. L'unità di allarme sonoro è assemblata su un microcircuito del sintetizzatore musicale UMS8-08 (DD2). Il microcontrollore attiva il segnale audio inviando un livello alto all'ingresso S del chip del sintetizzatore. Il segnale suona continuamente finché non si preme il pulsante SB1. La sorgente sonora è l'emettitore piezo HA1. Il volume è controllato dal resistore variabile R16. Le melodie vengono ordinate premendo il pulsante SB2 durante la riproduzione. Informazioni più dettagliate sui microcircuiti della serie UMS sono fornite in [1].

Il dispositivo di allarme è dotato di un trasformatore sorgente di tensione stabilizzata da 5 V, non mostrato nello schema, assemblato secondo un circuito tradizionale su uno stabilizzatore integrato 7805. In caso di perdita di tensione nella rete di alimentazione, il dispositivo passa all'alimentazione dalla batteria GB1. La corrente media consumata da esso non supera i 5 mA. Se c'è tensione nella rete, la batteria viene ricaricata continuamente grazie al circuito VD5, VD6, R18. Si consiglia tuttavia di spegnerlo una volta al mese ed eseguire un ciclo completo di scarica ad una tensione di 3 V e di ricarica utilizzando un caricatore esterno.

Il microcircuito del sintetizzatore musicale UMS8-08 può essere sostituito con un altro delle serie UMS7 e UMS8. Differiscono solo nell'insieme delle melodie. È consentito sostituire il transistor KT3102B con un KT3102G, KT3102E o BC547 importato, nonché con un KT315B o KT315G, se la resistenza del resistore R17 è ridotta a 51 kOhm. Al posto dei diodi KD522B sono adatti KD521A, KD521B, KD522A, 1N4148 e simili. Tutti i resistori fissi sono C2-33N o MLT. Condensatori all'ossido C3 e C6 - K50-83, K50-16 o importati. I restanti condensatori sono ceramici K10-73-1b, K10-17v. Tutti i LED sono adatti in alloggiamenti con un diametro di 5 mm del colore luminoso desiderato. Nella versione dell'autore è installato un LED verde come HL1, per non disturbare inutilmente il paziente, il resto è rosso. Connettore XS1 - Presa USB-BF.

La batteria GB1 è composta da tre batterie Ni-Mh formato AA con una capacità di 80 mAh. È possibile utilizzare batterie di altre capacità, ma è consigliabile selezionare un resistore R18 di resistenza tale che la corrente di carica iniziale di una batteria scaricata ad una tensione di 3 V sia numericamente pari a 0,1 della sua capacità nominale.

L'allarme è assemblato su una piastra di montaggio forata standard di dimensioni 70x50 mm con passo di perforazione di 2,54 mm. Metodo di installazione: incernierato con fissaggio adesivo hot-melt. A causa della semplicità del circuito, non è stato utilizzato il cablaggio stampato. Tutti gli elementi del dispositivo, ad eccezione dei LED HL2-HL9, sono collocati in una scatola di distribuzione elettrica in plastica con design IP67 con dimensioni di 80x80x40 mm.

Il connettore XS1 si trova su un piccolo circuito stampato, di fronte ad esso è praticato un foro di dimensioni adeguate nella parete della scatola. Gli elementi HA1, HL1, GB1, R16, SB1 vengono fissati sul coperchio della scatola con colla a caldo. Il pulsante SB2, che non è correlato ai controlli operativi, si trova sulla scheda elettronica. Nella fig. La Figura 3 mostra la posizione relativa della scheda elettronica e degli elementi remoti all'interno della scatola di distribuzione.

Timer per farmaci USB
Riso. 3. La posizione relativa della scheda elettronica e degli elementi remoti all'interno della scatola di giunzione

I medicinali sono collocati in una cassetta standard per componenti radio composta da otto celle con cassetti. Ogni cella ha dimensioni di 112x55x120 mm. Le dimensioni complessive del portacassette sono 224x110x120 mm. Poiché le celle non sono sigillate, ma sono piuttosto spaziose, i farmaci devono essere conservati nella loro confezione originale. Il portacassetta fornisce anche protezione dalla luce, necessaria per conservare alcuni tipi di farmaci. I pannelli frontali delle celle presentano scanalature per piastre con i nomi dei farmaci.

La scatola di distribuzione è fissata alla parete laterale sinistra della cassetta con viti e dadi M3. I LED HL2-HL9 sono posizionati uno alla volta sul pannello frontale di ciascuna cella e sono collegati al dispositivo tramite cavi flessibili posati in tubi di PVC all'interno delle celle e raggruppati sul lato posteriore della cassetta. La riserva di lunghezza di ciascuna coppia di fili diretti ai LED dovrebbe garantire la libera estensione della cella fino al 75...80% dello stato completamente aperto.

Il file USB_HID_Note.hex allegato all'articolo deve essere caricato nella memoria del programma del microcontrollore. La configurazione del microcontrollore deve corrispondere a quella riportata in tabella. 1. Un dispositivo correttamente assemblato non richiede installazione. La luminosità desiderata dei LED può essere impostata modificando la loro corrente entro 5...10 mA utilizzando una selezione di resistori R7-R15.

Tabella 1

scarichi Состояние
CKOPT 0
CKSEL [3: 0] 1111
SUT [1: 0] 10
PAVIMENTO 1
W.D.E. 1
RSTDISBL 1

Dal punto di vista delle specifiche USB, il dispositivo appartiene alla classe HID [2] con un'implementazione software dell'interfaccia USB basata sul noto driver AVR V-USB [3]. Permettetemi di ricordarvi che in questo caso è necessario commutare l'interfaccia sulla modalità USB 1.1 a bassa velocità, che, secondo le specifiche, viene eseguita utilizzando un resistore collegato tra le linee di interfaccia D- e Vautobus (in questo caso si tratta del resistore R4).

È stata utilizzata una delle opzioni standard per collegare il microcontrollore con il suo alimentatore a tensione ridotta tramite diodi VD1 e VD2. L'utilizzo di questi diodi è auspicabile nonostante la presenza di una batteria, poiché elimina l'influenza della sua tensione sul coordinamento dei livelli logici del bus USB e del microcontrollore.

Il microcontrollore funziona a una frequenza di clock di 12 MHz, una delle gamme consentite per V-USB. Il suo programma è scritto in C nell'ambiente di sviluppo AVR Studio 4. Il testo del programma (file main.c) contiene un commento dettagliato. Sono stati utilizzati la versione del driver vusb-20100715 [4] e il compilatore WinAVR-20100110 [5].

La libreria V-USB è ben documentata, quindi qui verranno presi in considerazione solo i punti direttamente correlati all'implementazione del progetto o relativi alle sue caratteristiche. Il processo passo passo per creare un programma basato sulla libreria V-USB è descritto in dettaglio in [6].

Punti chiave a cui prestare attenzione quando si crea un programma in AVR Studio:

- tutti i file della cartella usbdrv dell'archivio V-USB devono essere copiati nella cartella del progetto;

- i file usbdrv.c, usbdrvasm.S, oddebug.c devono essere aggiunti al progetto AVR Studio (tramite la voce del menu contestuale "Aggiungi file sorgente esistente..." nell'albero del progetto);

- nelle impostazioni del progetto (Progetti → Opzioni di configurazione → Generale → Frequenza, Hz), la frequenza dell'orologio del microcontrollore deve essere impostata su 12000000 Hz. Sulla base di questo valore, AVR Studio determinerà al compilatore la costante F_CPU utilizzata da V-USB.

La configurazione V-USB necessaria è contenuta nel file usbconfig.h, che dovrebbe trovarsi anch'esso nella cartella del progetto. Il file di configurazione standard va sostituito con quello allegato all'articolo. Nella tabella 2 elenca le costanti più importanti definite in questo file. La possibilità di sviluppo gratuito di dispositivi USB HID è associata a un punto importante: è necessario utilizzare coppie di identificatori VID/PID secondo il documento USB-IDs-for-free.txt della libreria V-USB [3].

Tabella 2

costante Valore contenuto
NOMEPORTA IO CFG USB D Porta di collegamento bus
BIT MENO CFG USB 4 Il bit della porta a cui è collegata la linea D
USBCFGDPLUSBIT 2 Bit della porta a cui è collegata la linea D+ (deve essere collegata all'ingresso di interruzione INTO)
CLASSE INTERFACCIA USB CFG 3 (NASCOSTO) Classe dispositivo
POTENZA BUS MASSIMA CFG USB 100 Massimo consumo di corrente dal bus USB. mA
USB CFG HID REPORT DESCRIPTOR LUNGHEZZA 22 Lunghezza del descrittore del rapporto HID
ID FORNITORE CFG USB OxCO, 0x16 ID produttore del dispositivo
ID DISPOSITIVO CFG USB 0xDF, 05xXNUMX numero identificativo del prodotto

*) Questo valore deve essere uguale alla dimensione dell'array di caratteri PROGMEM usbHidReportDescriptor nel programma.

Il programma utilizza il formato ora UNIX, dove il valore dell'ora è il numero di secondi trascorsi dalle 00:00:00 UTC dell'01.01.1970/XNUMX/XNUMX L'allarme non visualizza visivamente l'ora, evitando inutili complicazioni al circuito e all'algoritmo del suo funzionamento. La variabile pdata viene utilizzata per trasmettere timestamp: valori temporali UNIX a quattro byte.

Il numero massimo di segnali inviati al giorno è specificato nel programma dalla costante NUM_ CALLS. Per memorizzare i valori temporali, viene utilizzato un array u_time di dimensione NUM_CALLS+1. In questo caso, l'elemento dell'array u_time[NUM_CALLS] contiene l'ora corrente e il resto l'ora in cui sono stati inviati i segnali. Ad ogni canale (cella della cassetta del medicinale) vengono assegnati quattro elementi dell'array. Ad esempio, la prima cella contiene elementi da u_time[0] a u_time[3], la seconda - da u_time[4] a u_time[7], ecc. Se il valore di un elemento dell'array è zero, viene considerato il segnale corrispondente inattivo. Questo approccio ci consente di semplificare l'algoritmo per la trasmissione e l'elaborazione delle informazioni.

Il descrittore che descrive la struttura del pacchetto e le procedure di trasferimento delle informazioni usbFunctionWrite e usbFunctionRead sono creati sulla base di soluzioni standard. Le funzioni di base sono descritte in dettaglio nel file header usbdrv.h da [3]. Le procedure sono integrate con condizioni per il controllo del numero di canali elaborati. Il numero di elementi dell'array ricevuti dal dispositivo dal computer è uno in più rispetto a quelli inviati, poiché il computer trasmette sempre l'ora corrente per la sincronizzazione.

All'inizio della procedura principale main() vengono configurati i registri di I/O, il fattore di divisione della frequenza del clock viene impostato a 256 e nel registro del timer TCNT1 viene inizialmente caricato il numero necessario a formare un intervallo di tempo di 1 secondo. Gli interrupt di overflow del timer sono disabilitati per impostazione predefinita.

Successivamente, il programma entra nel ciclo principale. Se non è presente alcuna connessione USB, gli interrupt verranno abilitati globalmente e in caso di overflow del timer 1. Nel ciclo for, ogni elemento dell'array u_time[i] con un valore diverso da zero verrà controllato per vedere se è uguale al valore corrente tempo. Se viene rilevata una parità, il cicalino e il LED della cella corrispondente si accenderanno e il tempo di risposta di questo canale verrà aumentato di 86400 s (al giorno).

Successivamente viene controllato il livello all'ingresso PB0. Se è basso (il pulsante SB1 viene premuto per confermare la ricezione del segnale), tutte le uscite verranno impostate su livelli logici bassi, che disattiveranno i segnali.

Parallelamente, ogni secondo in cui il timer 1 va in overflow, viene avviata la procedura di gestione degli interrupt TIMER1_OVF_vect. Ripristina il preset del contatore TCNT1, incrementa il valore del tempo corrente nell'elemento dell'array u_time[NUM_ CALLS] e cambia lo stato dell'uscita PB1 (il LED HL1 ad essa collegato lampeggia con un periodo di 2 s).

Quando un dispositivo è collegato a USB, l'ingresso PC5 riceve un livello alto dalla linea Vbus del bus USB. In questo caso, la condizione if (PINC & (1<<5)) disabilita gli interrupt di overflow del timer 1 e attiva il driver V-USB. Il LED HL1 si accende e si illumina in modo continuo.

Dopo aver attivato il driver V-USB, diventa possibile scambiare informazioni tramite USB. Il ciclo chiama la funzione usbPoll(), che mantiene attiva l'interfaccia in assenza di scambio di informazioni. Il processo di trasferimento delle informazioni è descritto più dettagliatamente nella sezione dell'articolo relativa al programma per computer.

Passiamo ora a considerare il programma per computer per l'inserimento di una pianificazione nel dispositivo di segnalazione USB_HID_Note. Come si può vedere dalla finestra principale (Fig. 4), durante il processo di sviluppo è stata prestata particolare attenzione all'ottimizzazione dell'interfaccia per garantire facilità d'uso per gli utenti più anziani. Il programma funziona con Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008. Le sue prestazioni con Windows 10 e Windows Server 2012 non sono state testate, ma c'è motivo di ritenere che funzionerà normalmente.

Timer per farmaci USB
Riso. 4. La finestra principale del programma per computer per l'inserimento del programma nel dispositivo di segnalazione

Dopo aver avviato il programma con il dispositivo di allarme collegato al computer, premere il pulsante sullo schermo "Inserire". Verrà visualizzato un messaggio che indica l'esito del tentativo di connessione. Se ha avuto successo, i pulsanti sullo schermo diventeranno disponibili "leggi tutto" e "Salva".

Per inserire una pianificazione, selezionare semplicemente il numero di cella dal primo elenco a discesa (selettore) e il numero di segnale per questa cella dal secondo elenco. Impostare quindi il tempo di segnale desiderato, cliccare sulla bandierina a sinistra del numero per abilitare o disabilitare la combinazione selezionata di cella e segnale (il colore della bandierina cambia) e scrivere il nome del farmaco nell'unica riga disponibile. Il nome del farmaco è legato al numero di cellulare, quindi il contenuto della riga cambia solo quando si cambia il primo selettore. Il flag di abilitazione si riferisce alla combinazione selezionata di numeri di cella e segnale.

Quindi compila tutte le celle necessarie. Lo stato predefinito delle celle è disabilitato; non è necessario attivarle tutte. Se necessario, è possibile modificare le impostazioni della cella. I valori immessi vengono salvati dinamicamente.

Premendo il pulsante sullo schermo La pianificazione viene trasferita al dispositivo di allarme e scritta nel file di configurazione. Verrà visualizzato un messaggio che indica l'esito del trasferimento. Il programma memorizzato nel dispositivo di allarme può essere letto da esso premendo il pulsante sullo schermo . Successivamente è possibile visualizzarlo nella finestra del programma, modificarlo se necessario e caricarlo nuovamente nel dispositivo di allarme. Premendo un pulsante sullo schermo cancella il nome del medicinale nella finestra corrispondente, dando la possibilità di scriverne un altro.

Una caratteristica importante dell'allarme è che arresta il timer corrente quando è collegato all'USB. Nel momento in cui il programma del computer viene chiuso, l'orario e l'ora corrente vengono automaticamente registrati nell'allarme (sincronizzazione). Pertanto, dopo aver chiuso il programma, è opportuno scollegare il cavo USB dal dispositivo di allarme il prima possibile per ridurre al minimo la differenza tra l'ora reale e quella “di sistema”.

Tuttavia, anche una differenza di diversi minuti nel caso in esame non è critica, quindi non è stata adottata alcuna misura per eliminare questa caratteristica. Se, dopo aver completato il programma USB_HID_Note, il dispositivo di allarme rimane accidentalmente collegato al computer per molto tempo, è sufficiente avviare nuovamente questo programma e premere il pulsante sullo schermo poi su e proprio lì o semplicemente chiudi il programma. Verrà ripristinata la corretta tempistica dell'allarme, dopodiché sarà possibile scollegare il cavo USB.

I nomi dei farmaci vengono memorizzati nel file di configurazione del programma e visualizzati sullo schermo del computer quando il dispositivo di allarme è collegato. Oltre a inserire il programma nel programma, è necessario assicurarsi che ciascuna cella della cassetta sia dotata di un'etichetta con l'iscrizione appropriata.

Il programma USB_HID_Note è scritto in C++ nell'ambiente di programmazione Qt 5.3.2. La scelta di questo ambiente è dovuta alla sua natura gratuita, multipiattaforma, ampie funzionalità e strumenti integrati unici per la creazione e il debug di applicazioni di qualsiasi livello, combinati con la flessibilità delle soluzioni di interfaccia. Il tipo di implementazione dell'applicazione è Qt Widget. Il testo sorgente del widget è il file widget.cpp. L'intero progetto è compilato nell'archivio USB_HID_Note_ pro.zip, allegato all'articolo.

Una caratteristica speciale del programma è l'accesso diretto alle funzioni delle librerie SetupAPI e HID. Pertanto, il computer su cui avviene la compilazione deve avere i file setupapi.lib e hid.lib corrispondenti alla versione del suo sistema operativo. Questi file sono generalmente inclusi nel pacchetto WinDDK. Per evitare di dover installare completamente l'intero pacchetto WinDDK, l'autore ha raccolto i file delle diverse versioni di WinDDK 7600 in un'unica cartella winddk_libs, disponibile sul server FTP della redazione. La compilazione e il debug possono essere eseguiti in Windows 16385.1, Windows Server 7 R2008, Windows Vista SP2, Windows Server 1 SP2003, Windows XP SP1 o versioni successive. Il file .pro deve indicare esplicitamente i percorsi completi delle librerie, ad esempio, come da tabella. 3.

Tabella 3

Timer per farmaci USB

Il file eseguibile compilato del programma insieme ai file di configurazione (.cfg) e di stile (.qss) si trovano nella cartella USB_HID_Note allegata all'articolo. Qui si trovano anche le librerie dinamiche Qt necessarie (file .dll). Come sai, questo requisito è obbligatorio per qualsiasi applicazione sviluppata in Qt. L'elenco di tali librerie per il caso in esame è riportato nella Tabella. 4.

Tabella 4

Timer per farmaci USB

Tutte le librerie vengono copiate dalla cartella ..ToolsQtCreator in, ad eccezione delle ultime due, che vengono copiate da ..5.3mingw482_32pluginsplatforms e inserite nella corrispondente sottocartella della cartella di lavoro del programma. Puoi anche copiarli tu stesso dal computer su cui è stato compilato il programma nella cartella di lavoro o di sistema del programma (dimensione dell'archivio - 126 MB, decompresso - 400 MB).

L'algoritmo del programma si basa sulle soluzioni standard fornite in [7]. Le caratteristiche dell'implementazione sono legate, innanzitutto, all'uso di diversi linguaggi di programmazione (a differenza di quelli descritti nel sorgente Delphi e C#). Per utilizzare le funzioni HID API e SetupAPI, è necessario includere rispettivamente i file di intestazione hidsdi.h e setupapi.h.

Il gestore dei clic sui pulsanti sullo schermo è la procedura on_Connect Button_clicked(). Innanzitutto, la funzione del driver HidD_GetHidGuid determina il GUID associato all'HID. Vengono quindi chiamate le funzioni SetupAPI per creare l'enumeratore dell'interfaccia e ottenere il nome HID del dispositivo. Ciò è descritto in dettaglio in [7] a pag. 333. In questo caso, le funzioni di determinazione del nome del prodotto o del suo numero di serie non sono state deliberatamente utilizzate. Viene controllata solo la coppia VID/PID. Questo viene fatto per evitare la possibilità di uso commerciale del dispositivo. I valori VID/PID sono specificati dalla costante Dev_VID_PID nel file global_vars.h.

Una volta rilevato il dispositivo, il controllo viene trasferito nuovamente al driver HID. La funzione CreateFile richiede il suo handle, HidD_GetPreparsedData restituisce un puntatore a un buffer contenente informazioni sui parametri del dispositivo e HidP_GetCaps restituisce una struttura con i valori di questi parametri.

A differenza del metodo comunemente utilizzato con la dimensione del report assegnata direttamente nel programma, qui il suo valore è determinato dall'elemento di struttura Caps.FeatureReportByteLength ottenuto dal descrittore. Ciò consente di creare una soluzione più universale che non richiede di apportare modifiche al programma e di ricompilarlo quando cambia la dimensione del report nel descrittore del dispositivo.

Lo scambio vero e proprio di informazioni avviene tramite le funzioni HidD_Get Feature (lettura) e HidD_SetFeature (scrittura), richiamate ciclicamente nelle procedure corrispondenti data_read() e data_transfer() in base al numero di celle. Come già notato, il numero di elementi di array ricevuti dal segnalatore è uno in più rispetto a quelli inviati, poiché per la sincronizzazione il computer trasmette sempre l'ora corrente.

Un commento dettagliato che descrive lo scopo delle procedure più importanti è disponibile nel testo del programma. Lo scopo delle restanti procedure è standard o intuitivo, ad esempio on_comboBox_ currentIndexChanged() - gestore dell'evento di modifica dell'indice comboBox. Le righe commentate di qDebug e quelle di accompagnamento erano intese solo per il debug del programma. Se è necessario eseguire il debug e visualizzare l'avanzamento dello scambio di informazioni nella finestra del debugger Qt integrata, tutte queste istruzioni dovrebbero essere decommentate.

Il programma memorizza la configurazione generale nel file settings.cfg. È in un normale formato di testo e può essere modificato manualmente se necessario. La sua sezione [Generale] contiene il numero di celle NUM_BOX=8 e il numero di segnali per cella NUM_BOX_CALL=4, nella sezione [visualizza] è specificata la posizione della finestra del programma sullo schermo in numeri interi. La sezione [nomi] contiene i nomi dei farmaci per cella, la sezione [usato] - flag di attività della cella, la sezione [tempi] - valori del tempo di risposta nel formato timestamp UNIX. Questi ultimi sono principalmente di natura informativa, poiché i valori operativi si trovano nella memoria del microcontrollore del rilevatore. Quando si modifica manualmente il file, tenere presente che i parametri del nome sono nel formato del codice sorgente C/C++/Java (ad esempio, u3256).

E in conclusione, alcuni consigli per chi desidera modificare autonomamente il numero di segnali inviati dal dispositivo. Se il numero di celle è fisso, è relativamente facile modificare il numero di segnali per cella. Nel programma del microcontrollore è necessario innanzitutto modificare la costante NUM_CALLS. Il suo valore dovrebbe essere uguale al prodotto del numero di celle e del numero massimo di segnali per cella. Nel caso considerato nell'articolo è pari a 8x4=32. In secondo luogo, nella procedura switch... case..., il numero di istruzioni case in ciascuna riga deve essere uguale al numero di segnali per cella. In questo caso, gli argomenti delle istruzioni case devono formare una sequenza continua da 0 a NUM_CALLS-1. Il corpo della funzione e l'istruzione break rimangono invariati. Il programma dovrà poi essere salvato e ricompilato.

Non sono necessarie modifiche al programma del computer. È sufficiente modificare il valore della costante NUM_BOX_CALL (il numero di segnali per cella) nel file settings.cfg. Deve corrispondere rigorosamente a quanto compreso nel programma del microcontrollore.

I programmi per il microcontrollore e il computer possono essere scaricati da ftp://ftp.radio.ru/pub/2017/01/signal.zip.

Letteratura

  1. Drinevsky V., Sirotkina G. Sintetizzatori musicali della serie UMS. - Radio, 1998, n. 10, pag. 85.
  2. Bus seriale universale. Informazioni NASCOSTE. -URL: usb.org/developers/hidpage/.
  3. V USB. - URL: obdev.at/products/vusb/index.html.
  4. Archivio drivervusb-20100715. - URL: obdev.at/downloads/vusb/vusb-20100715.tar.gz.
  5. Compilatore WinAVR-20100110. - URL: sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-201 0 0110-install.exe/download.
  6. USB per AVR. Parte 2. Classe HID su V-USB. - URL: we.easyelectronics.ru/electro-and-pc/usb-dlyaavr-chast-2-hid-class-na-v-usb.html.
  7. Agurov P. Pratica di programmazione USB. - San Pietroburgo: "BHV-Pietroburgo", 2006.

Autore: D. Pankratiev

Vedi altri articoli sezione Medicina.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

Pelle artificiale per l'emulazione del tocco 15.04.2024

In un mondo tecnologico moderno in cui la distanza sta diventando sempre più comune, mantenere la connessione e un senso di vicinanza è importante. I recenti sviluppi nella pelle artificiale da parte di scienziati tedeschi dell’Università del Saarland rappresentano una nuova era nelle interazioni virtuali. Ricercatori tedeschi dell'Università del Saarland hanno sviluppato pellicole ultrasottili in grado di trasmettere la sensazione del tatto a distanza. Questa tecnologia all’avanguardia offre nuove opportunità di comunicazione virtuale, soprattutto per coloro che si trovano lontani dai propri cari. Le pellicole ultrasottili sviluppate dai ricercatori, spesse appena 50 micrometri, possono essere integrate nei tessuti e indossate come una seconda pelle. Queste pellicole funzionano come sensori che riconoscono i segnali tattili di mamma o papà e come attuatori che trasmettono questi movimenti al bambino. Il tocco dei genitori sul tessuto attiva i sensori che reagiscono alla pressione e deformano la pellicola ultrasottile. Questo ... >>

Lettiera per gatti Petgugu Global 15.04.2024

Prendersi cura degli animali domestici può spesso essere una sfida, soprattutto quando si tratta di mantenere pulita la casa. È stata presentata una nuova interessante soluzione della startup Petgugu Global, che semplificherà la vita ai proprietari di gatti e li aiuterà a mantenere la loro casa perfettamente pulita e in ordine. La startup Petgugu Global ha presentato una toilette per gatti unica nel suo genere in grado di scaricare automaticamente le feci, mantenendo la casa pulita e fresca. Questo dispositivo innovativo è dotato di vari sensori intelligenti che monitorano l'attività della toilette del tuo animale domestico e si attivano per pulirlo automaticamente dopo l'uso. Il dispositivo si collega alla rete fognaria e garantisce un'efficiente rimozione dei rifiuti senza necessità di intervento da parte del proprietario. Inoltre, la toilette ha una grande capacità di stoccaggio degli scarichi, che la rende ideale per le famiglie con più gatti. La ciotola per lettiera per gatti Petgugu è progettata per l'uso con lettiere idrosolubili e offre una gamma di accessori aggiuntivi ... >>

L'attrattiva degli uomini premurosi 14.04.2024

Lo stereotipo secondo cui le donne preferiscono i "cattivi ragazzi" è diffuso da tempo. Tuttavia, una recente ricerca condotta da scienziati britannici della Monash University offre una nuova prospettiva su questo tema. Hanno esaminato il modo in cui le donne hanno risposto alla responsabilità emotiva degli uomini e alla volontà di aiutare gli altri. I risultati dello studio potrebbero cambiare la nostra comprensione di ciò che rende gli uomini attraenti per le donne. Uno studio condotto da scienziati della Monash University porta a nuove scoperte sull'attrattiva degli uomini nei confronti delle donne. Nell'esperimento, alle donne sono state mostrate fotografie di uomini con brevi storie sul loro comportamento in varie situazioni, inclusa la loro reazione all'incontro con un senzatetto. Alcuni uomini hanno ignorato il senzatetto, mentre altri lo hanno aiutato, ad esempio comprandogli del cibo. Uno studio ha scoperto che gli uomini che mostravano empatia e gentilezza erano più attraenti per le donne rispetto agli uomini che mostravano empatia e gentilezza. ... >>

Notizie casuali dall'Archivio

Un pianeta sta evaporando in una galassia vicina 10.06.2012

Gli astronomi dell'Università del Texas ad Austin, utilizzando il telescopio Hobby-Eberle dell'Osservatorio McDonald, hanno confermato che un pianeta delle dimensioni di Giove sta letteralmente evaporando in un sistema stellare vicino. È troppo vicino alla sua stella madre e quindi "ribolle" lentamente sotto l'influenza del calore stellare. Gli scienziati sono stati in grado di studiare la composizione dell'atmosfera di un lontano pianeta gigante e capire meglio come i pianeti e le stelle interagiscono in altri sistemi stellari.

La stella HD189733 si trova a circa 63 anni luce dalla Terra nella costellazione della Volpecula. Nel 2010, un altro team di astronomi ha studiato la stella alla luce ultravioletta con il telescopio spaziale Hubble e ha scoperto che ha un pianeta (HD189733b) che sta lanciando idrogeno nello spazio.

Un nuovo studio ha dimostrato che questo flusso di idrogeno è molto più caldo di quanto si pensasse in precedenza: ciò consente di stimare le esplosioni più potenti della stella che interagiscono con l'atmosfera di HD189733b.

Il pianeta HD189733b non è affatto come la Terra: è un gigante gassoso il 20% più pesante di Giove. Allo stesso tempo, si trova 10 volte più vicino alla sua stella madre di quanto lo sia Mercurio al Sole.

Ma mentre HD189733b è diverso dalla Terra e non può ospitare la vita, studiarlo aiuterà gli astronomi a capire come le interazioni tra stelle e pianeti potrebbero influenzare mondi potenzialmente abitabili. Un giorno, gli astronomi saranno in grado di utilizzare le tecniche di ricerca utilizzate nello studio di HD189733b per studiare pianeti simili alla Terra potenzialmente abitabili. Ad oggi, gli astronomi hanno scoperto circa 700 pianeti in orbita attorno alle stelle della nostra galassia (con migliaia di pianeti candidati e miliardi potenzialmente esistenti nella galassia). Il ritmo dei progressi in quest'area è impressionante: vent'anni fa, le persone non conoscevano un solo esopianeta e ora possono studiarne l'atmosfera, anche se finora riguarda solo giganti caldi vicini alle stelle. Ma finora sono state studiate solo le atmosfere di pochi pianeti e molto lavoro resta da fare in quest'area.

Altre notizie interessanti:

▪ Sangue donatore universale

▪ Specchietti retrovisori intelligenti nei veicoli Nissan

▪ Forno per gli amanti della radio

▪ La popolarità dei laptop ultraportatili è in crescita

▪ L'iride dell'occhio sostituirà il codice PIN dell'ATM

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Vita di fisici straordinari. Selezione dell'articolo

▪ articolo Elisir di lunga vita. Espressione popolare

▪ articolo Sui vestiti di chi erano cuciti più di 10 bottoni? Risposta dettagliata

▪ Articolo giardino Ruta. Leggende, coltivazione, metodi di applicazione

▪ articolo Impianti di combustione di biocarburanti. Combustione di rifiuti di legno. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

▪ articolo Le carte in mano agli spettatori sono invertite. Messa a fuoco segreta

Lascia il tuo commento su questo articolo:

Nome:


E-mail (opzionale):


commento:





Tutte le lingue di questa pagina

Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito

www.diagram.com.ua

www.diagram.com.ua
2000-2024