lunes, 29 de julio de 2013

02 - Curso De Visión Por Computador - Conceptos Previos De Imágenes Digitales

En esta segunda parte del curso de visión por computador se presentan algunos conceptos básicos sobre imágenes digitales, ademas se expone el porque del software que se va a utilizar en el desarrollo del curso.


Referencias 

[1] Jonathan Sachs, Digital Image Basics [Online], Disponible en la página de internet <http://www.dl-c.com/basics.pdf> [Citado 22 de enero de 2013]

[2] Mathworks, Digital Image Processing With MatLab, Data types [Online], Disponible en <http://blogs.mathworks.com/steve/2013/01/15/data-types/> [Citado 20 de julio de 2013]

Vídeo de interés (Profundidad de color 8, 16 o 32 bits)

jueves, 25 de julio de 2013

Hacer Un Ejecutable (.exe) En MatLab 2010/2011/2012/2013

Hola Todos


En este vídeo les traigo como hacer un ejecutable en MatLab, el procedimiento esta muy bien explicado para que no hallan dudas, pero si llegan a surgir dudas pueden preguntar.


martes, 23 de julio de 2013

01 - Curso De Visión Por Computador - Introducción

En esta primera parte del curso se explica en que consiste un sistema de visión por computador y como se va a desarrollar el curso.


Referencias:

[1] Mathworks, Visión Artificial Con MatLab [Webinar], producido por David Pérez, 43 min

[2] Carlos Platero Dueñas, Universidad Politécnica de Madrid, Cap.5 Segmentación, 216 pág., 2008.

[3] González, Woods, Digital Image Processing, second edition, Cap.1 Introduction, Prentice Hall, ISBN 0-201-18075-8, 2002.

[4] Kryscia Ramirez, Curso De Robótica, Visión Artificial, Cap.3 Procesamiento Digital De Imágenes[Online], Disponible en http://www.kramirez.net/Robotica/Mate... [Citado 13 de diciembre de 2012]

domingo, 21 de julio de 2013

Controlador PI Para Un Convertidor Dc-Dc Tipo Buck

Diseño E Implementación De Un Control PID Análogo Para Un Intercambiador De Calor

Diseño E Implementación De Un Controlador PID Análogo Para Un Motor Universal

Diseño E Implementación De Un Control PID Discreto Para El Control De Velocidad De Un Motor DC




Coffee Beans Classifier By Characterizing Images To Determine The Product Quality

Diseño de un sistema clasificador de granos de café mediante La caracterización de imágenes para determinar la calidad del Producto

Diseño E Implementación De Un Electromiógrafo Mediante Matlab

Comparación Entre Un Controlador Difuso Y Un Controlador PID Para Un Motor Universal

Diseño De Un Sistema De Selección De Café Mediante La Caracterización De Imágenes

Análisis De Los Métodos Astromhagglud Y Ziegler-Nichols Para Sintonización De Controladores Pid

viernes, 19 de julio de 2013

Pruebas De Calidad Del Servicio (QoS) En Telefonía IP Con Wireshark


Configuracion Elastix Usuarios IAX Y SIP + TRONCAL


Instalacion Servidor Elastix (VirtualBox)


Configuración Asterisk Usuarios IAX y Realización De Llamadas


El proceso llevado acabo en la configuración de los usuarios IAX es muy similar a la configuración de los usuarios SIP. En el vídeo se muestra la realización de llamadas de un usuario IAX a otro usuario IAX, de un usuario IAX a un usuario SIP y de un usuario SIP a otro usuario SIP.

Realización De Llamadas Con Asterisk (Usuarios SIP)


PROCESO

1. Se ingresa a:

cd /etc/asterisk

2. Se ingresa al archivos "sip.conf".

nano sip.conf

3. Se lleva a cabo la visualización y configuración de tres usuarios.

[general]

directmedia=off

[pablo]

secret=8811
context=pmg
host=dynamic
canreinvite=no
nat=yes

[alex]

secret=8811
context=pmg
host=dynamic
canreinvite=no
nat=yes

[freddy]

secret=8811
context=pmg
host=dynamic
canreinvite=no
nat=yes

