Raspberry Pi – Asignando un dominio .local

Es muy probable que ha estas altura estemos bien familiarizados con el comando ifconfig, un comando que nos permite conocer la dirección IP que se le ha asignado a nuestra Raspberry Pi y que sirve de referencia para muchas de las actividades que podemos hacer con ella, acceso SSH, VNC, Web, etc.

¿Pero que sucede cuando por alguna razon olvidamos la IP, o reiniciamos el Router y le asigna una dirección diferente a la Raspi?, en el mejor de los casos tenemos el teclado y monitor conectados para ver en pantalla la nueva IP, pero, ¿y si no es así? estoy seguro que para muchos esto ha sido un gran dolor de cabeza.

Una de las maneras mas fáciles y rápidas de darle solución a este problema, es aplicando una técnica conocida como mDNS o Multicasting Domain Name Servicing, que básicamente consiste en tener un pequeño servicio (demonios en linux) en nuestra Raspi que le permita ser descubierta por cualquier equipo en la red a través de un nombre de dominio.

domain name

Antes de empezar con la instalación es importante tener las referencias y el software de nuestra Raspi actualizado, esto básicamente es una costumbre a considerar para mantener al día nuestro software y reducir al máximo los posibles bugs entre versiones. Para hacerlo solo ejecutamos:

sudo apt-get update

sudo apt-get upgrade

En caso de que aparezca algún tipo de mensaje solo tecleamos “Y” para que continue con la instalación. Posteriormente instalaremos “Avahi”, el servicio que mantendrá nuestra tarjeta visible en la red:

sudo apt-get install avahi-daemon

Prácticamente con esto seria suficiente, pero podemos mejorarlo aun mas definiendo algún nombre de dominio único que podamos recordar con facilidad y que suele ser de gran ayuda para cuando tenemos mas de una Raspberry Pi conectada a la misma red.

Para lograr este ultimo paso editamos los archivos:

sudo nano /etc/hosts

Y cambiamos la palabra “raspberrypi” de la ultima linea por el nombre que queramos asignarle, “robotcos” en mi caso. Y del mismo modo el archivo:

sudo nano /etc/hostname

reiniciamos para terminar y deberíamos poder acceder de la manera que queramos (SSH, VNC, Web) con el nombre que asignamos de la siguiente manera:

ssh pi@robotcos.local

.local es una extension reservada para LANs, por lo que al ser interpretada por un router automáticamente hace una búsqueda en la red local.

Simple no!? y mucho mas fácil de recordar que una dirección IP.

 

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 🙂

 

Arduino y Atmel lanzan el nuevo Arduino Wi-Fi Shield 101

Hace pocos días el equipo de Arduino junto con Atmel anunciaron su nueva colaboración, el Arduino Wi-Fi Shield 101. Este nuevo shield permite el prototipado rápido para aplicaciones “Internet of things” integradas directamento a Arduino.

Entre las caracteristicas con las que cuenta este nuevo shield es la capacidad de desarrollar aplicaciones más seguras ya que cuenta con CryptoAuthentication device que permite a los usuarios incorporar fácilmente capacidad de autenticación de hardware en su diseño. Además cuenta con un chip Atmel que es parte de SmartConnect family

Arduino Wi-Fi Shield 101 es compatible con Arduino Uno R3. Aún desconocemos el precio exacto de este Shield pero esperamos tenerlo pronto en nuestras manos.

Codebender, programa Arduino desde la web

Sin duda los web IDE’s se han vuelto muy populares hoy en día y para Arduino no pudo ser la excepción. En esta ocasión te presentamos Codebender, una plataforma (no oficial de Arduino) con la cual podrás programar casí cualquier Arduino desde la web, y digo casí por que estoy seguro que abarca 99% de toda la famila Arduino.

Codebender se describe bajo el moto de “code fast, code easy” (programa rápido, programa fácil) y realmente es que están haciendo un gran trabajo estos chicos. Esta plataforma nos permite escribir código, compilarlo, mandarlo a nuestro Arduino y además compartir nuestro código.

