ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA USB-annunciatore del tempo di assunzione di farmaci. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica Enciclopedia della radioelettronica e dell'elettrotecnica / Medicina 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.
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.
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.
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
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
*) 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.
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 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 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
Autore: D. Pankratiev Vedi altri articoli sezione Medicina. Leggere e scrivere utile commenti su questo articolo. Ultime notizie di scienza e tecnologia, nuova elettronica: Pelle artificiale per l'emulazione del tocco
15.04.2024 Lettiera per gatti Petgugu Global
15.04.2024 L'attrattiva degli uomini premurosi
14.04.2024
Altre notizie interessanti: ▪ 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 Le carte in mano agli spettatori sono invertite. Messa a fuoco segreta
Lascia il tuo commento su questo articolo: Tutte le lingue di questa pagina Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito www.diagram.com.ua |