Menu English Ukrainian Russe ACCUEIL

Bibliothèque technique gratuite pour les amateurs et les professionnels Bibliothèque technique gratuite


ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE
Bibliothèque gratuite / Schémas des appareils radio-électroniques et électriques

Annonciateur USB de l'heure de prise des médicaments. Encyclopédie de l'électronique radio et de l'électrotechnique

Bibliothèque technique gratuite

Encyclopédie de l'électronique radio et de l'électrotechnique / Médecine

Commentaires sur l'article Commentaires sur l'article

Les personnes âgées contraintes de prendre régulièrement des médicaments ont souvent des difficultés à maintenir leur propre régime. Mais parfois, ce n’est pas seulement la santé, mais aussi la vie elle-même qui dépendent de la mise en œuvre rapide des instructions du médecin. En plus des méthodes organisationnelles habituelles pour résoudre le problème, des moyens techniques peuvent également être utilisés. Il s'agit notamment de l'alarme proposée, qui envoie des signaux chaque jour selon l'horaire saisi, vous rappelant la nécessité de prendre des médicaments.

De nombreuses personnes âgées ont naturellement des difficultés à travailler avec des logiciels modernes. Quant aux dispositifs d'alarme, la plupart d'entre eux sont en fait des réveils quelque peu modernisés, incapables de fonctionner selon un horaire même avec deux ou trois types de médicaments et, du point de vue ergonomique, non adaptés à une utilisation par des personnes âgées.

La vue générale de l'alarme développée par l'auteur, qui dispose de huit canaux indépendants (en fonction du nombre de cellules pour les médicaments), chacun pouvant être configuré pour envoyer jusqu'à quatre signaux de rappel par jour (un total de 32 signaux peuvent être envoyé), est illustré à la Fig. 1. Pour saisir ou ajuster un programme de traitement, cet appareil est connecté via une interface USB à un ordinateur sur lequel un programme spécial est exécuté. Lorsque le planning est chargé, l'alarme fonctionne de manière autonome.

Minuterie de médicaments USB
Riz. 1. Vue générale du dispositif de signalisation

Les parties matérielles et logicielles de l'alarme sont conçues en tenant compte de leur utilisation par des personnes âgées, y compris celles malvoyantes. La manipulation de l'appareil est extrêmement simplifiée et le programme utilise des solutions algorithmiques et d'interface qui augmentent considérablement la facilité d'utilisation. De plus, des mesures de sécurité électrique ont été prises dans la conception de l'alarme.

L'alarme est alimentée par un réseau ~230 V et, en cas de panne de courant, elle passe automatiquement à l'alimentation de la batterie rechargeable intégrée. La puissance consommée par le réseau ne dépasse pas 5 W, la durée de fonctionnement d'une batterie d'une capacité de 800 mAh atteint trois jours. Cela garantit la sécurité du programme même en cas de panne de courant à long terme.

Le circuit d'alarme est représenté sur la Fig. 2. Le principe de son fonctionnement est simple : le programme du microcontrôleur compare chaque seconde la valeur de l'heure actuelle avec l'heure du signal spécifiée. S'il y a une correspondance, l'appareil émet un signal sonore, qui est l'une des plusieurs mélodies, sélectionnables à volonté, et allume l'indicateur lumineux de la cellule correspondante avec le médicament. Au même moment, l'heure d'envoi de ce signal est reportée au lendemain. Pour désactiver les signaux sonores et lumineux, appuyez simplement sur le bouton de confirmation SB1.

Minuterie de médicaments USB
Riz. 2. Circuit du dispositif de signalisation (cliquez pour agrandir)

Le microcontrôleur ATmega8A-PU (DD1) utilisé dans le dispositif d'alarme est capable de fonctionner à une tension d'alimentation réduite à 2,7 V. La fréquence d'horloge du microcontrôleur de 12 MHz est réglée par le résonateur à quartz ZQ1. L'unité d'alarme sonore est assemblée sur un microcircuit du synthétiseur musical UMS8-08 (DD2). Le microcontrôleur active le signal audio en envoyant un niveau élevé à l'entrée S de la puce du synthétiseur. Le signal retentit en continu jusqu'à ce que le bouton SB1 soit enfoncé. La source sonore est l'émetteur piézo HA1. Le volume est contrôlé par la résistance variable R16. Les mélodies sont triées en appuyant sur le bouton SB2 pendant la lecture. Des informations plus détaillées sur les microcircuits de la série UMS sont données dans [1].

