Raspberry Pi – Drivers TL-WN725N

Como ya hemos hablado en este blog, una de las maneras mas practicas de conectar nuestra Raspberry a la red y a internet es mediante WiFi, ya que así tenemos esa libertad de movernos sin problemas de cables. Existe muy poca variedad de adaptadores USB compatibles con el sistema de nuestra tarjeta y es probable que algunos de estos no los encontremos ni en la tienda mas popular de nuestra ciudad, por lo que recurrimos a comprar cualquier modelo que al llegar a casa no nos servirá.

En esta entrega veremos como agregar algunos drivers, para lograr expandir la compatibilidad de nuestra Raspi, específicamente para TL-WN725N de TP-LINK, que suele ser uno de los mas fáciles de encontrar.

c26-TL-WN723N-1-l

El primer paso es revisar la version de Linux que tenemos instalada, el comando uname -a devuelve una descripción similar a:

Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux

De esta información lo que tomaremos para mas adelante es la parte 3.12.28+ #709, tengamos en cuenta que este dato puede variar para cualquiera.

En el siguiente paso debemos conectar el adaptador y mostrar el listado de los dispositivos conectados con el comando lsusb, encontraremos la descripción similar a:

Bus 001 Device 005: ID 0bda:8179 Realtek Semiconductor Corp.

Que corresponde al index y ID del adaptador USB que conectamos, el driver que instalaremos esta limitado a dispositivos con los siguientes IDs:

ID 2001:3310
ID 2001:330F
ID 07B8:8179
ID 0BDA:0179
ID 0BDA:8179

y para versiones de linux superiores a  3.12.28:

ID 056E:4008
ID 2001:3311
ID 0DF6:0076

Una vez que se tenga esta información tendremos que encontrar la relación con el archivo que tenemos que instalar en el siguiente listado:


########################################################################
3.6.11+ #371 up to #520 inclusive – 8188eu-20130209.tar.gz
3.6.11+ #524, #528, #532 – 8188eu-20130815.tar.gz
3.6.11+ #538, #541, #545, #551, #557 – 8188eu-20130830.tar.gz
########################################################################
3.10.18+ #577 – 8188eu-20131105.tar.gz
3.10.18+ #579, #585 – 8188eu-20131106.tar.gz
3.10.18+ #587 – 8188eu-20131110.tar.gz
3.10.18+ #590, #592 – 8188eu-20131111.tar.gz
3.10.18+ #594, #596 – 8188eu-20131113.tar.gz
3.10.19+ #600 – 8188eu-20131113.tar.gz
3.10.21+ #602, #604 – 8188eu-20131113.tar.gz
3.10.22+ #606 – 8188eu-20131206.tar.gz
3.10.23+ #608 – 8188eu-20131209.tar.gz
########################################################################
3.10.24+ #610 – 8188eu-20131209.tar.gz
3.10.24+ #614 – 8188eu-20131219.tar.gz
3.10.25+ #616, #618 – 8188eu-20131219.tar.gz
3.10.25+ #622, #624 – 8188eu-20131219.tar.gz
3.10.26+ #628 – 8188eu-20140110.tar.gz
3.10.27+ #630 – 8188eu-20140117.tar.gz
3.10.28+ #632, #634 – 8188eu-20140117.tar.gz
3.10.29+ #636, #638 – 8188eu-20140117.tar.gz
########################################################################
3.10.30+ #640, #642 – 8188eu-20140117.tar.gz
3.10.32+ #646, #648 – 8188eu-20140117.tar.gz
3.10.33+ #654, #656 – 8188eu-20140117.tar.gz
3.10.33+ #658 – 8188eu-20140117.tar.gz
3.10.34+ #660, #661 – 8188eu-20140117.tar.gz
3.10.36+ #662, #664 – 8188eu-20140117.tar.gz
3.10.36+ #665, #666 – 8188eu-20140117.tar.gz
3.10.37+ #667, #669 – 8188eu-20140117.tar.gz
########################################################################
3.10.38+ #675 – 8188eu-20140117.tar.gz
########################################################################
3.12.18+ #673, #677 – 8188eu-20140425.tar.gz
3.12.18+ #679, #680 – 8188eu-20140501.tar.gz
3.12.19+ #681, #682 – 8188eu-20140509.tar.gz
3.12.19+ #684 – 8188eu-20140509.tar.gz
3.12.20+ #685, #686 – 8188eu-20140509.tar.gz
3.12.20+ #687 – 8188eu-20140509.tar.gz
3.12.21+ #688, #689 – 8188eu-20140509.tar.gz
3.12.22+ #690, #691 – 8188eu-20140616.tar.gz
########################################################################
3.12.23+ #692 – 8188eu-20140626.tar.gz
3.12.24+ #693, #694 – 8188eu-20140705.tar.gz
3.12.25+ #698, #700 – 8188eu-20140705.tar.gz
3.12.25+ #701 – 8188eu-20140705.tar.gz
3.12.26+ #702, #703 – 8188eu-20140705.tar.gz
3.12.26+ #704, #707 – 8188eu-20140705.tar.gz
3.12.26+ #708 – 8188eu-20140705.tar.gz
3.12.28+ #709, #710 – 8188eu-20140908.tar.gz
3.12.28+ #712, #713 – 8188eu-20140908.tar.gz
########################################################################
3.12.29+ #714, #715 – 8188eu-20140908.tar.gz
3.12.30+ #717 – 8188eu-20141017.tar.gz
3.12.31+ #718, #720 – 8188eu-20141026.tar.gz
3.12.32+ #721 – 8188eu-20141107.tar.gz
3.12.33+ #722, #724 – 8188eu-20141107.tar.gz
3.12.34+ #725, #727 – 8188eu-20141107.tar.gz

