22 December 2009

Animación SkechUp para felicitar las fiestas del solsticio de invierno 2009

A continuación una animación 3D realizada con el programa SketchUp de Google, es un trabajo poco elaborado (comunmente llamado "chapuza") realizado para felicitar las fiestas que se celebran al final de año, que suelen ser muy felicitadas.
Es posible que realice versiones en más idiomas...

06 December 2009

Test reproductores mp3 (radio efr) broadcast

A continuación una prueba de emisión de archivos mp3, por si en el futuro empiezo a compartir archivos.


-Clase de chino mandarín (han yu) con "Xisca" (El archivo original aquí)  Gravación realizada en el aula. (para los idiomas es muy importante la pronunciación)

test reproductor 1



test reproductor 2



Test reproductor 3



Test reproductor 4



-Radio en Esperanto www.polskiradio.pl (El archivo original aquí)

test reproductor 1

texto alternativo efr



test reproductor 2



Test reproductor 3



Test reproductor 4



Para poder escuchar es necesario tener instalado el Shockwave_and_Flash_Player (descargalo aquí)

La información técnica la he obtenido de:

http://www.colewebs.org/spip.php?article24

04 December 2009

Especulando acerca de los posibles caminos a seguir.

Una vez terminados los estudios es hora de incorporarse al sistema socio-economico mundial (pues no hay muchas más alternativas) La cuestión es, de que forma hacerlo y con quien.


Durante estos días he empezado a especular acerca de mi futuro, y aun no se a que me voy a dedicar...

Como posibilidades he considerado las que enumero a continuación:

-Sector Electrónico (Industrial, telecomunicaciones etc...) relacionado con mi curriculum y vocación.


-Trabajar en el mundo (¿empresas multinacionales? ) en el sector electónico u "otros"

-Becas para practicas en empresas internacionales o nacionales (leonardo, integrants, etc...)

