Como crear tu propia máscara para sueños lúcidos

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

Este es el circuito que estoy empleando para la versión casera del NovaDreamer, el circuito no verifica si el sujeto esta o no durmiendo sino que trabaja por tiempos, de hecho puede ser necesario que se realicen algunos ajustes con la experiencia.

 

 

 

 

El sistema tiene un boton que sirve para seleccionar el modo de uso, cuando se enciende el aparato el led conectado a RB0 flashea 1 vez y se presiona el boton P y se lo mantiene presionado hasta que vuelva a parpadear el led,

 

1 Parpadeo, Modo 1 Hipnagogia: este modo puede ser interesante para procurar tener un WILD. La máscara parpadea cada 5 minutos durante 45 minutos.

 

2 Parpadeos, Modo 2 SL1: este modo espera 6 horas para comenzar a parpadear la máscara y procurar inducir un sueño lúcido

 

3 Parpadeos, Modo 3 SL2: este modo espera 45 minutos para comenzar a parpadear la máscara y procurar inducir un sueño lúcido.

 

Si se enciende y no se presiona el pulsador durante 5 segundos, el programa ejecuta por default el modo 3 , me pareció piola no estar en el medio de la noche poniendo el modo, de manera que lo prendo y se ejecuta.

 

Estos valores se pueden cambiar en el programa que se adjunta

 

 

 

 

 

 

 

Programa

'****************************************************************

'*  Name    : Prototipo 3.BAS                                   *

'*  Author  : [GFM]                                             *

'*  Notice  : Copyright (c) 2007                                *

'*  Date    : 29/10/2007                                        *

'*  Version : 2.0                                               *

'*  Notes   :                                                   *

'*          :                                                   *

'****************************************************************

 

' ************************ Definiciones *************************

RedLED      var portb.0

DerLED      var portb.2

IzqLED      var portb.1

Beeper      var portb.4

ModoProg    var porta.2

Cuenta      var byte

i           var byte

j           var byte

Aux         var byte

min45       con 2700        '45 minutos   (2700)

min40       con 2400        '40 minutos    (2400)

min20       con 1200        '20 minutos   (1200)

min15       con 900         '15 minutos   (900)

min5        con 300         '5 minutos     (300)

hora6       con 21600       '6 horas        (21600)

    DEFINE osc 4            'Indica oscilador de 4MHz

   

' ********************* Programa principal **********************   

 

    TRISA.2 = 1             'Puerto A2 ENTRADA Modo de programacion

    TRISB = 0               'Puerto B SALIDA

    cuenta=0

   

 

    gosub beep0

    while cuenta<50  'espero 5seg antes de pasar a Modo3

        pause 100

        cuenta=cuenta+1

        aux=modoprog

    wend

    If aux=0 then goto MODO3

   

    cuenta=0

    while modoprog=1

        cuenta=cuenta+1

        gosub beep0

        pause 500

    wend

        cuenta=cuenta-1

    branch cuenta, [modo1,modo2,modo3]

    end

   

' ********************* Modos de ejecución ***********************      

 

MODO1:  for i=0 to 10             'Hipnagogia 3 flashes c/5min durante x 50min

            gosub flash2

            sleep min5                   '5 minutos entre flashes

        next

        end

'---------------------------------------------------------------       

MODO2:  sleep hora6              'Sueño Lucido 1 espera 6horas y flashea

        for J=0 to  15                   'perìodos de 20 min aprox

            for i=0 to 33       'rafaga de 5 minutos aprox

                gosub flash1

                pause 4000              '4 segundos entre flashes

            next

            sleep min15

        next

        end

'---------------------------------------------------------------       

MODO3:  sleep min45             'Sueño Lucido 2 espera 45min y flashea

        for J=0 to  15                   'perìodos de 20 min aprox

            for i=0 to 33       'rafaga de 5 minutos aprox

                gosub flash1

                pause 4000              '4 segundos entre flashes

            next

            sleep min15

        next

        end

 

' ********************* SUBRUTINAS *******************************   

BEEP0:  high redled

        pause 100

        low redled

        return

                             

flash1: for i=0 to 3         'tres flashes

            high derled    

            high izqled

            pause 100         '100mseg de encendido

            low derled

            low izqled

            pause 1000       '1 segundo de apagado

        next

        return

 

flash2: for i=0 to 3         'tres flashes

            high derled    

            high izqled

            pause 100         '100mseg de encendido

            low derled

            low izqled

            pause 2000       '2 segundo de apagado

        next

        return

 

 

Apéndice:

Lo siguiente es un buen resumen de cómo programar un PIC, que encontré en una página de internet

IC-PROG: http://www.ic-prog.com/

El programador PROPIC2 va conectado al puerto paralelo LPT1 del PC, el programa utilizado para transferir el programa compilado *.HEX es el IC-PROG, en él debe configurarse el tipo de programador... Propic 2 programmer, Direct I/O, Invertir MCLR, Invertir VCC y retraso I/O al mínimo... esta configuación funciona impecable. Es importante habilitar el check box "Habilitar Driver NT/2000/XP" en caso de usar Windows NT, 2000 ó XP.




Ahora sólo falta el software para hacer el programa del PIC.... hay varias alternativas, Assembler, C, Picbasic... no hay donde perderse, el PICBASIC es la solución, es como usar el legendario lenguaje Microsoft Qbasic.



PicBasic Pro Compiler Ver. 2.43: http://picbasic.com/