Le dispositif d'alarme dispose d'une source de transformateur de tension stabilisée de 5 V, non représentée sur le schéma, montée selon un circuit traditionnel sur un stabilisateur intégré 7805. En cas de perte de tension dans le réseau d'alimentation, l'appareil passe en alimentation de la batterie GB1. Le courant moyen consommé ne dépasse pas 5 mA. S'il y a une tension dans le réseau, la batterie est rechargée en permanence grâce au circuit VD5, VD6, R18. Cependant, il est recommandé de l'éteindre une fois par mois et d'effectuer un cycle complet de décharge à une tension de 3 V et de charge à l'aide d'un chargeur externe.

Le microcircuit du synthétiseur musical UMS8-08 peut être remplacé par un autre des séries UMS7 et UMS8. Ils ne diffèrent que par l'ensemble des mélodies. Il est permis de remplacer le transistor KT3102B par un KT3102G, KT3102E ou BC547 importé, ainsi que par un KT315B ou KT315G, si la résistance de la résistance R17 est réduite à 51 kOhm. Au lieu des diodes KD522B, KD521A, KD521B, KD522A, 1N4148 et similaires conviennent. Toutes les résistances fixes sont C2-33N ou MLT. Condensateurs à oxyde C3 et C6 - K50-83, K50-16 ou importés. Les condensateurs restants sont en céramique K10-73-1b, K10-17v. Toutes les LED conviennent dans des boîtiers d'un diamètre de 5 mm de la couleur de lueur souhaitée. Dans la version de l'auteur, une LED verte est installée comme HL1, afin de ne pas déranger inutilement le patient, les autres sont rouges. Connecteur XS1 - Prise USB-BF.

La batterie GB1 est composée de trois batteries Ni-Mh de type AA d'une capacité de 80 mAh. Vous pouvez utiliser des batteries d'autres capacités, mais il est conseillé de sélectionner une résistance R18 d'une résistance telle que le courant de charge initial d'une batterie déchargée à une tension de 3 V soit numériquement égal à 0,1 de sa capacité nominale.

L'alarme est assemblée sur une plaque de montage perforée standard mesurant 70x50 mm avec un pas de perforation de 2,54 mm. Méthode d'installation : articulée avec fixation adhésive thermofusible. En raison de la simplicité du circuit, aucun câblage imprimé n’a été utilisé. Tous les éléments de l'appareil, à l'exception des LED HL2-HL9, sont placés dans un boîtier de distribution électrique en plastique de conception IP67 et de dimensions 80x80x40 mm.

Le connecteur XS1 est situé sur un petit circuit imprimé, en face de lui, un trou de taille appropriée est découpé dans la paroi du boîtier. Les éléments HA1, HL1, GB1, R16, SB1 sont fixés sur le couvercle de la boîte avec de la colle chaude. Le bouton SB2, qui n'est pas lié aux commandes opérationnelles, est situé sur le circuit imprimé. En figue. La figure 3 montre la position relative du circuit imprimé et des éléments distants à l'intérieur du boîtier de distribution.

Minuterie de médicaments USB
Riz. 3. La position relative du circuit imprimé et des éléments distants à l'intérieur de la boîte de jonction

Les médicaments sont placés dans une cassette standard pour composants radio composée de huit cellules avec tiroirs. Chaque cellule a des dimensions de 112x55x120 mm. Les dimensions hors tout du porte-cassette sont de 224x110x120 mm. Étant donné que les cellules ne sont pas scellées mais sont assez spacieuses, les médicaments doivent être conservés dans leur emballage d'origine. Le porte-cassette offre également une protection contre la lumière, nécessaire au stockage de certains types de médicaments. Les panneaux avant des cellules comportent des rainures pour les plaques portant les noms des médicaments.

Le boîtier de distribution est fixé à la paroi latérale gauche du boîtier de cassette avec des vis et écrous M3. Les LED HL2-HL9 sont situées une à la fois sur le panneau avant de chaque cellule et sont reliées à l'appareil par des fils flexibles posés dans des tubes en PVC à l'intérieur des cellules et regroupés à l'arrière du boîtier de cassette. La réserve de longueur de chaque paire de fils allant aux LED doit garantir une extension libre de la cellule jusqu'à 75...80 % de l'état complètement ouvert.