-Voluntariado  (¿Asociaciones?, ¿Instituciones?, ¿ONG's?)

-Autoempleo y/o negocio propio. (¿Financiación de iniciativas por parte de entidades publicas o privadas?)

-Trabajo Publico (nacional, "europeo", ¿mundial?) (instituciones dependientes de los fondos publicos)

Expuestas las opciones también hare publico aquí parte de mi "curriculum vitae" por si hay algun lector interesado en contratarme  y/o asociarse conmigo:





Lugar y Fecha de nacimiento: Valencia, 12.11.1979


FORMACIÓN ACADEMICA:


-1996. Técnico Auxiliar en Electricidad y Electrónica.
-1999. Técnico Especialista en Electrónica Industrial.
(Ambas cualificaciones en IES 2, Cheste)
-2009. Ingeniería Técnica de Telecomunicación, en la especialidad de Sistemas Electrónicos.
(ETSE, Universitat de València)



EXPERIENCIA PROFESIONAL:


-1997. Practicas de electricista. (ELECEX) (3 meses)
-2005. Practicas Formativas Ingeniería (Quality International Services Q.I.S.) Ingeniería Eléctrica, Sistemas SCADA, PLC's, etc... (3 meses)
-2006. Practicas Formativas Ingeniería (FORD MOTOR COMPANY España) Dep. Ingeniería de Procesos Eléctricos en planta de montaje Almussafes. (5 meses)
-2009. Estudiante ayudante a los programas de intercambio de la ETSE (Escuela Técnica Superior de Ingeniería de la Universidad de Valencia) Soporte logístico a los estudiantes de intercambio y mantenimiento web (2 cursos)


OBSERVACIONES:


-1999. Permiso de conducción tipo B
-2007. Estudiante ERASMUS en la Universidad Tecnológica de Tampere (Finlandia) (11 meses)
 


IDIOMAS :


-Valenciano y Castellano
-Inglés
-Conocimientos básicos de Francés, Finés y Chino mandarín.



02 November 2009

Crear formularios con Google docs

A continuación mi primer formulario web, (funcional) creado con la herramienta google docs, espero vuestras respuestas. ¡Gracias!




La idea la he extraido de un post en un blog:
http://www.magarciaguerra.com/2009/10/crear-formularios-online-para-el-aula/

Se pueden ver las respuestas en la URL siguiente:
http://spreadsheets.google.com/pub?key=twnF_bU4xbuYdtvC0oZYViw&output=html

Si no aparece el formulario debido a que el post es leeido desde un feed, se puede ver en:
http://spreadsheets.google.com/viewform?hl=ca&formkey=dHduRl9iVTR4YnVZZHR2QzBvWllWaXc6MA

31 October 2009

Telefonia IP y ahorrar con ideas innovadoras.

Telefonía IP:


www.skype.com
www.openwengo.com
www.gizmoproject.com
www.sightspeed.com
www.voipbuster.com
www.voipdiscount.com

Telefonía ahorro innovador:


www.jajah.com
www.jaxtr.com

www.rebtel.com

www.connectmeanywhere.com

Esta información ha sido extraida del un artículo "antiguo" en la revista:

http://www.pc-actual.com/ 

Estos links son interesantes sobre todo en el caso de ser comunicaciones internacionales.


17 October 2009

Montar un servidor web http



Hoy he experimentado lo sencillo que es montar un servidor web.


Primero:
-Me descargo de la web
http://httpd.apache.org/
El programa "apache" que convierte el ordenador en un servidor web, para las versiones windows.
http://apache.rediris.es/httpd/binaries/win32/apache_2.2.14-win32-x86-openssl-0.9.8k.msi
Lo instalo, y en el el directorio "htdocs" creado por el programa coloco una pagina web (como siempre la pagina de inicio es llamada "index.html")
Para ello he elegido el puerto 80 que es el tipicamente usado para el protocolo http
Segundo en la URL:
http://www.internautas.org/w-localizamiip.html
-Compruevo cual es la dirección IP ("Internet Protocol" protocolo de internet) que mi ISP ("Internet Services Provider" Proovedor de servicios de internet) me ha asignado cara al exterior, y la apunto.
Tercero
-Si tengo un firewall, añado una excepción en el puerto 80 para que admita conexiones entrantes. (en el firewall de windows XP, es muy sencillo hay que acceder a el a través del panel de control)
Si no estoy conectado a través de un router, ya está configurado y listo para recibir conexiones entrantes desde cualquier parte de internet, de forma que mi URL será:
http://miIP:80
o simplemente:
http://miIP
Si estoy conectado a través de un "router", hay que habilitar un servidor virtual, con la IP interna del ordenador en el que he instalado el programa APACHE, indicandole el puerto que hay que redirigir (en este caso el 80 tipicamente usado para el protocolo web http)
Podeis ver el resultado aquí (activo normalmente durante laso horas del dia en España)
http://84.123.46.58/
http://starturl.com/efrenfr
Si quereis saber como registrar un dominio para dar un nombre "recordable" a vuestra web podeis visitar la siguente URL:

http://es.wikipedia.org/wiki/Registro_de_dominios
O crear una dirección con letras en la siguiente direccion de froma gratuita

http://starturl.com/
Se puede ver el efecto en:
http://starturl.com/efrenfr (activo normalmente durante laso horas del dia en España)


15 October 2009

Fe de erratas PFC y Programas MATLAB mejorados

En la siguiente URL:

http://www.mediafire.com/file/1dmkonydeed/textos_adicionales_al_PFC.pdf

Se pueden encontrar un documento de Fe de erratas al PFC, así como diversos programas MATLAB optimizados para su uso en el desarrollo del PFC. Estos documentos no están en el Proyecto original, ya que son una mejora realizada al mismo.

Se puede encontrar el documento a continuación por si fallara el anterior link.


FE DE ERRATRAS DE LA MEMORIA PRESENTADA PARA EL PFC

Página 11 sobra una palabra en un párrafo (una)
Página 34 Se indica erróneamente que la figura 13 se trata de un modelo del sistema de ecolocación
de los murciélagos, cuando en realidad se trata del sistema pasivo de ecolocación de un búho.
Página 45 Dice que el RADAR (activo) usa la emisión de sonido, cuando debería decir que usa la
emisión de ondas electromagnéticas.
Página 61 sobra un “de” en un parrafo “depende de del autor”
Página 88 En cuanto lo que hace referencia a los transductores electrostáticos, cabe añadir para
clarificar que las frecuencias de resonancia y sus armónicos están fuera del rango de
funcionamiento de uso normal. Lo que hace referencia a los transductores electrodinámicos, se
puede añadir que se introduce “color” debido precisamente a que las frecuencias de resonancia y
sus armónicos están dentro del rango de funcionamiento normal de dichos sistemas.
Página 95 Sobran dos referencias que están duplicadas. ( www.tdt.com y www.neotronic.com )

Programas MATLAB Para la presentación.

Funciones ELAB-080 llamadas desde MATLAB

%uso de las funciones en la libreria ElabDLL
[notfound,warnings]=loadlibrary('ElabDLL.dll', 'ElabDLL.h')
libfunctions ElabDLL
libfunctions ElabDLL -full
libfunctionsview ElabDLL
%1
%C prototipe
%bool GetHWStatus()
%Matlab Prototipe
%bool GetHWStatus
a=calllib('ElabDLL', 'GetHWStatus')
% 0 not found or without power 1 if is ready to work
%2
%C prototipe
%bool GetSerialNumber(long *SerialNumber)
%Matlab Prototipe
%[bool, longPtr] GetSerialNumber(longPtr)
x = 15;
xp = libpointer('longPtr', x);
get(xp)
b=calllib('ElabDLL', 'GetSerialNumber',xp)
get(xp, 'Value')
%3
%C prototipe
%int SetAnalogChannels(int CH1Gain, int CH2Gain, bool CH1Couple, bool CH2Couple,
bool CH1Multiplier, bool CH2Multiplier)
%Matlab Prototipe
%int32 SetAnalogChannels(int32, int32, bool, bool, bool, bool)
intA=500; %Ch1 mV/div Possible values are 10, 20, 50, 100, 200, 500
intB=100; %Ch2 mV/div Possible values are 10, 20, 50, 100, 200, 500
boolA=1; %Ch1 DC(1)/AC(0)
boolB=1; %Ch2 DC(1)/AC(0)
boolC=1; %Ch1 probe 10X(1)/1X(0)
boolD=0; %Ch2 probe 10X(1)/1X(0)
ReturnInt=calllib('ElabDLL', 'SetAnalogChannels', intA, intB, boolA, boolB,
boolC, boolD)
% ReturnInt=1 Ch1 incorrect value =2 Ch2 incorrect value =0 Success
%4
%C prototipe
%long SetDSODCOffsets(double CH1DCOffVoltage, double CH2DCOffVoltage)
%Matlab Prototipe
%long SetDSODCOffsets(double, double)
% The range allowed is +/- (5*V/div setting).
% Thus in 5V/div, you can set to +/-
% 25V, in 20mV/div, this can be set to +/- 100mV.
doubleA=0.1; %Ch1 offset
doubleB=0.1; %Ch2 offset
ReturnLong=calllib('ElabDLL', 'SetDSODCOffsets', doubleA, doubleB)
% 1 failure, 0 success
%5
%C prototipe
%double SetDSOLASampleRate(double DesiredFreq)
%Matlab Prototipe
%double SetDSOLASampleRate(double)
doubleA=300000; %Frecuencia de muestreo del DSO desde 8KHz a 40MHz
ReturnDouble=calllib('ElabDLL', 'SetDSOLASampleRate', doubleA)
% returndoble Devuelve el valor asignado para el muestreo
%6
%C prototipe
%int CaptureDSOData(unsigned int total_blocks, unsigned int pre_trigger_blocks,
unsigned int trigger_channel, double trigger_value, unsigned int
auto_roll, long OverrideOtherClocks)
%Matlab Prototipe
% int32 CaptureDSOData(uint32, uint32, uint32, double, uint32, long)
uintA=31; %Numero de Bloques 1 a 32 de 1K
uintB=0; %Numero de bloques antes del trigger
uintC=1; % 0 no Trigger, 1 Ch2, 2 Ch2, 3 LA
doubleA=0;
%This value is in volts if the trigger is a DSO trigger, and in bits if a
%LA trigger. The trigger must be “on screen”, which is +/- 5 divisions from the
current DC
%offset. If the trigger is an LA trigger, only the least significant 4 bits are
used, and one of
%these bits must be “1”
uintD=1; % if 1 auto trigger, if 0 whait fpr the trigger
longA=1; % si es 0 no fuerza el cambio de los valores de reloj, 1 fuerza cambio
de valores de relojes en el dispositivo...
ReturnInt=calllib('ElabDLL', 'CaptureDSOData',uintA, uintB, uintC, doubleA,
uintD, longA)
% 0 failure, 1 success
%7
%C prototipe
%long RetrieveDSOData(unsigned char whatchannels, double *DSOCH1, double
*DSOCH2, unsigned short *LADATA, unsigned char Nth_Sample)
%Matlab Prototipe
%long, doublePtr, doublePtr, uint16Ptr] RetrieveDSOData(uint8, doublePtr,
doublePtr, uint16Ptr, uint8)
uintA=1; %Mascara de bits con los canales que se leeran The LSB is DSO CH1, bit
1 is DSO CH2, bit 2 is LA CH0-7, bit 3 is LA CH8-15
x = zeros(32768, 1);
y = zeros(32768, 1);
z = zeros(32768, 1); %reserva espacio en memoria 32*1024 "filas" por 3 columnas
una por canal
doublePtrA = libpointer('doublePtr',x);
doublePtrB = libpointer('doublePtr',y);
uint16PtrA = libpointer('uint16Ptr',z);
uintB=1; %Allows the programmer to download only every Xth Set to “1” to
download all data. Can range from 1-255
ReturnLong=calllib('ElabDLL', 'RetrieveDSOData', uintA, doublePtrA, doublePtrB,
uint16PtrA, uintB)
canal1=get(doublePtrA,'Value');
close all
plot(canal1)
pause
canal2=get(doublePtrB,'Value')
plot(canal2)
LA_CH0_15=get(uint16Ptr,'Value')
%8
%C prototipe
%float SetUPPS1(float Voltage)
%Matlab Prototipe
%single SetUPPS1(single)
singleA=4.1;
ReturnSingle=calllib('ElabDLL', 'SetUPPS1', singleA)
%9
%C prototipe
%float SetUPPS2(float Voltage)
%Matlab Prototipe
%single SetUPPS2(single)
singleA=9;
ReturnSingle=calllib('ElabDLL', 'SetUPPS2', singleA)
%10
%C prototipe
%int GetUPPSOverload()
%Matlab Prototipe
%int32 GetUPPSOverload
ReturnInt=calllib('ElabDLL', 'GetUPPSOverload')
%11
%C prototipe
%double SetProgClocks (char Switch, double Frequency1, double Frequency2, double
*Freq1Actual, double *Freq2Actual, long OverrideClocks)
%Matlab Prototipe
%[double, doublePtr, doublePtr] SetProgClocks(int8, double, double, doublePtr,
doublePtr, long)
intA=1; %0 for programable cloks off, 1 for turn on the cloks
doubleA=40000000; %configura valor reloj 1
doubleB=50000000; %configura valor reloj 2
x = 0;
doublePtrA = libpointer('doublePtr', x); %retrorna valor establecido de reloj 1
doublePtrB = libpointer('doublePtr', x); %retrorna valor establecido de reloj 2
longA=1; %0 devuelve un error si no se puede configurar, con 1 la función fuerza
el cambio de valor en los relojes
ReturnDouble=calllib('ElabDLL', 'SetProgClocks',intA, doubleA, doubleB,
doublePtrA, doublePtrB, longA)
get(doublePtrA) %muestra contenido del puntero y su tipo doublePtrA
% 0 failure, 1 success
%12
%C prototipe
%long SetupAWG(double *AnalogVoltage, short *DigitalData, long BufferSize,
double DCOffsetVoltage, double SampleFrequency, long Use4xGain, double
OutputImpedance, long Repeat,long Triggered, long OverrideOtherClocks)
%Matlab Prototipe
%[long, doublePtr, int16Ptr] SetupAWG(doublePtr, int16Ptr, long, double, double,
long, double, long, long, long)
n=1:10;
x=sin(n);%Datos a transmitir por el generador de funciones analógico
y=0; %Datos a transmitir por el generador de funciones digital
doublePtrA = libpointer('doublePtr', x); %analog data +-1.25V or +-5V
int16PtrA = libpointer('int16Ptr', y); %digital data (5 bits)
longA=10; %Number of samples to play
doubleA=0; % DC offset
doubleB=50000; % play frecuency
longB=1; % 0 para modo 1X , 1 para modo 4X , steep 2.5mV / 10mV
doubleC=50; %impedancia de Salida
longC=1; % 1 to repeat the wave, 0 for only one time
longD=0; % 1 to play only if trigger input is on, 0 to play when AWGStart is
Called
longE=1; % 0 to return fail if can't perform the clock change, 1 if force the
change
ReturnLong=calllib('ElabDLL', 'SetupAWG', doublePtrA, int16PtrA, longA, doubleA,
doubleB, longB, doubleC, longC, longD, longE)
awg_out=get(doublePtrA,'Value'); %muestra contenido del puntero y su tipo
doublePtrA
% “1” if successful, “0” if failure occurs.
%13
%C prototipe
%long AWGStart(long OverrideOtherClocks)
%Matlab Prototipe
%long AWGStart(long)
longA=0;% 0 to return fail if can't perform the clock change, 1 if force the
change
ReturnLong=calllib('ElabDLL', 'AWGStart', longA)
% “1” if successful, “0” if failure occurs.
%14
%C prototipe
%long AWGStop()
%Matlab Prototipe
%long AWGStop
ReturnLongt=calllib('ElabDLL', 'AWGStop')
% “1” if successful, “0” if failure occurs.
% unloadlibrary ElabDLL