Para mi caso  3.12.28+ #709, #710 – 8188eu-20140908.tar.gz hace match con la version de linux que tengo instalada por lo que 8188eu-20140908.tar.gz es el archivo que tendré que instalar.


wget https://dl.dropboxusercontent.com/u/80256631/8188eu-201xyyzz.tar.gz
tar -zxvf 8188eu-201xyyzz.tar.gz
sudo install -p -m 644 8188eu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8188eu.ko
sudo depmod -a

La serie de comandos anteriores indica la forma de descargar e instalar, recuerden cambiar 8188eu-201xyyzz.tar.gz por el del archivo correcto para su version, 8188eu-20140908.tar.gz en mi caso.

Si llegamos hasta aquí sin ningún problema, solo restaría configurar las credenciales de nuestra red como hemos visto anteriormente (WiFi Setup) y reiniciar la Raspberry Pi, espero les sirva :).

Referencia: Raspberrypi.org (ingles)

Raspberry Pi – Multiples redes WiFi

En uno de nuestros post anteriores hablamos de como configurar nuestra Raspi para conectarse de manera automática a la red utilizando un adaptador USB-WiFi (ver aqui), así como hablamos de acceder de manera remota desde otro equipo utilizando herramientas como VNC o SSH (ver aqui), lo cual nos facilita la vida al no tener que comprar un monitor y accesorios solo para usarlos con nuestra tarjeta.

Hasta aquí todo es felicidad, la Raspi se conecta al iniciar, entramos a ella por SSH o al modo gráfico por VNC y trabajamos en casa u oficina sin ningún problema, pero ¿que pasa cuando me tengo que mover? si necesito conexión tengo que volver a configurar la raspberry para la nueva red ¿cierto? y ocupare monitor y accesorios nuevamente, ¿tendré que llevarlo conmigo a todo lados?.

Bueno pues una de las soluciones mas simples y rápidas es configurar nuestra tarjeta para que recuerde el mayor numero de redes o puntos de acceso a los que posiblemente se podría conectar, la casa, la oficina, la escuela, la casa de un amig@, etc.

Para que esto funcione el primer archivo a editar es:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

y tendríamos que dejarlo similar a:


ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Red1"
psk="passwordRed1"
id_str="AliasRed1"
}
network={
ssid="Red2"
psk="passwordRed2"
id_str="AliasRed2"
}

view raw

wpa_supplicant

hosted with ❤ by GitHub

como vemos tenemos que crear un objeto “network” por cada red que nuestra Raspi recordara, así como un alias para cada una dentro del parametro id_str.

Y el segundo archivo es:

sudo nano /etc/network/interfaces

y tendría que quedar como sigue:


auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface AliasRed1 inet dhcp
iface AliasRed2 inet dhcp

view raw

wpa_interfaces

hosted with ❤ by GitHub

es muy similar al que teníamos anteriormente la única diferencia es que se agrega la referencia al archivo donde configuramos los datos de acceso y como manejara cada una de las redes. Y eso es todo! en teoría cada que nuestra Raspi encienda tratara de conectarse a cada una de las redes que hayamos listado en el archivo en el mismo orden en el que se pusieron, Red1, Red2, etc. hasta que logre una conexión. Sin duda para nosotros ha sido de gran ayuda puesto que ya no necesitamos de monitor y accesorios cada que hay que moverse, procuramos llevar listadas todas las posibles redes para conectarnos sin problema, incluso la de nuestro telefono para cuando las redes fallan y tenemos que compartir el internet, ojala les sirva tambien 🙂

 

EzTemp&RH: Easy Temperature and Humidity for Raspberry Pi

Nos gustaría mucho compartir esta campaña de indiegogo que nos parecio muy interesante. Se trata de un sensor de temperatura y humedad digital diseñado para Raspberry Pi. Este proyecto está siendo desarrollado por unos increibles Hackers del sur de España y se trata de EzTemp&RH.

