sábado, 19 de marzo de 2016

Python IV (usar cadenas)

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

Hoy vamos a ver como trabajar con cadenas en python, este post es un poco más extenso que los anteriores pero creo que es importante tener claro estos aspectos.

1.1 Crear variables de cadena


Tal y como vimos en el ejercicio anterior para asignar una cadena podemos usar dos métodos, con comillas simples y con comillas dobles.

# Variable de cadena encerrada en comillas dobles
var_Cadena1="abc"
print(var_Cadena1)
# Variable de cadena encerrada en comillas simples
var_Cadena2='abc'
print(var_Cadena2)

click aquí para descargar el código

las dos líneas de código que tenemos arriba ofrecen el mismo resultado, sin embargo en el caso que dentro de nuestra cadena tengamos que usar comillas dobles o simples, usaremos para encerrar la cadena el tipo de comillas que no están dentro de nuestra cadena, por ejemplo

# Variable de cadena encerrada en comillas dobles
var_Cadena1='Lucia es muy "inteligente" cuando le conviene'
print(var_Cadena1)
# Variable de cadena encerrada en comillas simples
var_Cadena2="Lucia es muy 'inteligente' cuando le conviene"

martes, 15 de marzo de 2016

Python III (operadores aritméticos)

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


1.1 Operadores aritméticos básicos

Como en cualquier otro lenguaje el trabajo con operadores matemáticos y cadenas de texto es básico. En los dos próximos posts vamos a abarcar estos dos aspectos. Para empezar en este vamos a ver el uso de los operadores aritméticos en python.


Los operadores aritméticos más comunes son suma, resta, multiplicación y división que se representan con los símbolos +, - , * y / respectivamente. Podemos usar además los paréntesis para agrupar operaciones, como en cualquier otro lenguaje. Veamos unos ejemplos


# Guardamos en una variable la temperatura que introduce el usuario

var_Centigrados=input("Introduzca la temperatura en grados centígrados: ")
# Calculamos y guardamos en una variable la temperatura en grados Kelvin
var_Kelvin=(int(var_Centigrados))+273.15
# Mostramos por pantalla los grados Kelvin (antes pasamos a cadena la variable)
print("grados Kelvin: " + str(var_Kelvin))
# Calculamos y guardamos en una variable la temperatura en grados Farenheit
var_Farenheit=(int(var_Centigrados)*9)/5+32
# Mostramos por pantalla los grados Farenheit (antes pasamos a cadena la variable)
print("grados Farenheit: " + str(var_Farenheit))

viernes, 11 de marzo de 2016

Python II (introducción de valores)

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


1.1 Introducción de valores


Después de ver el uso de las variables, en este post vamos a ver como podemos pedir al usuario que introduzca un valor, y usarlo en nuestro código de Python.


Para ello en python 3 usaremos el comando input(), si usáis python 2 tendréis que usar raw_input(). Veamos un ejemplo



# Declaramos una variable donde se asigna el valor que introducirá el usuario (nombre)
var_Nombre=input("Introduzca su nombre: ")
# Declaramos una variable donde se asigna el valor que introducirá el usuario (apellido 1)
var_Apellido1=input("Introduzca su primer apellido: ")
# Declaramos una variable donde se asigna el valor que introducirá el usuario (apellido 2)
var_Apellido2=input("Introduzca su segundo apellido: ")
# Ahora mostraremos por pantalla un mensaje con el nombre completo
var_NombreCompleto=var_Nombre+" "+var_Apellido1+" "+var_Apellido2
print(var_NombreCompleto)

el comando input() pese a ser muy sencillo de usar nos puede brindar grandes posibilidades tal y como veremos más adelante.

martes, 1 de marzo de 2016

Nueva RaspberryPi 3 Modelo B

Ayer se presentó de forma oficial un nuevo modelo de placa de la fundación raspberrypi, se trata de la RaspberryPi 3 Modelo B, este nuevo modelo nos trae algunas novedades importantes, por ejemplo lleva integrado la conexión wireless a través de WiFi con un wireless 802.11n  o por Bluetooth 4.1, se ha sustituido el socket  por un BCM2837/BCM43438 y la CPU es un Quad Core ARM Cortex-A53 de 64 bits a 1,2GHz. Por otro lado han mantenido el resto de características excepto la localización de los leds de encendido y actividad de la placa, y el precio continúa siendo el mismo unas 35$ (entre 30€-40€).



