Creación de señal sintética en PIC

Hola que tal, soy literalmente nuevo, me inscribí al foro por esta cuestión, ya que no encuentro orientación por ningún lado, les comento mi problema y de antemano les doy las gracias por tomarse el tiempo de orientarme o simplemente leer la publicación. Tratare de ser lo mas explicito posible y tambien si me equivoque de lado pra postear por favor avísenme en donde va este post porque soy nuevo jejej gracias

1.- Estoy en la construcción de un proyecto de un Electro Estimulador Nervioso Transcutaneo Nervioso (TENS) por sus siglas en ingles. principalmente iba hacer este proyecto totalmente sencillo incluso ya hay distintos circuitos para esto. pero la mayoría si no es que todos utilizan onda cuadrada utilizando un NE555 y demás circuitos.

2.- Para la realización de este proyecto necesito que la señal final sea una Bifasica Asimetrica con las siguientes características
*Frecuencia variable entre 50 y 120 Hz
*Amplitud variable entre +/- 1v (1,0.92323,0.99123 ..., 0,-0.033,-0.9333..., -1 ) lo pongo de esta manera ya que no es tan importante la amplitud aún, igual se puede realizar ajustes con amplificadores etc.
* Intencidad entre 10uA a 2.1mA
Asesorandome con un profesor de asignatura me comento que puedo realizar esta señal fácilmente (típico). Que podía simular la señal (con conocimiento previo adquirido en la facultad), y después realizar algo de meta-programación (investigando me encontré que era cuando un programa hace otro y cosas así), despues implementarlo en un DAC y no se cuantas cosas más.(en parte entiendo mas o menos los pasos, pero ando algo perdido)

3.- La señal la tengo programada en matlab con una frecuencia de 120Hz y amplitud de 1 a -1 aproximadamente así es la señal de la cual me basé
1561090924974.png
Fig1. Señal Bifasica Asimetrica para electroestimulación.

y esta es la señal que tengo programada en matlab
señal 1 del tens.jpg
señal 2 del tens.jpg
Fig2. Señal sintetica en matlab frecuencia de 120 Hz

Ciertamente pasar el código de matlab a PIC no me causa problemas lo que me causa más problemas es la logica de cómo hacer que la señal de ser digital pase a una señal analógica con esas características.

Por favor alguien que me pueda orientar mejor.

-Soy Anisor G.
 

Adjuntos

  • 1561091617916.png
    1561091617916.png
    110.2 KB · Visitas: 1
Conversores DA:
a) PWM
b) DAC
Habrán mas opciones, no lo dudo.
Elije la que prefieras. Si el profesor ya te dijo b tampoco es que entienda muy bien la pregunta.
Un PWM ha de ir a bastante mas frecuencia que la señal que quieres generar para poder darle forma y luego hay que filtrarla bien para que la onda salga como quieres, un buen filtro matará el pico así que veo complicado que salga la onda que quieres por PWM, supongo que por eso no te lo dijo el profesor.
 
Si no quieres gastar pines hay DACs I²C y SPI, de mil colores y formas, canales, bits...
Normalmente con 8 bits queda un tanto cuadriculado, suele ser suficiente con 10 bits. Habla con tu director de proyecto, en su día el mío me dijo que mínimo 10 bits.
 
Hola que tal, aprecio mucho sus comentarios y sugerencias, ya estoy en el proceso de pasar el cosigo de Matlab a lenguaje C++ para ponerlo en un PIC18F4550, utilizaré un DAC R2R de 8 bits y bueno, estaré actualizando (en los comentarios) mis avances y dudas!

-Salu2
 
Mi consejo, es que busques un uC que ya tenga el DAC incorporado o con el modelo que elegiste, uses la salida PWM como te sugiere Scooter.

No es difícil manejar un DAC externo ya sea por SPI/I2C o incluso puerto paralelo, pero es un trabajo extra que fácilmente se puede superar usando un uC ya preparado para la tarea buscada.

Después respecto al lenguaje a utilizar, depende de c/u, pero para uC, C es el lenguaje adecuado salvo que uses las librerías de Arduino.
 
.......
1.- Estoy en la construcción de un proyecto de un Electro Estimulador Nervioso Transcutaneo Nervioso (TENS) por sus siglas en ingles. principalmente iba hacer este proyecto totalmente sencillo incluso ya hay distintos circuitos para esto. pero la mayoría si no es que todos utilizan onda cuadrada utilizando un NE555 y demás circuitos.

2.- Para la realización de este proyecto necesito que la señal final sea una Bifasica Asimetrica con las siguientes características
*Frecuencia variable entre 50 y 120 Hz
*Amplitud variable entre +/- 1v (1,0.92323,0.99123 ..., 0,-0.033,-0.9333..., -1 ) lo pongo de esta manera ya que no es tan importante la amplitud aún, igual se puede realizar ajustes con amplificadores etc.
* Intencidad entre 10uA a 2.1mA