Simulación FDTD con captura de emisiones y de retorno de ecos.

close all;
clear all;
spatialWidth=400; temporalWidth=2;
p=zeros(spatialWidth+1,temporalWidth); % filas, columnas
v=zeros(spatialWidth+1,temporalWidth);
length=0.1;
dx=length/spatialWidth;
c=340;
dt=dx/c;
amplitude=1
rho=1.21;
K=rho*c^2;
duration=0.0008;
iterations=duration/dt;
excitationPoint=2;%spatialWidth/2; %modifico punto de excitacion
xPML=2;
%signal=zeros((0.0002/dt),2); %matriz donde se almacenará la señal emitida y la
recibida
load signal_test.mat %carga una variabla llamada signal que contiene dos
vectores columna correspondientes a los datos de la señal a emitir, y el
espacio en memoria de la señal a recibir
[a b]=size(signal);
s1=1; %contador usado para capturar señal a emitir
s2=1; %contador usado para capturar señal de retorno
%falta introducir atenuación real, programa para generar señal en función
%del valor de las variables de control.

for n=2:iterations
t=n*dt;
for i=2: spatialWidth-1
if i>(spatialWidth-xPML)
xi=xPML-(spatialWidth-i);
a0=log(10)/(K*dt);
a1=a0*(xi/xPML)^2;
a2=a0*((xi-1/2)/xPML)^2;
p(i,1)=exp(-(a1*K)*dt)*p(i,2)-(1-exp(-(a1*K)*dt))/(a1*K)*K*1/dx*(v(i+1,2)-v(i,2));
v(i,1)=exp(-(a2*K)*dt)*v(i,2)-(1-exp(-(a2*K)*dt))/(a2*K)*(1/rho)*1/dx*(p(i,1)-p(i-1,1));
else
p(i,1)=p(i,2)-K*dt/dx*(v(i+1,2)-v(i,2));

