viernes, 21 de octubre de 2016

Raspberry Pi with Pixel, control remoto con RealVNC. Primeros pasos con Raspbian (X) parte4.


Si disponéis de la última versión de Raspbian con el escritorio Pixel, ya sabréis que una de las nuevas incorporaciones es el software RealVNC para conexión remota. Hasta ahora Raspbian no incluía ningún paquete para ello y normalmente recurríamos a TightVnc, tal y como muestro en otro post anterior

https://frambuesa-pi.blogspot.com.es/2015/10/raspberry-pi-primeros-pasos-con_21.html

sin embargo los chicos de Raspbian han decidido "facilitarnos" las cosas, incluyendo RealVnc por defecto en Raspbian. Pues bien de entrada os aviso que yo he flasheado la nueva versión (descargada de la web oficial) en una tarjeta, y RealVnc no funciona, o funciona de manera parcial (esto ya se ha solucionado en la actual versión disponible en la web de oficial de raspberrypi.org). 
Pero de todas formas he decidido crear este tutorial para que no perdáis las mismas horas que he perdido yo en el caso de que os encontréis con problemas. 
Yo tengo una Rapsberry Pi 3, con este modelo después de actualizar los paquetes de RealVNC me ha funcionado correctamente pero con el modelo de RaspberryPi B+, he tenido que crear de forma manual un fichero de arranque del VNC que genera un escritorio virtual al que me puedo conectar con RealVNC. 
Más abajo están todas las explicaciones para conectaros con una RaspberryPi B+ o una RaspberryPi 3.
Si no habéis leído el post anterior de actualización de versión, os recomiendo leerlo antes de continuar, en el apartado de Raspbian Primeros Pasos

jueves, 29 de septiembre de 2016

Programación Python XVI (ejecutar python desde la línea de comandos)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como ejecutar un programa en python desde la línea de comandosEn el primer post de python vimos como se podían ejecutar programas de python desde la línea de comandos Programación Python para RaspberryPi, Sin embargo hoy vamos a ver como crear un pequeño programa al que le pasaremos unos parámetros y lo ejecutaremos desde la línea de comandos de Raspbian




1 Crear un programa en Python

En los anteriores posts ya hemos visto muchos ejemplos de código así que vamos a crear un programa y guardarlo en un archivo para luego ejecutarlo. En primer lugar abrid el IDLE de python y luego abrid un nuevo archivo (tal y como vimos en el primer post Programación Python para RaspberryPi) añadiremos el siguiente código

# importamos el modulo sys
import sys
# creamos bucle para mostrar los argumentos enviados
for (i,value) in enumerate (sys.argv):
    print("arg: %d %s " % (i,value))
click aquí para descargar el código

ahora guardaremos el fichero en una ubicación conocida por ejemplo con el nombre programa_argumentos.py.

jueves, 15 de septiembre de 2016

Programación Python XV (clases)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como usar clases con python. Para pequeños programas generalmente no es necesario el uso de clases, pero si queréis desarrollar un programa algo más complejo las clases ayudan a organizar y simplificar el código.




1.1 Qué es una clase 

En los programas de cierta envergadura lo mas normal para trabajar en un lenguaje de programación es el uso de clases. Una clase nos sirve para crear un objeto con un conjunto de propiedades y/o funciones para trabajar con estas propiedades, con el objetivo de simplificar y ahorrar tiempo de programación, ya que podremos crear un objeto de la clase en cualquier momento y llamar a sus funciones sin tener que repetir código cada vez. Las clases se pueden guardar como un archivo python y pueden ser importados de la misma forma que importamos los módulos, tal y como vimos en un post anterior, Python X (módulos o bibliotecas), es recomendable que si creamos un archivo para cada clase que generamos lo guardemos con el mismo nombre de la clase de esta forma es muy fácil transformar una clase en un módulo.
En los siguientes ejemplos os mostraré como crear una clase para una agenda de clientes.

jueves, 1 de septiembre de 2016

Programación Python XIV (uso de archivos)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como usar archivos desde python, crear un archivo, escribir, leer los datos contenidos, etc.




1.1 Crear un archivo y guardar datos 

En primer lugar vamos a ver como abrir un archivo, escribir datos en este archivo y finalmente cerrarlo. Mirad el siguiente ejemplo

# abrimos el archivo asignándolo a una variable
archivo=open('/home/pi/Desktop/fichero.txt','w')
# escribimos en el fichero los datos
archivo.write('Primera línea del fichero\n')
archivo.write('Segunda línea del fichero\n')
# cerramos el fichero
archivo.close()
click aquí para descargar el código