Asesorandome con un profesor de asignatura me comento que puedo realizar esta señal fácilmente (típico). Que podía simular la señal (con conocimiento previo adquirido en la facultad), y después realizar algo de meta-programación (investigando me encontré que era cuando un programa hace otro y cosas así), despues implementarlo en un DAC y no se cuantas cosas más.(en parte entiendo mas o menos los pasos, pero ando algo perdido)

3.- La señal la tengo programada en matlab con una frecuencia de 120Hz y amplitud de 1 a -1 aproximadamente así es la señal de la cual me basé
Ver el archivo adjunto 179799
Fig1. Señal Bifasica Asimetrica para electroestimulación.

.....

Esa señal en que te basás tiene todo MUCHO olor a un mal dibujo fuera de proporción, de la señal que tenés a la salida de un transformador excitado con pulsos rectangulares. O sea, no sería mas que otro circuito con un 555+trafo.

Sugerencia: Investigá mas sobre las características la señal a aplicar porque ese dibujo no sirve para nada.
 
Yo diría que es un Ne555 y carga y descarga de capacitor 120hz ni siquiera me molestaría en usar un micro.
Pero en estos días todos quieren usar Arduino o C++ en un pic de 8 bits que no soporta C++ con alguna librería milagrosa de internet que haga de todo
 
Estos aparatos suelen incorporar un temporizador, alarma sonora y un display LCD para información de estado.
El display solo ya hace necesario un micro, y ya que estamos pues que maneje todo.
Se le usa una salida PWM con duty bajo --> transistor --> trafo y ya está la señal modelo.

Los estimuladores que he visto y padecido eran todos basura, ajustan el ancho del pulso y la corriente es la que salga --> control elaborado de la señal ni por casualidad.
 
Esa señal en que te basás tiene todo MUCHO olor a un mal dibujo fuera de proporción, de la señal que tenés a la salida de un transformador excitado con pulsos rectangulares. O sea, no sería mas que otro circuito con un 555+trafo.

Sugerencia: Investigá mas sobre las características la señal a aplicar porque ese dibujo no sirve para nada.

Que tal, se ha hecho una investigacion de los diferentes tipos de señales utilizadas en electroestimulacion transcutanea nerviosa, te invito a que cheques los tipos de señales, es cierto que pareciera una señal mal dibujada sinembargo es la correcta. mira le adjunto una fotografia de los tipos de señales que utiliza un electroestimulador transcutaneo nervioso. todas se basan como dice usted en una señal con pulson rectangulares pero con diferentes variaciones.
Estos aparatos suelen incorporar un temporizador, alarma sonora y un display LCD para información de estado.
El display solo ya hace necesario un micro, y ya que estamos pues que maneje todo.
Se le usa una salida PWM con duty bajo --> transistor --> trafo y ya está la señal modelo.

Los estimuladores que he visto y padecido eran todos basura, ajustan el ancho del pulso y la corriente es la que salga --> control elaborado de la señal ni por casualidad.

claro, y se espera realizar uno que no tenga todas esas carencias. mis conocimientos son pocos, la verdad, comparados con personas que saben de esto. pero se espera lograr hacer un trabajo bien hecho!. y aprecio mucho sus opiniones!
 

Adjuntos

  • imagen_señales.png
    imagen_señales.png
    148.4 KB · Visitas: 9
Que tal, se ha hecho una investigacion de los diferentes tipos de señales utilizadas en electroestimulacion transcutanea nerviosa, te invito a que cheques los tipos de señales, es cierto que pareciera una señal mal dibujada sinembargo es la correcta. mira le adjunto una fotografia de los tipos de señales que utiliza un electroestimulador transcutaneo nervioso. todas se basan como dice usted en una señal con pulson rectangulares pero con diferentes variaciones.

La mayoría de esas señales fueron generadas con una etapa de salida de este tipo:

tens1.jpg

Las demás son variantes, unas en pushpull y otras con diodos en primario y/o secundario. Pero siempre con un trafo, ya que la tensión de salida máxima ronda los 100V y es la manera mas práctica de implementarlo.

Respecto a la gráfica de la señal modelo, es un dibujo cualitativo, no pueden dimensionarse parámetros de amplitud y duración a partir de eso.
Encontrar las señales correctas no está fácil, pues la bibliografía existente está orientada al uso de estos equipos, no a la fabricación. Y de tomarlas de un equipo comercial, si no es un equipo bueno (bueno==carísimo) lo mas probable es no sean las señales apropiadas sino simplemente señales "fáciles de generar"