El PICBASIC es un compilador que transforma un archivo *.BAS a *.HEX. Tiene su propio juego de comandos que es facil de aprender, rutinas listas para usar comunicación serial RS-232, Displays LCD, DTMF, comunicación I2C y usas comandos típicos de basic como el IF... THEN ... ENDIF, GOTO, POKE, GOSUB, etc...

MicroCode Studio Plus: http://www.mecanique.co.uk/
El MicroCode Studio es una interface en el cual escribes el código del programa, te corrige errores de sintaxis, te ordena visualmente las subrutinas... El Microcode queda enlazado con el PICBASIC y el IC-PROG, de manera que una vez que terminas el programas, compilas y generas el archivo *.HEX, los programas los guardas en formato Picbasic *.BAS.


Procedimiento...

Lo principal es decidir qué PIC comprar para tu proyecto, depende de las I/O que necesitas, si quieres análogas o nó... el básico es el PIC16F84A. No voy a hacer el típico ckto del led blinqueando que sale como ejemplo en el manual usuario, si no que algo más original...

Ejemplo:
Se requiere un circuito que envíe una señal de "SOS" en código morse mediante un LED, en morse la
S = ... y la O = ---. El LED será conectado a pin 6 que corresponde al RB0 y el PIC oscilará a 4 MHz con un cristal de cuarzo.

En el microcode Studio abres un proyecto nuevo y escribes el siguiente código:



'***************************************************************************
'Programa : MORSE.BAS
'Descripción : Programa que envía por el puerto RB0 el código morse de ayuda ... SOS.


DEFINE OSC
4 'define la velocidad del cristal... 4MHz
led VAR portb.0
'Crea a "led" como alias del bit 0 del puerto B.
OUTPUT
led 'Configura a "led" como un pin de salida.
punto VAR WORD
'Declara que la variable "punto" como word.
raya VAR WORD
pausa VAR WORD
espacio VAR WORD
x VAR BYTE
punto = 200
raya = 500
pausa = 400
espacio = 800
LOW
led
'deja en 0 la salida RB0, led apagado.

loop:
GOSUB S
'procedimiento de la letra "S"
PAUSE espacio
'pausa de 800 mS
GOSUB O
'va a procedimieto de la letra "O"
PAUSE espacio
GOSUB
S
'procedimiento de la letra "S"
PAUSE
espacio
GOTO
loop
'vuelve a repetir los pasos desde la etiqueta "loop"
END
'En realidad en este programa no es necesario, pero END deja al PIC en modo ahorro de energía.

S:
FOR x=1 TO 3
'Repite el ciclo 3 veces
HIGH led
' enciende el led indicador
PAUSE punto
'pausa de 200 mS
LOW led
PAUSE pausa
'pausa de 400 mS
NEXT x
RETURN

O:
FOR x=1 TO 3
HIGH led
' enciende el led
PAUSE raya
LOW led
PAUSE pausa
NEXT x
RETURN

'***************************************************************************

 


Bueno, esa es la idea, esto se escribe en el Microcode Studio, lo guardas como MORSE.BAS, se elige el PIC que usarás, en este caso el PIC16F84A, la velocidad del cristal es definido en el programa (DEFINE OSC 4), luego el programa se compila y si está sin errores generará un archivo MORSE.HEX, el archivo .HEX lo abres con el IC_PROG, seleccionas el PIC16F84A y escribes el programa mediante el programador PROPIC2 conectado a la puerta paralela del PC, obviamente el PIC16F84 debe está en el zócalo correspondiente.

Fácil y bonito... te das cuenta lo sencillo de programar tus rutinas en Picbasic, por ej. la robótica se ha desarrollado gracias los microcontroladores PIC... actualmente trabajo con el PIC 16F870, tiene entradas análogas y 2 puertos I/O de 8 bit, lo cual es ideal para desarrollar mis proyectos con las señales de los sensores del vehículo, el sensor Lambda (0 a 1000 mV), MAF (0 a 5V), TPS (0 a 5V), y pulsos digitales de los inyectores, entrada bobina de alta para calcular las revoluciones del motor (rpm).

TIPS

PIC16F84A:
Memoria de programa 1796 bytes (Flash)
Ram 68 bytes
EEPROM 64 bytes
13 pinout I/O
22 mA por pinout
Entradas análogas, 6 (PIC16F870), 8 (PIC16F871)



Ultimos mensajes del foro

Artículos Sugeridos:

  • By El_Ráulo / 2006-05-23 17:41:51
    El proceso del Sueño
    Read More
    El proceso del Sueño
  • By marina-bzr / 2007-02-21 18:36:04
    EL FESTOLESO (fragmentos de Crónicas Nocturnas) Lina Bucher
    Read More
    EL FESTOLESO (fragmentos de Crónicas Nocturnas) Lina Bucher
  • By Aguilasolar / 2007-12-07 17:32:35
    Estados de consciencia
    Read More
    Estados de consciencia
  • By Havellok / 2008-06-23 22:42:09
    El Sueño Lúcido
    Read More
    El Sueño Lúcido
  • By onironauta / 2006-03-28 15:47:53
    La función de los sueños según Adler
    Read More
    La función de los sueños según Adler
  • By Mariana / 2014-12-19 21:16:33
    Resultados del Experimento "Libro de la Vida"
    Read More
    Resultados del Experimento "Libro de la Vida"
  • By Mariana / 2014-11-28 23:57:20
    El Síndrome de las Piernas Inquietas
    Read More
    El Síndrome de las Piernas Inquietas
  • By gstilman / 2007-01-13 18:39:42
    David Faierstein (Por Gabriel Stilman)
    Read More
    David Faierstein (Por Gabriel Stilman)
load more / hold SHIFT key to load all load all