Screen Shot 2014-09-18 at 4.15.25 PM

Codebender fue inspirado en todas aquellas personas nuevas con Arduino y que tienen que gastar mucho de su tiempo descargando/configurando su IDE de Arduino. Con esta plataforma se vuelve todo más simple, solo tienes que crear una cuenta, descargar un par de drivers para tu browser y listo, puedes programar tu Arduino. Las ventajas de esto es que todo vive en la web al igual que tus proyectos así que no tienes que preocuparte por tus archivos nunca más. El problema de los drivers y sistemas operativos está resuelto, solo necesitas un web browser y ya (te recomiendo Google Chrome o Mozilla Firefox).

Prueba esta plataforma y también tu quedarás enamorado. Es muy sencilla de configurar, la misma aplicación web te va ayudando.

 

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.

123D Circuits, simula Arduino desde la web

En esta ocasión te vamos a presentar 123D Circuits, una excelente herramienta para aprender a programar Arduino de una manera virtual. Esta App nos permite crear circuitos, programar Arduino y simular nuestro proyecto.

 

123D circuits está pensado para la colaboración y fabricación de PCB’s. El mismo simulador contiene una sección donde podemos diseñar el PCB del circuito contando con la opción de descargar los archivos para fabricar nosotros mismos el circuito o mandarlo fabricar con ellos.

Screen Shot 2014-08-16 at 5.56.15 PM

Simulador
En esta sección puedes diseñar tu circuito con Arduino, es tan sencillo como en la vida real ya que contiene una gran cantidad de componentes tanto de entrada como de salida. Aquí mismo es donde puedes poner a correr tu código y ver funcionar tu proyecto.
Screen Shot 2014-08-16 at 5.34.36 PM
Diseño de PCB
123D circuits está preparado para que acomodes tus componentes y crees el diseño del PCB. Una vez que hayas terminado tu proyecto puedes descargar los archivos para que fabriques tu propio circuito o lo puedes mandar fabricar con alguno de los proveedores.

 

Screen Shot 2014-08-16 at 5.49.19 PM

No importa si ya tienes o no experiencia con Arduino, está App resultará ser demasiado útil para ti y también para las personas que se adentran al mundo de Arduino. Haz tu cuenta de 123d Circuits.

 

Introducción a Tecnología Vestible / Wearable Technology

En esta ocasión traemos un proyecto bastante interesante y enfocado a tecnología vestible. Y para hacer esto hemos hecho una colaboración con Mireya de Hablobajito quien es una chica apasianada al DIY (Do It Yourself), puedes ver su canal de Youtube donde hay muchos tutoriales para hacer manualidades muy interesantes. Pero antes de explicar más a fondo el proyecto te vamos a explicar qué es tecnología vestible o tambien llamada wearables.

Los “wearables” o también conocidos como “fashion electronics” hace referencia a ropa y/o accesorioas que se les ha incorporado algo de electrónica. El diseño normalmente incorpora funciones y caracteristicas algo básicas pero que pueden llegar a hacer al accesorio algo funcional o más atractivo. En el mercado hay dispositivos electrónicos vestibles aún más interesantes, algunos ejemplos son: Pebble, Jawbone, Fixbit o la nueva tendencía de Google por Android wear.

En este proyecto que hemos hecho con Mireya modificamos una mochila para agregarle una función más. Dicha funcion esta basada en conectar unos cuantos LED’s y un microcontrolador para hacer un sistema de iluminación interno en la mochila.

wear1

Para este proyecto utilizamos los siguientes materiales:

  • LED’s especiales para textiles
  • Un microcontrolador Gema
  • Hilo conductor
  • Agujas
  • Portabaterias
  • Baterías

wear2

En el video puedes ver todo el proceso para hacer el proyecto. En este post vamos a explicar como programar el microcontrolador Gema.

Primero tienes que bajar el entorno de desarrollo de Gema de los siguientes links;

