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;}       
    }
    
    }