jueves, 26 de diciembre de 2013

Compilando en GCC una funcion creada en XFuzzy en Manjaro Linux

XFuzzy es un programa de Open Source desarrollado por el centro Nacional de microelectronica de Sevilla, España. este software permite el desarrollo de sistemas difusos, para su implementación, monitoreo, y simulación con planta, además permite la implementación de código fuente a partir del sistema propuesto

En la imagen se muestra como esta implementado un sistema difuso y su monitorización.

Para generar un fuente a partir del sistema, dar clic en Synthesis -> To C, ahora elige la carpeta donde se van a almacenar los archivos generados que tendrán el mismo nombre del sistema, por ejemplo, para este caso el sistema se denomina example.xfl y los archivos generados se llaman example.c y example.h

Dentro del archivo example.h se encuentra la función que se puede llamar desde lenguaje , esta funcion incluye el nombre del sistema difuso diseñado en XFuzzy seguido de las palabras "Inference Engine", en este caso:

exampleInferenceEngine

Esta función tiene igual número de parámetros que entradas y salidas tiene el sistema
El código fuente se muestra en la imagen anterior, revise que la salida del sistema se almacena en la variable sal, la cual inicialmente se le asigna un valor de 0.0 por ser una variable de tipo double. notese que se usa paso por referencia.