Me ha llamado mucho la atención la incorporación de un procesador de 64 bits, esto incrementará de forma importante el rendimiento de la placa y aunque actualmente no hay disponible software de 64 bits para este dispositivo, estoy seguro que no tardará en aparecer. En el blog nos aseguran que se mantiene la retrocompatibilidad con los modelos de placas anteriores ya que la arquitectura del nuevo Soc es muy parecida a los anteriores.

En definitiva tenemos una placa con el mismo tamaño pero con más potencia, a continuación os dejo el resto de especificaciones:
  • Soc BCM2837/BCM43438
  • procesador  Quad Core ARM Cortex-A53 de 64 bits a 1,2 Ghz
  • 1Gb RAM
  • Conexión wireless WiFi 802.11n/Bluetooth 4.1
  • Salida video HDMI
  • Ranura Micro SD 
  • puerto Micro USB para la alimentación
  • 4 puertos USB
  • incorpora 40 Pin GPIO
  • Puerto Ethernet 10/100
  • Slida de audio con jack/HDMI
En definitiva tenemos una placa mucho mejor por el mismo precio de siempre, poco a poco parece que los modelos de RapsberryPi, se acercan a otras placas más potentes del mercado pero manteniendo el precio.

También he actualizado la tabla comparativa con los diferentes modelos, aquí os dejo el enlace:

https://frambuesa-pi.blogspot.com.es/p/que-e.html



sábado, 27 de febrero de 2016

Python I (variables, comando de impresión y comentarios)

Ya expliqué en un post anterior como usar Python en RaspberryPi, con este y otros posts intentaré realizar un pequeño manual para saber lo esencial de este lenguaje y poder empezar a realizar ejercicios. Los encontraréis todos 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

Personalmente para trabajar yo prefiero hacerlo directamente sobre la consola IDLE de Python, y uso la versión 3. Para la puesta en práctica yo creo diferentes archivos python con el código y los ejecuto desde la consola para ver el resultado.

Si no tenéis claro como usar Python con RaspberryPi os dejo el link anterior.




1. Uso de variables

1.1 ¿Qué son las variables?

Para los que no habéis programado nunca, las variables son contenedores que almacenan un valor, este valor luego se pude usar y modificar. Para definir una variable solo tenemos que asignarle un valor, por ejemplo

variable_1=432
variable_2=56.12
variable_3="Bienvenido"
variable_4='Hola'
variable_5=True

en este caso la varaible_1 almacena un valor numérico entero (sin decimales) que es 432; la variable_2 almacena un valor numérico de punto flotante (con decimales) que es 56.12; la variable_3 almacena un valor de texto que es Bienvenido; la variable_4 también almacena un valor de texto que es Hola (para una variable de texto podemos usar indistintamente comillas dobles o simples); la variable_5 es una variable lógica (en otros lenguajes también se llama booleana) y puede almacenar solo dos valores, True o False (Verdarero o Falso).

miércoles, 24 de febrero de 2016

RaspberryPi, Raspbian Jessie revisión 2

Hola, desde el día 09/02/2016 disponemos de una revisión de la versión con algunas mejoras que os detallo a continuación.


1. Raspbian Lite


Para empezar en la zona de descargas de la web oficial de raspberrypi.org si accedemos al apartado de Raspbian encontraremos las imagenes de Raspbian Jessie y Raspbian Jessie Lite, el hermano pequeño que està disponible desde la anterior revisión, y como ya expliqué es una versión reducida de Raspbian, para aquellos puristas que no les gusta tener software añadido como Scratch, Wolfram, LibreOffice, etc... (cuidado que es muy minimalista, el SO una vez inatalado ocupa menos de 2 Gb, es posible que encontréis a faltar alguna cosa y la tendréis que descargar). En la versión anterior de Lite se detectó un problema para usar el paquete wicd (que sirve para configurar la conexión del dispositivo), no sé si estará solucionado, si el problema permanece, previamente tendréis que eliminar el paquete dhcpcd5 (en la línea de comandos) con la orden

sudo apt-get remove dhcpcd5

una vez hecho esto ya podéis usar wicd para configurar la conexión de vuestro dispositivo.


Bien, si dejamos de lado la versión Lite, estas son las novedades:

2. Novedades (solo para RaspberryPi 2)

2.1 Se ha añadido el Driver acelerador por GPU a OPEN GL. Se trata de un software en pruebas solamente para Raspberry Pi 2, por defecto viene desactivado y si queremos activarlo tenemos tendremos que hacer 2 pasos: primero acceder al programa de configuración en una terminal con la orden 

sudo raspi-config

accedemos a la opción 9 Advanced Options

seleccionamos la opción AA GL Driver

una vez aceptado es posible que tengamos que reiniciar nuestro dispositivo. Atención este driver solo funciona con Raspberry Pi 2, activar-lo en dispositivos anteriores puede provocar un desastre!