if i==excitationPoint & (na) & (p(i,1)>0.001|p(i,1)<-0.001 ) & s2<=a%Condicion de retorno signal(s2,2)=p(i,1); %se captura retorno s2=s2+1; end v(i,1)=v(i,2)-(1/rho)*dt/dx*(p(i,1)-p(i-1,1)); end p(i,2)=p(i,1)*0.995; %he introducido el factor de atenuación 0.99 de atenuación v(i,2)=v(i,1)*0.995;%he introducido el factor de atenuación 0.99 end plot(p(:,2)) axis([0 spatialWidth -2 2]); frame = getframe(); end % Db=20*log(signal( calculo de la atenuacion en dB ) Programa de test de captura de datos con “ELAB-080--MATLAB” y TRANSDUCTOR DE 40KHZ. %Programa que captura datos de un emisor de ultrasonidos resonante a 40KHz mediante un receptor de ultrasonidos resonante a 40KHz [notfound,warnings]=loadlibrary('ElabDLL.dll', 'ElabDLL.h') %Configurar SISTEMA DE ADQUISICIÓN DE DATOS disp(' Configuración del sistema de adquisición de datos') intA = input('Set Ch1 mV/div. Possible values are 10, 20, 50, 100, 200, 500 \n'); intB= 500 ; boolA= input('Set Ch1 DC(1)/AC(0) \n'); boolB=0; boolC= input('Set Ch1 probe 10X(1)/1X(0) \n'); boolD=0; ReturnSetAnalogChannels=calllib('ElabDLL', 'SetAnalogChannels', intA, intB, boolA, boolB, boolC, boolD); doubleA=0; doubleB=0; ReturnSetDSODCOffsets=calllib('ElabDLL', 'SetDSODCOffsets', doubleA, doubleB); doubleA=190000; MuestreoAsignado=calllib('ElabDLL', 'SetDSOLASampleRate', doubleA); %poner en marcha el GENERADOR DE FUNCIONES Frecuency=40000; %frecuencia de la señal generada PlayFrecuency=100000000; %frecuencia de muestreo o reproducción SamplesPlay=PlayFrecuency/Frecuency; %puntos por periodo n=0:2*pi/SamplesPlay:2*pi; %Vector escalar con el numero de puntos por periodo x=cos(n);%Datos a transmitir por el generador de funciones analógico doublePtrA = libpointer('doublePtr', x); %analog data +-1.25V or +-5V int16PtrA = libpointer('int16Ptr', x); %digital data (5 bits) SignalAWG=get(doublePtrA,'Value'); close all plot(SignalAWG) %forma de la señal a emitir title('Forma de la señal que se emitirá en el Generador de Funciones') pause doubleA=0;%DC ofset longB=1; %1x=0 4x=1 doubleC=50; %impedancia de salida longC=1; %1=repeat longD=0;%1 play with trigger longE=1;% change clocks to perform the generation. ReturnSetupAWG=calllib('ElabDLL', 'SetupAWG', doublePtrA, int16PtrA, SamplesPlay, doubleA, PlayFrecuency, longB, doubleC, longC, longD, longE); longA=1; ReturnAWGStart=calllib('ElabDLL', 'AWGStart', longA); %poner en marcha la captura de datos blocknumbers=16; uintB=1; uintC=0; doubleA=0; uintD=1; longA=1; ReturnCaptureDSOData=calllib('ElabDLL', 'CaptureDSOData',blocknumbers, uintB, uintC, doubleA, uintD, longA); %Descargar datos del ELAB uintA=1; x = zeros(blocknumbers*1024, 1);%reserva espacio en memoria 32*1024 "filas" por 3 columnas una por canal y = zeros(blocknumbers*1024, 1); z = zeros(blocknumbers*1024, 1); doublePtrA = libpointer('doublePtr',x); doublePtrB = libpointer('doublePtr',y); uint16PtrA = libpointer('uint16Ptr',z); uintBA=1; CapturedSamples=calllib('ElabDLL', 'RetrieveDSOData', uintA, doublePtrA, doublePtrB, uint16PtrA, uintB); %parar AWG ReturnAWGStop=calllib('ElabDLL', 'AWGStop'); %Confirmar correcto funcionamiento de los sitemas if (ReturnSetupAWG==1) & (ReturnAWGStart==1)& (ReturnAWGStop==1) disp(' El generador de funciones digital esta configurado correctamente y funciona') PlayFrecuency SamplesPlay else disp(' El generador de funciones digital NO esta configurado correctamente') return end if ReturnCaptureDSOData disp(' Se ha realizado la captura de datos correctamente') else disp(' NO Se ha realizado la captura de datos correctamente') return end if (ReturnSetAnalogChannels==0) & (ReturnSetDSODCOffsets==0)& (MuestreoAsignado~=0) & (ReturnCaptureDSOData==1)& (CapturedSamples~=0) disp(' El Osciloscopio digital esta configurado correctamente y funciona') MuestreoAsignado CapturedSamples else disp(' El Osciloscopio digital NO esta configurado correctamente') return end SignalAWG=get(doublePtrA,'Value'); %visualizar datos del DSO canal1=get(doublePtrA,'Value'); close all plot(canal1) grid xlabel('Muestras') ylabel('Amplitud') texto=['Canal 1 con ', num2str(CapturedSamples), ' muestras y frecuencia de muestreo= ', num2str(MuestreoAsignado),'Hz']; title(texto) pause close all [f,mag] = daqdocfft(canal1,MuestreoAsignado,CapturedSamples); plot(f,mag) grid on ylabel('Magnitude (dB)') xlabel('Frequency (Hz)') title('Frequency Components Ch1') % unloadlibrary ElabDLL Programa de test que realiza un barrido en frecuencias para ver la respuesta en frecuencia de los transductores DE 40KHZ con sistema “ELAB-080— MATLAB” %Programa que muestra la respuesta en frecuencia de un emisor de %ultrasonidos resonante a 40KHz y de un receptor de ultrasonidos resonante %a 40KHz por medio de un barrido en frecuencias. [notfound,warnings]=loadlibrary('ElabDLL.dll', 'ElabDLL.h') %Configurar SISTEMA DE ADQUISICIÓN DE DATOS intA =20; %20mV/div Possible values are 10, 20, 50, 100, 200, 500 intB= 500 ; boolA=0; %configurado en AC DC(1)/AC(0) boolB=0; boolC=0; %probe ch1 1x 10X(1)/1X(0) boolD=0; ReturnSetAnalogChannels=calllib('ElabDLL', 'SetAnalogChannels', intA, intB, boolA, boolB, boolC, boolD); doubleA=0; doubleB=0; ReturnSetDSODCOffsets=calllib('ElabDLL', 'SetDSODCOffsets', doubleA, doubleB); doubleA=200000; MuestreoAsignado=calllib('ElabDLL', 'SetDSOLASampleRate', doubleA); %poner en marcha el GENERADOR DE FUNCIONES for Frecuency=20000:1000:80000 %frecuencia de la señal generada PlayFrecuency=100000000; %frecuencia de muestreo o reproducción SamplesPlay=PlayFrecuency/Frecuency; %puntos por periodo n=0:2*pi/SamplesPlay:2*pi; %Vector escalar con el numero de puntos por periodo x=cos(n);%Datos a transmitir por el generador de funciones analógico doublePtrA = libpointer('doublePtr', x); %analog data +-1.25V or +-5V int16PtrA = libpointer('int16Ptr', x); %digital data (5 bits) SignalAWG=get(doublePtrA,'Value'); doubleA=0;%DC ofset longB=1; %1x=0 4x=1 doubleC=50; %impedancia de salida longC=1; %1=repeat longD=0;%1 play with trigger longE=1;% change clocks to perform the generation. ReturnSetupAWG=calllib('ElabDLL', 'SetupAWG', doublePtrA, int16PtrA, SamplesPlay, doubleA, PlayFrecuency, longB, doubleC, longC, longD, longE); longA=1; ReturnAWGStart=calllib('ElabDLL', 'AWGStart', longA); %poner en marcha la captura de datos blocknumbers=12; uintB=1; uintC=0; doubleA=0; uintD=1; longA=1; ReturnCaptureDSOData=calllib('ElabDLL', 'CaptureDSOData',blocknumbers, uintB, uintC, doubleA, uintD, longA); %Descargar datos del ELAB uintA=1; x = zeros(blocknumbers*1024, 1);%reserva espacio en memoria blocknumbers*1024 "filas" por 3 variables y = zeros(blocknumbers*1024, 1); z = zeros(blocknumbers*1024, 1); doublePtrB = libpointer('doublePtr',y); uint16PtrA = libpointer('uint16Ptr',z); doublePtrA = libpointer('doublePtr',x); uintBA=1; CapturedSamples=calllib('ElabDLL', 'RetrieveDSOData', uintA, doublePtrA, doublePtrB, uint16PtrA, uintB); %parar AWG ReturnAWGStop=calllib('ElabDLL', 'AWGStop'); %visualizar datos del DSO canal1=get(doublePtrA,'Value'); [f,mag] = daqdocfft(canal1,MuestreoAsignado,CapturedSamples); plot(f,mag) grid on ylabel('Magnitude (dB)') xlabel('Frequency (Hz)') title('Frequency Components Ch1') frame = getframe(); end % unloadlibrary ElabDLL

01 October 2009

PFC versión 1 de octubre 2009


-A continuación un link a la carpeta donde está almacenado todo lo que he presentado a la secretaría del Departamento de Ingeniería Electrónica.






http://www.mediafire.com/?sharekey=baccec7057ec0cdcd1014a7a667fa2b47c20983839b75b4e5be6ba49b5870170



-NOTA:
Los archivos para la descarga están creados con el

Splitter & Merger

en trozos de 100 Mbytes (el limite por archivo en mediafire son 100Mb) para poder subirlo al servidor de
http://www.mediafire.com

de forma gratuita.
Solo hay que abrir el .exe una vez se han descargado todos los trozos teniendolos en la misma carpeta que el .exe


-Y aquí otro link a los ultimos archivos generados para la presentación del PFC (no realizada aún por cuestiones administrativas)
http://mural.uv.es/efere/archivos/PFC_V1_1.zip

Junto con los videos demostración gravados para mostrar como funciona el MATLAB, con los programas propuestos.

1º) FDTD

2º) ELAB-080 MATLAB


-LINK A LA ULTIMA VERSIÓN REVISADA DE LA MEMORIA DEL PFC EN FORMATO PDF.
http://mural.uv.es/efere/archivos/memoria_PFC_ultima_version_ConAdiciones.pdf
o en:
http://www.mediafire.com/file/hvmd1mdzytt/memoria_PFC_ultima_version_ConAdiciones.pdf