Con ese tipo de señales, la estimulación muscular se da principalmente durante el flanco ascendente/descendente, el resto aporta poco o nada. Eso hace que no sea poco importante la forma de la señal frente a la amplitud y velocidad de crecimiento de los flancos.

Como ejemplo, en el libro "Pain Treatment by TENS" (de Ottoson & Lundeberg) te ponen una tabla con las señales comunmente utilizadas para el tratamiento del dolor y son diferentes a las de tu tabla. La razón probablemente sea que estas no fueron excitando un trafo con pulsos sino usando un amplificador lineal (con salida máxima del orden de 100V)

tens2.jpg

O sea , que "juegan" con la señal de acuerdo al equipo que tienen, y probablemente con poca idea de lo que hace falta ya que una persona con formación en medicina es NULA en Fisica-Electricidad-Electronica.
Algo que debería compensarse trabajando con gente con formación técnica que es NULA en biología, lástima que es raro que se entiendan y se interesen por igual en el proyecto :(

claro, y se espera realizar uno que no tenga todas esas carencias. mis conocimientos son pocos, la verdad, comparados con personas que saben de esto. pero se espera lograr hacer un trabajo bien hecho!. y aprecio mucho sus opiniones!

De mi experiencia personal cuando tuve una parálisis facial, me hicieron electroestimulación con un aparato que tiraba pulsos como el de tu modelo inicial contorlando el duty-cycle --> No sirve para nada, cuando hay verdadera contracción muscular te DUELE en el acto o al día siguiente --> hay que bajar el duty --> el nivel donde no duele no sirve para nada.
En una protoboard me hice un estimulador y usando trenes de pulsos con duty creciente mejoraba mucho, pues era una contracción mas lenta. Pero oh! sorpresa, nadie usa ese tipo de señal.
Estuve 3 meses haciendo sesiones y cero avance. La solución fue cuando me puse a masticar chicle todo el día --> en 1 mes estaba prácticamente recuperado :)


El problema de hacer algo "bien hecho" es con qué criterio, pues es esto hay mucho efecto placebo y pseudociencia.
 
La mayoría de esas señales fueron generadas con una etapa de salida de este tipo:

Ver el archivo adjunto 179858

Las demás son variantes, unas en pushpull y otras con diodos en primario y/o secundario. Pero siempre con un trafo, ya que la tensión de salida máxima ronda los 100V y es la manera mas práctica de implementarlo.

Respecto a la gráfica de la señal modelo, es un dibujo cualitativo, no pueden dimensionarse parámetros de amplitud y duración a partir de eso.
Encontrar las señales correctas no está fácil, pues la bibliografía existente está orientada al uso de estos equipos, no a la fabricación. Y de tomarlas de un equipo comercial, si no es un equipo bueno (bueno==carísimo) lo mas probable es no sean las señales apropiadas sino simplemente señales "fáciles de generar"

Con ese tipo de señales, la estimulación muscular se da principalmente durante el flanco ascendente/descendente, el resto aporta poco o nada. Eso hace que no sea poco importante la forma de la señal frente a la amplitud y velocidad de crecimiento de los flancos.

Como ejemplo, en el libro "Pain Treatment by TENS" (de Ottoson & Lundeberg) te ponen una tabla con las señales comunmente utilizadas para el tratamiento del dolor y son diferentes a las de tu tabla. La razón probablemente sea que estas no fueron excitando un trafo con pulsos sino usando un amplificador lineal (con salida máxima del orden de 100V)

Ver el archivo adjunto 179874

O sea , que "juegan" con la señal de acuerdo al equipo que tienen, y probablemente con poca idea de lo que hace falta ya que una persona con formación en medicina es NULA en Fisica-Electricidad-Electronica.
Algo que debería compensarse trabajando con gente con formación técnica que es NULA en biología, lástima que es raro que se entiendan y se interesen por igual en el proyecto :(



De mi experiencia personal cuando tuve una parálisis facial, me hicieron electroestimulación con un aparato que tiraba pulsos como el de tu modelo inicial contorlando el duty-cycle --> No sirve para nada, cuando hay verdadera contracción muscular te DUELE en el acto o al día siguiente --> hay que bajar el duty --> el nivel donde no duele no sirve para nada.
En una protoboard me hice un estimulador y usando trenes de pulsos con duty creciente mejoraba mucho, pues era una contracción mas lenta. Pero oh! sorpresa, nadie usa ese tipo de señal.
Estuve 3 meses haciendo sesiones y cero avance. La solución fue cuando me puse a masticar chicle todo el día --> en 1 mes estaba prácticamente recuperado :)


El problema de hacer algo "bien hecho" es con qué criterio, pues es esto hay mucho efecto placebo y pseudociencia.

Excelente información, muchas gracias por el conocimiento, me alegra que no halla pasado a mayores el inconveniente que sufrió.
 
Arriba