Dicho sensor no solo es compatible con Raspberry Pi sino que cuenta con un puerto serial que lo hace compatible con más tarjetas de desarrollo. El dispositivo ha sido diseñado con un sensor de humedad HIH5030 de Honeywell el cual es muy popular en usos industriales, además cuenta con un termistor para medir la temperatura. Si bien existen otros sensores que hace lo mismo pero de una forma análoga o con protocolo propio, al parecer este sensor tiene mucha más estabilidad que los otros.

Este proyecto es Open Source y puedes ver los archivos en Github. Te invitamos a apoyar esta campaña en Indiegogo.

Raspberry Pi B+ agrega más puertos y caracteristicas consumiendo menos energía

Hoy por la mañana fue presentado el nuevo modelo Raspberry Pi B+ de la mano de Eben Upton (CEO de Raspberry Pi Foundation). Este nuevo modelo incorpora grander mejoras al modelo B del cual todos estamos enamorados. Este nuevo modelo integra el mismo procesador BCM2835 como su antecesor, corre el mismo software y mantiene sus 512 MB de RAM. Entre las mejoras de este modelo se encuentran las siguientes:

  • Más puertos GPIO: Este “header” ha crecido un poco ya que ahora cuenta con 40 pines manteniendo el mismo pinout de los 26 pines que tiene el modelo B.
  • Más puertos USB: Ahora contamos con 4 puertos USB 2.0 comparados con los 2 puertos del modelo anterior. Al parecer no habrá problemas de corriente al conectar 4 dispositivos a estos puertos.
  • Micro SD: El socket de la tarjeta SD fue remplazado por un comodo socket push-push micro SD.
  • Menos consumo de energía: Mediante la sustitución de reguladores lineales se ha reducido el consumo de energía entre 0.5 W y 1.0 W.
  • Mejor Audio: El circuito de audio incorpora una fuente de alimentación de bajo ruido por lo que esto no afectará la calidad de audio.

Al parecer las mejoras son significativas auque nos hubiera gustado ver mejoras más internas tanto de procesador como de memoria RAM. Raspberry Pi Foudation ha hecho una buena jugada ya que empezaban a aparecer muy buenos competidores. Esperaremos un poco antes de tener la nuestra.

 

Raspberry Pi – Lección 14 – Raspberry Pi como iBeacon

iBeacon

Introducción
A estas alturas es muy probable que ya hayan escuchado hablar sobre iBeacons, y probablemente tengan una idea de lo que son y del como funcionan. En esta entrega hemos decidido adentrarnos en el tema y abordarlo con un caso practico!. Estoy seguro que ahora que Apple libero sus especificaciones sobre estos dispositivos, escucharemos de ellos con mayor frecuencia.

 Que es?
En gran resumen, los iBeacons son pequeños dispositivos Bluetooth Low Energy (BLE) que proporcionan información especifica, como su posición y su respectivo indicador único (UUID), que incluso en cantidad, pueden usarse para obtener información sobre la navegación en espacios cerrados como tiendas o museos. Una de sus grandes y tan aplaudidas ventajas es la interacción con dispositivos sin necesidad de que el usuario realice alguna acción.

Caso Practico
Ademas de ser parte de la estandarización del Bluetooth 4.0, iBeacon incorpora un protocolo de comunicación que lo valida como tal, consiste básicamente en un único pulso de 128-bit (UUID) para catalogar una entidad u organización, y dos valores de 16-bit conocidos como “Major” y “Minor” para identificar a cada elemento de una misma entidad.
Un poco mejor explicado lo que necesitaría un BLE para convertirse en iBeacon es un set de bytes con los siguientes datos:
  • ID (uint8_t) – Siempre es 0x02
  • Data Length (uint8_t) – El numero de bytes en el resto del payload = 0x15 (21 en decimal)
  • 128-bit UUID (uint8_t[16]) – El ID de 128-bit que identifica la entidad u organización.
  • Major (uint16_t) – El valor “Major” (para determinar ubicaciones de la misma entidad)
  • Minor (uint16_t) – El valor “Minor” (para determinar los nodos dentro de una misma ubicacion)
  • TX Power (uint8_t) – Este valor se utiliza para estimar la distancia basado en el valor de RSSI 
Por ejemplo, la siguiente serie es valida para el standard iBeacon, separada por “pipes” solo para hacerlo mas entendible:
02 | 15 | B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D | 00 00 | 00 00 | C8
 
A esta señal solo le tendría que preceder el identificador de la compañía, 0x004c para el caso de Apple.

Configurando la RasPi
Como es de saberse, en estos momentos es un poco complicado conseguir un dispositivo iBeacon, y como Hackers curiosos estoy seguro que alguien ya se ha interesado en adquirir alguno para empezar a jugar.
Bueno pues navegando un poco en Internet hemos encontrado suficiente información para convertir nuestra Raspberry Pi en un iBeacon 100% funcional, veamos paso a paso como hacerlo:

1.- Lo primero que necesitaremos es instalar algunas dependencias.

sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev

iB001

2.- Seguido instalaremos Bluez, que es una de las mejores opciones como driver Bluetooth para sistemas Linux.

sudo mkdir bluez
cd bluez
sudo wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.11-tar.xz

iB002

como se ha descargado del repositorio oficial, habrá que compilar el Source Code, esta parte probablemente tome algo de tiempo, pero seamos pacientes y si todo ha ido bien hasta aquí, se instalara sin problema.

sudo unxz bluez-5.11.tar.xz
sudo tar xvf bluez-5.11.tar
cd bluez-5.11
sudo ./configure –disable-systemd
sudo make
sudo make install

iB003

Suponiendo que todo se instalo correctamente 🙂 , apagamos la RasPi (sudo shutdown -h now).

3.- Adaptador USB .

Como tal, la Rapberry no proporciona ningún tipo de comunicación Bluetooth, por lo que será necesario adquirir algún adaptador que nos ayude con esta tarea, no olvidemos que en esta ocasión no seria cualquier adaptador Bluetooth, tendría que ser versión 4.0.
iB007
En nuestro caso hemos conseguido uno de IOGEAR (GBU521) y nos ha funcionado muy bien, aunque hemos visto algunos otro ejemplos con el CSR8510 disponible en tiendas como Adafruit (ver aquí).

Lo conectamos y volvemos a iniciar la RasPi… desde consola y ubicándonos en la carpeta donde instalamos “bluez-5.11” podemos verificar que todo este instalado y configurado correctamente con el comando:
tools/hciconfig
tendríamos que ver una serie de mensajes similares a los de la imagen.
iB004
Podríamos encontrarnos con dos casos, que el servicio este inactivo (DOWN) o en modo escáner (PSCAN), pero nada de que preocuparnos, para que funcione como iBeacon tendríamos que arrancarlo de la siguiente manera:
sudo tools/hciconfig hciO up
sudo tools/hciconfig hci0 leadv
sudo tools/hciconfig hci0 noscan
echo esto, volvemos a verificar el servicio:
iB005
Entre lineas aparecera “UP RUNNING” lo que significa que el adaptador esta listo para funcionar como queremos.

Prueba Final

Para esta prueba hemos tomado la aplicación de Estimote, una de las empresas pioneras en la construcción de iBeacons  y que esta disponible de forma gratuita en la App Store.
Buscando un poco, encontramos el UUID que esta empresa esta manejando, así que solo tendríamos que asignarlo para que la aplicación lo detecte, seria un caso parecido para aplicaciones de cualquier otro proveedor.
El comando a ejecutar seria:
sudo tools/hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D 00 00 00 00 C8 00
Donde, 4C 00 corresponde al ID de Apple, seguido de la serie de bytes requeridos para la especificación iBeacon hasta C8.
En la aplicación básicamente observaremos que nuestra RasPi funcione como iBeacon, para el ejemplo seleccionamos la opción “Distance Demo” y tendríamos que ver como detecta posición de nuestra RasPi sin problema.
iB006

Espero les sea de mucha ayuda esta guía rápida, sobre todo si alguien por aquí hace Software y empieza a meterse con esta nueva tendencia. No prometo nada pero esperamos mas adelante mostrarles un poco el lado de la programación de Apps para interactuar con dispositivos iBeacon 🙂 .

Raspberry Pi – Leccion 13 – USO DE TELEGRAM DESDE LA TERMINAL

telegram

Hola, tras la recién adquisición de Facebook, se ha difundido el temor del cambio en el rumbo del servicio acostumbrado de WhatsApp. Afortunadamente la dependencia de este servicio está siendo cubierta por novedosas aplicaciones como lo es Telegram. Por suerte la página nos ofrece versiones no oficiales que podemos instalar en diferentes sistemas operativos.

Instalación

Para instalar en Raspbian ejecutamos desde la terminal:

1

telgram1

Después de haber clonado el repositorio de GitHub instalamos lo siguiente:

1
sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev

Ejecutamos el archivo de configuración y copilamos el programa:

1
2
./configure
make

telegram2

telegram3

¡ A ponerlo en marcha!

Para ejecutar el programa simplemente debemos ejecutar en la terminal:

1
./telegram -k tg.pub

telegrama4

Nota: Como primera vez la aplicación nos pide nuestro numero telefónico incluyendo el signo + y el área del país. Después  si aún no estamos registrados nos preguntará si queremos registrarnos, pedirá nuestro nombre y apellido. Posteriormente enviará un código de verificación a nuestro celular.

COMANDOS COMPATIBLES

Ejecutando el comando help, nos muestra un listado de todos los comandos que admite, sus parámetros y para qué sirve cada uno de ellos.

telegram5