22 September 2009

Tratamieto de proyectos en el cine.






El cine, y en concreto el cine de ciencia-ficción aveces puede ser interesante, aquí una película llamada:
Proyecto Brainstorm
http://www.divxonline.info/pelicula/2919/Proyecto-Brainstorm-1983/
Que puede gustar pese a ser del año 1983.

Robots espectaculares y sus parodias

El llamado "big dog" es un robot diseñado para transportar cargas...


Su parodia es también curiosa de ver.



El conocido Keepon, el robot que baila al ritmo de la música (no es animatrónica)


Más info aquí

Y su versión "low cost"


Más información de este último aquí

Este es un post de "entretenimiento"

Por si alguien tiene curiosidad sobre mi proyecto, aquí informo de que ya ha sido presentado en la secretaría del Departamento de Ingeniería Electrónica de la Universitat de València, así como ya se me ha asignado una fecha de lectura, que será el día 28 de Septiembre del 2009 (este mes)

08 August 2009

Buscando antecedentes en la oficina de Patentes


En este post, voy a mostrar como hacer una búsqueda de información en la oficina de patentes europea, de forma rápida, así como de los resultados de una pequeña busqueda de patentes, relacionadas con el trabajo que ahora me ocupa.
He de destacar que se puede encontrar información más detallada sobre ciertos dispositivos, en las revistas cientificas y en sitios como el IEEE
http://ieeexplore.ieee.org
Con el requisito de estar suscrito para acceder a los textos completos (se puede acceder por ejemplo desde una IP de la Universitat de València, que está suscrita)
Comentar que el idioma que está de moda para todo esto, es el Inglés, por lo que es un requisito casi imprescindible conocer dicho idioma para poder realizar un trabajo de investigación.
Aquí un link donde se recopilan los recursos electrónicos de la Universidad de Valencia
http://biblioteca.uv.es/castellano/recursos_electronicos/



A continuación un listado de una primera selección de las patentes encontradas con relación a mi proyecto, las nombraré en la memoria del PFC, (más info sobre patentes aquí: http://es.wikipedia.org/wiki/Patente)

  • Apparatus and method as an orientation aid to the blind and those with impaired vision using the ultrasound pulse echo method
  • Ultrasonic electric torch
  • Sterosonic ultrasonic blindman-helping tool
  • Electronic voice walking aid for blindmen against burn, scald, broken and bumped
  • Stereo ultrasonic blind person aid device
  • Blind aid for recognizing obstacle, has ultrasonic distance warning devices combined with vibration motors that transmits signals to user, to enable direction and distance moderate location of obstacle based on its alignment and sensitivity
  • ULTRASONIC BINAURAL SENSORY AID FOR A BLIND PERSON
  • IMPROVEMENTS IN OR RELATING TO GUIDING DEVICES
  • Blind aid stick has ultrasonic sensors with acoustic and vibration output
  • WALKING AID FOR BLIND PERSON
  • Mobility Aid for Blind Persons
  • Electronic orientation aid for blind - provides stereo acoustic signal corresponding to detected frequency characteristic or frequency spectrum
  • Orientation aid for blind persons
  • MULTIPLE OBSTACLES INDICATABLE WALK AID APPARATUS FOR BLIND MAN
  • ULTRASONIC WAVE TRANSMITTER AND RECEIVER FOR HEARING AID FOR BLIND WALK
  • ULTRASONIC TRANSMITTER AND/OR RECEIVER
  • ULTRASONIC MOBILITY AIDS
  • DETECTION APPARATUS
  • A new or improved blind aid
  • Distance ranging equipment
  • WAVE RECEIVING ARRAY
  • Frequency-sensitive control of beamwidth an acoustic transducers
  • Method of processing the signal delivered by a radar system for detecting the approach of an individual, and radar device implementing this method
  • ECHOLOCATION DEVICE
  • Blind man navigation method and system based on computer vision
  • MANAGEMENT AND NAVIGATION SYSTEM FOR THE BLIND.
  • Navigation device and navigation system for blind and visually impaired people and a navigation method
  • NAVIGATION SYSTEM FOR THE BLIND PERSON AND MOBILE DEVICE THEREWITH
  • BLIND APPROACH NAVIGATION DEVICE
  • Object related speech output unit for blind people has stick with reader for codes on objects and speech output to allow navigation around hazards.
  • Wireless navigation aid for blind people
  • Navigation and communication aid for the blind
  • Blind person's stick has navigation system with ear piece link
  • GPS urban navigation system for the blind
  • Route navigation method, especially for blind or visually impaired people, detects user position and sends information from central database server to user
En la mayoria de los casos se puede acceder a los documentos originales de la patente, que están en el idioma original del país donde se presentó la patente, pero el resumen ("abstract" ) esta en el idioma adoptado internacionalmente para estos asuntos, el inglés.

Como curiosidad, nombrar que he encontrado algunas patentes de algunos de los profesores que he tenido en la universidad... ya sea que han hecho la patente desde la universidad de Valencia, o desde alguna empresa...
Tambíen mencionar la herramienta de google para buscar en la base de datos de patentes de USA.
Las vigentes y las de dominio público:
http://www.google.es/patents

Un artículo en el diario "publico" que me ha hecho reflexionar sobre el tema de las patentes:
http://www.publico.es/ciencias/219851/monopolio/ideas

27 July 2009

12 June 2009

Estructura Memoria PFC

A continuación la estructura de la memoria del PFC. Para realizarla he combinado varias fuentes:
-Asignatura Proyectos de la titulación ITTSE
-Estructura de un trabajo final de estudios TUT "Tampere University of Technology"
-Adaptación para mi PFC de criterio propio.

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
*-*-*-*-*-*-*-*-*-*-*-*-*-*
-Resumen
-Prologo
-Tabla de Contenidos
-Abreviaciones y Notación usada
-Introducción
- Objetivos y Justificación de los mismos
- Antecedentes y Estado del Arte
- Base Teórica, Puntos de Partida
-Desarrollo técnico
- Metodología y Proceso Técnico
- Soluciones Posibles
- Solución Adoptada
- Discusión y Justificación
-Diseño Prototipo
-Conclusiones
- Viabilidad
- Recomendaciones del Proyectista
-Referencias
- Fuentes
- Bibliografía
-Epilogo
-Anexos
- Hipótesis en detalle
- Métodos en detalle
- Cálculos en detalle
- Programas,Algoritmos en detalle
- Esquemas en detalle
- Datos adicionales
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Al director del proyecto le parece bien.
Al empezar a redactar puede que varíe algun punto del indice propuesto, pero este es el "esqueleto" sobre el que construiré el documento.

08 June 2009

Bicicletas electricas


Un link donde se recopila información sobre las bicicletas eléctricas


http://www.tuexperto.com/tag/bicicleta/

07 June 2009

Trabajar con transductores ultrasonicos aereos


He encontrado informacón básica sobre los transductores para sistemas SONAR de transmisión aérea en la siguientes URL's (inglés):

http://www.massa.com/air_articles.htm
http://www.senscomp.com/specsheets.htm
http://www.educypedia.be/electronics/sensorsultra.htm
http://www.educypedia.be/electronics/circuitssound.htm

IC's de apicación SONAR en URL:

http://search.datasheetcatalog.net/key/SONAR
http://www.chipsinfo.com/search.php?q=sonar&b=Search
mas

Es posible que use parte de esta información para mi PFC

02 June 2009

Presentación en microondas y antenas

Presentación en asignatura microondas y antenas, sobre similitudes y diferencias entre electromagnetismo y acústica

En la clase de microondas y antenas existía la posibilidad de presentar un informe sobre articulos traducidos de revistas cientificas, yo elegí un tema relacionado con mi PFC.

Actualizando datos PFC


1º) El dilema de la plataforma software para el desarrollo del proyecto:

Me he tenido que pantear utilizar varias plataformas para desarrollar mi PFC:

LabView: Se trata de una herramienta de desarrollo gráfica de National Instruments.

Matlab: Una potente herramienta de desarrollo usada extensamente en Ingeniería.

Visual C++: Complilador del lenguaje C++ con herramientas Visuales.


2º) Experimentacion con la tarjeta de sonido

Para poder decidir que plataforma he de usar me he puesto a experimentar con algunas de ellas, en concreto conozco la existencia de la Data Adquisition ToolBoox del MatLab, en la que existen algunas funciones para el control de la tarjeta de sonido. Lo que podría permitirme experimentar con la tarjeta de sonido algunas de las funciones, del proyecto.
A continuación el codigo matlab (.m) donde se pueden observar mis pruebas.
He conseguido muestrear a 96KHz con este programa, pero otros programas me indican que hay frecuencias de muestreo permitidas en mi hardware de hasta 192Khz lo que me permitiria cubrir la banda entre 30KHz y 60KHz que segun mis fuentes, es la más comunmente usada por los Murcielagos ecolocalizadores...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

clear all
close all
AO = analogoutput('winsound');
AI = analoginput('winsound');
chanout1 = addchannel(AO,1);
chanin1 = addchannel(AI,1);
chanin2 = addchannel(AI,2);
durationout = 2;
durationin = 2; %2 second acquisition

set(AO,'SampleRate',96000)
set(AI,'SampleRate',96000)
set(AO,'TriggerType','Manual')
set(AI,'TriggerType','Manual')
ActualRateout = get(AO,'SampleRate');
ActualRatein = get(AI,'SampleRate');
blocksizein = get(AI,'SamplesPerTrigger');
set(AI,'SamplesPerTrigger',durationin*ActualRatein)
len = ActualRateout*durationout;
Fsin = ActualRatein;

dataout = sin(linspace(0,2*pi*6000,len))';
putdata(AO,dataout)
start(AO)
trigger(AO)
start(AI)
trigger(AI)
wait(AI,durationin + 1)
datain = getdata(AI);
wait(AO,5)


[f,mag] = daqdocfft(datain,Fsin,blocksizein);
plot(f,mag)
grid on
ylabel('Magnitude (dB)')
xlabel('Frequency (Hz)')
title('Frequency Components of Tuning Fork')
sound(datain,Fsin)

%out = daqhwinfo('winsound')
%out = daqhwinfo(AO)
%out = daqhwinfo(AI)
delete(AO)
clear AO
delete(AI)
clear AI

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

Las pruebas están hechas con la ayuda proporcionada con el programa Matlab

3º) Pruebas con MatLab ELAB 080

Ya que dispongo del Hardware de Pruebas ELAB-080 me he puesto a estudiar como llamar las funciones en lenguaje C, proporcinadas por el fabricante de este dispositivo incluidas en la biblioteca de enlace dinamico llamada ElabDLL.dll desde el MatLab

http://www.mathworks.com/company/newsletters/news_notes/win03/patterns.html


El Primer paso, es crear un fichero de cabecera de C llamado ElabDLL.h cullo contenido consiste en los prototipos de las funciones en lenguaje C y cullo contenido detallo a continuación:

-+-+-+-+-+-+-+-+-+-+

bool GetHWStatus();
bool GetSerialNumber(long *SerialNumber);
int SetAnalogChannels(int CH1Gain, int CH2Gain, bool CH1Couple, bool CH2Couple, bool CH1Multiplier, bool CH2Multiplier);
long SetDSODCOffsets(double CH1DCOffVoltage, double CH2DCOffVoltage);
double SetDSOLASampleRate(double DesiredFreq);
int CaptureDSOData(unsigned int total_blocks, unsigned int pre_trigger_blocks, unsigned int trigger_channel, double trigger_value, unsigned int auto_roll, long OverrideOtherClocks);
long RetrieveDSOData(unsigned char whatchannels, double *DSOCH1, double *DSOCH2, unsigned short *LADATA, unsigned char Nth_Sample);
float SetUPPS1(float Voltage);
float SetUPPS2(float Voltage);
int GetUPPSOverload();
double SetProgClocks (char Switch, double Frequency1, double Frequency2, double *Freq1Actual, double *Freq2Actual, long OverrideClocks);
long SetupAWG(double *AnalogVoltage, short *DigitalData, long BufferSize, double DCOffsetVoltage, double SampleFrequency, long Use4xGain, double OutputImpedance, long Repeat,long Triggered, long OverrideOtherClocks);
long AWGStart(long OverrideOtherClocks);
long AWGStop();

-+-+-+-+-+-+-+-+-+-+-+-

Despues creo un Script de MatLab para probar llamar a cada una de las funciones... No es funcional aún pero muestro el contenido de mis tests realizados hasta ahora:

-+-+-+-+-+-+-+-+-+-+-+-+

%uso de las funciones en la libreria ElabDLL

[notfound,warnings]=loadlibrary('ElabDLL.dll', 'ElabDLL.h')
libfunctions ElabDLL
libfunctions ElabDLL -full
libfunctionsview ElabDLL

%1
%C prototipe
%bool GetHWStatus()
%Matlab Prototipe
%bool GetHWStatus

a=calllib('ElabDLL', 'GetHWStatus')

%2
%C prototipe
%bool GetSerialNumber(long *SerialNumber)
%Matlab Prototipe
%[bool, longPtr] GetSerialNumber(longPtr)

x = 15;
xp = libpointer('longPtr', x);
get(xp)
b=calllib('ElabDLL', 'GetSerialNumber',xp)
get(xp, 'Value')

%3
%C prototipe
%int SetAnalogChannels(int CH1Gain, int CH2Gain, bool CH1Couple, bool CH2Couple, bool CH1Multiplier, bool CH2Multiplier)
%Matlab Prototipe
%int32 SetAnalogChannels(int32, int32, bool, bool, bool, bool)

intA=200; %Ch1 mV/div Possible values are 10, 20, 50, 100, 200, 500
intB=200; %Ch2 mV/div Possible values are 10, 20, 50, 100, 200, 500
boolA=0; %Ch1 DC(1)/AC(0)
boolB=0; %Ch2 DC(1)/AC(0)
boolC=0; %Ch1 probe 10X(1)/1X(0)
boolD=0; %Ch2 probe 10X(1)/1X(0)
ReturnInt=calllib('ElabDLL', 'SetAnalogChannels', intA, intB, boolA, boolB, boolC, boolD)

% ReturnInt=1 Ch1 incorrect value =2 Ch2 incorrect value =0 Success

%4
%C prototipe
%long SetDSODCOffsets(double CH1DCOffVoltage, double CH2DCOffVoltage)
%Matlab Prototipe
%long SetDSODCOffsets(double, double)

% The range allowed is +/- (5*V/div setting).
% Thus in 5V/div, you can set to +/-
% 25V, in 20mV/div, this can be set to +/- 100mV.

doubleA=0; %Ch1 offset
doubleB=0; %Ch2 offset
ReturnLong=calllib('ElabDLL', 'SetDSODCOffsets', doubleA, doubleB)

%revisar !!!!!

%5
%C prototipe
%double SetDSOLASampleRate(double DesiredFreq)
%Matlab Prototipe
%double SetDSOLASampleRate(double)