Le fichier USB_HID_Note.hex joint à l'article doit être chargé dans la mémoire programme du microcontrôleur. La configuration du microcontrôleur doit correspondre à celle indiquée dans le tableau. 1. Un appareil correctement assemblé ne nécessite aucune installation. La luminosité souhaitée des LED peut être réglée en modifiant leur courant entre 5 et 10 mA à l'aide d'une sélection de résistances R7-R15.

Tableau 1

Rangs État
CKOPT 0
CKSEL [3: 0] 1111
SUT [1: 0] 10
TERRE 1
W.D.E. 1
RSTDISBL 1

Du point de vue de la spécification USB, l'appareil appartient à la classe HID [2] avec une implémentation logicielle de l'interface USB basée sur le pilote AVR V-USB bien connu [3]. Permettez-moi de vous rappeler que dans ce cas, il est nécessaire de basculer l'interface en mode USB 1.1 basse vitesse, ce qui, selon les spécifications, se fait à l'aide d'une résistance connectée entre les lignes d'interface D et V.bus (dans ce cas il s'agit de la résistance R4).

L'une des options standard pour connecter le microcontrôleur à son alimentation à tension réduite via les diodes VD1 et VD2 a été utilisée. L'utilisation de ces diodes est souhaitable malgré la présence d'une batterie, puisqu'elle élimine l'influence de sa tension sur la coordination des niveaux logiques du bus USB et du microcontrôleur.

Le microcontrôleur fonctionne à une fréquence d'horloge de 12 MHz, l'une des plages autorisées pour le V-USB. Son programme est écrit en C dans l'environnement de développement AVR Studio 4. Le texte du programme (fichier main.c) contient un commentaire détaillé. La version du pilote vusb-20100715 [4] et le compilateur WinAVR-20100110 [5] ont été utilisés.

La bibliothèque V-USB est bien documentée, donc seuls les points directement liés à la mise en œuvre du projet ou liés à ses fonctionnalités seront considérés ici. Le processus étape par étape de création d'un programme basé sur la bibliothèque V-USB est décrit en détail dans [6].

Points clés à prendre en compte lors de la création d'un programme dans AVR Studio :

- tous les fichiers du dossier usbdrv de l'archive V-USB doivent être copiés dans le dossier du projet ;

- les fichiers usbdrv.c, usbdrvasm.S, oddebug.c doivent être ajoutés au projet AVR Studio (via l'élément de menu contextuel "Ajouter un(des) fichier(s) source(s) existant(s)..." dans l'arborescence du projet) ;

- dans les paramètres du projet (Projets → Options de configuration → Général → Fréquence, Hz), la fréquence d'horloge du microcontrôleur doit être réglée sur 12000000 Hz. Sur la base de cette valeur, AVR Studio déterminera au compilateur la constante F_CPU utilisée par V-USB.

La configuration V-USB nécessaire est contenue dans le fichier usbconfig.h, qui doit également se trouver dans le dossier du projet. Le fichier de configuration standard doit être remplacé par celui joint à l'article. Dans le tableau 2 répertorie les constantes les plus importantes définies dans ce fichier. La possibilité de développement libre de périphériques USB HID est associée à un point important : ils doivent utiliser des paires d'identifiants VID/PID selon le document USB-IDs-for-free.txt de la bibliothèque V-USB [3].

Tableau 2

constant Valeur Teneur
USB CFG IOPORTNOM D Port de connexion au bus
BIT USB CFG DMINUS 4 Le bit du port auquel la ligne D est connectée
USBCFGDPPLUSBIT 2 Bit du port auquel est connectée la ligne D+ (doit être connecté à l'entrée d'interruption INTO)
CLASSE D'INTERFACE USB CFG 3 (CACHÉ) Classe d'appareil
ALIMENTATION MAXIMALE DU BUS USB CFG 100 Consommation de courant maximale du bus USB. mA
USB CFG HID LONGUEUR DU DESCRIPTEUR DE RAPPORT 22 * Longueur du descripteur de rapport HID
ID FOURNISSEUR CFG USB OxCO, 0x16 ID du fabricant de l'appareil
ID DE PÉRIPHÉRIQUE USB CFG 0xDF, 05xXNUMX Identifiant du produit

*) Cette valeur doit être égale à la taille du tableau de caractères PROGMEM usbHidReportDescriptor dans le programme.

Le programme utilise le format d'heure UNIX, où la valeur de l'heure est le nombre de secondes écoulées depuis le 00/00/00 à 01.01.1970:XNUMX:XNUMX UTC. L'alarme n'affiche pas l'heure visuellement, ce qui évite des complications inutiles du circuit et de l'algorithme. de son fonctionnement. La variable pdata est utilisée pour transmettre des horodatages - des valeurs de temps UNIX sur quatre octets.