MENSAJERÍA

  • msg <contacto> texto – envía un mensaje.
  • chat_with_peer <contacto> comienza una en una sesión de chat con este contacto. / Salida o / quit para finalizar con este modo.
  • add_contact <phone-number> <first-name> <last-name> – intenta agregar el contacto a contacto-lista por teléfono.
  • rename_contact <usuario> <first-name> <last-name> – intenta cambiar el nombre de contacto.
  • mark_read <contacto> – marca como leídos todos los mensajes con el contacto.

MULTIMEDIA

  • send_photo <contacto> <photo-file-name> – envía la foto.
  • send_video <contacto> <video-file-name> – envía vídeo.
  • send_text <contacto> <text-file-name> – envía un archivo de texto en forma de mensajes sin formato.
  • load_photo / load_video / load_video_thumb <msg-seqno> – cargas de foto / vídeo para descargar.
  • view_photo / view_video / view_video_thumb <msg-seqno> – carga de fotos / video para descargar y empieza visor predeterminado del sistema.

OPCIONES DE CHAT DE GRUPO

  • chat_info <chat> – imprime información sobre el chat.
  • chat_add_user <chat> <usuario> – añadir un usuario para chatear.
  • chat_del_user <chat> <usuario> – eliminar usuario de chat.
  • rename_chat <chat> <new-name>

BÚSQUEDA

  • buscar <contacto> patrón – patrón de búsquedas en los mensajes con los compañeros.
  • global_search patrón – patrón busca en todos los mensajes.

CHARLA SECRET

  • create_secret_chat <usuario> – crea charla secreta con este usuario.
  • visualize_key <secret_chat> – impresiones de visualización de la clave de cifrado.

ESTADÍSTICAS Y VARIOS INFO

  • USER_INFO <usuario> – imprime información sobre el usuario.
  • history <contacto> [límite] – historia impresiones (y la marca como leído). Límite predeterminado = 40.
  • dialog_list – imprime información acerca de sus diálogos.
  • contact_list – imprime información acerca de los usuarios en su lista de contactos.
  • suggested_contacts – información impresa acerca de los contactos.
  • show_license – imprime el contenido de GPLv2.
  • help – imprime esta ayuda.

EJEMPLO:

Para crear una conversación con algún contacto basta con ejecutar telegram y teclear el comando chat_with_peer <contacto> , se habré un chat interactivo. Para poder salir simplemente ejecutamos /exit

telegram8

telegram9

En este ejemplo usé Telegram desde mi ordenador y desde la Raspberry Pi. Otra ventaja de esta aplicación es que te permite registrar varios dispositivos e incluso chatear entre ellos sin ningún problema con un sólo número telefónico.

Para mandar una imagen es igual de sencillo. Sólo ejecutamos el comando send_photo <contacto> <ruta del la foto> y enseguida se empezará a cargar la imagen o foto.

telegram10

telegram11

Estoy buscando la manera de poder ejecutarlo desde Python para poder hacerlo interactivo con los pines de la Raspberry Pi pero por el momento es muy agradable chatear desde nuestra terminal de la Raspbian.

Raspberry Pi – Lección 12 – Uso de PiCamera con Python

picamerahk

 Hay muchas formas de usar nuestra Pi Camera con Python, sin embargo, siempre era con subprocesos, ejecutando un programa distinto a Python dentro de este. Hasta que hace pocos días salio la noticia en Raspberrypi.org  de una librería para controlar nuestra Pi Camera, nativa de Python. Con esta librería podemos controlar desde un preview hasta el control del led que incluye la Pi Camera. Todo esto gracias a  Dave Hughes.

Instalemos

Para instalar como todo programa es recomendable casi necesario actualizar nuestra Raspberry Pi, para que pueda encontrar la librería en los repositorios, usamos los típicos comandos para la terminal;

 
 
sudo apt-get update
sudo apt-get upgrade

y para descargar e instalar la librería basta con ejecutar esto en el Terminal.

sudo apt-get install python-picamera

Vista previa

Esta opción nos permite visualizar en tiempo real la imagen dela cámara, ademas de poder ajustar los parámetros como brillo y ver los resultados inmediatamente en la vista previa. Crearemos un ejemplo que nos permita ver la vista previa.

#!/usr/bin/python
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    time.sleep(10)
    picam.stop_preview()
    picam.close()

Lo guardamos y lo ejecutamos como cualquier otro programa de python mediante consola.

Tomar una Foto

Tomar una foto con esta librería basta con una función, como lo muestra el siguiente ejemplo:

#!/usr/bin/python
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    time.sleep(5)
    picam.capture(‘nombre.jpg’)
    picam.stop_preview()
    picam.close()

En el ejemplo fue guardada una captura con el formato ‘jpg’ pero de la misma forma podemos guardar la captura en ‘png’, ‘gif’, ‘bmp’, ‘yuv’, ‘rgb’ y ‘raw’. Lo que es bastante cómodo para poder guardar directamente al formato que ocupemos.