4. Se configuran las extensiones para estos tres usuarios.

nano extensions.conf

5. Se ubica la cabecera "[globals]"

[globals]
[pmg]

exten => 5000,1,Dial(SIP/pablo)
exten => 5001,1,Dial(SIP/alex)
exten => 5002,1,Dial(SIP/freddy)

6. Configuración de extensión de ejemplo, con sonido de unos simios.

exten => 201,1,Answer()
exten => 201,n,Playback(tt-monkeys)
exten => 201,n,Hungup()

7. Se ingresa al Asterisk

service asterisk start
asterisk -r

8. Usando el softphone "Pangolin" se registra al usuario "pablo".
9. Usando el softphone "Pangolin" se registra al usuario "alex" en otro ordenador.
10. Se lleva a cabo la prueba de extensiones con el sonido de los simios correspondiente a la extensión "201".
11. Se lleva a cabo una llamada con el usuario "alex" al número "5001". La llamada se efectúa con éxito.
12. El usuario "alex" llama al usuario "pablo". La llamada se efectúa con éxito.

Configuración Asterisk (usuarios SIP y dialplan)


PROCESO DE CONFIGURACIÓN 

1. Se ingresa al Asterisk

service asterisk start
asterisk -r

2. Se visualizan los usuarios que se encuentran configurados.

sip show peers

3. Se detiene la aplicación Asterisk

core stop now

4. Se ingresa a la carpeta Asterisk para configurar los usuarios.

cd etc/asterisk/
ls

5. Se ingresa al archivo "sip.conf" para modificarlo y configurar los usuarios.

nano sip.conf

6. Se busca la sección "[general]"
7. Se lleva a cabo la configuración de los usuarios.

[general]

directmedia=off

[pablo]
type=friend
secret=8811
context=pmg
host=dynamic
canreinvite=no
nat=yes

[pablo1]

secret=8811
context=pmg
host=dynamic
canreinvite=no
nat=yes

8. Se ingresa al archivo "extensions.conf" para modificarlo y configurar las extensiones.

nano extensions.conf

9. Se busca la cabecera "[globals]"
10. Se lleva a cabo la configuración de las extensiones.

[globals]
[pmg]

exten => 5000,1,Dial(SIP/pablo)
exten => 5001,1,Dial(SIP/pablo1)

11. Se repite el paso 1.
12. Se actualizan los archivos "sip.conf" y "extensions.conf" a través de las siguientes líneas de código:

dialplan reload
sip reload

Y ya se encuentran configurados los usuarios.

Instalacion Asterisk 1.8.5


PROCESO DE INSTALACIÓN

1. Para llevar a cabo la instalación correcta de Asterisk, en primera instancia se deben actualizar los paquetes de CentOS, para ello, se llevan a cabo las siguientes líneas de código.

yum -y update
yum -y upgrade

2. Se asegura que se encuentre desactivado el SELinux, en caso que no se haya configurado a la hora de la instalación del CentOS. Para efectuar ello hay que seguir las siguientes líneas de código:

cd /etc
cd selinux
vi config

Se busca la línea de código "SELINUX = enforcing". Esta es sustituida por la línea de código "SELINUX = disabled". Para que los efectos surja efecto, se reinicia el ordenador con los comandos:

shutdown -r now

3. Se borran las reglas de IPTABLES usando las siguientes líneas de código:

iptables -L
iptables -F
iptables-save

4. Se lleva a cabo la actualización del kernel.

uname -r
yum update kernel
shutdown -r now

5. Se instala el "wget.

yum install wget

6. Se descarga el Asterisk como tal con su correspondiente paquetería Dahdi.

wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.5.0.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-
2.5.0+2.5.0.tar.gz

7. Se descomprimen los archivos descargados de Asterisk y Dahdi.

ls
tar -zxvf asterisk-1.8.5.0.tar.gz
ls
tar -zxvf dahdi-linux-complete-2.5.0+2.5.0.tar.gz

8. Se instalan todas las dependencias necesarias con el fin que el softphone a utilizar tengan un buen funcionamiento.

yum install kernel-devel gcc make gcc-c++ libxml2-devel