Le nombre maximum de signaux envoyés par jour est précisé dans le programme par la constante NUM_ CALLS. Pour stocker les valeurs de temps, un tableau u_time de taille NUM_CALLS+1 est utilisé. Dans ce cas, l'élément du tableau u_time[NUM_CALLS] contient l'heure actuelle et le reste - l'heure à laquelle les signaux ont été envoyés. Chaque canal (cellule de la cassette de médicaments) se voit attribuer quatre éléments de réseau. Par exemple, la première cellule contient des éléments de u_time[0] à u_time[3], la seconde - de u_time[4] à u_time[7], etc. Si la valeur d'un élément du tableau est zéro, le signal correspondant est considéré inactif. Cette approche nous permet de simplifier l'algorithme de transmission et de traitement des informations.

Le descripteur décrivant la structure du package et les procédures de transfert d'informations usbFunctionWrite et usbFunctionRead sont créés sur la base de solutions standards. Les fonctions de base sont décrites en détail dans le fichier d'en-tête usbdrv.h de [3]. Les procédures sont complétées par des conditions de contrôle du nombre de chaînes traitées. Le nombre d'éléments du tableau reçus par l'appareil depuis l'ordinateur est un de plus que celui envoyé, puisque l'ordinateur transmet toujours l'heure actuelle pour la synchronisation.

Au début de la procédure principale main(), les registres d'E/S sont configurés, le facteur de division de fréquence d'horloge est réglé sur 256 et le registre de minuterie TCNT1 est initialement chargé avec le nombre nécessaire pour former un intervalle de temps de 1 seconde. Les interruptions de dépassement de temps sont désactivées par défaut.

Après cela, le programme entre dans la boucle principale. S'il n'y a pas de connexion USB, les interruptions seront activées globalement et en cas de dépassement du minuteur 1. Dans la boucle for, chaque élément du tableau u_time[i] avec une valeur non nulle sera vérifié pour voir s'il est égal à la valeur actuelle. temps. Si une égalité est détectée, le buzzer et la LED de la cellule correspondante s'allumeront et le temps de réponse de ce canal sera augmenté de 86400 XNUMX s (par jour).

Ensuite, le niveau à l'entrée PB0 est vérifié. S'il est faible (le bouton SB1 est enfoncé pour confirmer la réception du signal), toutes les sorties seront réglées sur des niveaux logiques bas, ce qui éteindra les signaux.

En parallèle, chaque seconde de débordement du timer 1, la procédure de gestion des interruptions TIMER1_OVF_vect est lancée. Il restaure le préréglage du compteur TCNT1, incrémente la valeur de temps actuelle dans l'élément du tableau u_time[NUM_ CALLS] et modifie l'état de la sortie PB1 (la LED HL1 qui y est connectée clignote avec une période de 2 s).

Lorsqu'un appareil est connecté en USB, l'entrée PC5 reçoit un niveau haut de la ligne Vbus du bus USB. Dans ce cas, la condition if (PINC & (1<<5)) désactive les interruptions de débordement du minuteur 1 et active le pilote V-USB. La LED HL1 s'allume et s'allume en continu.

Après avoir activé le pilote V-USB, il devient possible d'échanger des informations via USB. La boucle appelle la fonction usbPoll(), qui maintient l'interface active en l'absence d'échange d'informations. Le processus de transfert d'informations est décrit plus en détail dans la section de l'article concernant le programme informatique.

Passons à l'examen du programme informatique permettant de saisir un horaire dans le dispositif de signalisation USB_HID_Note. Comme le montre la fenêtre principale (Fig. 4), une attention particulière a été accordée lors du processus de développement à l'optimisation de l'interface afin de garantir une facilité d'utilisation pour les utilisateurs plus âgés. Le programme fonctionne sous Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008. Ses performances sous Windows 10 et Windows Server 2012 n'ont pas été testées, mais il y a des raisons de supposer qu'il fonctionnera normalement.

Minuterie de médicaments USB
Riz. 4. La fenêtre principale du programme informatique pour entrer l'horaire dans le dispositif de signalisation

Après avoir démarré le programme avec le dispositif d'alarme connecté à l'ordinateur, appuyez sur le bouton à l'écran "Insérer". Un message s'affichera indiquant le résultat de la tentative de connexion. Si l'opération réussit, les boutons à l'écran deviendront disponibles "tout lire" et "Sauvegarder".