Filmar un Vídeo

Al igual que el anterior ejemplo basta con una función, en el siguiente ejemplo mostraremos con preview y gravaremos un vídeo al mismo tiempo de 20 segundos.

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    picam.start_recording(‘video.h264’)
        picam.wait_recording(20)
        picam.stop_recording()
    picam.stop_preview()
    picam.close()

Por el momento solo he podido grabar en formato H264,  es importante  agregar el wait_recording() ya que aparte de servir como el time.sleep(), hace un reconocimiento al mismo tiempo que va gravando y si por ejemplo ya no hay espacio en disco para la grabación.

Resolución

Como notaron al tomar la foto es de mayor resolución que el vídeo incluso que la vista previa. “En concreto, el sensor de la cámara tiene una resolución de 2592×1944 píxeles (aproximadamente 5 mega píxeles en el área), pero sólo los 1920×1080 píxeles en el centro del sensor se utilizan para las previsualizaciones o video” Dave Hughes. 

sensor_area

Por esta razón y muchas mas, la librería cuanta con una opción para seleccionar la resolución que queramos como en el siguiente ejemplo.

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.resolution = (2592, 1944)
    picam.start_preview()
    time.sleep(3)
    picam.capture(‘foto.jpg’)
    picam.stop_preview()
    picam.close()

También debido a que entre mas resolución la imagen es mas pesada, así que también nos brindan un modo de reescalar la imagen, es decir que abarque todo lo que la cámara ve pero que se guarde en una resolución menor .

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.resolution = (2592, 1944)
    picam.start_preview()
    time.sleep(3)
    picam.capture(‘foto.jpg’,resize=(1024,768))
    picam.stop_preview()
    picam.close()

 Led

Aveces queremos tomar fotos y que nadie se de cuenta por desgracia la cámara tiene un led que se enciende al usarla, ahora gracias a esta librería podemos desactivar este molesto led.

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.led= False
    picam.start_preview()
    time.sleep(3)
    picam.stop_preview()
    picam.close()

Nota: Para poder ejecutar en caso de ajustar el led, tendremos que ejecutar como root, o bien con sudo python programa.py

ISO

Para aquellos que sepan un poco mas de fotografía les agradara saber que se puede ajustar el ISO, para poder sacar mejores fotografías y es muy sencillo, solo tenemos que llamar a la función ISO e igualarla a un valor, que pueden ser alguno de estos; 100, 200, 320, 400, 500, 640, 800.

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    picam.ISO =500
    time.sleep(3)
    picam.capture(‘foto.jpg’,resize=(1024,768))
    picam.stop_preview()
    picam.close()

Velocidad de Obturación

Otra característica que me gusto mucho es que puedes controlar la velocidad de obturación, lo que te permite sacar fotografías a un mas profesionales. Los valores de dan en micro segundos.

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    picam.ISO =100
    time.sleep(3)
    picam.shutter_speed= 300000
    picam.capture(‘foto.jpg’,resize=(1024,768))
    picam.stop_preview()
    picam.close()

Brillo

Ademas de todas las anteriores igual se puede ajustar el brillo basta con asignar un valor del 0 al 100 .

#!/usr/bin/python
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.start_preview()
    picam.brightness= 60
    picam.ISO =100
    time.sleep(3)
    picam.shutter_speed= 300000
    picam.capture(‘foto.jpg’,resize=(1024,768))
    picam.stop_preview()
    picam.close()

Efectos de imagen

Como toda buena cámara, la Picam cuenta con efectos de cámara, ahora mismos solo he probado'negative' , 'solarize' y 'gpen'

#!/usr/bin/python
 
import time
import picamera
 
with picamera.PiCamera() as picam:
    picam.led = False
    picam.start_preview()
    picam.image_effect = ‘negative’
    time.sleep(20)
    picam.stop_preview()
    picam.close()

Nota:  Los parámetros como brillo, ISO, contraste, efectos de imagen , saturación y nitidez se pueden ajustar cuando la vista previa esta activada.

Se pueden ajustar infinidad de cosas mas, como saturacion, nitidez, rotar imagen, hacer streaming, time lapse, ráfagas de fotos muy rápidas. Los invito a que ustedes mismos experimenten con toda esta librería, encontraran toda la documentación en PICAMERA .

Este es un TimeLapse que hice cuando estaba probando la librería, espero y les guste. Gracias por su tiempo, les mando un saludo y suerte en sus proyectos…

portada

Raspberry Pi – Lección 10 – WiFi Setup

Sabemos de antemano que para conectar nuestra Raspi a internet no se requiere de nada especial, basta con conectar el cable de red al puerto Ethernet y listo! (para los modelos que cuentan con el), pero que sucede cuando queremos darle mayor libertad a nuestros proyectos y la longitud de un cable nos lo impide?.