En segundo lugar instalaremos el software, desde una terminal con la orden

sudo apt-get install mesa-utils

Tras la instalación podemos probar el funcionamiento a través de un par de juegos  que también podemos descargar con las órdenes

sudo apt-get install neverball

este juego luce así de bonito



sudo apt-get install oolite

y este así





3. Mejoras

3.1 Esta nueva versión lleva una actualización de Scratch que solventan algunos bugs, y mejoras de sonido, puertos GPIO, etc...

3.2 Una actualización para Sonic Pi, con nuevos efectos, y ejemplos.

3.3 Una actualización para Mathematica, con mejoras de uso para Sense HAT y Arduino.

3.4 También lleva una actualización de Node-RED, este software que se incorporó en la última revisión, trae solución de diversos errores principalmente.

3.5 Se han actualizado varias librerias como WiringPi que ahora permmite acceder a los puertos GPIO desde las diferentes aplicaciones sin usar sudo. RPI.GPIO Python library, con correcciones de uso y compatibilidad con la librería para GPIO Zero. Y para acabar las librerías de Java.

3.5 También se han corregido varios problemas como el funcionamiento del icono de volumen de la barra del escritorio. El editor del menú de inicio de aplicaiones que no permitía crear submenús. Y se ha corregido el software gráfico de configuración de la RaspberryPi, que se incorporó en la última versión y que ahora permite controlar correctamente el overclock de los diferentes dispositivos.

Si queréis actualizar vuestra versión de Raspbian Jessie al completo (haced antes copia de seguridad y todas esas cosas...), en primer lugar en la línea de comandos ejecutad la orden

sudo apt-get update

esto comprueba la cahe de los paquetes y si tenéis que actualizarla os pedirá autorización, una vez completado este porceso ejecutad la orden

sudo apt-get dist-upgrade

también os pedirá permiso para continuar, y luego a esperar que esta actualización tardará bastante, al final reiniciad la RaspberryPi. Una vez reiniciada os avisará que se ha actualizado el software y que es posible que se hayan modificado los archivos de configuración personalizados, el sistema hace una copia de  los archivos que modifica y deja los antiguos con la configuración que teníais en la carpeta /home/pi/oldconffiles (en el caso que sea necesario, sino estará vacía)

ejecutad también

sudo apt-get install raspi-gpio

para actualizar las librerias GPIO.
Si disponéis de una RaspberryPi 2 y queréis probar la aceleraciób gráfica usad

sudo apt-get install xcompmgr libgl1-mesa-dri





miércoles, 20 de enero de 2016

Programar con RaspberryPi, Python

RaspberryPi es un dispositivo fantástico para aprender a programar, podemos crear nuestros propios programas y además podemos hacer que estos interactúen con otros dispositivos que podemos conectar con nuestra Raspberry a través de los diferentes conectores como por ejemplo los GPIO.




1. Lenguajes de programación

RaspberryPi incorpora diversos lenguajes y/o software de programación algunos de ellos muy populares y enfocados a diferentes públicos, Scratch, Mathematica o Python son algunos de ellos.
Por ejemplo Scratch es un lenguaje de programación visual a través de cajas o contenedores ideal para los jóvenes, y permite programar de forma sencilla e intuitiva.
Otro lenguaje es Mathematica muy utilizado para álgebra y programas computacionales.
Tal vez el lenguaje más popular es Python (he leído por ahí que la palabra Pi de nuestra RaspberryPi, precisamente hace referencia a este lenguaje) que se ha hecho muy popular en los últimos años y es una buena opción para alguien que ya tiene conocimientos de programación y quiere trastear un poco con su RaspberryPi.
En la última versión de Raspbian se ha incorporado más software de programación y siempre podemos obtener otros paquetes de software a través de apt o pi-package, podéis consultar el siguiente post para Raspbian Jessie


o este pata las anteriores versiones


2. Programar con Python en RaspberryPi

Para usar Python en RaspberryPi podemos optar por dos versiones (Python II o Python III),
en la comunidad de programación, Python II continúa siendo muy popular por la gran cantidad de librerías disponible, algo que con la última versión aún no se ha conseguido. De todas formas si lo que queréis es aprender un nuevo lenguaje y trastear con la RaspberryPi por ahora la versión que escojáis no es muy importante, personalmente yo uso Python III (renovarse o morir).

2.1 Programar Python con IDLE

Si estais usando Raspbian Jessie podremos programar tanto en Python II como en Python III. La forma más sencilla es encender nuestro dispositivo y vamos al botón Menú-Programación