Pour saisir un horaire, sélectionnez simplement le numéro de cellule dans la première liste déroulante (sélecteur) et le numéro de signal de cette cellule dans la deuxième liste. Réglez ensuite l'heure du signal souhaitée, cliquez sur le drapeau à gauche du numéro pour autoriser ou désactiver la combinaison sélectionnée de cellule et de signal (la couleur du drapeau change) et écrivez le nom du médicament dans la seule ligne disponible. Le nom du médicament est lié au numéro de cellule, de sorte que le contenu de la ligne ne change que lorsque le premier sélecteur est commuté. L'indicateur d'activation fait référence à la combinaison sélectionnée de numéros de cellule et de signal.

Remplissez donc toutes les cellules nécessaires. L'état par défaut des cellules est désactivé ; il n'est pas nécessaire de toutes les activer. Si nécessaire, les paramètres des cellules peuvent être modifiés. Les valeurs saisies sont enregistrées dynamiquement.

En appuyant sur le bouton à l'écran Le programme est transféré au dispositif d'alarme et écrit dans le fichier de configuration. Un message s'affichera indiquant le résultat du transfert. Le programme stocké dans le dispositif d'alarme peut être lu en appuyant sur le bouton d'écran . Après cela, vous pouvez le visualiser dans la fenêtre du programme, le modifier si nécessaire et le charger à nouveau dans le dispositif d'alarme. Appuyer sur un bouton à l'écran efface le nom du médicament dans la fenêtre correspondante, donnant la possibilité d'en écrire un autre.

Une caractéristique importante de l'alarme est qu'elle arrête la minuterie en cours lorsqu'elle est connectée au port USB. Au moment de la fermeture du programme informatique, l'horaire et l'heure actuelle sont automatiquement enregistrés dans l'alarme (synchronisation). Par conséquent, après avoir fermé le programme, vous devez déconnecter le câble USB du dispositif d'alarme dès que possible afin de minimiser la différence entre l'heure réelle et l'heure « système ».

Cependant, même une différence de plusieurs minutes dans le cas considéré n'est pas critique, c'est pourquoi aucune mesure n'a été prise pour éliminer cette fonctionnalité. Si, après avoir terminé le programme USB_HID_Note, le dispositif d'alarme reste accidentellement connecté à l'ordinateur pendant une longue période, redémarrez simplement ce programme et appuyez sur le bouton à l'écran. puis sur et juste là ou fermez simplement le programme. Le timing correct de l'alarme sera restauré, après quoi le câble USB pourra être déconnecté.

Les noms des médicaments sont stockés dans le fichier de configuration du programme et affichés sur l'écran de l'ordinateur lorsque le dispositif d'alarme est connecté. En plus de saisir le calendrier dans le programme, vous devez vous assurer que chaque cellule de la cassette est équipée d'une étiquette avec l'inscription appropriée.

Le programme USB_HID_Note est écrit en C++ dans l'environnement de programmation Qt 5.3.2. Le choix de cet environnement est dû à sa nature gratuite, à ses capacités multiplateformes étendues et à ses outils intégrés uniques pour créer et déboguer des applications de tout niveau, combinés à la flexibilité des solutions d'interface. Le type d’implémentation de l’application est Qt Widget. Le texte source du widget est le fichier widget.cpp. L'ensemble du projet est compilé dans l'archive USB_HID_Note_ pro.zip, jointe à l'article.

Une particularité du programme est l'accès direct aux fonctions des bibliothèques SetupAPI et HID. Ainsi, l'ordinateur sur lequel s'effectue la compilation doit disposer des fichiers setupapi.lib et hid.lib correspondant à la version de son système d'exploitation. Ces fichiers sont généralement inclus dans le package WinDDK. Pour éviter d'avoir à installer complètement l'intégralité du package WinDDK, les fichiers des différentes versions de WinDDK 7600 ont été rassemblés par l'auteur dans un dossier winddk_libs, disponible sur le serveur FTP de la rédaction. La compilation et le débogage peuvent être effectués sous Windows 16385.1, Windows Server 7 R2008, Windows Vista SP2, Windows Server 1 SP2003, Windows XP SP1 ou version ultérieure. Le fichier .pro doit indiquer explicitement les chemins complets des bibliothèques, par exemple, comme dans le tableau. 3.

Tableau 3

Minuterie de médicaments USB