En esta entrada veremos un poco de los métodos básicos para configurar la conexión WiFi en nuestra Raspberry Pi, empecemos viendo que necesitamos.

Adaptador WiFi

Adaptador WiFi

Ademas de una Raspberry por supuesto, aun y cuando sea la version sin puerto Ethernet, solo necesitaremos un dispositivo mas. El adaptador WiFi es muy común en estos días y muy fácil de adquirir lo podemos encontrar en diferentes versiones, desde miniatura hasta con soporte para montarse en mesa o pared e incluso con antena de largo alcance, obviamente dependiendo de las características pues también es el costo $, para este pequeño tutorial hemos usado una version miniatura con chipset de Realink que tiene un costo en Mexico de aproximadamente $130 pesos (10 USD), es bueno saber que la mayoría de las distribuciones que hoy podemos encontrar para instalar en nuestra Raspi vienen con muy buen soporte para los fabricantes mas comunes de este tipo de adaptadores, igual hemos echo pruebas con adaptadores con chipset de Realtek y nos ha funcionado a la perfección, el OS que utilizamos para esta prueba es Raspbian, la version oficial, y no hemos necesitado instalar ningún tipo de driver o software adicional.

Empecemos!, estoy seguro que ya algunos han noado el icono señalado en la imagen de abajo en el escritorio de la raspberry pi, parece ser un programa con interfaz gráfica que nos ayuda precisamente para configurar/conectar la WiFi, pero la verdad es que a mi solo me ha funcionado un par de veces, así que tratare de explicar la manera mas efectiva, aunque parezca ser la mas complicada :).

iconpi

El truco esta en la edición del  archivo /etc/network/interfaces , este archivo es tomado por configuración del sistema y encontramos en el básicamente la información que se necesita para establecer la conexión por WiFi.

dirfi

Al ser un archivo de sistema no es posible simplemente editarlo y guardarlo, se requiere el permiso del super administrador para poder hacerlo, así no nos queda mas que pelearnos un poco con la Terminal.

sudo interface

Para abrir el editor solo tenemos que teclear el comando mostrado en la imagen, seguramente nos pedirá el password “rapberry” es el que viene por default, a menos que lo hayan cambiado. Una ves en el editor probablemente veamos ya parte de la configuración, básicamente tendría que quedar como sigue:


auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "AquiElNombreDeRed"
wpa-psk "AquiElPassword"

view raw

interfaces

hosted with ❤ by GitHub

Y es todo!, al final no es tan complicado verdad? la configuración funciona para redes con cifrado WPA/WPA2 si cuentas con alguna red con cifrado WEP solo tendríamos que cambiar wpa-ssid por wireless-essidwpa-psk por wireless-key , una ves editado el archivo cerramos con ctrl + x aparecerá una pregunta sobre guardar antes de salir, solo tecleamos “y” para guardar y salir, si todo va bien solo restaría reiniciar la Raspi y esperar a que el sistema haga la magia, para comprobar que se haya echo la conexión pues que mejor que navegando un poco 🙂

screen

si acaso quisiéramos saber la IP que nos ha dado, para quienes usan VNC o SSH, el comando sudo ifconfig muestra la información en wlan0.

ifconfig

Nota: es importante conocer las características del adaptador que vayamos a usar, sobre todo las de consumo eléctrico ya que si la suma de este y de la Raspberry Pi sobrepasan el proporcionado por la fuente de alimentación es probable que no funcione o que se re inicie con frecuencia.

Fritzing ¿Qué es y como se usa?

Trabajar con circuitos impresos o PCB es algo muy común cuando nos adentramos al mundo de la electrónica. Existe muchos programas que nos permiten hacer este tipo de diseños pero en esta ocasión vamos a utilizar uno que nos ha gustado mucho. Su nombre es Fritzing y es un software de desarrollo de circuitos impresos el cual es open source y está disponible para Windows, Mac y Linux.

Captura de pantalla 2013-12-29 a la(s) 01.06.24

Este software se ha vuelto muy popular es por eso que desde que empezamos a escribir en este blog hemos usado Fritzing para representar todos los circuitos que hacemos (sí, por eso se ven tan bien). En esta ocasión decidimos escribir un poco acerca de esta increible plataforma.

Lo primero que tienes que hacer es descargar e instalar el software de Fritzing, cosa que es demasiado fácil y lo puedes hacer desde el siguiente link:

http://fritzing.org/download/

Conociendo Fritzing

Una vez que abramos Fritzing vamos a ver la pantalla principal la cual tiene varias partes que describiremos.

  • Nuestros proyectos: En esta parte estan los accesos directos a nuestros proyectos más recientes en los que hemos trabajado.
  • Vistas disponibles: Al trabajar en Fritzing nos encontraremos que podemos trabajar en nuestro proyecto en 3 vistas diferentes las cuales son: Protoboard, esquema y PCB. Más delante hablaremos más acerca de cada una.
  • Lista de componentes: Aquí tenemos acceso a una gran biblioteca de componentes para armar nuestros circuitos. Entre los componentes se encuentran los componentes más básicos y hasta tarjetas de desarrollo importantes tales como Arduino.
  • Inspector de partes: En esta sección accederemos al detalle de cada componente que seleccionemos.

