Menú English Ukrainian Ruso Inicio

Biblioteca técnica gratuita para aficionados y profesionales. biblioteca técnica gratuita


ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA
biblioteca gratis / Esquemas de dispositivos radioelectrónicos y eléctricos.

USB-anunciador del tiempo de toma de medicamentos. Enciclopedia de radioelectrónica e ingeniería eléctrica.

biblioteca técnica gratuita

Enciclopedia de radioelectrónica e ingeniería eléctrica. / Medicina

Comentarios sobre el artículo Comentarios sobre el artículo

Las personas mayores que se ven obligadas a tomar medicamentos con regularidad suelen tener dificultades para mantener su propio régimen. Pero a veces no sólo la salud, sino también la vida misma depende del cumplimiento oportuno de las instrucciones del médico. Además de los métodos organizativos habituales para resolver el problema, también se pueden utilizar medios técnicos. Estos incluyen la alarma propuesta, que envía señales todos los días según el horario ingresado, recordándole la necesidad de tomar medicamentos.

Es comprensible que muchas personas mayores tengan dificultades para trabajar con productos de software modernos. En cuanto a los dispositivos de alarma, la mayoría de ellos son en realidad despertadores algo modernizados, incapaces de funcionar según un horario incluso con dos o tres tipos de medicamentos y ergonómicamente no son adecuados para su uso por personas mayores.

La vista general de la alarma desarrollada por el autor, que cuenta con ocho canales independientes (según el número de celdas para medicamentos), cada uno de los cuales se puede configurar para enviar hasta cuatro señales de recordatorio por día (se pueden enviar un total de 32 señales). enviado), se muestra en la Fig. 1. Para ingresar o ajustar un horario de medicación, este dispositivo se conecta a través de una interfaz USB a una computadora en la que se ejecuta un programa especial. Cuando se carga el horario, la alarma funciona de forma autónoma.

Temporizador de medicación USB
Arroz. 1. Vista general del dispositivo de señalización

Tanto el hardware como el software de la alarma están diseñados teniendo en cuenta su uso por parte de personas mayores, incluidas aquellas con problemas de visión. El manejo del dispositivo es extremadamente simplificado y el programa utiliza soluciones algorítmicas y de interfaz que aumentan significativamente la facilidad de uso. Además, se han tomado medidas de seguridad eléctrica en el diseño de la alarma.

La alarma se alimenta desde una red de ~230 V y, en caso de un corte de energía, cambia automáticamente a la alimentación de la batería recargable incorporada. La energía consumida de la red no supera los 5 W, el tiempo de funcionamiento de una batería con una capacidad de 800 mAh alcanza los tres días. Esto garantiza la seguridad del horario incluso durante un corte de energía prolongado.

El circuito de alarma se muestra en la Fig. 2. El principio de funcionamiento es simple: el programa del microcontrolador compara el valor de la hora actual cada segundo con la hora de señal especificada. Si hay coincidencia, el dispositivo emite una señal sonora, que es una de varias melodías, seleccionables a voluntad, y enciende el indicador luminoso de la celda correspondiente con el medicamento. En el mismo momento, la hora de envío de esta señal se traslada al día siguiente. Para apagar las señales sonoras y luminosas, simplemente presione el botón de confirmación SB1.

Temporizador de medicación USB
Arroz. 2. Circuito del dispositivo de señalización (haga clic para ampliar)

El microcontrolador ATmega8A-PU (DD1) utilizado en el dispositivo de alarma es capaz de funcionar con una tensión de alimentación reducida a 2,7 V. La frecuencia de reloj del microcontrolador de 12 MHz la establece el resonador de cuarzo ZQ1. La unidad de alarma sonora está montada en un microcircuito del sintetizador de música UMS8-08 (DD2). El microcontrolador enciende la señal de audio enviando un nivel alto a la entrada S del chip sintetizador. La señal suena continuamente hasta que se presiona el botón SB1. La fuente de sonido es el emisor piezoeléctrico HA1. El volumen está controlado por la resistencia variable R16. Las melodías se ordenan presionando el botón SB2 durante la reproducción. En [1] se proporciona información más detallada sobre los microcircuitos de la serie UMS.