9. Ahora se instalan las librerías de perl y ncurses-devel, una nueva paquetería.

yum install perl ncurses-devel

10. Se lleva a cabo el proceso de compilación del Dahdi.

ls
cd dahdi-linux-complete-2.5.0+2.5.0.tar.gz
ls
make all
make install
make config
chkconfig dahdi on
service dahdi start

11. Se lleva a cabo el proceso de compilación de Asterisk.

cd ..
ls
cd asterisk-1.8.5.0.tar.gz
ls
make clean
./configure
make menuselect
make
make install

12. Se instalan los archivos de configuración de Asterisk

make samples
make config
chkconfig asterisk on

13. Ahora hay que comprobar que Asterisk quedó correctamente instalado.

asterisk -vvvvc

Si se visualiza la expresión "CLI>" significa que ya se encuentra en la central Asterisk

core stop now

14. Inicialización formalmente de Asterisk

service asterisk start
asterisk -r

Y ya se encuentra corriendo la aplicación Asterisk.

Centos Instalación Manual (definir particiones y servicios)


PROCESO DE INSTALACIÓN

1. A través de la máquina virtual, con el sistema operativo Ubuntu 10.10 ya instalado, se inicia desde el CD con el instalador de CentOS 5.5.
2. Se oprime la tecla "Enter".
3. Se selecciona el botón "skip".
4. Cuando aparezca la interfáz se da click en "Next".
5. Se selecciona el Idioma y se da click en "Next".
6. Se selecciona la opción "Crear diseño personalizado" y se da clic en "Siguiente".
7. En la interfáz se ve la configuración que se llevó a cabo cuando se instaló Ubuntu 10.10, con un espacio libre de aproximadamente 5GB.
8. Se selecciona el Dispositivo "Libre" y se da click posteriormente en el botón "Nuevo".
9. Se selecciona el punto de montaje raíz, "/", con un Tipo de sistema de archivos "ext3.
10. En "Opciones de tamaño adicionales" se selecciona "Completar hasta el tamaño máximo permitido" y se da click en "Aceptar", posteriormente se da click en "Siguiente".
11. Se selecciona la opción "El gestor de arranque GRUB está instalado en /dev/sda".
12. Se deja seleccionada la opción "Por defecto".
13. Se selecciona la "Configurar las opciones del gestor de arranque" y se da click en "Siguiente".
14. Para "Instalar el gestor de arranque" se selecciona la opción /dev/sda4 Primer sector de partición de inicio y se da click en "Siguiente".
15. En esta parte todo se deja tal cual está indicado y se da click en "siguiente".
16. Se selecciona la ubicación geográfica y se da click en "siguiente".
17. Se asigna una contraseña de root y se da click en "siguiente".
18. Se selecciona "server" únicamente como tarea adicional y se selecciona la opción "Personalizar ahora".
19. En el cuadro de la izquierda se selecciona la opción de "Aplicaciones", así, del menú que surge a la derecha se selecciona la opción "Internet basada en texto" y se selecciona el botón "Paquetes Opcionales".
20. Se habilitan el paquete "lynx-2.8.5-28.1.el5_2.1.I386".
21. En el cuadro de la izquierda se selecciona la opción de "Desarrollo". Se habilitan las opciones "Bibliotecas de desarrollo" y "Herramientas de desarrollo", para este último se da click en "Paquetes Opcionales".
22. Se habilita el paquete "gcc-objc-4.1.2-48.el5.I386".
23. En el cuadro de la izquierda se selecciona la opción de "Servidores", del menú que aparece a la derecha se habilita la casilla correspondiente a "Base de datos MySQL", se selecciona la casilla de "Servidor Web" y se da click en el botón de "Paquetes Opcionales".
24. Se habilitan los paquetes "php-mysql-5.1.6-27.el5.I386" y "php-pgsql-5.1.6-27.el5.I386".
25. En el cuadro de la izquierda se selecciona la opción de "Sistema Base", se selecciona le opción "Herramientas del Sistema" y se da click en "Paquetes Opcionales".
26. Se habilitan los paquetes "Iptraf-3.0.0-5.eI5.I386", "mrtg-2.14.5-2.I386", "net-snmp-utils-5.3.2.2-9.eI5.I386" y "sysstat-7.0.2-3.eI5.I386" y de igual forma se deshabilitan los paquetes "bluez-gnome-0.5-5.fc6.I386", "bluez.hcldump-1.32-1.I386" y "vnc-4.1.2-14.eI5_3.1.Ie86".
27. se recomienda deshabilidar la opción "Soporte de red mediante discado" y finalmente se da click en "siguiente".
28. En la interfáz que aparece se da click en "siguiente".
29. Una vez realizada la instalación de CentOS 5.5 se reinicia el equipo.
30. Cuando se reinicia el ordenador, se ingresa a Ubuntu 10.10 con el fin de configurar el grub para el arranque dual.
31. Se ingresa a la "Terminal".
32. En la terminal se usan las siguientes líneas de código:

sudo -i
(ingreso de contraseña de usuario)
sudo update-grub
reboot

33. Cuando el ordenador es reiniciado ya se puede obtener la visualización de los dos sistemas operativos instalados, por unlado Ubuntu 10.10 y por otro lado CentOS 5.5. Se selecciona CentOS.
34. Al ingresar a CentOS, aparece la configuración de "Agente de configuración".
35. Se selecciona la "Configuración del Cortafuegos" y se da Enter en la opción "Ejecutar Herramienta".
36. Se "Deshabilita" el Nivel de seguridad, al igual que el SELinux y se da "Enter" en "Aceptar".
37. Del menú que aparece nuevamente se selecciona la opción "Servicios del Sistema", entre los que se deshabilitan los siguientes servicios:

avahi-daemon
cups
bluetooth

De igual manera se debe asegurar que se mantengan habilitados los siguiente servicios.

sendmail
sshd
nfs
mysqld
httpd

38.
Para cambiar la configuración de la red, se ejecuta esta herramienta, con el fin de configurar bien sea una dirección IP fija o una Dirección IP dinámica, por defecto, esta se encuentra dinámica, así que no se ejecuta cambio alguno.
39. Finalmente se da "Enter" en "Salir" y automáticamente se establece la consola de comandos de CentOS 5.5.
40. Se ingresa el usuario root con su respectica contraseña.
41. Ya ha quedado instalado en CentOS 5.5.

Ubuntu Instalación Manual (gestionar particiones)


PROCESO DE INSTALACIÓN

1. Se selecciona el Idioma de instalación de Ubuntu 10.10 y se da click en "instalar Ubuntu"
2. Se debe tener una conexión a Internet con el fin llevar a cabo descarga de actualizaciones y posibles mejoras hechas por terceros.
3. Se especifica las particiones necesarias para llevar a cabo el proceso de instalación.
4. Se selecciona el dispositivo "/dev/sda", posteriormente se da click en "Nueva Tabla de Particiones" y seguidamente se da click en "continuar".
5. Se da click en "espacio libre", y se selecciona el botón "Añadir...". (Hay que tener en cuenta que se cuenta con un disco duro virtual (VMware), su capacidad fue seleccionada de 16GB).
6. La opción "Tipo de la nueva partición" se selecciona como "Lógica" y se le da una capacidad de "1024MB"
7. La "Ubicación de la nueva partición" se selecciona como "Principio" y se utiliza como "área de intercambio".
8. Se repite el paso 5.
9. El "Tipo de la nueva partición" se selecciona como "Primaria" y se le da un tamaño de 2400MB.
10. La ubicación de esta nueva partición es la de "Principio", se utiliza como "sistema de ficheros ext4 transaccional".
11. Se selecciona un punto de montaje raíz "/" y "aceptar".
12. Se repite el paso 5.
13. Al "Tamaño de la nueva partición" se le da un valor de 7000MB.
14. A la nueva partición creada se le da una ubicación "Principio" y se usa como "sistema de ficheros ext4 transaccional" al igual que en el paso 10.
15. Se selecciona un punto de montaje "/home" y se da "aceptar".
16. Se da click en "instalar ahora".
17. Se selecciona la ubicación geográfica y click en "Adelante".
18. Se selecciona el tipo de Teclado y click en "Adelante".
19. Se rellena la información solicitada a gusto del Usuario y click en "Adelante".
20. El proceso de instalación se inicia, durante cierto tiempo. una vez terminado se debe reiniciar al equipo y ya está.