fritzing1

Vista protoboard

Esta vista nos da la oportunidad de armar nuestro circuito de la misma manera como si estuvieramos trabajando con un protoboard. La forma en que interactuamos en esta sección es muy fácil ya que es algo a lo que estamos acostumbrados a trabajar.

proto

En la parte de abajo de esta vista podemos apreciar una barra de herramientas con la cual podemos agregar notas, girar los componentes o invertirlos. Además que se nos presenta la opción de compartir para enviar nuestro proyecto a la página oficial de Fritzing y compartirlo con toda la comunidad. Más debajo tenemos una herramienta para hacer zoom (acercamiento) a nuestro circuito, esto es muy útil cuando estamos trabajando con circuitos grandes y queremos apreciar mejor los detalles.

Para trabajar con esta sección lo unico que tenemos que hacer es arrastrar partes hacia la vista y los podremos empotrar al protoboar. Además la forma de cablear es demasiado sencilla ya que solo necesitamos conectar los pines de los componentes y arrastrar hasta donde queremos conectar el componente. Al seleccionar click derecho podemos cambiar el color del cable.

Vista esquema

En esta parte podemos trabajar con nuestro circuito de una manera más clara utilizando solo los simbolos de cada elemento. De esta manera es como si trabajaramos con papel y lápiz para dibujar nuestro circuito. Aquí veremos el circuito que armamos en el protoboard pero con sus respectivos simbolos.

Esta vista es muy útil cuando quieres representar tu circuito de una manera más formal. Es usada cuando quieres hacer un reporte para la escuela o documentar el circuito que estabas haciendo.

Ignorando el desorden del circuito podemos apreciar la vista esquema en la siguiente imagen.

esquema

En la parte de abajo tenemos casí las mismas herramientas que la vista de protoboard solo que ahora aparece además un botón que dice “autorutear” al presionar este boton Fritzing hará las conxiones necesarias para conectar de la mejor manera nuestro circuito. En nuestro ejemplo quedo algo así:

esquema2

Vista PCB

En esta ultima vista se ve nuestro circuito de la forma en que quedaria para imprimir en PCB. En la parte de abajo podemos ver botones para ver las diferentes capas de nuestro circuito, autorutear y exportar para PCB. El boton de autorutear es muy bueno ya que busca la manera en que todo quede interconectado pero además existe la posibilidad de que nosotros mismos modifiquemos el cableado.

PCB

Una vez terminado nuestro PCB se pueden exportar los archivos en PDF, SVG o Gerber para crear nuestro circuito físicamente. Existe la posibilidad de mandarlo fabricar con Fritzing y ahí mismo se hace un presupuesto del costo por impresión.

pcb2

Componentes

Fritzing cuenta con una gran colección de componentes de los cuales podemos hacer uso. Están los básicos donde encontraremos partes como resistencias, capacitores, LED’s, swithces, sensores, displays, etc. Además de tarjetas de desarrollo tales como toda la colección de Arduino, la famosa Raspberry Pi y tarjetas de la tienda de electronicos Sparkfun.

componentes

Inspector

En esta sección podemos ver más detalle de cada uno de los componentes. Aquí se encuentra información tales como el nombre, descripción, familia, id, tipo, tags, etc. Esto nos ayuda a conocer más acerca del componente con el cual estamos trabajando.

inspector

Como podemos ver Fritzing es una gran opción para diseñar nuestros circuitos y crear nuestros propios PCB’s. Además Fritzing es un proyecto Open Source creado por y para makers, hackers y entusiastas. Esperamos te haya gustado este programa que te presentamos. Más delante harémos tutoriales paso a paso para aprender a usar mejor este programa.

Crea películas con un estilo nostalgico con tu Raspberry Pi

Tal vez para muchos de nosotros la palabra “bioscopio” no nos haga mucha referencia pero tal vez si le preguntas a tus padres o abuelos te podrán dar más información acerca de esto. Un bioscopio se trataba de una maquina con la cual podías ver películas haciendo girar un rollo de video.

Jon Stam un Maker ha diseñado una máquina de nostalgia la cual es una bioscopio hecho a base de un Raspberry Pi. Este proyecto es mitad juguete y mitad arte ya que con solo poner un USB con tu video podrás ver la película de una forma muy a la antigua. Este proyecto no solo se trata de ver la película con un formato antiguo sino que tu mismo tienes que hacer girar un mango para reproducir el video. Incluso si dejas de girar el video se detiene o de igual manera puedes rebobinar girando hacia atrás.

El el video se explica mejor como funciona este interesante proyecto.