El dispositivo de alarma dispone de una fuente transformadora de tensión estabilizada de 5 V, no mostrada en el esquema, ensamblada según un circuito tradicional sobre un estabilizador integrado 7805. En caso de pérdida de tensión en la red de alimentación, el dispositivo cambia a alimentación. de la batería GB1. La corriente media consumida no supera los 5 mA. Si hay tensión en la red, la batería se recarga continuamente gracias al circuito VD5, VD6, R18. Sin embargo, se recomienda apagarlo una vez al mes y realizar un ciclo completo de descarga a un voltaje de 3 V y carga mediante un cargador externo.

El microcircuito del sintetizador de música UMS8-08 se puede sustituir por otro de las series UMS7 y UMS8. Se diferencian sólo en el conjunto de melodías. Está permitido reemplazar el transistor KT3102B por KT3102G, KT3102E o BC547 importado, así como por KT315B o KT315G, si la resistencia de la resistencia R17 se reduce a 51 kOhm. En lugar de diodos KD522B, son adecuados KD521A, KD521B, KD522A, 1N4148 y similares. Todas las resistencias fijas son C2-33N o MLT. Condensadores de óxido C3 y C6 - K50-83, K50-16 o importados. Los condensadores restantes son cerámicos K10-73-1b, K10-17v. Cualquier LED es adecuado en carcasas con un diámetro de 5 mm y del color de luz deseado. En la versión del autor, se instala un LED verde como HL1, para no molestar innecesariamente al paciente, el resto son rojos. Conector XS1 - Toma USB-BF.

La batería GB1 está compuesta por tres baterías Ni-Mh de tamaño AA con una capacidad de 80 mAh. Se pueden utilizar baterías de otras capacidades, pero es aconsejable seleccionar una resistencia R18 de tal resistencia que la corriente de carga inicial de una batería descargada a un voltaje de 3 V sea numéricamente igual a 0,1 de su capacidad nominal.

La alarma se monta sobre una placa de montaje perforada estándar de 70x50 mm con un paso de perforación de 2,54 mm. Método de instalación: con bisagras y fijación con adhesivo termofusible. Debido a la simplicidad del circuito, no se utilizó cableado impreso. Todos los elementos del dispositivo, excepto los LED HL2-HL9, están colocados en una caja de distribución eléctrica de plástico de diseño IP67 con unas dimensiones de 80x80x40 mm.

El conector XS1 está ubicado en una pequeña placa de circuito impreso, frente a él se corta un orificio del tamaño apropiado en la pared de la caja. Los elementos HA1, HL1, GB1, R16, SB1 se fijan a la tapa de la caja con pegamento caliente. El botón SB2, que no está relacionado con los controles operativos, está ubicado en la placa de circuito. En la Fig. La Figura 3 muestra la posición relativa de la placa de circuito y los elementos remotos dentro de la caja de distribución.

Temporizador de medicación USB
Arroz. 3. La posición relativa de la placa de circuito y los elementos remotos dentro de la caja de conexiones.

Los medicamentos se colocan en un casete estándar para componentes de radio que consta de ocho celdas con cajones. Cada celda tiene unas dimensiones de 112x55x120 mm. Las dimensiones totales del soporte para casetes son 224x110x120 mm. Dado que las celdas no están selladas, pero sí son bastante espaciosas, los medicamentos deben almacenarse en su embalaje original. El soporte del casete también proporciona protección contra la luz, necesaria para almacenar ciertos tipos de medicamentos. Los paneles frontales de las celdas tienen ranuras para placas con los nombres de los medicamentos.

La caja de distribución está fijada a la pared lateral izquierda de la caja del casete con tornillos y tuercas M3. Los LED HL2-HL9 están ubicados uno a la vez en el panel frontal de cada celda y están conectados al dispositivo mediante cables flexibles colocados en tubos de PVC dentro de las celdas y agrupados en la parte posterior de la caja del casete. La reserva de longitud de cada par de cables que van a los LED debe garantizar la extensión libre de la celda hasta el 75...80% del estado completamente abierto.

El archivo USB_HID_Note.hex adjunto al artículo debe cargarse en la memoria del programa del microcontrolador. La configuración del microcontrolador debe corresponder a la que se muestra en la tabla. 1. Un dispositivo correctamente ensamblado no requiere instalación. El brillo deseado de los LED se puede configurar cambiando su corriente entre 5...10 mA utilizando una selección de resistencias R7-R15.