Introducción Servidor Asterisk

Asterisk es un software que convierte una computadora normal en un servidor de comunicaciones, este software permite crear sistemas IP PBX IP, gateways VoIP, servidores de conferencia y mucho más. Es utilizado por las pequeñas, mediana y grandes empresas, los centros de llamadas, y hasta los gobiernos a nivel mundial. Se distribuye libremente como software de código abierto, por lo que cualquiera puede llegar a establecer llamadas desde cualquier lugar del mundo, siempre teniendo en cuenta una serie de características específicas, en lo que concierne a la instalación de este software para que pueda llegar a funcionar adecuadamente.[1]

Desde otro punto de vista, Asterisk es un completo PBX por software para múltiples plataformas bajo los sistemas operativos Linux, BSD, Apple OSX y otros donde las llamadas en el sistema disparan funciones a través de patrones de dígitos (mejor conocidos como extensiones), ofreciendo un completo control sobre el enrutamiento de las mismas con relativa facilidad.[1]


Para llevar a cabo llamadas a través de Asterisk, se deben tener en cuenta varios criterios. En primera instancia, al ser este un software libre, el cual viene adecuado para funcionar con el sistema operativo CentOS, este también de carárcter libre.

Acá se llevará a cabo el proceso de instalación desde ceros, en donde se cuenta únicamente con un computador. Inicialmente se instalará Ubuntu, con las características en cuanto a los recursos necesarios para las procedentes instalaciones de CentOS y Asterisk. Todo este proceso se efectúa mediante máquina virtual, con el fin de hacer el proceso más didáctico.

La máquina virtual usada se configura a través de VMware Workstation v9.0.0.812388, puesto que sus características a nivel de procesamiento son mucho mejores que la reconocida Virtual Box, siendo esta la herramienta que se implementó por vez primera, al momento de generar una máquina virtual con este software se presentaron varios problemas de ejecución y altos niveles de latencia en cuanto a llamadas, lo cual ocasionó que se llegara a pensar que los sistemas operativos instalados habían sido mal configurados. Después de numerosas pruebas y procesos de descarte, finalmente se analizó que el problema era el software de máquina virtual, por ende se recomienda llevar a cabo los procesos a través de VMware Workstation v9.0.0.812388.

Todo comienza con la instalación de Ubuntu, proceso a seguir es la instalación de CentOS, una vez instalados los dos sistema operativos, se configura el arranque dual de estos dos. Una vez instalado CentOS, este es configurado de tal manera que al momento de instalar el Asterisk, este corra con todos sus servicios sin problema alguno, siguiente a este proceso, se instala el Asterisk en el sistema operativo CentOS y finalmente se lleva a cabo la configuración de usuarios para llevar a cabo llamadas, en este caso académico, únicamente de tipo SIP.

jueves, 18 de julio de 2013

Matlab Arduino Y Procesamiento De Imágenes (Posición de un servomotor)

Hola todos,

En este vídeo muestro una pequeña aplicación que había hecho hace un tiempo y quería mostrársela a ustedes, es una aplicación bastante simple; su objetivo es mover un servomotor (controlar la posición de un servomotor) mediante el movimiento de un objeto, haciendo uso de procesamiento de imágenes. 

Esta aplicacion la considero como principios básicos de rootica (un pequeño sistema de visión artificial).Esta aplicación surge a partir de mi necesidad de querer aprender a programar en arduino, y quería empezar con algo básico pero quería hacerlo rápido, entonces me puse a pensar, mmmm no tengo tiempo para aprender arduino en este memento, entonces lo que hice fue programar en matlab (que es mi fuerte) y enviar los datos al arduino, luego prendí y apague un LED, cuando de repente estaba buscando algo en el cajón de mi escritorio y encontré un servomotor, entonces se me ocurrió esta aplicación.


Descargar Los Archivos 

o