Gema IDE para Mac

Gema IDE para Windows

También deberás seguir estas instrucciones (estamos trabajando para traducirlas).

Una vez que hayas hecho todo eso tienes que conectar tu Gema y programarlo con el siguiente código.

Si tienes dudas de programación o Arduino te recomendamos revisar los tutoriales que hemos hecho de Arduino. Así mismo si tienes alguien que sepa de electrónica y/o programación puedes pedirle ayuda.

Aquí te dejamos con el video. Cualquier duda comenta este post!

Código


// vamor a configurar los pines como en Arduino:
const int buttonPin = 1; // aquí ponermos el pin del boton que es el velcro
const int ledPin = 2; // aquí ponemos el pin de la señal del LED
int buttonState = 0; // variable para leer el boton
void setup() {
// configuramos el LED como salida
pinMode(ledPin, OUTPUT);
// configuramos el pin del velcro como entrada
pinMode(buttonPin, INPUT_PULLUP);
}
void loop(){
// leemos el estado del boton (velcro)
buttonState = digitalRead(buttonPin);
// preguntamos si el velcro no esta cerrado
//si esta abierto entonces prendemos los LEDs
if (buttonState == HIGH) {
// aquí prendemos los LED's
digitalWrite(ledPin, HIGH);
}
else {
// aquí apagamos los LED's:
digitalWrite(ledPin, LOW);
}
}

view raw

gemaLight

hosted with ❤ by GitHub

Hackeando Timberman

Los videojuegos simples se han puesto mucho de moda ultimamente. Timberman es un adictivo videojuego donde un leñador tiene que talar un árbol sin ser aplastado por sus ramas. Este juego necesita mucha agilidad tanto mental como en los dedos pero qué pasaría si quieres romper tu record. Puedes ponerte a jugar horas y horas o puedes hackear el juego.

Valentin Haun encontro la manera de romper su record en este videojuego usando Arduino. En el video puedes ver como esta funcionando y a la vez puedes encontrar toda la explicación en Github.

 

Reto Arduino Mega de Lionchip Store

En esta edición hemos decidido colaborar con Lionchip Store y organizar un concurso para poder ganar un Arduino Mega. Las bases son sencillas y nuestro objetivo es explotar la creatividad de nuestra comunidad para que propongan un proyecto hecho a base de Arduino y el cual aproveche al máximo las capacidades de esta tarjeta.

Las bases son las siguientes:

* Proponer un proyecto de Hardware el cual utilice como elemento principal un Arduino Mega. Es posible que utilice alguna otra tarjeta de desarrollo, componentes, sensores, actuadores y de más pero el componente principal deberá ser un Arduino Mega.
* El proyecto debe aprovechar al máximo los recursos con los que cuenta el Arduino Mega. El proyecto que aproveche de manera optima los recursos de esta plataforma tendrá más puntos a favor.
* La propuesta podrá apoyarse de imágenes, fotos, videos, etc. con el objetivo de que la idea del proyecto quede más clara para los jueces.
* El proyecto se tiene que subir en el Muro de Facebook de Hardware Hacking Mx haciendo mención de Lionchip Store.

La forma en que se determinarán los ganadores sera la siguiente:

* 50% de la calificación será determinada por el número de “likes” o “me gusta” en Facebook.
* Solo contará los “likes” o “me gusta” de las personas que hayan dado “likes” o “me gusta” a las paginas de Hardware Hacking Mx y Lionchip Store
* El otro 50% de la calificación será determinada por un grupo de jueces que evaluará las ideas tomando en cuenta:

* Creatividad
* Originalidad
* Complejidad
* Uso optimo de recursos

Cualquier duda acerca del concurso puedes preguntar vía Twitter o por Facebook. La fecha limite para subir los proyectos es 31 de agosto. Los ganadores serán dados a conocer el día 8 de septiembre del presente año. Nosotros nos pondremos en contacto para enviar el premio a ganador. Solo podrán participar personas que estén en México.