Tabla 1

Descargas Estado
Cktop 0
CKSEL [3: 0] 1111
SUT [1: 0] 10
Cuerpo 1
W.D.E. 1
RSTDISBL 1

Desde el punto de vista de la especificación USB, el dispositivo pertenece a la clase HID [2] con una implementación de software de la interfaz USB basada en el conocido controlador AVR V-USB [3]. Permítanme recordarles que en este caso es necesario cambiar la interfaz al modo USB 1.1 de baja velocidad, lo cual, según la especificación, se realiza mediante una resistencia conectada entre las líneas de interfaz D y V.autobús (en este caso esta es la resistencia R4).

Se utilizó una de las opciones estándar para conectar el microcontrolador con su fuente de alimentación a voltaje reducido a través de los diodos VD1 y VD2. El uso de estos diodos es deseable a pesar de la presencia de una batería, ya que elimina la influencia de su voltaje en la coordinación de los niveles lógicos del bus USB y el microcontrolador.

El microcontrolador funciona a una frecuencia de reloj de 12 MHz, uno de los rangos permitidos para V-USB. Su programa está escrito en C en el entorno de desarrollo AVR Studio 4. El texto del programa (archivo main.c) contiene un comentario detallado. Se utilizó la versión del controlador vusb-20100715 [4] y el compilador WinAVR-20100110 [5].

La biblioteca V-USB está bien documentada, por lo que aquí solo se considerarán los puntos directamente relacionados con la implementación del proyecto o con sus características. El proceso paso a paso de creación de un programa basado en la biblioteca V-USB se describe en detalle en [6].

Puntos clave a los que prestar atención al crear un programa en AVR Studio:

- todos los archivos de la carpeta usbdrv del archivo V-USB deben copiarse a la carpeta del proyecto;

- los archivos usbdrv.c, usbdrvasm.S, oddebug.c deben agregarse al proyecto AVR Studio (a través del elemento del menú contextual "Agregar archivo(s) fuente existente..." en el árbol del proyecto);

- en la configuración del proyecto (Proyectos → Opciones de configuración → General → Frecuencia, Hz), la frecuencia del reloj del microcontrolador debe establecerse en 12000000 Hz. Con base en este valor, AVR Studio determinará para el compilador la constante F_CPU que utiliza V-USB.

La configuración V-USB necesaria está contenida en el archivo usbconfig.h, que también debería estar ubicado en la carpeta del proyecto. El archivo de configuración estándar debe reemplazarse por el adjunto al artículo. En mesa 2 enumera las constantes más importantes definidas en este archivo. La posibilidad de desarrollar libremente dispositivos USB HID está asociada a un punto importante: se deben utilizar pares de identificadores VID/PID según el documento USB-IDs-for-free.txt de la biblioteca V-USB [3].

Tabla 2

Constante Valor contenido
USB CFG E/S NOMBRE D Puerto de conexión de bus
USB CFG DMINUS BIT 4 El bit del puerto al que está conectado el D-line
USBCFGDPLUSBIT 2 Bit del puerto al que está conectada la línea D+ (debe estar conectado a la entrada de interrupción INTO)
CLASE DE INTERFAZ USB CFG 3 (OCULTO) Clase de dispositivo
POTENCIA MÁXIMA DEL BUS USB CFG 100 Consumo máximo de corriente desde el bus USB. mamá
LONGITUD DEL DESCRIPTOR DEL INFORME USB CFG HID 22* Longitud del descriptor del informe HID
ID DE VENDEDOR USB CFG OxCO, 0x16 ID del fabricante del dispositivo
ID DEL DISPOSITIVO USB CFG 0xDF, 05xXNUMX identificación de producto

*) Este valor debe ser igual al tamaño de la matriz de caracteres PROGMEM usbHidReportDescriptor en el programa.

El programa utiliza el formato de hora UNIX, donde el valor de tiempo es el número de segundos que han pasado desde las 00:00:00 UTC del 01.01.1970/XNUMX/XNUMX. La alarma no muestra la hora visualmente, lo que evita complicaciones innecesarias del circuito y el algoritmo. de su funcionamiento. La variable pdata se utiliza para transmitir marcas de tiempo: valores de tiempo UNIX de cuatro bytes.