Para compilar el programa (http://stackoverflow.com/questions/8999975/strange-behaviour-of-gcc-and-math-h) se usan algunos parámetros como son Wall y lm pque sirven para imprimir todas las advertencias que se generan (-Wall) durante la compilación del programa y -lm para el uso de la libreria math.h

En la imagen se aprecian las líneas para compilar el programa mostrado y la forma en que se ejecuta, es importante el orden de los archivos a compilar.

Para este caso se podrá notar la salida del sistema cuando las variables val1=val2 = 50.0 y val3 = 0.4 da el compilador de C un resultado de salida de 0.15 y en la imagen siguiente se muestra la salida del sistema difuso definido en XFuzzy cuando las entradas son 50.0, 50.0, 0.4

Esta portabilidad hace interesante a la herramienta, ya que es posible en cierta medida, colocar este código generado en un sistema embebido como lo es un microcontrolador.

hasta el momento les puedo comentar que en avr-gcc funciona muy bien pero con Pinguino PIC no se puede compilar a causa de que SDCC no permite el paso de estructuras como argumentos de funciones. Esto tambien lo probé al tratar de compilar en SDCC puro con el IDE PIKLAB


A fin de confirmarles el uso de la libreria generada por Xfuzzy en AVR-GCC se usa como IDE el code-blocks en su versión 12.11


y programando un ATmega32u4 (vea los siguientes links http://iemontiel.blogspot.mx/2013/05/mexican-arduino-usb-en-fedora-18.html y http://iemontiel.blogspot.mx/2013/12/teensyduino-en-manjaro.html) con cristal de 16MHz integrado en la tarjeta, es posible su compilación y el empleo de EASYDFU (como supervaca) para enviar la información al microcontrolador.
Vea que es interesante el hecho de que solamente se ocupó el 17.30% del total de la memoria del microcontrolador en cuestión.

martes, 17 de diciembre de 2013

Disparo de TRIAC por deteccion de cruce por cero y PWM con QUCS en Manjaro

En esta ocasión presento un circuito simulado que aprendí en la facultad, ya hace algunos ayeres para el disparo de un triac, usando la detección de cruce por cero para el disparo de un TRIAC, empleando un circuito para modular en PWM un voltaje ajustable (Vcomp en el circuito), este voltaje puede provenir de un simple pot, hasta de la salida de una DAC de un microcontrolador, debemos tomar en cuenta que hace falta un optoacoplador, pero no lo encontre en QUCS. a continuación presento el circuito:
En la gráfica se puede apreciar las partes que componen al circuito general; se coloca el diodo ya que el opamp de QUCS no permite poner fuentes, razon por la cual se tiene saturaciones en +Vcc y -Vcc lo cual es correcto si alimentamos con fuente bipolar, pero para este caso no es necesaria una señal en -Vcc, es por ello la razon del diodo

Aqui se muestran las imagenes de las gráficas resultantes de la simulación con QUCS, como verán son muy buenas estas imágenes.


domingo, 15 de diciembre de 2013

Comunicacion HID ATmega32U4 en Manjaro


En la siguiente captura de pantalla se muestra como se establece la comunicacion entre un Atmega32U4 y la caja Manjaro que tengo a 64bits.
Se usa un script de Teensy denominado HID Listen, el cual según dice en la página de Teensy, solo corre en máquinas de 32 bits, pero en la máquina que tengo que es a 64 bits corre sin ningun problema.

Los fuentes de ejemplo los he descargado de este Link, donde se pone el ejemplo que se muestra en la pantalla y se siguen las recomendaciones de esta otra página para corregir los errores LINK

En la siguiente se muestra como se compila el programa, solo con un simple comando $make

Configurar Codeblocks en Manjaro para programar AVR


Code Blocks es un IDE multiplataforma para lenguaje C, en esta entrada describiré brevemente como configurar el Code Blocks para que en Manajro se pueda programar un AVR, en este caso tenemos el ATmega32U4

La primera parte es muy sencilla ya que solo hay que seguir un asistente, el problema es que cuando se pretende compilar el nuevo codigo, envia un error


/usr/lib/libm.so: file not recognized: File format not recognized
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings

Esto es a causa de que el IDE no está correctamente configurado para funcionar con el AVR GCC, por lo tanto solo hay que redireccionarlo, tal y como se indica en esta entrada de AVR Freaks

 http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=99954&view=next

De acuerdo a lo que ahi se indica debemos ir al menu settings, luego al menu Compiler..

Seleccionar el compilador "GNU AVR GCC Compiler"

Ir a la pestaña "Search directories" y en la sub-pestaña "Linker"
cambia la ruta por
/usr/lib/avr/lib/
 que actualmente dice /usr/lib

ahora ir a la sub-pestaña "Compiler" y editar la entrada para que diga lo siguiente:

/usr/lib/avr/include/avr
Entonces, ahora si al compilar tendremos el siguiente resultado :)


Teensyduino en Manjaro

La siguiente es la forma de grabar el Teensyduino 
auto -> reset -> reset -> auto

jueves, 12 de diciembre de 2013

Tableta con juice ssh y scilab en server SSH Manjaro

Estoy haciendo pruebas de conexion entre un server remoto ssh que tiene scilab instalado y una tableta android con la app juice ssh

pues les comento que siguiendo las instrucciones en este blog

http://jax-metalmax.blogspot.mx/2012/11/instalacion-y-configuracion-de-ssh.html

se instalo y configuro el server ssh en Manjaro Linux y pues accedidendo desde la tableta, se logra ejecutar scilab, aun no pruebo los comandos de ejecucion pero les puedo mencionar que el scilab instalado en el server ssh tiene los siguientes modulos cargados

  • COSELICA
  • Fuzzy Logic Tool Box
  • CPGE
  • SIMM
  • Serial toolbox
  • usb toolbox
  • ANN toolbox
El detalle que tengo para ejecutar scilab desde la conexion de ssh en la tableta,  es que el comando debe ser

$./scilab-adv-cli

ya que

$./scilab-cli

da un error de violacion de segmento.

No pongo foto o imagen por que no se como se envia la captura de pantalla en Android. :p

Saludos

Prueba programando PICs en Manjaro Linux

Estaba con la curiosidad de como funcionaria pk2cmd instalado desde las fuente en Manjaro, y he visto con agrado que si funciona muy bien, los pasos de instalación son de lo mas sencillos

  1. Bajar el archivo .tgz del sitio de microchip
  2. Descomprimir el archivo en una carpeta especial (en mi caso he creado dentro de mi home una carpeta llamda opt para instalar aquellas programas que no vienen por defecto en Manjaro)
  3. entrar en la carpeta descomprimida
  4. teclar la instrucción siguiente:   $make linux para compilar las fuentes para GNU/Linux
  5. ahora como super usuarios teclear (en este ejemplo hago referencia a sudo) $sudo make install
  6. Debido a problema con PK2Device.dat se va a copiar este archivo junto al ejecutable en /usr/local/bin, de la siguiente manera 
$sudo cp  PK2DeviceFile.dat /usr/local/bin

Esto es para que no ocasione problemas en caso de crear un lanzador para el escritorio. 

En el siguiente link se encuentra un script para que se ejecute el pk2cmd en modo grafico

http://pastebin.com/2rKyjbkr

Bien espero que este link sirva para que les de la curiosidad de programar microcontroladores PIC usando un sistema Linux y muy amigable como Manjaro.

Caracteristicas de mi box Linux
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU         T5300  @ 1.73GHz
stepping        : 2
microcode       : 0x5c
cpu MHz         : 1733.000
cache size      : 2048 KB


SMBIOS 2.4 present.
25 structures occupying 1385 bytes.
Table at 0x000DF010.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
    Vendor: Phoenix Technologies LTD
    Version: 77.11  
    Release Date: 03/19/2007
    Address: 0xE5A60
    Runtime Size: 107936 bytes
    ROM Size: 1024 kB
    Characteristics:
        ISA is supported
        PCI is supported
        PC Card (PCMCIA) is supported
        PNP is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        ESCD support is available
        Boot from CD is supported
        Selectable boot is supported
        Print screen service is supported (int 5h)
        8042 keyboard services are supported (int 9h)
        Serial services are supported (int 14h)
        Printer services are supported (int 17h)
        ACPI is supported
        USB legacy is supported
        Smart battery is supported
        BIOS boot specification is supported
        Function key-initiated network boot is supported
        Targeted content distribution is supported

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: Gateway                        
    Product Name: MX6947M                        
    Version: 3408141R               
    Serial Number: T3C74B1001377                  
    UUID: E068DDB3-DB1D-B211-8000-FE779A898FC6
    Wake-up Type: Power Switch
    SKU Number: Not Specified
    Family: Not Specified


viernes, 22 de noviembre de 2013

domingo, 17 de noviembre de 2013

Pinguino PIC18F2550 USBBulk y SCILAB con USB - bulk error en Manjaro

Probando Pinguino PIC con Scilab, en la modalidad USB Bulk Transfer, me encontré con el atomo de JOSE PABLO CASTRO VALVERDE, en http://forge.scilab.org.

El scilab si reconoce al Pinguino en modalidad Bulk Transfer pero indica el siguiente error al tratar de enumerar al dispositivo
 

 -->;exec('/home/miguel/Documentos/scilab/usbTst.sce', -1)
 
 Libusb-1.0 Library initialized  
 
 device open  
endP_success=bulk_set_endpoint(enpIn,enpOut);
                               !--error 999
bulk_set_endpoint: Wrong size for input argument #1: A scalar expected ????.
at line      29 of exec file called by :   
scilab/usbTst.sce', -1
el código que se le carga al Pinguino es el que viene de ejemplo en la version SVN. Espero tener mas avances proximamente.

Pinguino IDE X.4 en Manjaro version SVN

El funcionamiento adecuado de la tarjeta Pinguino en Manjaro la he logrado gracias a estas entradas de Blog y el wiki de pinguino

 http://wiki.pinguino.cc/index.php/Linux#Archlinux http://www.roboticaludica.com/instal-pinguino-ubuntu/ Vamos por partes,

Como primer punto se trata de copiar las reglas de udev que estan en Pinguino  hacia /etc/udev/rules.d


sudo cp ./extra/rules/{41-microchip.rules,26-microchip.rules} /etc/udev/rules.d/
 
 

Ejecutar los siguientes comandos
sudo groupadd plugdev
sudo usermod -a -G plugdev $USER
sudo chgrp -R plugdev /dev/bus/usb/
Al terminar de ejecutar los comandos anteriores, se debe reiniciar y listo!!

print "current version is " + getVersion() #pinguino_version error de sintaxis Manjaro

Bueno hace dias que baje la ide svn de Pinguino X.4 IDE en la maquina de manjaro, pero al correr el script de inicio, me indicaba un error y pues la cuestión es que Manjaro tiene python3 por defecto entonces solo se debe cambiar la linea que invoca a Pinguino con Python por: python2 pinguino.py y listo! La tarjeta pinguino es programada correctamente en modo superusuario. (Nota Aclaratoria. No se han dado de alta las regles en udev ¿funciona Manjaro con udev?)

jueves, 7 de noviembre de 2013

Qucs 0.01.17 en Manjaro

Bien pues sigo probando el uso de Manjaro y pues de momento va muy bien, el desktop es ligero en la PC que tengo, ya es un poco viejita (Gateway con procesador Core 2 con 2GB de RAM y disco de 500GB ) Pues como les comento, estoy probando Qucs y de momento va muy bien y lo mejor es que a diferencia de Fedora 19, esta distro si me está generando el VHDL a partir del diagrama lógico sin problemas, de igual forma Scilab despueś del detalle de ayer, he instalado los atoms de Fuzzy Logic, el complemento Coselica y SIMM para simulación física, y pues las simulaciones han corrido, el problema que tengo es con el IDE de Pinguino X.4 que no me abre, pero ya veré como funciona, aun no he probado la grabación de archivos .hex con AVR y PIC, pero ya está en la pc SDCC y AVR-GCC con el codeblocks.

miércoles, 6 de noviembre de 2013

Scilab en Manjaro opt/scilab-5.4.1/lib/thirdparty/libz.so.1: version `ZLIB_1.2.3.4' not found (required by /usr/lib/libpng16.so.16) - RESUELTO

Bueno la cosa es que despues de instalar la versión binaria del sitio de Scilab, en Manjaro funcionabe muy bien, pero despues de una actualización, scila no funcionaba, entonces abrí la consola y al introducir el script que inicia a Scilab 4.5.1, la consola me enviaba este mensaje
scilab-bin: /home/miguel/opt/scilab-5.4.1/lib/thirdparty/libz.so.1: version `ZLIB_1.2.3.4' not found (required by /usr/lib/libpng16.so.16)

Entonces buscando en la red, en un foro de Gentoo encontré la respuesta entre lineas (http://gentoo.2317880.n4.nabble.com/Error-with-version-of-libraries-with-scilab-td270648.html)
En este foro, se menciona este error es por que los autores de SCILAB están jugando con la LD_LIBRARY_PATH y que mediante el comando
$ ldd /usr/lib64/libpng16.so.16
Se tiene este resultado
        linux-vdso.so.1 (0x00007fff7d79a000)
        libz.so.1 => /lib64/libz.so.1 (0x00007ff9ad6ab000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ff9ad3b5000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff9ad00a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff9adb3c000
El autor de la respuesta, menciona que se ve que libpng usa libz, ambas se encuentran en el sistema y que no hace falta usar la libreria que propone el script de scilab. y finalmente menciona lo siguiente: "Go find the startup script for scilab and edit the mods to LD_LIBRARY_PATH to put the scilab directory at the end (not the beginning where it is now) "(Alan McKinnon, 2013) Pues bien siguiendo estas indicaciones, vi el resultado que arrojaba mi libpng y obtuve lo siguiente
[miguel@casita bin]$ ldd /usr/lib64/libpng16.so.16
 
        linux-vdso.so.1 (0x00007fffee13e000)
 libz.so.1 => /usr/lib/libz.so.1 (0x00007f33ab303000)
 libm.so.6 => /usr/lib/libm.so.6 (0x00007f33ab000000)
 libc.so.6 => /usr/lib/libc.so.6 (0x00007f33aac55000)
 /usr/lib64/ld-linux-x86-64.so.2 (0x00007f33ab74f000)
Lo que me indicó que el libpng si está usando el libz pero del sistema
entonces mediante una consola y nano me dediqué a indagar como funciona el script de Scilab 5.4.1, esto me dio como resultado lo siguiente
En estas lineas encontré lo siguiente, aqui se carga la LD_LIBRARY_PATH con $SCIBINARYBASE/lib/thirdparty
if test $IS_SCILAB_BINARY -eq 1; then

    TCL_LIBRARY="$SCIBINARYBASE/thirdparty/tcl8.5"
    Tk_LIBRARY="$SCIBINARYBASE/thirdparty/tk8.5"

    LD_LIBRARY_PATH=$SCIBINARYBASE/lib/scilab:$SCIBINARYBASE/lib/thirdparty${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
    DOCBOOK_ROOT="$SCI/../../thirdparty/docbook"
    PATH="$PATH:$SCI/modules/scicos/"
Entonces, agregamos a la LD_LIBRARY_PATH /usr/lib que es donde el comando ldd dice que está libz
if test $IS_SCILAB_BINARY -eq 1; then

    TCL_LIBRARY="$SCIBINARYBASE/thirdparty/tcl8.5"
    Tk_LIBRARY="$SCIBINARYBASE/thirdparty/tk8.5"

LD_LIBRARY_PATH=/usr/lib64/:$SCIBINARYBASE/lib/scilab:$SCIBINARYBASE/lib/thirdparty${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
    DOCBOOK_ROOT="$SCI/../../thirdparty/docbook"
    PATH="$PATH:$SCI/modules/scicos/"
Una vez hecho esto, Scilab volvió a funcionar

jueves, 17 de octubre de 2013

Grabar y codificar screencast desde consola

Bueno esta opcion la encontre, ya que los videos que he sacado con recordmydesktop, con los efectos de KDE salen todos cuadriculados, es por ello que buscando en la red, me encontre que es posible realizar un scrrencast mediante ffmpeg y su posterior conversiion a video x264 con un alto grado de compresion y buena calidad. El problema de capturar con la consola, en mi caso muy particular, que los videos salen acelerados y no me acepta la opcion para sincronizacion -async 1 (no me marca error aclaro) bien el comando es el siguiente para capturar la pantalla desde la consola ffmpeg -async 1 -f alsa -i plughw:0,0 -c:a pcm_s16le -b:a 16k -f x11grab -r 20 -s 1024×768 -i :0.0 -b:v 10000k ~/Desktop/video.avi y para conversion, a fin de que los videos quedeb bastante cortitos es mencoder -ovc x264 -oac copy video4.avi -o video4.h264.mp4 Las referencias de estas instrucciones, las hallé en http://kikefree.wordpress.com/2013/01/24/grabar-escritorio-con-ffmpeg-o-ffmpeg2theora/ http://www.pagondel.org/how-to-grabar-tu-escritorio-usando-ffmpeg/ http://www.youtube.com/watch?v=WctNRVdxXN8

miércoles, 2 de octubre de 2013

Deshabilitando o Eliminando repositorios en Fedora

Esta información la he tomado del siguiente link http://www.if-not-true-then-false.com/2010/yum-remove-repo-repository-yum-disable-repo-repository/ thx's

nmap para detectar OS de una LAN

Bueno esta es una entrada muy corta, se trata de poner el comando para Linux donde se usa nmap: [miguel@dhcppc6 ~]$ sudo nmap -O --osscan-guess --fuzzy 192.168.1.67 Starting Nmap 6.40 ( http://nmap.org ) at 2013-10-02 22:01 CDT Nmap scan report for 192.168.1.67 Host is up (0.010s latency). All 1000 scanned ports on 192.168.1.67 are closed MAC Address: A0:4E:04:9C:29:91 (Nokia) Too many fingerprints match this host to give specific OS details Network Distance: 1 hop OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 8.79 seconds En este caso lo use para ver cual era el SO que está conectado a mi router, es un celular Nokia (de mi hermana) En cuanto a nmap -O se usa para habilitar la detección de SO --osscan-guess --fuzzy Se usa para aproximar los resultados del SO cuando el SO que se ve en tu red Local

sábado, 21 de septiembre de 2013

Mi archivo 41-microchip.rules Fedora 19 x64

El siguiente es mi archivo 41-microchip.rules, el uso de este archivo es con el fin de conectar los siguientes programadores y ser accedidos como usuario normal a través del software Piklab (http://piklab.sourceforge.net/) :
  1. Pickit2 clon con firmware  2.x
  2. ICD2 clon
  3. Pinguino PIC18F2550  
Aquí mi archivo que está ubicado en /etc/udev/rules.d

# sudo cp 41-microchip.rules /etc/udev/rules.d/
# sudo usermod -a -G plugdev $USER
#
# Pinguino8 (PIC18F)
ATTR{idVendor}=="04d8", ATTR{idProduct}=="feaa", MODE="0660",GROUP="plugdev"
#
# Pinguino32 (PIC32MX)
ATTR{idVendor}=="04d8", ATTR{idProduct}=="003c", MODE="0660",GROUP="plugdev"
#
# Pickit 2
ATTR{idVendor}=="04d8", ATTR{idProduct}=="0033", MODE="0660",GROUP="plugdev"
#
# Pickit 3
ATTR{idVendor}=="04d8", ATTR{idProduct}=="900a", MODE="0660",GROUP="plugdev"
# ICD2
ATTR{idVendor}=="04d8", ATTR{idProduct}=="8000", MODE="0660",GROUP="plugdev"
# ICD21
ATTR{idVendor}=="04d8", ATTR{idProduct}=="8001", MODE="0660",GROUP="plugdev"

sábado, 17 de agosto de 2013

Error al compilar programas con puerto serial en Pinguino X.4

En el programa X.4 viene muchos programas de ejemplo, uno de ellos dentro de la carpeta examples/08.interrupt/Counter.pde.

En este código se usa el contador 3 del microcontrolador pic18F2550, una señal aplicada al pin 10, incrementará el valor del registro 3. y enviara por los pines del puerto serial, el numero que contiene el registro.

Sin embargo, al tratar de compilar este archivo, el X.4 enviará un mensaje de error, donde indica que existe un bit denominado RC1IF que no está definido. El problema está en la línea 98 del archivo x.4/p8/pinguino/core/serial.c

//PIR1bits.RC1IF = 0; // Clear interrupt flag

de acuerdo al datasheet en la página 147 del microcontrolador pic18F2550 el bit del registro PIR1, se denomina RCIF, por lo que es conveniente cambiar esta línea por lo siguiente:

PIR1bits.RCIF = 0; //17 de Agosto de 2013

de acuerdo al data del 2550 Este es el resultado que se obtiene

File: /home/miguel/opt/x.4/examples/08.Interrupt/Counter.pde
compiling... Compilacion completada
code size: 10626 / 24575 bytes (43% used)
1.3107790947 segundos (Tiempo de proceso)
Pinguino not found Is your device connected and/or in bootloader mode ? Pinguino found Bootloader v2.12
Writing ...
Counter.hex successfully uploaded

miércoles, 10 de julio de 2013

Problema scilab ./scilab-bin: error while loading shared libraries: libscilab.so.0:

En Fedora 19 de 32bits, viene por defecto en los repositorios SCILAB 5.4.1, sin embargo, si se desea instalar desde el paquete rpm que viene en la pagina web de Scilab. Solo se debe descargar y descomprimir en una carpeta en específico (en mi caso, cree un directorio denominado opt dentro de mi $HOME) El binario ejecutable está en la ruta /home/miguel/opt/scilab-5.4.1/bin sin embargo al tratar de ejecutar el binario, se marca el siguiente error (solo es visible cuando se ejecuta desde consola)
./scilab-bin 
./scilab-bin: error while loading shared libraries: libscilab.so.0: cannot open shared object file: No such file or directory

de acuerdo a la página https://bugs.launchpad.net/ubuntu/+source/scilab/+bug/560283
se debe verificar que /usr/bin/scilab contiene
 
LD_LIBRARY_PATH=/usr/lib/scilab/:/usr/lib64/scilab/:$LD_LIBRARY_PATH

Para modificar el valor de la variable de entorno (Para saber mas: http://landerpfc.wordpress.com/2010/09/28/variables-de-entorno-en-gnulinux/)
Se debe dar la ruta a la librería donde se encuentra el archivo libscilab.so.0, que está en:
$HOME/opt/scilab-5.4.1/lib/scilab/

Entonces ahora se teclea la siguiente instrucción:
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=/home/miguel/opt/scilab-5.4.1/lib/scilab/
[miguel@MalillaReturns bin]$ echo $LD_LIBRARY_PATH
/home/miguel/opt/scilab-5.4.1/lib/scilab/
Sin embargo al tratar de ejecutar el entorno se tiene el siguiente error:
[miguel@MalillaReturns bin]$ ./scilab-bin 
./scilab-bin: error while loading shared libraries: libhdf5.so.6: cannot open shared object file: No such file or directory

Este archivo se puede localizar con el comando find, de la siguiente forma
[miguel@MalillaReturns ~]$ find -iname libhdf5.so.6
./opt/scilab-5.4.1/lib/thirdparty/libhdf5.so.6
Con esta dirección, podemos agregar un dato mas a la variable de entorno
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=$HOME/opt/scilab-5.4.1/lib/thirdparty/:$LD_LIBRARY_PATH
[miguel@MalillaReturns bin]$ echo $LD_LIBRARY_PATH
/home/miguel/opt/scilab-5.4.1/lib/thirdparty/:/home/miguel/opt/scilab-5.4.1/lib/scilab/
Pero de nueva cuenta se tiene un error.
[miguel@MalillaReturns bin]$ ./scilab-bin 
./scilab-bin: error while loading shared libraries: libjava.so: cannot open shared object file: No such file or directory
De igual forma la libreria libjvm.so. Mediante el comando find, se encuentra la ruta de la librería solicitada por el programa
[miguel@MalillaReturns ~]$ find -iname libjava.so
./opt/scilab-5.4.1/thirdparty/java/lib/i386/libjava.so
La libreria libjvm.so se encuentra en:
[miguel@MalillaReturns ~]$ find -iname libjvm.so
./opt/scilab-5.4.1/thirdparty/java/lib/i386/server/libjvm.so
./opt/scilab-5.4.1/thirdparty/java/lib/i386/client/libjvm.so

En consecuencia, se debe agregar esta nueva ruta al LD_LIBRARY_PATH
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/:$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/client/libjvm.so:$LD_LIBRARY_PATH
En resumen, se puede decir que la definición de la variable de entorno
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=$HOME/opt/scilab-5.4.1/lib/scilab/:$HOME/opt/scilab-5.4.1/lib/thirdparty/:$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/client/:$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/
Pero esto, nos deja ver el siguiente error
[miguel@MalillaReturns bin]$ ./scilab-bin 
SCI environment variable not defined.
Ahora se debe definir la variable de entorno SCI
[miguel@MalillaReturns bin]$ export SCI=/home/miguel/opt/scilab-5.4.1/share/scilab
de esta forma ya debe funcionar la instalación de SCILAB
Nota. LA Libreria de lógica difusa que se ve se instala mediante ATOMS.

Metallica - Live In Studio 2003 [St. Anger Full Concert HQ]


jueves, 4 de julio de 2013

Instalando moderncv con Lyx 2.0 en Fedora 18

Después de un rato de estar tratando de elaborar un CV con Lyx, en Fedora 18, por fin lo logré, pero no solo conviene instalar lyx con yum, sino que habrá que agregar unos paquetes extras, la información para la elaboración del CV la retomé de los siguientes blogs
Saint blog de Cristián Maureira Fredes, en http://saint.archlinux.cl/2008/10/moderncv-curriculum-vitae-con-latex/
jcGeorge's Blog de Jorge Valverve Rebaza, en http://jc-info.blogspot.mx/2009/04/curriculum-elegante-con-latex.html
y finalmente no podrìa faltar la apreciable fuente de
Blog de un bioinformatiquillo de Francisco Dubouis, en https://bioinformatiquillo.wordpress.com/manual-latex-con-lyx/clases-de-documento/
Bien la cosa es que la clase moderncv, que es la que se usa para generar el CV en Lyx, no se encuentra disponible de primera instancia.
indicando que faltan los archivos moderncv.cls y suffix.sty para compilarse de forma adecuada
para instalar la clase moderncv, primero se va a ejecutar la orden
# cd /usr/share/texmf/tex/latex

y ahora una vez ahi se va a ejecutar el siguiente codigo
wget http://tug.ctan.org/tex-archive/macros/latex/contrib/moderncv.zip

ahora se descomprime mediante el comando
#unzip moderncv.zip

y ahora para intergrarse a lyx se ejecuta el comando
#texhash

Para instalar la clase suffix.sty, ahora se debe descargar el archivo bigfoot
# wget http://tug.ctan.org/tex-archive/macros/latex/contrib/bigfoot.zip

entonces se descomprime
#unzip bigfoot.zip

con este archivo hay que hacer un paso mas
meterse dentro de la carpeta creada al realizar el unzip
#cd bigfoot
#latex bigfoot.ins
#texhash
esto es por que de acuerdo al manual de Personalizacion en Lyx 2.0, los paquetes disponibles en CTAN, los archivos .sty estan comprimidos en el archivo .ins.
ya con esto, es posible compilar el ejemplo de moderncv que viene en el Lyx.
Saludos

jueves, 20 de junio de 2013

Uso de pragma config en SDCC 3.3 Fedora 18 x86_64

Bien en F18 las actualizaciones me han dejado fuera a SDCC, ya que la version 3.2 que tiene, no me permite programar los bits de configuración.

#include 
#define FOSC 48000000
#include "simple_delay.h"
#include "fLCD3bSDCC.h"
#include "cabecera.h"

/**
 * 20/jun/2013
 * Actualizacion a SDCC 3.3 donde se definen los bits de configuracion
 * mediante la directiva pragma, debido a que la version existente en
 * F18 no permite compilar PIC16 con pragma ni con __code char __at ...
 */
#pragma config PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2
#pragma config FOSC = HSPLL_HS, FCMEN = ON, IESO = ON
#pragma config PWRT = ON, BOR = ON, BORV = 0, VREGEN = OFF
#pragma config WDT = OFF, MCLRE = ON, LPT1OSC = ON
#pragma config PBADEN = OFF, CCP2MX = ON
#pragma config STVREN = ON, LVP = OFF
#pragma config XINST = OFF, DEBUG = OFF

/*
__code char __at __CONFIG1L CONFIG1L = _PLLDIV_DIVIDE_BY_5__20MHZ_INPUT__1L & _CPUDIV__OSC1_OSC2_SRC___1__96MHZ_PLL_SRC___2__1L & _USBPLL_CLOCK_SRC_FROM_96MHZ_PLL_2_1L;
__code char __at __CONFIG1H CONFIG1H = _OSC_HS__HS_PLL__USB_HS_1H & _FCMEN_ON_1H & _IESO_ON_1H;
__code char __at __CONFIG2L CONFIG2L = _PUT_ON_2L & _BODEN_ON_2L & _BODENV_4_2V_2L & _VREGEN_ON_2L;
__code char __at __CONFIG2H CONFIG2H = _WDT_DISABLED_CONTROLLED_2H & _WDTPS_1_32768_2H;
__code char __at __CONFIG3H CONFIG3H = _CCP2MUX_RC1_3H & _PBADEN_PORTB_4_0__CONFIGURED_AS_DIGITAL_I_O_ON_RESET_3H & _LPT1OSC_ON_3H & _MCLRE_MCLR_ON_RE3_OFF_3H;
__code char __at __CONFIG4L CONFIG4L = _STVR_ON_4L & _LVP_OFF_4L & _ENHCPU_OFF_4L & _BACKBUG_OFF_4L;
__code char __at __CONFIG5L CONFIG5L = _CP_0_OFF_5L & _CP_1_OFF_5L & _CP_2_OFF_5L & _CP_3_OFF_5L;
__code char __at __CONFIG5H CONFIG5H = _CPB_OFF_5H;
__code char __at __CONFIG6L CONFIG6L = _WRT_0_OFF_6L & _WRT_1_OFF_6L & _WRT_2_OFF_6L & _WRT_3_OFF_6L;
__code char __at __CONFIG6H CONFIG6H = _WRTC_OFF_6H & _WRTB_OFF_6H;
__code char __at __CONFIG7L CONFIG7L = _EBTR_0_OFF_7L & _EBTR_1_OFF_7L & _EBTR_2_OFF_7L & _EBTR_3_OFF_7L;
__code char __at __CONFIG7H CONFIG7H = _EBTRB_OFF_7H;
*/
Como se verá en el código se encuentra comentada la forma obsoleta que se utilizaba antes de SDCC 3.2 y la actual.

viernes, 17 de mayo de 2013

Instalando WebISE Pack 14 en Fedora 18

A estas alturas ya debe haber salido una nueva version del software de Xilinx, pero como dispongo de esta versión y es muy pesado el software (7G aprox) entonces posteriormente bajaré una nueva versión:
como primer paso habrá que darle permisos de ejecución a los archivos xsetup y xinfo del primer directorio al descomprimir el archivo .tar.tgz

entras al sub directorio bin y de ahi, dependiendo del sistema que tengas eliges una carpeta, en mi caso fue lin64

ahora ahí ejecutas el comando chmod a+x * para dar permisos de ejecución a todos los scripts que ahí se encuentran.

regresas al directorio raíz del archivo descomprimido y ejecutas
sudo  ./xsetup
Es importante ejecutar con sudo ya que el software solicita instalarse en el directorio /opt/xilinx, y un usuario normal en ese punto del sistema de archivos no tiene acceso.

Por otra parte también puedes instalar en otra ubicación en tu home.



a continuación se muestran las capturas de pantalla de la instalación:











al dar clic en install se inicia propiamente la instalación

Casi por terminar, el software solicita la instalación de una licencia, la cual puedes adquirir de forma gratuita para el web ise pack desde el sitio de xilinx.
los pasos son los que a continuación se muestran






ya con esto tenemos la instalación de la licencia gratuita y se continua con la instalación


Y finalmente, después de unos minutos, nos aparece la pantalla siguiente:


martes, 14 de mayo de 2013

Mexican Teensyduino USB en Fedora 18

El siguiente post es para hacer funcionar el clon de Arduino que encontré en la siguiente página en Fedora18
www.comunidadatmel.com
Este clon cuenta con la ventaja de ser un micro con modulo USB integrado, ya que tiene el atmega32u4, el cual de acuerdo al vendedor puede ser programado con sketchs arduino o mediante avr-gcc como un micro normal, pero cuenta con la ventaja de tener un bootloader, el cual le permite grabar al microcontrolador sin necesidad de un programador externo.
Para trabajarlo en modo arduino en Windows, se requiere del software de Arduino, el plug in de Teensyduino y finalmente de Flip. Pero como tengo unas cajas Linux, entonces vamos a echarlo a andar aquí. En otro post les comentaré mi motivación.
Se van a requerir que se descarguen software de los links que a continuación expongo:
http://arduino.cc/en/Main/Software
http://www.pjrc.com/teensy/td_download.html
https://sourceforge.net/projects/dfu-programmer/files/latest/download?source=files

(al final se trabajará con línea de comandos- problemas de dependencias en Fedora18)

No eran problemas de dependencias solo hay que cambiar un poco el archivo .pro, quedando de la siguiente manera

#-------------------------------------------------
#
# Project created by QtCreator 2011-05-31T09:58:34
#
#-------------------------------------------------

QT       += core gui

TARGET = easydfu
TEMPLATE = app


SOURCES += main.cpp\
        easydfu.cpp

HEADERS  += easydfu.h

FORMS    += easydfu.ui

RESOURCES += \
    icons.qrc

INCLUDEPATH += "/usr/include/QxtCore/"
LIBS += -lQxtCore -lQxtGui

La linea que se cambio fue
INCLUDEPATH+="/usr/include/qxt/QxtCore"
y en el archivo easydfu.h la línea 31 que dice

#include qxt/QxtGui/QxtGlobalShortcut

se cambia por
#include QxtGui/QxtGlobalShortcut

no pongo los signos de mayor que y menor que por que me edita el blogspot ;P

y finalmente el archivo easydfu.cpp se modifican la línea 30 para que el código quede así:
  ui->setupUi(this);
//modificado para que lo encuentre el root
    programPath = "/usr/local/bin/dfu-programmer";



En Ubuntu (12.04) mi otra box, pude instalar el siguiente paquete
https://sourceforge.net/projects/dfu-programmer/?source=dlp
Que es un cargador gráfico del .hex generado hacia el micro, mas o menos tipo Flip (ya tambien en Fedora18)
  1. Se descargan los paquetes de acuerdo al tipo de sistema que tengamos ya sea de 32 o 64 bits.
  2. Se descomprime el archivo arduino-X.X.X-linuxXX.tgz
  3. El archivo teensyduino.64bit se le dan permisos de ejecución, solo da clic derecho sobre el icono, selecciona propiedades, da clic en la pestaña Permisos y sobre la casilla "es ejecutable" coloca una paloma mediante un clic.
  4.  Da un doble clic para instalar y saldrá la siguiente pantalla
  5. Da clic en Next y elige el lugar donde descomprimiste el software de arduino.



  6. Escoge las librerias que te interesa instalar (yo seleccioné todas y di clic en siguiente)
  7. al dar siguiente, ya nos permitirá instalar el software de Teensy
  8. Una vez instalado nos aparece la ventana que indica que ya ha terminado la instalación.
  9. Da clic en el botón Done.
  10. Ahora ejecuta el software de arduino.
  11. Y elige la tarjeta Teensy 2.0 del menu Herramientas -> Board ->Teensyduino 2.0
  12. De esta forma ya podremos generar sketch's para la tarjeta, el siguiente paso consiste en instalar DFU, que es el software a utilizar en lugar de Flip de atmel (Esto es por que flip aun no es compatible con Linux)
  13. Se descomprime el archivo dfu-programmer-0.6.0
  14. ingresamos en la carpeta descomprimida
  15. abrimos una terminal ahi y tecleamos el comando $./bootstrap.sh
  16. luego $./configure
  17. $make
  18. $sudo make install
  19. La instalacion la realiza en /usr/local/bin, por lo que hay que tener cuidado ya que su no ve este directorio así que para invocar como superusuario debera hacer esto
  20. $ sudo /usr/local/bin/dfu-programmer atmega32u4 erase por ejemplo
  21. para programar un sketch realizado
  22. $sudo /usr/local/bin/dfu-programmer atmega32u4 flash /home/miguel/sketchbook/sketch_may15a/sketch_may15a.cpp.hex
  23. y para que funcione
  24. $sudo /usr/local/bin/dfu-programmer atmega32u4 start
  25. Para la instalación del entorno gráfico (si compila pero no carga correctamente al dfu-programmer :( )
  26. Se descomprime easydfu_1.0_src.tar.gz
  27. Entramos a la carpeta
  28. ejecutamos la orden qmake de la siguiente manera
  29. qmake-qt4 EasyDFU.pro (recuerda las modificaciones indicadas al inicio del post)
  30. y luego make
  31. se debe usar como root o mediante el comando sudo
  32.  asa
    sas
  33. Esta es una prueba de que está corriendo el software :)
    a
    sas


Cargar Teensy version mexicana en caja Fedora... por maigke

MyOpenLab

Es software es un clon de Labview, pero codigo fuente abierta. se ve interesante, creo que voy a picar un poco de piedra con el, dejo los enlances: http://es.myopenlab.de/?Descargas

Trabajando con pinguinoKit 1.1 sobre Fedora 18 AMD64

Bueno de nuevo escribiendo mientras los bebes duermen un rato ;) PinguinoKit es un proyecto liberado por Yeison fuerte colaborador del proyecto pinguino, pues bien, este software es de corte didáctico para trabajar con la tarjeta pinguino, y que en esta versión que nos presenta basada en el ide x.4. Es muy fácil de aprender, y rápido si se cuenta con una tarjeta OSH Pinguino. les dejo con código de ejemplo Espero que descarguen y comenten :) Saludos

viernes, 3 de mayo de 2013

Impresion a doble cara con bookbinder

Bueno, casualmente me encuentro haciendo unos manuales, pero como se requiere de engrapar, pues bookbinder es una solucion de software libre para elaborar folletos. este software a partir de un pdf te crea dos archivos, pues la cosa de imprimirlos es facil, (bueno despues de varios intentos lo es) 1. imprime el documento 1 2. asi como sale la hoja, la giras 180º y la introduces así como salió de la impresora 3. imprime el documento 2 pero con la opcion de imprimir de forma inversa. y eso es todo!

miércoles, 1 de mayo de 2013

contador con Pinguino pic18F2550 en Fedora con CDC

Aqui se muestra el esquema de conexionado para usar una LCD con Pinguino y envio de datos por CDC en una máquina Fedora 18 Y aqui el video donde se muestra como se importa el modulo de pinguino (de JP Mandon) para Fritzing Fotografia del pinguino funcionando
ImportandoModulo Pinguino en Fritzing por maigke
/*----------------------------------------------------- 
Author:  --<>
Date: Wed Apr 24 00:00:18 2013
Description:

-----------------------------------------------------*/
    u8 n=0;
    unsigned char contador=0;
    unsigned char buttonstate=0;
    
void setup() {
    //run once:
    //lcd(8, 9, 1, 2, 3, 4, 0, 0, 0, 0);//modo 4 bits-relacion pines usados 
    /*
    Manejo de LCD con Pingino
    lcd.pins(pinRS, pinE, pinD4, pinD5, pinD6, pinD7, 0, 0, 0, 0);
        */
    
    lcd.pins(8,9,4,5,6,7,0,0,0,0);
    
    //Numero de columnas = 16 y renglones 2
    lcd.begin(16, 2);
    pinMode(12,INPUT);
    }

void loop() {



    digitalWrite(13, HIGH);
    delay(100);
    digitalWrite(13,LOW);
    delay(100);
    lcd.setCursor(1,1);
    lcd.print("Rally Meca");
    buttonstate = digitalRead(12);
    if(buttonstate == LOW)
    {
        digitalWrite(13,LOW); //para pruebas
        delay(500);
        contador++;
        lcd.setCursor(14,0);
        lcd.printf("%d",contador);
        if(contador < 7)
        {
                switch(contador)
                {
                    case 1:
                        lcd.setCursor(5,0);
                        lcd.print("a"); 
                        CDC.print("a");
                        break;
                   
                    case 2:
                        lcd.setCursor(5,0);
                        lcd.print("b");  
                        CDC.print("b");
                        break;
                    case 3:
                        lcd.setCursor(5,0);
                        lcd.print("c");  
                        CDC.print("c");
                        break;
                    case 4:
                        lcd.setCursor(5,0);
                        lcd.print("d");  
                        CDC.print("d");
                        break;
                    case 5:
                        lcd.setCursor(5,0);
                        lcd.print("e");  
                        CDC.print("e");
                        break;
                    case 6:
                        lcd.setCursor(5,0);
                        lcd.print("f");  
                        CDC.print("f");
                        break;
                    default:
                        lcd.clear();
                        //contador=0;
                }
               digitalWrite(13,HIGH);
               lcd.setCursor(14,0);
               lcd.printf("%d",contador);
               delay(500);
         }
         else
            {contador = 0;}       
    }
    
    }