sábado, 14 de septiembre de 2013

Programmando TI84 – ciclo infinito

Resulta que un programa para mi TI84 tenía un ciclo infinito, mi primer opción fue tratar de apagarla, pero no respondía. Por lo que mi segunda opción fue quitarle las pilas, pero eso fue una mala idea, porque al prenderla me apareció que la RAM se había corrompido y todos mis programas fueron borrados.

Lo único que tenía que hacer era presionar la tecla “ON”, lo cual genera un mensaje para interrumpir el programa.

Referencia:
http://www.dummies.com/how-to/content/the-while-end-command-on-the-ti84-plus.html

Saludos.

jueves, 12 de septiembre de 2013

Prendiendo un LED con Raspberry Pi

Esta tarea fue bastante sencilla, este tutorial explica que librerías de Python tenemos que instalar para controlar los pines de entrada/salida.

El siguiente programa en Python comanda la salida del pin 7 a 1 (3.3V) durante 5 segundos.
#!/usr/bin/env python
import RPi.GPIO as GPIO, time

GPIO.setmode(GPIO.BCM)
GPIO.setup(7,GPIO.OUT)
GPIO.output(7,True)
time.sleep(5)
GPIO.output(7,False)
GPIO.cleanup()

Como pueden ver es bastante legible, sólo esta instrucción parece algo rara:

GPIO.setmode(GPIO.BCM)

y tiene que ver con la forma en la que se enumeran los pines.



Saludos.

sábado, 7 de septiembre de 2013

Python no encuentra funciones en modulo

El siguiente error me pareció bastante curiosos, que decidí compartirlo. Cree un pequeño programa en Python para hacer unas pruebas con sockets. Se me ocurrió llamarle a mi archivo socket.py. De hecho al inicio sólo tenía dos líneas:

import socket
s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003))

Pero al tratar de ejecutarlo me marcaba errores del siguiente tipo:

AttributeError: 'module' object has no attribute 'AF_PACKET'

Lo que está pasando es que Python primero busca los módulos en el directorio actual, en este caso como mi archivo se llama socket.py, se importaba a si mismo, en lugar de importar el módulo de las librerías de Python.

Simplemente renombré mi archivo a mi_socket.py y me aseguré de borrar el archivo socket.pyc que se había generado en el directorio actual.

Referencia: http://stackoverflow.com/questions/13422356/socket-isnt-working-in-python

Saludos.

martes, 3 de septiembre de 2013

Primeros pasos con Raspberry Pi

Iniciaremos una nueva serie para compartir nuestros experimentos con un recién adquirido Raspberry Pi. Decidimos comprar un kit que además del Raspberry, también trae su fuente que se conecta al micro USB, una tarjeta SD con un sistema operativo ya configurado, un estuche y cable HDMI. Se nos hizo una buena oferta. Además como el sistema operativo ya esta listo para usarse, es muy rápido empezar a jugar con el hardware. De cualquier forma, estamos planeando en futuros experimentos, el compilar directamente un sistema operativo.

Por el momento esta configuración nos permitió hacer nuestro primer experimento muy fácilmente. Definitivamente el lugar para iniciar son los tutoriales de Adafruit.

Inicialmente conectamos el Raspberry a un mouse, teclado y monitor, pero sólo lo hice para realizar la configuración inicial. La configuración más importante es habilitar SSH, para poder conectarnos remotamente.

Después de esto, nos conectamos remotamente usando SSH para instalar VNC. El Raspberry está conectado vía Ethernet al ruteador. Y listo, ya podemos utilizar remotamente nuestro Raspberry, el cual sólo esta conectado al ruteador y a su fuente.


Nuestro siguiente experimento será prender un LED.

Saludos.

Para ver los demás post de esta serie da clic en el tag Raspberry Pi.

domingo, 1 de septiembre de 2013

Procesando varias fotos con Phatch

Últimamente he estado subiendo algunas fotos a Facebook y mandando varias por correo; sin embargo, note que la resolución y tamaño de las fotos es muy grande, por ejemplo 3648 x 2736, y estas fotos usualmente sólo las verán en un celular. Aun cuando Facebook y Gmail hacen un muy trabajo reduciendo el tamaño de las fotos, no esta de más el reducir el tamaño de las fotos previamente.


El principal detalle, es que pasa si queremos redimensionar 100 fotos; hacerlo una por una, no es una tarea muy atractiva. Para ello podemos usar el programa llamado “Phatch”, que permite ejecutar una secuencia de operaciones a varias fotos.

Phatch lo pueden instalar en Ubuntu. El proceso es muy sencillo, sólo tienen que crear una lista de comandos que quieren aplicar a todas fotos de un folder. En la siguiente imagen, estoy indicando que quiero redimensionar cada foto a un máximo de 800x800 manteniendo las proporciones originales y guardarlas en mi escritorio en el folder nuevas.


También se pueden aplicar acciones como cambiar el contraste y el brillo. Una vez que tengamos la lista de comandos, seleccionamos ejecutar y Phatch nos pedirá el directorio fuente y nos mostrará todas las imágenes que procesará. Al finalizar el procesamiento presenta un resumen del número de imágenes y el tiempo empleado.



En este caso, las fotos originales miden alrededor de los 4MB, las fotos generadas miden alrededor de los 100KB



Algo muy útil, es que las listas de acciones se pueden guardar. Este script de Phatch para redimensionar fotos ya lo he usado varias veces.

Saludos.