Blog cajón desastre (CBTis 44 / TecNM Teziutlán) https://github.com/maigke ( tiene muy poca aportación)
martes, 31 de marzo de 2015
jueves, 12 de marzo de 2015
Documentando con Doxygen Cabeceras
/** @file clk.h @code #include@endcode @brief Macros para definir la frecuencia de oscilacion del reloj principal */ #ifndef CLK_H #define CLK_H /** * @name Definitions for MCU Clock Frequency * Adapt the MCU clock frequency in Hz to your target. * Revisa las paginas 37-39 */ #define F_CPU 16000000L ///< Frecuencia de 16MHz #if F_CPU == 16000000L #define ADC_PRESCALER 0x07 /// Patebin link
Etiquetas:
ATmega32u4,
C
Documentando con Doxygen programa Principal
Archivo Principal
/**@mainpage TecladoDriver.c * @brief Imprimir en un display de siete segmentos la tecla presionada por un teclado matricial @section intro Este programa imprime un numero desde un teclado matricial y lo pone en un display de siete segmentos de catodo comun es posible el uso de un display de anodo comun, a traves de una interfaz con un ULN2803 @section Uso Solo se presiona una tecla del matricial y el numero aparece en el display * @author: Miguel Montiel */ #include#include "clk.h" #include "keyb.h" #include "sevseg.h" /** @file TecladoDriver.c @brief Programa que escribe un numero a un display de 7 segmentos @author Miguel Montiel */ int main(void) { unsigned char tecla; _init_Teensyduino_internal_(); vInitKeyPad(); InitSegSeg(); while(1) { //TODO:: Please write your application code tecla = ui8_TestKeyPad(); delay_ms(5); Print(tecla); } }
Etiquetas:
ATmega32u4,
C
miércoles, 4 de marzo de 2015
domingo, 1 de marzo de 2015
viernes, 28 de marzo de 2014
Vector Linux 7.0 en Celeron 600MHz con 64MB en RAM
;) si fue posible instalar Vector Linux y compilar GCompris 12.05 en este equipo, el problema es que la velocidad en que corre gcompris es muuuy lenta, pero si corre, el audio funciona muy bien.
Creo se usará este equipo para hacer otras cosas como aun automatizacion pequeña
Creo se usará este equipo para hacer otras cosas como aun automatizacion pequeña
jueves, 20 de marzo de 2014
Reactivando el backlight en Manjaro Linux
Esto solo es un repost de
http://wiki.manjaro.org/index.php/Reactivating_the_Backlight
De acuerdo a la liga, no es posible ajustar el brillo de la pantalla, debido a que los fabricantes han deshabilitado mediante BIOS, el dimmer de las lamparas si no es detectado windows, de acuerdo al mismo texto, es posible recuperar el ajuste de brillo cuando entramos en una consola el siguiente comando
http://wiki.manjaro.org/index.php/Reactivating_the_Backlight
De acuerdo a la liga, no es posible ajustar el brillo de la pantalla, debido a que los fabricantes han deshabilitado mediante BIOS, el dimmer de las lamparas si no es detectado windows, de acuerdo al mismo texto, es posible recuperar el ajuste de brillo cuando entramos en una consola el siguiente comando
sudo sed "s/\(GRUB_CMDLINE_LINUX=\)\"\"/\1\"acpi_osi=Linux acpi_backlight=vendor\"/" /etc/default/grub -i
El cual permite reajustar el brillo en linux, esto pide ingresar nuestro passwd y ahora
solo queda por teclear en consola de nuevo, el siguiente comando
sudo update-grub
Al terminar se cierra la terminal, se reinicia el sistema y listo!!!
martes, 21 de enero de 2014
Led Blink ATmega32U4 a 16 MHz
La tarjeta de Teensyduinno V2.0 la cual contiene un ATmega32U4 puede ser programada por medio de un bootloader el cual está residente en la memoria FLASH del microcontrolador.
Una gran ventaja de esta tarjeta ademas de que puede ser programada como un arduino, tambien puede ser programada como un AVR normal, por medio de avr-Gcc
En el siguiente programa se muestra un ejemplo de como hacer que encienda y apague un LED e intervalos de un segundo,
fuente:
http://forum.pjrc.com/threads/21825-Fuses-Teensyduino-sets-for-Teensy-2-0
Una gran ventaja de esta tarjeta ademas de que puede ser programada como un arduino, tambien puede ser programada como un AVR normal, por medio de avr-Gcc
En el siguiente programa se muestra un ejemplo de como hacer que encienda y apague un LED e intervalos de un segundo,
fuente:
http://forum.pjrc.com/threads/21825-Fuses-Teensyduino-sets-for-Teensy-2-0
#define F_CPU 16000000L #if F_CPU == 16000000L #define ADC_PRESCALER 0x07 #define CPU_PRESCALER 0x00 #elif F_CPU == 8000000L #define ADC_PRESCALER 0x06 #define CPU_PRESCALER 0x01 #elif F_CPU == 4000000L #define ADC_PRESCALER 0x05 #define CPU_PRESCALER 0x02 #elif F_CPU == 2000000L #define ADC_PRESCALER 0x04 #define CPU_PRESCALER 0x03 #elif F_CPU == 1000000L #define ADC_PRESCALER 0x03 #define CPU_PRESCALER 0x04 #else #error "Teensyduino only supports 16, 8, 4, 2, 1 MHz. Please edit boards.txt" #endif //#include//#include //#include void _init_Teensyduino_internal_(void); int main(void) { _init_Teensyduino_internal_(); DDRB |= (1 << DDB0); while(1){ PORTB |= (1 << PB0); _delay_ms(1000); PORTB &= ~ (1 << PB0); _delay_ms(1000); } return 0; } void _init_Teensyduino_internal_(void) { cli(); CLKPR = 0x80; CLKPR = CPU_PRESCALER; }
jueves, 2 de enero de 2014
MyOpenLab contadores en Manjaro Linux
Xfuzzy en Manjaro un ejemplo
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:
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.
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.
Etiquetas:
ATmega32u4,
C,
fuzzy logic,
linux,
Manajaro,
tec,
teziutlan
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
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
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
auto -> reset -> reset -> auto
Etiquetas:
ATmega32u4
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
$./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
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
$./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
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
- Bajar el archivo .tgz del sitio de microchip
- 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)
- entrar en la carpeta descomprimida
- teclar la instrucción siguiente: $make linux para compilar las fuentes para GNU/Linux
- ahora como super usuarios teclear (en este ejemplo hago referencia a sudo) $sudo make install
- Debido a problema con PK2Device.dat se va a copiar este archivo junto al ejecutable en /usr/local/bin, de la siguiente manera
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
Qucs, subcircuitos, VHDL en Manjaro
Buenos dias les comparto un video que recién edité
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
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
Ejecutar los siguientes comandos
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!!
Suscribirse a:
Entradas (Atom)