jueves, 18 de agosto de 2016

Progamación Python XIII (control excepciones)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como controlar las excepciones con python. Seguramente si habéis seguido los anteriores post de python en algún momento al ejecutar el código python os ha devuelto un error o excepción, y el código no se ha ejecutado de forma correcta, bien porque hemos cometido un error al escribir o bien porque hemos provocado un error involuntario. El mensaje de error que devuelve python muchas veces no queremos mostrarlo tal cual al usuario, de manera que tendremos que controlar el error y devolver un mensaje concreto.




1. Control de excepciones con try ... except

1.1 Generar un error en python

Para poder ver como funciona el control de errores y/o excepciones lo primero que vamos a hacer es crear un código que genere un error, por ejemplo vamos a definir una lista de 9 elementos y vamos a intentar acceder al elemento núemero 10 (que no existe), lo que provocará un error de ejecución del programa. Seguid el ejemplo

# guardamos en una variable una lista de elementos
lista_numeros=[0,1,2,3,4,5,6,7,8]
# mostramos por pantalla el elemento 2 de la lista
print(lista_numeros[2])
# mostramos por pantalla el elemento 10 de la lista que no existe
print(lista_numeros[10])
# mostramos por pantalla el elemento 6 de la lista
print(lista_numeros[6])
click aquí para descargar el código
al ejecutar este código en la consola de python veremos por pantalla el elemento 2 de la lista y luego obtendremos un error IndexError, parecido a este

Traceback (most recent call last):
    File "<stdin>" , line 6, in <module>
    print(lista_numeros[10])
IndexError: list index out of range

domingo, 7 de agosto de 2016

Nueva RaspberryPi A+

Hace unos días se presentó un nuevo modelo de RaspberryPi A+, un producto más económico que el modelo de RaspberryPi B. Aunque no podemos destacar grandes mejoras, solamente que ahora dispondremos de 512 MB de memoria RAM. En definitiva se trata de una RaspberryPi Zero pero con conexiones de HDMI y alimentación normales (no nos hace falta un adaptador micro) y evidentemente su tamaño se mantiene igual, aquí os dejo una imagen.




El tamaño se mantiene 65x56mm, y el resto de especificaciones también excepto la RAM:
  • Soc Broadcom BCM2835
  • procesador a 700 Mhz
  • GPU VideoCore IV de doble núcleo
  • 512 MB RAM
  • Salida video HDMI (puerto inferior centro)
  • Ranura Micro SD
  • puerto micro USB para la alimentación (puerto inferior izquierdo 5V a 2 A)
  • puerto USB2 para datos (puerto derecho)
  • incorpora 40 Pin GPIO (en la parte superior)
  • Conexión para una cámara (puerto izquierdo)
Es una lástima que no incorpore también un puerto Ethernet o red WiFi, de manera que las mejoras son básicamente en el aumento de la RAM, a 512MB y en la eficiencia energética de la placa. Personalmente creo que por la diferencia de precio es mejor comprar el modelo de Raspberry Pi B+, mucho mas completo y con poca diferencia de tamaño.

Os dejo un enlace para ver con detalle todas las características

https://www.modmypi.com/raspberry-pi/model-a-plus/raspberry-pi-model-a-plus-new

Y aquí os dejo el enlace de la tabla comparativa de modelos:

jueves, 4 de agosto de 2016

Progamación Python XII (números aleatorios)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como obtener números aleatorios con python. Para ello vamos a necesitar importar módulos, tal y como vimos en un post anterior.





1 Módulo para obtener números aleatorios (random)

En Python podemos usar el módulo random para obtener lo que se define como números aleatorios, este módulo dispone de varios métodos, pero solo vamos a ver los más comunes. Para más información podéis visitar la web de referencia de python

https://docs.python.org/3/library/random.html#module-random


1.1 Números aleatorios con randint()

randint(inicio,fin) nos permite obtener un número aleatorio dentro de un rango de números (que podemos especificar), veamos un ejemplo

# importamos en modulo random
import random
# guardamos en una variable el numero aleatorio obtenido
numero_a=random.randint(1,6)
# mostramos por pantalla el numero aleatorio obtenido
print(numero_a)
click aquí para descargar el código
en este ejemplo obtendremos un número aleatorio comprendido entre 1 y 6 (ambos incluidos).