doubleA=200000; %Frecuencia de muestreo del DSO desde 8KHz a 400MHz
ReturnDouble=calllib('ElabDLL', 'SetDSOLASampleRate', doubleA)
% returndoble Devuelve el valor asignado para el muestreo

%6
%C prototipe
%int CaptureDSOData(unsigned int total_blocks, unsigned int pre_trigger_blocks, unsigned int trigger_channel, double trigger_value, unsigned int auto_roll, long OverrideOtherClocks)
%Matlab Prototipe
%REVISAR int32 CaptureDSOData(uint32, uint32, uint32, double, uint32, long)

uintA=7; %Numero de Bloques 1 a 32 de 1K
uintB=1; %Numero de bloques antes del trigger
uintC=1; % 0 no Trigger, 1 Ch2, 2 Ch2, 3 LA
doubleA=0;
%This value is in volts if the trigger is a DSO trigger, and in bits if a
%LA trigger. The trigger must be “on screen”, which is +/- 5 divisions from the current DC
%offset. If the trigger is an LA trigger, only the least significant 4 bits are used, and one of
%these bits must be a “1”
uintD=1; % if 1 auto trigger, if 0 whait fpr the trigger
longA=1; % si es 0 no fuerza el cambio de los valores de reloj, 1 fuerza cambio de valores de relojes en el dispositivo...
ReturnInt=calllib('ElabDLL', 'CaptureDSOData',uintA, uintB, uintC, doubleA, uintD, longA)

%7
%C prototipe
%long RetrieveDSOData(unsigned char whatchannels, double *DSOCH1, double *DSOCH2, unsigned short *LADATA, unsigned char Nth_Sample)
%Matlab Prototipe
%REVISAR [long, doublePtr, doublePtr, uint16Ptr] RetrieveDSOData(uint8, doublePtr, doublePtr, uint16Ptr, uint8)

uintA=1; %Mascara de bits con los canales que se leeran The LSB is DSO CH1, bit 1 is DSO CH2, bit 2 is LA CH0-7, bit 3 is LA CH8-15
x = zeros(1, 7000);
doublePtrA = libpointer('doublePtr',x);
doublePtrB = libpointer('doublePtr',x);
uint16PtrA = libpointer('uint16Ptr',x);
uintB=1; %Allows the programmer to download only every Xth Set to “1” to download all data. Can range from 1-255
ReturnLong=calllib('ElabDLL', 'RetrieveDSOData', uintA, doublePtrA, doublePtrB, uint16PtrA, uintB)
get(doublePtrA)

%8
%C prototipe
%float SetUPPS1(float Voltage)
%Matlab Prototipe
%single SetUPPS1(single)

singleA=4.1;
ReturnSingle=calllib('ElabDLL', 'SetUPPS1', singleA)

%9
%C prototipe
%float SetUPPS2(float Voltage)
%Matlab Prototipe
%single SetUPPS2(single)

singleA=9;
ReturnSingle=calllib('ElabDLL', 'SetUPPS2', singleA)

%10
%C prototipe
%int GetUPPSOverload()
%Matlab Prototipe
%int32 GetUPPSOverload

ReturnInt=calllib('ElabDLL', 'GetUPPSOverload')

%11
%C prototipe
%double SetProgClocks (char Switch, double Frequency1, double Frequency2, double *Freq1Actual, double *Freq2Actual, long OverrideClocks)
%Matlab Prototipe
%[double, doublePtr, doublePtr] SetProgClocks(int8, double, double, doublePtr, doublePtr, long)

intA=1; %0 for programable cloks off, 1 for turn on the cloks
doubleA=40000000; %configura valor reloj 1
doubleB=50000000; %configura valor reloj 2
x = 0;
doublePtrA = libpointer('doublePtr', x); %retrorna valor establecido de reloj 1
doublePtrB = libpointer('doublePtr', x); %retrorna valor establecido de reloj 2
longA=1; %0 devuelve un error si no se puede configurar, con 1 la función fuerza el cambio de valor en los relojes

ReturnDouble=calllib('ElabDLL', 'SetProgClocks',intA, doubleA, doubleB, doublePtrA, doublePtrB, longA)
get(doublePtrA) %muestra contenido del puntero y su tipo doublePtrA
% 0 failure, 1 success

%12
%C prototipe
%long SetupAWG(double *AnalogVoltage, short *DigitalData, long BufferSize, double DCOffsetVoltage, double SampleFrequency, long Use4xGain, double OutputImpedance, long Repeat,long Triggered, long OverrideOtherClocks)
%Matlab Prototipe
%[long, doublePtr, int16Ptr] SetupAWG(doublePtr, int16Ptr, long, double, double, long, double, long, long, long)

x = 0;
doublePtrA = libpointer('doublePtr', x); %analog data +-1.25V or +-5V
int16PtrA = libpointer('int16Ptr', x); %digital data (5 bits)
longA=0; %Number of samples to play
doubleA=0; % DC offset
doubleB=50000; % play frecuency
longB=0; % 0 para modo 1X , 1 para modo 4X , steep 2.5mV / 10mV
doubleC=50; %impedancia de Salida
longC=1; % 1 to repeat the wave, 0 for only one time
longD=0; % 1 to play only if trigger input is on, 0 to play when AWGStart is Called
longE=1; % 0 to return fail if can't perform the clock change, 1 if force the change
ReturnLong=calllib('ElabDLL', 'SetupAWG', doublePtrA, int16PtrA, longA, doubleA, doubleB, longB, doubleC, longC, longD, longE)
get(doublePtrA) %muestra contenido del puntero y su tipo doublePtrA
% “1” if successful, “0” if failure occurs.

%13
%C prototipe
%long AWGStart(long OverrideOtherClocks)
%Matlab Prototipe
%long AWGStart(long)
longA=0;% 0 to return fail if can't perform the clock change, 1 if force the change
ReturnLong=calllib('ElabDLL', 'AWGStart', longA)
% “1” if successful, “0” if failure occurs.

%14
%C prototipe
%long AWGStop()
%Matlab Prototipe
%long AWGStop
ReturnLongt=calllib('ElabDLL', 'AWGStop')
% “1” if successful, “0” if failure occurs.

% unloadlibrary ElabDLL

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Acerca de Este programa para controlar mi hardware tengo mis dudas ya que leí en la "ayuda" matlab la siguiente nota:

"The MATLAB Interface to Shared Libraries does not support library functions that have function pointer inputs. "

Comentandolo con el fabricante del hardware me contestó esto:

"I am unable to comment on another companies product. I would contact their support directly. I do know that customers have used MatLab and our dll successfully. I don't know if Matlab has changed what they allow their software to interface with or not."

Así que no descarto ninguna alternativa aún

12 May 2009

Informacion posiblemente interesante para aguien


A continuación unos enlaces a sitios que pueden ser de interés.

-Crear Modelos 3D de forma sencilla:
http://sketchup.google.com/intl/es/product/gsu.html


-Ejemplos aplicacion LabVIEW


http://www.mediafire.com/file/5my0zwejmge/examples_LabView.zip

Descargados de MIT OCW (Open Course Ware)

-Material Curso procesado de imagen.

http://www.mediafire.com/file/d4jwzlj3jtw/MaterialCursoImagenes.zip

23 April 2009

Open Course Ware (OCW)


Hay una iniciativa desde el MIT (Massachusetts Institute of Technology) que consiste en compartir en Internet los contenidos de los cursos.


Adjunto una charla en video organizada en la universidad de Valencia

http://mmedia.uv.es/buildhtml?user=viherma&name=ocw_roderic.mp4

Descripción en wikipedia:

http://es.wikipedia.org/wiki/OpenCourseWare

La iniciativa del MIT original:

http://ocw.mit.edu/OcwWeb/web/home/home/index.htm