El número máximo de señales enviadas por día se especifica en el programa mediante la constante NUM_ CALLS. Para almacenar valores de tiempo, se utiliza una matriz u_time de tamaño NUM_CALLS+1. En este caso, el elemento de la matriz u_time[NUM_CALLS] contiene la hora actual y el resto, la hora en que se enviaron las señales. A cada canal (célula del casete de medicamento) se le asignan cuatro elementos de matriz. Por ejemplo, la primera celda contiene elementos desde u_time[0] hasta u_time[3], la segunda, desde u_time[4] hasta u_time[7], etc. Si el valor de un elemento de la matriz es cero, se considera la señal correspondiente inactivo. Este enfoque nos permite simplificar el algoritmo para transmitir y procesar información.

El descriptor que describe la estructura del paquete y los procedimientos de transferencia de información usbFunctionWrite y usbFunctionRead se crean basándose en soluciones estándar. Las funciones básicas se describen en detalle en el archivo de encabezado usbdrv.h de [3]. Los procedimientos se complementan con condiciones para comprobar el número de canales procesados. El número de elementos de la matriz recibidos por el dispositivo desde la computadora es uno más que el enviado, ya que la computadora siempre transmite la hora actual para su sincronización.

Al comienzo del procedimiento principal main(), se configuran los registros de E/S, el factor de división de frecuencia del reloj se establece en 256 y el registro del temporizador TCNT1 se carga inicialmente con el número necesario para formar un intervalo de tiempo de 1 segundo. Las interrupciones por desbordamiento del temporizador están deshabilitadas de forma predeterminada.

Después de esto, el programa ingresa al bucle principal. Si no hay conexión USB, las interrupciones se habilitarán globalmente y en el desbordamiento del temporizador 1. En el bucle for, se verificará cada elemento de la matriz u_time[i] con un valor distinto de cero para ver si es igual al actual tiempo. Si se detecta un empate, se encenderá el zumbador y el LED de la celda correspondiente, y el tiempo de respuesta de este canal se incrementará en 86400 s (por día).

Luego se verifica el nivel en la entrada PB0. Si es bajo (se presiona el botón SB1 para confirmar la recepción de la señal), todas las salidas se configurarán en niveles lógicos bajos, lo que apagará las señales.

Paralelamente, cada segundo cuando el temporizador 1 se desborda, se inicia el procedimiento de manejo de interrupciones TIMER1_OVF_vect. Restaura el valor preestablecido del contador TCNT1, incrementa el valor de tiempo actual en el elemento de matriz u_time[NUM_ CALLS] y cambia el estado de la salida PB1 (el LED HL1 conectado parpadea con un período de 2 s).

Cuando un dispositivo está conectado a USB, la entrada PC5 recibe un nivel alto de la línea Vbus del bus USB. En este caso, la condición if (PINC & (1<<5)) desactiva las interrupciones de desbordamiento del temporizador 1 y activa el controlador V-USB. El LED HL1 se enciende y se ilumina continuamente.

Después de activar el controlador V-USB, es posible intercambiar información a través de USB. El bucle llama a la función usbPoll(), que mantiene la interfaz activa en ausencia de intercambio de información. El proceso de transferencia de información se describe con más detalle en la sección del artículo relativa al programa informático.

Pasemos a considerar el programa de computadora para ingresar un horario en el dispositivo de señalización USB_HID_Note. Como puede verse en su ventana principal (Fig. 4), durante el proceso de desarrollo se prestó especial atención a la optimización de la interfaz para garantizar la facilidad de uso para los usuarios mayores. El programa se ejecuta en Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008. Su rendimiento en Windows 10 y Windows Server 2012 no ha sido probado, pero hay motivos para suponer que funcionará normalmente.

Temporizador de medicación USB
Arroz. 4. La ventana principal del programa de computadora para ingresar el horario en el dispositivo de señalización.