Le fichier exécutable compilé du programme ainsi que les fichiers de configuration (.cfg) et de style (.qss) se trouvent dans le dossier USB_HID_Note joint à l'article. Les bibliothèques dynamiques Qt nécessaires (fichiers .dll) s'y trouvent également. Comme vous le savez, cette exigence est obligatoire pour toute application développée sous Qt. La liste de ces bibliothèques pour le cas considéré est donnée dans le tableau. 4.

Tableau 4

Minuterie de médicaments USB

Toutes les bibliothèques sont copiées depuis le dossier ..ToolsQtCreator in, à l'exception des deux dernières, qui sont copiées depuis ..5.3mingw482_32pluginsplatforms et placées dans le sous-dossier correspondant du dossier de travail du programme. Vous pouvez également les copier vous-même depuis l'ordinateur sur lequel le programme a été compilé vers le dossier de travail ou système du programme (taille de l'archive - 126 Mo, décompressée - 400 Mo).

L'algorithme du programme est basé sur les solutions standards données dans [7]. Les caractéristiques de l'implémentation sont associées, tout d'abord, à l'utilisation de différents langages de programmation (contrairement à ceux décrits dans les sources Delphi et C#). Pour utiliser les fonctions HID API et SetupAPI, vous devez inclure respectivement les fichiers d'en-tête hidsdi.h et setupapi.h.

Le gestionnaire de clics sur le bouton à l'écran est la procédure on_Connect Button_clicked(). Tout d’abord, la fonction pilote HidD_GetHidGuid détermine le GUID associé au HID. Les fonctions SetupAPI sont ensuite appelées pour créer l'énumérateur d'interface et obtenir le nom HID du périphérique. Ceci est décrit en détail dans [7] à la p. 333. Dans cette affaire, les fonctions de détermination du nom du produit ou de son numéro de série n'ont délibérément pas été utilisées. Seul le couple VID/PID est vérifié. Ceci est fait pour éviter la possibilité d'une utilisation commerciale de l'appareil. Les valeurs VID/PID sont spécifiées par la constante Dev_VID_PID dans le fichier global_vars.h.

Une fois le périphérique détecté, le contrôle est transféré au pilote HID. La fonction CreateFile demande son handle, HidD_GetPreparsedData renvoie un pointeur vers un tampon contenant des informations sur les paramètres de l'appareil et HidP_GetCaps renvoie une structure avec les valeurs de ces paramètres.

Contrairement à la méthode couramment utilisée avec la taille du rapport attribuée directement dans le programme, sa valeur est ici déterminée par l'élément de structure Caps.FeatureReportByteLength obtenu à partir du descripteur. Cela vous permet de créer une solution plus universelle qui ne nécessite pas d'apporter des modifications au programme ni de le recompiler lorsque la taille du rapport dans le descripteur de périphérique change.

L'échange réel d'informations s'effectue à l'aide des fonctions HidD_Get Feature (lecture) et HidD_SetFeature (écriture), appelées dans les procédures correspondantes data_read() et data_transfer() par cycles en fonction du nombre de cellules. Comme déjà indiqué, le nombre d'éléments du tableau reçus par le dispositif de signalisation est supérieur à celui envoyé, car pour la synchronisation, l'ordinateur transmet toujours l'heure actuelle.

Un commentaire détaillé décrivant le but des procédures les plus importantes est disponible dans le texte du programme. Le but des procédures restantes est soit standard, soit intuitif, par exemple on_comboBox_currentIndexChanged() - gestionnaire de l'événement de changement d'index comboBox. Les lignes commentées de qDebug et celles qui l'accompagnent étaient uniquement destinées au débogage du programme. Si vous avez besoin de déboguer et d'afficher la progression de l'échange d'informations dans la fenêtre du débogueur Qt intégré, toutes ces instructions ne doivent pas être commentées.

Le programme stocke la configuration générale dans le fichier settings.cfg. Il est dans un format texte normal et peut être modifié manuellement si nécessaire. Sa section [Général] contient le nombre de cellules NUM_BOX=8 et le nombre de signaux par cellule NUM_BOX_CALL=4, dans la section [view] la position de la fenêtre du programme sur l'écran est spécifiée en nombres entiers. La section [names] contient les noms des médicaments par cellule, la section [used] - les indicateurs d'activité cellulaire, la section [times] - les valeurs de temps de réponse au format d'horodatage UNIX. Ces dernières sont principalement de nature informative, puisque les valeurs de fonctionnement se trouvent dans la mémoire du microcontrôleur du détecteur. Lors de la modification manuelle du fichier, veuillez noter que les paramètres de nom sont au format de code source C/C++/Java (par exemple, u3256).

Et en conclusion, quelques recommandations pour ceux qui souhaitent modifier indépendamment le nombre de signaux envoyés par l'appareil. Si le nombre de cellules est fixe, il est relativement facile de modifier le nombre de signaux par cellule. Dans le programme du microcontrôleur, pour cela il faut dans un premier temps modifier la constante NUM_CALLS. Sa valeur doit être égale au produit du nombre de cellules et du nombre maximum de signaux par cellule. Dans le cas considéré dans l'article, il est égal à 8x4=32. Deuxièmement, dans la procédure switch... case..., le nombre d'instructions case dans chaque ligne doit être égal au nombre de signaux par cellule. Dans ce cas, les arguments des instructions case doivent former une séquence continue de 0 à NUM_CALLS-1. Le corps de la fonction et l'instruction break restent inchangés. Le programme doit ensuite être sauvegardé et recompilé.

Aucun ajustement n’est requis dans le programme informatique. Il suffit de modifier la valeur de la constante NUM_BOX_CALL (le nombre de signaux par cellule) dans le fichier settings.cfg. Il doit correspondre strictement à ce qui est inclus dans le programme du microcontrôleur.

Les programmes pour le microcontrôleur et l'ordinateur peuvent être téléchargés à partir de ftp://ftp.radio.ru/pub/2017/01/signal.zip.

littérature

  1. Drinevsky V., Sirotkina G. Synthétiseurs musicaux de la série UMS. - Radio, 1998, n°10, p. 85.
  2. Bus universel en série. Informations CACHÉES. - URL : usb.org/developers/hidpage/.
  3. VUSB. - URL : obdev.at/products/vusb/index.html.
  4. Archive du pilotevusb-20100715. - URL : obdev.at/downloads/vusb/vusb-20100715.tar.gz.
  5. Compilateur WinAVR-20100110. - URL : sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-201 0 0110-install.exe/download.
  6. USB pour AVR. Partie 2. Classe HID sur V-USB. - URL : we.easyelectronics.ru/electro-and-pc/usb-dlyaavr-chast-2-hid-class-na-v-usb.html.
  7. Agurov P. Pratique de la programmation USB. - Saint-Pétersbourg : "BHV-Petersburg", 2006.

Auteur : D. Pankratiev

Voir d'autres articles section Médecine.

Lire et écrire utile commentaires sur cet article.

<< Retour

Dernières nouvelles de la science et de la technologie, nouvelle électronique :

Machine pour éclaircir les fleurs dans les jardins 02.05.2024

Dans l'agriculture moderne, les progrès technologiques se développent visant à accroître l'efficacité des processus d'entretien des plantes. La machine innovante d'éclaircissage des fleurs Florix a été présentée en Italie, conçue pour optimiser la phase de récolte. Cet outil est équipé de bras mobiles, lui permettant de s'adapter facilement aux besoins du jardin. L'opérateur peut régler la vitesse des fils fins en les contrôlant depuis la cabine du tracteur à l'aide d'un joystick. Cette approche augmente considérablement l'efficacité du processus d'éclaircissage des fleurs, offrant la possibilité d'un ajustement individuel aux conditions spécifiques du jardin, ainsi qu'à la variété et au type de fruits qui y sont cultivés. Après avoir testé la machine Florix pendant deux ans sur différents types de fruits, les résultats ont été très encourageants. Des agriculteurs comme Filiberto Montanari, qui utilise une machine Florix depuis plusieurs années, ont signalé une réduction significative du temps et du travail nécessaires pour éclaircir les fleurs. ...>>

Microscope infrarouge avancé 02.05.2024

Les microscopes jouent un rôle important dans la recherche scientifique, car ils permettent aux scientifiques d’explorer des structures et des processus invisibles à l’œil nu. Cependant, diverses méthodes de microscopie ont leurs limites, parmi lesquelles la limitation de la résolution lors de l’utilisation de la gamme infrarouge. Mais les dernières réalisations des chercheurs japonais de l'Université de Tokyo ouvrent de nouvelles perspectives pour l'étude du micromonde. Des scientifiques de l'Université de Tokyo ont dévoilé un nouveau microscope qui va révolutionner les capacités de la microscopie infrarouge. Cet instrument avancé vous permet de voir les structures internes des bactéries vivantes avec une clarté étonnante à l’échelle nanométrique. En général, les microscopes à infrarouge moyen sont limités par leur faible résolution, mais le dernier développement des chercheurs japonais surmonte ces limitations. Selon les scientifiques, le microscope développé permet de créer des images avec une résolution allant jusqu'à 120 nanomètres, soit 30 fois supérieure à la résolution des microscopes traditionnels. ...>>

Piège à air pour insectes 01.05.2024

L'agriculture est l'un des secteurs clés de l'économie et la lutte antiparasitaire fait partie intégrante de ce processus. Une équipe de scientifiques du Conseil indien de recherche agricole et de l'Institut central de recherche sur la pomme de terre (ICAR-CPRI), à Shimla, a mis au point une solution innovante à ce problème : un piège à air pour insectes alimenté par le vent. Cet appareil comble les lacunes des méthodes traditionnelles de lutte antiparasitaire en fournissant des données en temps réel sur la population d'insectes. Le piège est entièrement alimenté par l’énergie éolienne, ce qui en fait une solution respectueuse de l’environnement qui ne nécessite aucune énergie. Sa conception unique permet la surveillance des insectes nuisibles et utiles, fournissant ainsi un aperçu complet de la population dans n'importe quelle zone agricole. "En évaluant les ravageurs cibles au bon moment, nous pouvons prendre les mesures nécessaires pour lutter à la fois contre les ravageurs et les maladies", explique Kapil. ...>>

Nouvelles aléatoires de l'Archive

L'alimentation du futur 20.05.2019

Le développement de l'intelligence artificielle permettra à chacun de se faire un régime alimentaire individuel.

Des analystes britanniques, en collaboration avec des futurologues, ont mené une étude et découvert à quoi ressemblera le régime alimentaire humain d'ici 2025, 2050 et 2169. Les experts pensent que le développement de l'intelligence artificielle permettra à chacun de créer un régime alimentaire individuel et de recevoir des nutriments sous forme de patchs et de comprimés.

Le marché des protéines alternatives augmentera de 25% - il proviendra des insectes. La farine de grillon et les pâtes de sauterelle deviendront monnaie courante, tandis que le blé, le maïs, le riz et le soja seront remplacés par le moringa et les cacahuètes bambara. Le lait d'algues deviendra un best-seller.

Après 30 ans, les amateurs de poissons devront se sevrer de la morue, du saumon, de l'églefin, du thon et des crevettes et passer aux méduses, car elles se reproduisent bien dans les eaux chaudes en l'absence de prédateurs.

D'ici 2169, les gens stockeront des informations sur leurs besoins nutritionnels sur des micropuces implantées dans le corps. Si nécessaire, la puce enverra un signal au supermarché, puis le drone ou le robot livrera les produits nécessaires.

"Il y a de plus en plus de gens, et dans le choix des produits, ils sont de plus en plus guidés par des considérations de santé, de protection de l'environnement et de protection des animaux. Cela signifie que l'industrie alimentaire moderne ne peut pas répondre aux besoins d'une population qui atteindra bientôt 9 milliards", a déclaré le notent les chercheurs.

Autres nouvelles intéressantes :

▪ Les coléoptères sont les créatures les plus tenaces

▪ Le plomb est plus résistant que l'acier

▪ Nouvelles diodes Schottky de VISHAY

▪ Cellules sexuelles cultivées à partir de cellules souches

▪ Les villes deviendront plus propres

Fil d'actualité de la science et de la technologie, nouvelle électronique

 

Matériaux intéressants de la bibliothèque technique gratuite :

▪ section du site Ouvrages électroniques de référence. Sélection d'articles

▪ Article de Charles de Gaulle. Aphorismes célèbres

▪ article Où et quand les hommes attachaient-ils les poils pubiens de leurs amants à leurs chapeaux ? Réponse détaillée

▪ article Chou lapin. Légendes, culture, méthodes d'application

▪ article Compresseur de signal sur un amplificateur opérationnel. Encyclopédie de l'électronique radio et de l'électrotechnique

▪ article Alimentation pour horloges électromécaniques telles que Slava. Encyclopédie de l'électronique radio et de l'électrotechnique

Laissez votre commentaire sur cet article :

Nom:


E-mail (facultatif) :


commenter:





Toutes les langues de cette page

Page principale | bibliothèque | Articles | Plan du site | Avis sur le site

www.diagramme.com.ua

www.diagramme.com.ua
2000-2024