21 April 2009

Compartir el matlab 7.0


Como estudiante de ingeniería uso un programa habitualmente llamado MATLAB para realizar las practicas. Como no es siempre inmediato encontrar dicho programa voy a incluirlo aquí por si alguien lo necesita.

-Los archivos para la descarga están creados con el Splitter.exe ( http://espanol.splitter.vze.com/ )en trozos de 97 Mbytes (el limite por archivo en mediafire son 100Mb) para poder subirlo al servidor de

http://www.mediafire.com

de forma gratuita.

Solo hay que abrir el .exe una vez se han descargado todos los trozos tenienidolos en la misma carpeta que el .exe

El procedimiento para descomprimirlo es el siguiente:

1º-Descargar todos los trozos (un total de 11)

2º-Abrir el archivo "matlab7_zip.exe" teniendo en el mismo directorio todos los volumenes del paquete

3º-Descomprimir el archivo creado "matlab7.zip" con cualquier descompresor de .zip (aqui uno cualquiera)

4º- En la carpeta "matlab 7 cd1" abrir el archivo "setup.exe"



Aquí el link a la carpeta en el servidor de mediafire:

http://www.mediafire.com/?sharekey=baccec7057ec0cdcd1014a7a667fa2b40f87e6ea9ff5e20e5be6ba49b5870170


18 April 2009

Microelectrónica en la Universitat de València


En la universidad de Valencia hay una asignatura llamada microelectrónica, en la cual se usa un libro con la base teórica de dicha asignatura, hay ejemplares en la biblioteca, pero solo puedo tenerlos prestados durante un corto periodo de tiempo. (una semana) Por ello ha buscado en la red la versión del libro en .pdf y como es un libro usado internacionalmente para enseñar microelectrónica, no ha sido dificil encontrarlo en la red.
Por supuesto, el libro está en Inglés.
El link de descarga a continuación:



-Design of Analog CMOS Integrated Circuits (Behzad Razavi)

http://www.mediafire.com/?wlmtzqyjtlm

Fisica de Ondas (Acústica y más) Libros on-line y listas reproducción OCW MIT


Libros Acústica en Inglés

Como han desaparecido los libros de la biblioteca en los que habia pensado basarme para redactar la primera parte del proyecto, me he puesto a buscar en internét que podía encontrar para realizar esta tarea, y he encontrado los libros que se pueden descargar en los siguientes enlaces:

-Engineering Acoustics

Michael Moser
Engineering Acoustics
An Introduction to Noise Control


http://www.mediafire.com/file/1wzztmzzy3t/Engineering Acoustics - An Introduction to Noise Control (2009) (Malestrom).pdf

-FUNDAMENTALS OF ACOUSTICS

Fundamentals of Acoustics 4th ed - L. Kinsler, et al., (Wiley, 2000) WW


http://www.mediafire.com/?xjwyji5yryg

-ACOUSTICS

Acoustics_-_L._Beranek_marcado

http://www.filefactory.com/file/agca8d7/n/Acoustics_-_L_Beranek_marcado_pdf

-ANTENAS (este libro no es de acústica, pero es de antenas, y por eso la parte de propagación es muy similar a la del sonido, ya que el tratamiento matemático es el mismo "ondas")

Este libro es el que se usa en la asignatura de Microondas y Antenas de la Universitat de València.


http://www.mediafire.com/?gdzmuzywnmz


Además he encontrado un curso muy interesante de Vibraciones y Ondas en YouTube, bajo licencia Creative Commons grabado en el MIT (Masacusets Institute Of Technology) dentro del programa OCW (Open Course Ware)

http://www.youtube.com/watch?v=9kSUGGIQPJU&feature=SeriesPlayList&p=854AA255B15C574C&index=0

Información sobre la cibernética

Es dificil definir que es la cibernética, por ello incluyo una entrevista a uno de los fundadores de la sociedad americana de Cibernética, Warren McCulloch, por si es de ayuda.
La entrevista está hecha en Canadá y es en el idioma inglés, por ello es necesario poder entender un poco de Inglés.




http://www.cyberneticians.com/video/McCullochInterview-c.mov


Adenás incluyo unos links en los que se define la cibernética.

http://en.wikipedia.org/wiki/Cybernetics
http://www.cyberneticians.com
http://www.cyberneticians.com/materials/mcculloch-recollections.pdf

En relación a mi proyecto la cybernética tiene importancia a la hora de generar e interpretar las señales SONAR, pues se trata de un sistema complejo realimentado.
Esta parte por ser compleja, y no automatizable, quedaría a cargo del paciente, el cual deberá de aprender a utilizar el sistema, como si tubiera que aprender a utlilzar una nueva herramienta. Un bolígrafo, un automovil, o cualquier otro aparato que se usa en la vida cotidiana, claro que este tiene unas características especiales, pues no es inmediato el aprendizaje del sistema que proponemos.




16 April 2009

Buscando Información sobre Biónica


Como estoy pensando en hacer una introducción técnica del proyecto, he pensado que debo informarme de las ciencias involucradas en el mismo, y una de ellas es la Biónica, que tiene mucha relación con la cibernetica (con pequeñas diferencias a discutir)
Como es natural, la primera referencia en el google es la wikipedia, en la cual he encontrado la entrada en inglés para bionica (bionics) una serie de enlaces sobre el tema, pero voy a destacar uno, que por su similitud con la anatomia humana llama especialmente la atención, se trata de una compañia llamada Festo.
Ver a continuación el video:
http://www.festo.com/cms/es_es/10948_13066.htm#id_12635

De este proyecto me interesa sobre todo el tipo de interfaz hombre-maquina que utiliza (guante)

Destacar que hay más palabras clave para buscar temas de biónica sobre todo en el idioma Inglés, tales como:

-Biomimetics
-Biologize
-Biomimicry
-Biognosis
-Bionical creativity engineering

19 March 2009

Andando por Valencia en Fallas.


El pasado lunes hice un recorrido acompañado principalmente de Estudiantes Erasmus, para visitar las fallas de Valencia, el recorrido propuesto y el realizado difieren un poco como es normal en cualquier proyecto, más si no se tiene experiencia, se pueden observar las diferencias en el Mapa :


En Rojo el planificado, y en Azul el Realizado.

15 January 2009

Que facil es distraerse


Pienso que me he distraido un poco del curso normal del proyecto, ya que estoy planteandome solicitar participar en el programa "Vulcanus" Las posibilidades de ser preseleccionado son bajas y las de participar finalmente también lo son ya que de unas 800 solicitudes, se preselecionan unas 140 de las cuales solo llegan a 40 las que realmente se realizan. Pero he encontrado un entorno favorable, lo que me ha animado a por lo menos intentarlo.
Esto supone una gran distracción, y más en las fechas en las que estamos. (cerca de los examenes) lo que para mi ha significado no poder entregar en las fechas señaladas, los trabajos de las asignaturas optativas "Metodos Matematicos" y "Herramientas de Programación". En consecuencia no poder preparar los examenes de Enero/Febrero como hubiera pensado en un principio, pero esto es un "riesgo calculado" ya que ahunque son asignaturas muy interesantes para el desarroyo del proyecto no son necesarias en mi expediente para llegar a conseguir el objetivo (obtener un título Universitario asociado a unos buenos conocimientos) Confio en poder desarroyar el proyecto adecuadamente en el segundo cuatrimestre, con una dedicación casi exclusiva...

También existen distracciones que aquí omito, pero que también influyen...sin contar con las tareas domesticas, etc...

Me han comentado que debería incluir más Imágenes en mi blog, pero no se que pueden opinar los potenciales lectores... ¿que opinais?