Después de iniciar el programa con el dispositivo de alarma conectado a la computadora, presione el botón en pantalla "Para conectar". Se mostrará un mensaje indicando el resultado del intento de conexión. Si tuvo éxito, los botones en pantalla estarán disponibles "leer todo" y "Ahorrar".

Para ingresar un horario, simplemente seleccione el número de celda de la primera lista desplegable (selector) y el número de señal para esta celda de la segunda lista. Luego configure el tiempo de señal deseado, haga clic en la bandera a la izquierda del número para permitir o deshabilitar la combinación seleccionada de celda y señal (el color de la bandera cambia) y escriba el nombre del medicamento en la única línea disponible. El nombre del medicamento está vinculado al número de celda, por lo que el contenido de la línea cambia solo cuando se cambia el primer selector. El indicador de habilitación se refiere a la combinación seleccionada de números de celda y señal.

Así que complete todas las celdas necesarias. El estado predeterminado de las celdas es deshabilitado; no es necesario activarlas todas. Si es necesario, se puede cambiar la configuración de la celda. Los valores ingresados ​​se guardan dinámicamente.

Presionando el botón en pantalla La programación se transfiere al dispositivo de alarma y se escribe en el archivo de configuración. Se mostrará un mensaje indicando el resultado de la transferencia. El horario almacenado en el dispositivo de alarma se puede leer presionando el botón de la pantalla . Después de esto, puede verlo en la ventana del programa, editarlo si es necesario y volver a cargarlo en el dispositivo de alarma. Pulsando un botón en pantalla borra el nombre del medicamento en la ventana correspondiente, dando la oportunidad de escribir otro.

Una característica importante de la alarma es que detiene el temporizador actual cuando se conecta a un USB. En el momento en que se cierra el programa informático, el horario y la hora actual se registran automáticamente en la alarma (sincronización). Por lo tanto, después de cerrar el programa, debe desconectar el cable USB del dispositivo de alarma lo antes posible para minimizar la diferencia entre la hora real y la del "sistema".

Sin embargo, incluso una diferencia de varios minutos en el caso que nos ocupa no es crítica, por lo que no se han tomado medidas para eliminar esta característica. Si, después de completar el programa USB_HID_Note, el dispositivo de alarma permanece accidentalmente conectado a la computadora durante mucho tiempo, simplemente inicie este programa nuevamente y presione el botón en pantalla luego en y ahí mismo o simplemente cerrar el programa. Se restablecerá el momento correcto de la alarma, después de lo cual se podrá desconectar el cable USB.

Los nombres de los medicamentos se almacenan en el archivo de configuración del programa y se muestran en la pantalla de la computadora cuando se conecta el dispositivo de alarma. Además de ingresar el horario en el programa, debe asegurarse de que cada celda del casete esté equipada con una etiqueta con la inscripción correspondiente.

El programa USB_HID_Note está escrito en C++ en el entorno de programación Qt 5.3.2. La elección de este entorno se debe a su naturaleza gratuita, multiplataforma, amplias capacidades y herramientas integradas únicas para crear y depurar aplicaciones de cualquier nivel, combinadas con la flexibilidad de las soluciones de interfaz. El tipo de implementación de la aplicación es Qt Widget. El texto fuente del widget es el archivo widget.cpp. El proyecto completo está compilado en el archivo USB_HID_Note_ pro.zip, adjunto al artículo.

Una característica especial del programa es el acceso directo a las funciones de las bibliotecas SetupAPI y HID. Por tanto, el ordenador en el que se realice la compilación debe disponer de los archivos setupapi.lib e hid.lib correspondientes a la versión de su sistema operativo. Estos archivos suelen estar incluidos en el paquete WinDDK. Para evitar la necesidad de instalar completamente todo el paquete WinDDK, el autor recopiló los archivos de varias versiones de WinDDK 7600. 16385.1 en una carpeta winddk_libs, que está disponible en el servidor FTP de la oficina editorial. La compilación y la depuración se pueden realizar en Windows 7, Windows Server 2008 R2, Windows Vista SP1, Windows Server 2003 SP1, Windows XP SP3 o posterior. El archivo .pro debe indicar explícitamente las rutas completas a las bibliotecas, por ejemplo, como en la tabla. 3.

Tabla 3

Temporizador de medicación USB

El archivo ejecutable compilado del programa junto con los archivos de configuración (.cfg) y estilo (.qss) se encuentran en la carpeta USB_HID_Note adjunta al artículo. Allí también se encuentran las bibliotecas dinámicas Qt necesarias (archivos .dll). Como sabes, este requisito es obligatorio para cualquier aplicación desarrollada en Qt. La lista de estas bibliotecas para el caso considerado se da en la tabla. 4.

Tabla 4

Temporizador de medicación USB

Todas las bibliotecas se copian de la carpeta ..ToolsQtCreator in, con excepción de las dos últimas, que se copian de ..5.3mingw482_32pluginsplatforms y se colocan en la subcarpeta correspondiente de la carpeta de trabajo del programa. También puede copiarlos usted mismo desde la computadora en la que se compiló el programa a la carpeta de trabajo o del sistema del programa (tamaño del archivo: 126 MB, descomprimido: 400 MB).

El algoritmo del programa se basa en soluciones estándar dadas en [7]. Las características de la implementación están asociadas, en primer lugar, con el uso de diferentes lenguajes de programación (a diferencia de los descritos en la fuente Delphi y C#). Para utilizar las funciones HID API y SetupAPI, debe incluir los archivos de encabezado hidsdi.h y setupapi.h, respectivamente.

El controlador de clic en el botón en pantalla es el procedimiento on_Connect Button_clicked(). Primero, la función del controlador HidD_GetHidGuid determina el GUID asociado con el HID. Luego se llama a las funciones de SetupAPI para crear el enumerador de interfaz y obtener el nombre HID del dispositivo. Esto se describe en detalle en [7] en la p. 333. En este caso, no se utilizaron deliberadamente las funciones de determinar el nombre del producto o su número de serie. Sólo se marca el par VID/PID. Esto se hace para evitar la posibilidad de uso comercial del dispositivo. Los valores VID/PID se especifican mediante la constante Dev_VID_PID en el archivo global_vars.h.

Una vez que se detecta el dispositivo, el control se transfiere nuevamente al controlador HID. La función CreateFile solicita su identificador, HidD_GetPreparsedData devuelve un puntero a un búfer que contiene información sobre los parámetros del dispositivo y HidP_GetCaps devuelve una estructura con los valores de estos parámetros.

A diferencia del método comúnmente utilizado con el tamaño del informe asignado directamente en el programa, aquí su valor está determinado por el elemento de estructura Caps.FeatureReportByteLength obtenido del descriptor. Esto le permite crear una solución más universal que no requiere realizar cambios en el programa y volver a compilarlo cuando cambia el tamaño del informe en el descriptor del dispositivo.

El intercambio real de información se produce mediante las funciones HidD_Get Feature (lectura) y HidD_SetFeature (escritura), llamadas en los procedimientos correspondientes data_read() y data_transfer() en ciclos de acuerdo con el número de celdas. Como ya se señaló, el número de elementos de la matriz recibidos por el dispositivo de señalización es uno más que los enviados, ya que para la sincronización la computadora siempre transmite la hora actual.

Un comentario detallado que describe el propósito de los procedimientos más importantes está disponible en el texto del programa. El propósito de los procedimientos restantes es estándar o intuitivo, por ejemplo, on_comboBox_ currentIndexChanged() - controlador para el evento de cambio de índice de comboBox. Las líneas comentadas de qDebug y las que las acompañan estaban destinadas únicamente a depurar el programa. Si necesita depurar y ver el progreso del intercambio de información en la ventana del depurador Qt integrado, todas estas instrucciones deben descomentarse.

El programa almacena la configuración general en el archivo settings.cfg. Tiene un formato de texto normal y se puede editar manualmente si es necesario. Su sección [General] contiene el número de celdas NUM_BOX=8 y el número de señales por celda NUM_BOX_CALL=4, en la sección [ver] la posición de la ventana del programa en la pantalla se especifica en números enteros. La sección [nombres] contiene los nombres de los medicamentos por celda, la sección [usado] - indicadores de actividad celular, la sección [tiempos] - valores de tiempo de respuesta en formato de marca de tiempo UNIX. Estos últimos son principalmente de carácter informativo, ya que los valores operativos se encuentran en la memoria del microcontrolador del detector. Al editar manualmente el archivo, tenga en cuenta que los parámetros de nombre están en formato de código fuente C/C++/Java (por ejemplo, u3256).

Y en conclusión, algunas recomendaciones para aquellos que quieran cambiar de forma independiente la cantidad de señales enviadas por el dispositivo. Si el número de celdas es fijo, es relativamente fácil cambiar el número de señales por celda. En el programa del microcontrolador, para ello es necesario, en primer lugar, cambiar la constante NUM_CALLS. Su valor debe ser igual al producto del número de celdas por el número máximo de señales por celda. En el caso considerado en el artículo, es igual a 8x4=32. En segundo lugar, en el procedimiento switch... case..., el número de declaraciones de caso en cada línea debe ser igual al número de señales por celda. En este caso, los argumentos de las declaraciones de caso deben formar una secuencia continua de 0 a NUM_CALLS-1. El cuerpo de la función y la declaración de interrupción permanecen sin cambios. Luego se debe guardar el programa y volver a compilarlo.

No se requieren ajustes en el programa de computadora. Basta con cambiar el valor de la constante NUM_BOX_CALL (el número de señales por celda) en el archivo settings.cfg. Debe corresponder estrictamente a lo incluido en el programa del microcontrolador.

Los programas para el microcontrolador y la computadora se pueden descargar desde ftp://ftp.radio.ru/pub/2017/01/signal.zip.

Literatura

  1. Drinevsky V., Sirotkina G. Sintetizadores musicales de la serie UMS. - Radio, 1998, núm. 10, pág. 85.
  2. Autobús serie universal. Información oculta. - URL: usb.org/developers/hidpage/.
  3. V USB. - URL: obdev.at/products/vusb/index.html.
  4. Controlador de archivovusb-20100715. - URL: obdev.at/downloads/vusb/vusb-20100715.tar.gz.
  5. Compilador WinAVR-20100110. - URL: sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-201 0 0110-install.exe/download.
  6. USB para AVR. Parte 2. Clase HID en V-USB. - URL: we.easyelectronics.ru/electro-and-pc/usb-dlyaavr-chast-2-hid-class-na-v-usb.html.
  7. Agurov P. Práctica de programación USB. - San Petersburgo: "BHV-Petersburgo", 2006.

Autor: D. Pankratiev

Ver otros artículos sección Medicina.

Lee y escribe útil comentarios sobre este artículo.

<< Volver

Últimas noticias de ciencia y tecnología, nueva electrónica:

Máquina para aclarar flores en jardines. 02.05.2024

En la agricultura moderna, se están desarrollando avances tecnológicos destinados a aumentar la eficiencia de los procesos de cuidado de las plantas. En Italia se presentó la innovadora raleoadora de flores Florix, diseñada para optimizar la etapa de recolección. Esta herramienta está equipada con brazos móviles, lo que permite adaptarla fácilmente a las necesidades del jardín. El operador puede ajustar la velocidad de los alambres finos controlándolos desde la cabina del tractor mediante un joystick. Este enfoque aumenta significativamente la eficiencia del proceso de aclareo de flores, brindando la posibilidad de un ajuste individual a las condiciones específicas del jardín, así como a la variedad y tipo de fruta que se cultiva en él. Después de dos años de probar la máquina Florix en varios tipos de fruta, los resultados fueron muy alentadores. Agricultores como Filiberto Montanari, que ha utilizado una máquina Florix durante varios años, han informado de una reducción significativa en el tiempo y la mano de obra necesarios para aclarar las flores. ... >>

Microscopio infrarrojo avanzado 02.05.2024

Los microscopios desempeñan un papel importante en la investigación científica, ya que permiten a los científicos profundizar en estructuras y procesos invisibles a simple vista. Sin embargo, varios métodos de microscopía tienen sus limitaciones, y entre ellas se encuentra la limitación de resolución cuando se utiliza el rango infrarrojo. Pero los últimos logros de los investigadores japoneses de la Universidad de Tokio abren nuevas perspectivas para el estudio del micromundo. Científicos de la Universidad de Tokio han presentado un nuevo microscopio que revolucionará las capacidades de la microscopía infrarroja. Este instrumento avanzado le permite ver las estructuras internas de las bacterias vivas con una claridad asombrosa en la escala nanométrica. Normalmente, los microscopios de infrarrojo medio están limitados por la baja resolución, pero el último desarrollo de investigadores japoneses supera estas limitaciones. Según los científicos, el microscopio desarrollado permite crear imágenes con una resolución de hasta 120 nanómetros, 30 veces mayor que la resolución de los microscopios tradicionales. ... >>

Trampa de aire para insectos. 01.05.2024

La agricultura es uno de los sectores clave de la economía y el control de plagas es una parte integral de este proceso. Un equipo de científicos del Consejo Indio de Investigación Agrícola-Instituto Central de Investigación de la Papa (ICAR-CPRI), Shimla, ha encontrado una solución innovadora a este problema: una trampa de aire para insectos impulsada por el viento. Este dispositivo aborda las deficiencias de los métodos tradicionales de control de plagas al proporcionar datos de población de insectos en tiempo real. La trampa funciona enteramente con energía eólica, lo que la convierte en una solución respetuosa con el medio ambiente que no requiere energía. Su diseño único permite el seguimiento de insectos tanto dañinos como beneficiosos, proporcionando una visión completa de la población en cualquier zona agrícola. "Evaluando las plagas objetivo en el momento adecuado, podemos tomar las medidas necesarias para controlar tanto las plagas como las enfermedades", afirma Kapil. ... >>

Noticias aleatorias del Archivo

comida del futuro 20.05.2019

El desarrollo de la inteligencia artificial permitirá a todos hacer una dieta individual.

Analistas británicos, junto con futurólogos, realizaron un estudio y descubrieron cómo será la dieta humana para 2025, 2050 y 2169. Los expertos creen que el desarrollo de la inteligencia artificial permitirá a todos crear una dieta individual y recibir nutrientes en forma de parches y tabletas.

El mercado de proteínas alternativas crecerá un 25%: se tomará de los insectos. La harina de grillo y la pasta de saltamontes se volverán comunes, mientras que el trigo, el maíz, el arroz y la soya serán reemplazados por moringa y maní Bambara. La leche de algas se convertirá en un éxito de ventas.

Después de 30 años, los amantes de los peces tendrán que abandonar el bacalao, el salmón, el eglefino, el atún y las gambas y cambiar a las medusas, porque se reproducen bien en aguas cálidas en ausencia de depredadores.

Para 2169, las personas almacenarán información sobre sus necesidades nutricionales en microchips implantados en el cuerpo. Si es necesario, el chip enviará una señal al supermercado y luego el dron o robot entregará los productos necesarios.

"Cada vez hay más personas, y al elegir productos se guían cada vez más por consideraciones de salud, protección ambiental y protección animal. Esto significa que la industria alimentaria moderna no puede satisfacer las necesidades de una población que pronto alcanzará los 9 mil millones", dijo el nota de los investigadores.

Otras noticias interesantes:

▪ Los escarabajos son las criaturas más tenaces

▪ El plomo es más fuerte que el acero.

▪ Nuevos diodos Schottky de VISHAY

▪ Células sexuales cultivadas a partir de células madre

▪ Las ciudades serán más limpias

Feed de noticias de ciencia y tecnología, nueva electrónica

 

Materiales interesantes de la Biblioteca Técnica Libre:

▪ sección del sitio Directorios electrónicos. Selección de artículos

▪ Artículo de Charles de Gaulle. Aforismos famosos

▪ artículo ¿Dónde y cuándo unieron los hombres el vello púbico de sus amantes en sus sombreros? Respuesta detallada

▪ artículo Col de conejito. Leyendas, cultivo, métodos de aplicación.

▪ artículo Compresor de señal en un amplificador operacional. Enciclopedia de radioelectrónica e ingeniería eléctrica.

▪ artículo Fuente de alimentación para relojes electromecánicos tipo Slava. Enciclopedia de radioelectrónica e ingeniería eléctrica.

Deja tu comentario en este artículo:

Nombre:


Email opcional):


comentar:





Todos los idiomas de esta página

Hogar | Biblioteca | Artículos | Mapa del sitio | Revisiones del sitio

www.diagrama.com.ua

www.diagrama.com.ua
2000 - 2024