Banana Pi, la placa hardware libre no tan mainstream.

Hola a todos, en este nuevo post le hablaré sobre la placa llamada banana pi, la placa “indie” en versión china y con esteroides de la raspberry pi.

¿Qué diferencias encontramos?

Primero vamos a ver las características de una placa que manejo actualmente; raspberry pi B+.

  • Procesador: Broadcom BCM2835 SoC full HD (igual que el modelo B)
  • RAM: 512 MB SDRAM 400 MHz (igual que el modelo B)
  • Almacenamiento: tarjeta microSD (en el modelo B era una SD)
  • USB: cuatro puertos USB 2.0 (en el modelo B sólo había 2)
  • Energía: 600mA hasta 1.8A a 5V (en el modelo B, 750mA hasta 1.2A a 5V)
  • Pines GPIO: 40 (en el modelo B, 26)
  • Precio: $29.95 Dólares

RASPBERRY_PI_B_PLUS_02

Ahora veremos las características de la banana pi.

  • Procesador: AllWinner A20 1Ghz ARM Cortex A7 dualcore
  • GPU: Mali 400 dualcore.
  • RAM: 1GB DDR3
  • Almacenamiento: tarjeta microSD y 4GB de memoria flash en placa.
  • USB: dos puertos USB 2.0
  • Energía: 5 volt vía MicroUSB (solo DC)
  • Pines GPIO: 26
  • Extras: IR, conexión SATA
  • Precio: $35.00 Dólares

BANANA_PI_02

Ahora ¿Qué podemos esperar de la experiencia como usuario?

Creo que cada una tiene potencial diferente. En el caso de la Raspberry encontramos mucho material e información, además de que es muy sencilla de usar si nunca fuiste usuario de linux, la banana tiene muy buen hardware, lo que más me agrada es el SATA y su GPU ya que no tiene problemas en correr software, inclusive sistemas operativos móviles sin ningún problema.

En teoría estas dos placas funcionan de manera similar, sin embargo usándolas encontré un grado de diferencia tanto en la instalación del O.S. como en la ejecución de programas y conectividad.

En el blog estaré subiendo algunos proyectos y guías del funcionamiento de la banana, además de algunas pruebas con sistemas operativos diferentes para que conozcan de primera mano y se animen a experimentar.

[11 de Julio] Taller de Introducción a Sistemas Embedidos con Raspberry Pi

tallerderaspberry

En The Inventor’s House tratamos de siempre traerles los mejores talleres de acuerdo a lo que se esta manejando en la actualidad, ya tenemos nuestra popular certificación de Arduino que acabamos de terminar, ahora les anunciamos nuestro nuevo Taller de Introduccion a Sistemas Embedidos con Raspberry Pi, ven y aprende con los los mejores  a manejar la mini computadora que esta cambiando el mundo.

Introducción: Raspberry Pi es una placa computadora (SBC) de bajo costo desarrollada en el Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas.

Por defecto, Raspberry Pi soporta Python como lenguaje educacional, pero cualquier lenguaje que compile en una arquitectura ARMv6 puede ser usada con la Raspberry Pi, así que no estamos limitados a Python.

La Pi puede pues usarse para hacer documentos, hojas de cálculo electrónicas, programar, jugar videojuegos, entre muchas actividades, pero el propósito de la misma es inspirar a los niños (y a los mayores también) a aprender cómo programar.

Descripción: El curso cubre todos los aspectos básicos para configurar, entender y echar a andar tu Raspberry Pi, para posteriormente extender su funcionalidad con el lenguaje de programación Python. Aunque las opciones son ilimitadas,además del manejo básico el sistema en consola.

De alguna manera la Pi se ha convertido en una plataforma que se puede usar en conjunto con Arduino por sus facilidades para ser programada e interactuar con el mundo real.

Objetivos Clave.

Al final del curso el asistente podrá realizar diversos proyectos relacionados con la elaboración de dispositivos controlados mediante Raspberry Pi.

Resumen de la Audiencia.

Este taller está enfocada a personas interesadas en temas de:

  • mecatrónica,
  • robótica y
  • domótica entre otros,

que desee experimentar con circuitos, sensores, servomotores y el uso de Raspberry Pi basados en hardware libre.

Pre-requisitos del Curso.

  • Nociones de electricidad y electrónica.
  • Conocimientos básicos de programación

Nivel : Básico – intermedio.

TEMARIO

  1. ¿Qué  es  el  Raspberry  Pi  (RPi)?  ­  Breve  descripción  del  RPi  y  “Raspberry  Pi Foundation”.
  2. Que  están  haciendo  las  personas  con  su  RPi  ­  Una  exploración  a  algunos proyectos interesantes.
  3. Qué son las distribuciones y cuales son las más importantes?
  4. Probemos  algunas  distribuciones!  ­  BerryBoot, XBMC,  Sugar,  Puppy,  Raspbian, etc.
  5. Que accesorios hay,  cuales son necesarios y qué consideraciones deben tenerse antes de adquirirlos?
  6. Instalación, Configuración, Accesorios y demás aspectos a considerar
  7. Demos de instalación Wheezy y otras distribuciones
  8. Concluir sesión  con una versión de BerryBoot instalado con varias distribuciones y experimentar con el media center.
  9. Preparación de la tarjeta SD
  10. Instalación vía NOOBS y copia directa
  11. Configuración inicial y actualización de software
  12. Explorando el modo gráfico
  13. Explorando la línea de comando
  14. Qué es Linux y algunos comandos básicos
  15. Concluir  sesión  con  Raspbian  Wheezy instalado y configurado listo para el resto
  16. Introducción  a  Python ­  Breve  descripción  de  qué  es Python y  su diferencia con otros lenguajes de Programación ­ Instalación ­ Uso del intérprete
  17. Declaración Variables y Tipos de datos básicos ­ numéricos y Strings
  18. Control: Condiciones, Condicionales e Iteradores
  19. Ejemplo completo Python
  20. Utilización de librerías externas para programación
  21. Módulo GPIO del Raspberry Pi para conexiones externas
  22. Elementos básicos de hardware y cómo controlarlos con el GPIO
  23. Prácticas y Proyectos

Horario: Sabado 11 y 18 de Julio de 10:00 a 14:00 hrs.

 

Costo:

Taller+Kit de Raspberry Pi 2 Modelo B+: $2,080.00 pesos

Taller+Kit de Raspberry Pi Modelo B+: $1,830.00 pesos

Taller: $1150.00 pesos

Miembros del hackerspace: 10% de descuento

 

Material Requerido:

OPCIÓN 1

Kit de Raspberry Pi 2 Modelo B+

  • 1 Raspberry Pi 2 Modelo B+
  • 1 Carcasa para Raspberry Pi
  • 1 Cable USB para alimentación
  • 1 Cargador 5V
  • 1 Memoria SD de 4GB
  •  Cables para protoboard
  • 5 x 10K resistencias para pullups en los botones
  • 5 x 560 ohm resistencias para LEDs
  • 1 LED rojo 10mm
  • 1  LED verde 10mm
  • 1  LED azul 10mm
  • 3 pushbuttons
  • 1 Foto resistencia

OPCION 2

Kit de Raspberry Pi Modelo B+

  • 1 Raspberry Pi Modelo B+
  • 1 Carcasa para Raspberry Pi
  • 1 Cable USB para alimentación
  • 1 Cargador 5V
  • 1 Memoria SD de 4GB
  •  Cables para protoboard
  • 5 x 10K resistencias para pullups en los botones
  • 5 x 560 ohm resistencias para LEDs
  • 1 LED rojo 10mm
  • 1  LED verde 10mm
  • 1  LED azul 10mm
  • 3 pushbuttons
  • 1 Foto resistencia

Material Extra que el participante debe traer:

  • 1 Cable ethernet (Obligatorio)
  • 1 Protoboard (Obligatorio)
  • Cable HDMI (Opcional)
  • Pantalla con HDMI (Opcional)

 

¿Facilidades de pago?
Puedes venir y abonar $500 pesos cada semana.

Para más información puedes contactarnos por las redes sociales o por correo electrónico.

E-mail: contacto@theinventorhouse.org
Twitter: @inventorshouse
Facebook: Inventor´s House

Nuestra dirección es: Guadalupe 306, De Guadalupe, Aguascalientes, Ags. C.P. 20059, casi enfrente del templo de Guadalupe

Nos vemos Inventores!!

Usando Mapillary en Raspberry Pi

mapillary_raspberrypi2Desde hace poco tiempo me he hecho fan de la comunidad Mapillary y su proyecto, he visto personas usar su smartphone, GoPro y algunos otros tipo de camaras para mapear su ciudad, es por eso que he realizado este proyecto para mapear mi ciudad con una Raspberry Pi basado en el proyecto de Picamera de Adafruit, he realizado un fork del repositorio de adafruit y lo he puesto en

https://github.com/sabas1080/RaspberryPi_Mapillary

Estas son algunas fotos de el proceso de desarrollo haciendo tests

mapillary_raspberrypi4

mapillary_raspberrypi5

mapillary_raspberrypi6

Ademas he realizado un instructable donde indico paso a paso como replicar el proyecto

http://www.instructables.com/id/Mapillary-en-Raspberry-Pi/

mapillary_raspberrypi3

 

mapillary_raspberrypi

Estas son algunas fotos que tome y subí a Mapillary con la Raspberry Pi

http://www.mapillary.com/map/im/3n0wM3EvocNTxGPKLEyqpw 

http://www.mapillary.com/map/im/uIY1uKnUrwi-RY51GYpsWQ

Todos están cordialmente invitados a participar en el proyecto por medio del repositorio

https://github.com/sabas1080/RaspberryPi_Mapillary

Espero ver pronto sus proyectos y comentarios

Saludos Inventores!

JNI en raspberry Pi

En este pequeño tutorial veremos como implementar JNI con C en raspberry pi.

Primero que nada empezaremos explicando un poco de que es JNI, después veremos los comandos para instalar java y WiringPi, por ultimo se explicara un código ejemplo básico para iniciar.

Instalación

Para trabajar sobre raspberry pi es necesario tener previamente montando una imagen de sistema en la raspberry, haber instalado una versión de java.

sudo apt-get update && sudo apt-get install oracle-java7-jdk

WiringPi es una biblioteca de acceso a los pines GPIO escrito en C, esta nos servirá para poder trabajar sobre lectura y escritura en los pines. Para su instalación les dejare esta guía y este vídeo de apoyo.

Ahora si estamos listos para comenzar.

¿Qué vamos a hacer?

En este ejemplo prenderemos uno de los dos leds seleccionado que tenemos. Para ello crearemos una interfaz de menú en java muy simple implementando buffereader para detecte la entrada del teclado que indicara cual led se prenderá, utilizaremos la tecla 1 y 2 para ello.

La parte de código nativo lo trabajaremos con C, en este proyecto generaremos una clase que se encargara del manejo de las instrucciones en este caso valorara el led que se selecciono para encenderse y ejecutara la instrucción de encendido.

 Para este ejemplo cree una carpeta de trabajo llamada ejemplo

 mkdir ejemplo

Dentro de ella cree mi proyecto, mi clase en java se llamara PrendeLed.java y en c se llamara Estado.c.

sudo nano PrendeLed.java

Nota: Es importante quitar los comentarios del código si no les marcara errores al compilarlo.

Código PrendeLed.java:

import java.io.*;  // importar
  public class PrendeLed{ // clase
   static int led; // variable led
public static native void  Estado(int led);
public static void main(String[] args){
PrendeLed prendeled= new PrendeLed();

BufferedReader entrada= new BufferedReader(new InputStreamReader(System.in)); // lectura

try{
System.out.println ("MENU: Elige Opcion"); // Menú 
System.out.println ("1) Prender Led Uno");
System.out.println ("2) Prender Led Dos"):

led=Integer.parseInt(entrada.readLine()); // leer entrada
 }catch(IOException e){}
 prendeled.Estado(led);
System.out.println ("Encendiste el led" + led);             
}
static{
 System.loadLibrary("PrendeLed");
  }
}

Código: Estado.c

#include <jni.h>
#include <stdio.h>
#include <wiringPi.h>
#include "PrendeLed.h"
JNIEXPORT void JNICALL
Java_PrendeLed_Estado(JNIEnv *env, jobject obj, jint led) {
wiringPiSetup ();
pinMode (0,OUTPUT); // GPIO17 , PIN 11 corresponde al pin 0 ver imagen 1.0 declaramos como pin salida
pinMode (2,OUTPUT); // GPIO27 , PIN 13 corresponde al pin 2 ver imagen 1.0 declaramos como pin salida
 if (led == 1) {
 digitalwrite(0,HIGH);
 digitalwrite(2,LOW);
 delay(4000);
 digitalwrite(0,LOW);
 }
 else if (led== 2) {
 digitalwrite(0,LOW);
 digitalwrite(2,HIGH);
 delay(4000);
 digitalwrite(2,LOW);
 }
 else {
 printf("Leds Apagados:");
}
 return;
}

Comandos para compilar y ejecutar:

javac PrendeLed.java // javac     NombreDelPrograma.java
javah -jni PrendeLed // genera el h java
cc -shared -I/usr/lib/jvm/jdk-7-oracle-armhf/include -I/usr/lib/jvm/jdk-7-oracle-armhf/include/linux -o libPrendeLed.so  Estado.c -lwiringPi

// Este codigo puede darles conflictos debido a que tienen que verificar la versión de instalación de su código java en este caso es open java 7. jdk -7-oracle-armhf // tu ruta de java

export LD_LIBRARY_PATH=.  // Pexara que agarre las librerias
java PrendeLed  //nombre de tu java para ejecutar si todo está bien

 

cod

Para la conexión:

Solo ocuparemos 2 leds, 2 resistencias de 220 o similares y cables.

cir

 

Agradecimientos especiales:

Diego Motafuka colaborador.

Descarga archivos de Mega con Raspberry

image08

Hola a todos, en varias ocasiones por la chamba que me cae en fiverr es necesario enviar imágenes de Raspberry comprimidas, la última vez me tocó enviar una imagen que pesaba casi 3 GB por la cantidad de cosas que instalé.

Mega  es mi servicio preferido para enviar estas pesadas imágenes debido a que su velocidad de subida y de descarga es muy buena (Dropbox y Google Drive no terminan por convencerme) y además tienes 50 GB de espacio gratis.

El problema recurrente es que siempre tengo que dejar subiendo esta imagen en mi computadora principal (en varias ocasiones he tenido que dejarla toda la noche), afortunadamente tenemos una interesante opción para hacer esto desde nuestra Raspberry (y no exactamente haciéndolo desde el navegador web).

Lo que vamos a usar se llama Megatools (http://megatools.megous.com/) lo cual es una interfaz de linea de comando para Mega.

Como primer paso necesitamos instalar las dependencias:

sudo apt-get -y install build-essential libglib2.0-dev libssl-dev libcurl4-openssl-dev libgirepository1.0-dev

Descargamos el código fuente y descomprimimos:

wget http://megatools.megous.com/builds/megatools-1.9.94.tar.gz

tar xvf megatools-1.9.94.tar.gz

Ahora aplicamos la típica secuencia para compilar en Linux:

cd megatools-1.9.94
./configure
make
sudo make install
sudo ldconfig

Agregaremos nuestra cuenta de  Mega, para esto necesitamos crear un archivo oculto llamado “.megarc” en el directorio  $HOME (/home/pi) y agregar las credenciales en el siguiente formato:

nano /home/pi/.megarc

Agregamos:

[Login]

Username = your@email

Password = yourpassword

Guardamos y salimos (ctrl+o y ctrl+x), para comprobar que se puede conectar ejecutamos:

megadf

Mostrará algunos errores debido a que no encuentra el entorno X11, puedes ignorar esto, y al final nos dirá los datos de almacenamiento de nuestra cuenta:

image01

Subir un archivo a Mega

Este es el escenario, tienes que subir un archivo a Mega, ya lo tienes listo para enviar en tu computadora principal y quieres subirlo a Mega con tu Raspberry.

Lo primero es copiar el archivo a una memoria USB y conectar esa memoria a tu Raspberry, después vamos a crear una carpeta y a montar la memoria en esa carpeta con los siguientes comandos:

cd $HOME

mkdir media

sudo mount /dev/sda1 media

df -h

image04

Con el comando “df -h” podemos ver si la memoria se montó correctamente, con “ls” podemos ver los archivos de la carpeta, en este caso el archivo de interés es “Comprobante de pago 2.pdf”

cd media

ls

image06

Para evitar que el archivo se pierda en el posible mar de archivos que tengamos en la raíz de nuestra nube en mega, crearemos una carpeta en nuestra nube llamada “pagos”, para esto hay que entender que tenemos la siguiente estructura de carpetas en la raíz de nuestra nube:

  • /Contacts Tu agenda de contactos de otros usuarios Mega
  • /Inbox Bandeja de entrada de mensajes de otros usuarios de Mega
  • /Root Carpeta donde se alojan los archivos
  • /Trashes Carpeta de la papelera de reciclaje

Nuestro interés se centra en /Root, que es la carpeta donde se alojan los archivos, procedemos a crear la carpeta:

megamkdir /Root/pagos

Y procedemos a subir nuestro archivo:

megaput –path /Root/pagos Comprobante\ de\ pago\ 2.pdf

Vamos a nuestra cuenta en Mega y podemos confirmar que el archivo se ha subido a la carpeta indicada.

image00

Descarga de un solo archivo de Mega

Ahora el escenario es más simple, tenemos un link que queremos descargar, con el siguiente comando descargamos el archivo:

megadl ‘https://mega.co.nz/#!ZxRgzDBT!aRABqj1xs8FQvYNkFzJCxsg-63j3sNdFkUleKMq01HM’

Hay que resaltar que se usa comillas simples (‘) de cada lado del link con el fin de evitar malas interpretaciones de la consola, no necesitas tener tu cuenta registrada para descargar un link publico con megadl (recuerda desmontar la memoria con “sudo umount /dev/sda1” para evitar perdida de archivos).

Sincronización de Carpetas

En ocasiones la cantidad de archivos que queremos subir (o descargar) son muchos , para este escenario usamos megasync.

Supongamos que encontramos varios archivos en mega que queremos descargar, lo primero es agregar los archivos a nuestra nube en Mega, para esto simplemente damos clic en importar a nuestra nube cuando tengamos la venta de descarga.

image03

Una vez importado lo movemos a una carpeta donde agruparemos todos los archivos a descargar, para este ejemplo tengo unas fotos de impresión 3D en una carpeta que quisiera descargar.

El truco aquí es descargar las imágenes con la Raspberry, pero que sean colocadas en la memoria USB de forma directa, esto es ventajoso si la cantidad de archivos es grande, ya que para pasar los archivos a nuestra computadora principal solo hace falta desconectar la memoria y copiar.

image09

Nos movemos a nuestra USB, creamos una carpeta y descargamos:

cd /home/pi/media
mdkir fotos
cd fotos
megasync –local ./ –remote /Root/fotos –download

image05

La opción –download es necesaria, debido a que el comportamiento por defecto de megasync es subir archivos. Ahora nuestras imágenes están en nuestra memoria USB, listas para ser descargadas a nuestra computadora principal (recuerda desmontar la memoria con “sudo umount /dev/sda1” para evitar perdida de archivos).

Ahora subiremos algunas otras fotos con el mismo comando, con “ls” podemos ver que he agregado un par de fotos a la memoria:

image02

Repetimos el comando pero sin la opción –download:

megasync –local ./ –remote /Root/fotos

Si nos vamos a nuestra nube podremos ver que los archivos se han subido.

image07

Dejar trabajando a la Raspberry

Si estas con una sesión de ssh y haces un megasync/megadl/megaput y cierras la sesión te darás cuenta que la ejecución termina, lo que es muy molesto si los archivos son muy grandes, para esto usamos el comando de linux nohup, el cual mantiene el proceso (programa) corriendo a pesar de que la sesión de consola ha terminado.

nohup megaput –path /Root/fotos test_mp4.mp4

Con esto concluimos este post, espero les sea de utilidad como lo es para mi, cualquier comentario o duda no duden en escribirla en la sección de comentarios.

Federico Ramos

Twitter: @tejonbiker

Blog: tejonbiker.wordpress.com

Más información y links:

Después de instalar megatools, en tu consola de la Raspberry ejecuta:

man megarc

man megadl

man megaput

man megammkdir

man megasync

http://rm-rf.es/nohup-mantiene-ejecucion-comando-pese-salir-terminal/

http://www.raspberrypi.org/forums/viewtopic.php?t=30523

https://github.com/megous/megatools

Añadiendo un Reloj de Tiempo Real a Raspberry Pi (DS3231)

IMG_20150305_150650556

En esta ocasión les voy a mostrar como agregar un Reloj de Tiempo Real (RTC por sus siglas en ingles) a nuestra Raspberry, pero antes que todo ¿qué es un RTC?

Un reloj de tiempo real es un circuito integrado que mantiene la hora actual y la guarda para su posterior consulta o manipulación.

IMG_20150305_150749341

¿Y esto para que nos sirve? Espero te hayas dado cuenta que cuanto tu apagas tu raspberry pi y la vuelves a encender las raspberry no conserva la fecha ni la hora actual, aunque tu la coloques correctamente antes de apagarla, esto se debe a que no se cuanta con un RTC por default.

IMG_20150305_150720430_HDR

En que casos se usa:

  • Medición de pruebas
  • Medición de eventos con registro de hora y fecha

Aunque controlar el tiempo puede hacerse sin un RTC, usar uno tiene beneficios:

  • Bajo consumo de energía (importante cuando está funcionando con una pila)
  • Libera de trabajo al sistema principal para que pueda dedicarse a tareas más críticas.
  • Algunas veces más preciso que otros métodos

Espero haya quedado un poco claro que beneficios se tienen al tener un RTC y sus aplicaciones, ahora comencemos con las instalacion de este modulo con el CI DS3231, lo primero que debemos (con nuestra raspberry apagada) hacer es conectarlo de la siguiente manera

IMG_20150305_150605137

IMG_20150305_150642391

Ahora encendemos nuestra raspberry y nos vamos a nuestra teminal y ejecutamos el siguiente comando

# Removemos de la blacklist el modulo para que pueda ser cargado al inicio
sudo sed -i 's/blacklist i2c-bcm2708/#blacklist i2c-bcm2708/' /etc/modprobe.d/raspi-blacklist.con

Con esto ya podemos ahora leer nuestro modulo por i2c, ya que este modulo se comunica por medio de este protocolo

# Ahora leemos el modulo
sudo modprobe i2c-bcm2708

Una vez activado hay que notificarle a linux que del nuevo dispositivo que hemos insertado

# Notificamos a linux del dispositivo de RTC
echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

Y podemos hacer una prueba de que se esta detectando el modulo

# Testeamos que linux pueda ver el modulo de RTC
sudo hwclock

En mi caso me dio una fecha del 2000, para actualizar la fecha a la correcta podemos usar, pero debemos estar conectados a internet

sudo ntpd -gq
sudo hwclock -w

O si por alguna razón no tenemos internet podemos hacerlo manualmente

sudo date -s "Mar 5 2015 12:46:00"
# Ahora que el sistema tiene la fecha correcta, simplemente tranferimos la información al chip:
sudo hwclock -w

Ustedes deben modificar los valores a su fecha actual

Ahora si queremos que desde el arranque nuestra raspberry detecte nuestro RTC debemos ejecutar el siguiente comando y con esto ya no tendremos que volver a ejecutar los primeros comandos en cada arranque

# Añadimos el RTC al arranque
sudo sed -i 's#^exit 0$#echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device#' /etc/rc.local
echo exit 0 | sudo tee -a /etc/rc.local

Bueno eso es todo, espero le haya servido este pequeño tutorial y espero un RTC sea de utilidad en sus proyectos.

Nos vemos Inventores!

Calabaza del Terror

calabaza_raspberry

En esta ocasión les traemos un instructable que realizamos para adornar en fechas de Halloween el hackerspace lo nombramos “La Calabaza del Terror” que al detectar movimiento genera sonidos con de gritos y risas malévolas XD.

Todo lo que se requiere es un Raspberry Pi, un sensor PIR (sensor de movimiento), unos cuantos led, una salida de audio y un poco de python. Todas las instrucciones y paso a paso se encuentran en el instructable.

http://www.instructables.com/id/Calabaza-del-Terror-con-Raspberry-Pi/

Ademas estamos participando en 3 concursos en instructables, te pedimos tu voto para ganar uno de los geniales premios que por cierto se quedaran para uso del hackerspace si llegamos a ganar, no olvides votar por nosotros

Calabaza del Terror con Raspberry Pivoten

Saludos Inventores!

Comprobando tarjetas SD defectuosas

Buen día a todos, esta es mi primera entrada en este blog, mi nombre es Federico Ramos (aunque también me pueden encontrar como tejonbiker), estudié Ing. Electrónica en la Universidad de Guanajuato.

Soy un completo fan de la plataforma Raspberry Pi, como bien se sabe, la Raspberry Pi (lo abreviare como rpi) utiliza una tarjeta SD para almacenar el sistema operativo.

Hace unos días compre una tarjeta SD Sandisk de 8 Gb por 90 pesos, un precio que se encuentra en un poco abajo del promedio por la zona donde la compre.

Mi interés especial fue en probar como esta marca se desempeña bajo el overclocking de la rpi.

Después de cargar el sistema operativo dos veces en la SD sin resultado alguno en la rpi decidí enfocarme un poco más a la tarjeta, los resultados no me los esperaba, la SD salio defectuosa (a mi parecer pirata).

Inspiración para esta prueba

Después de leer algunas notas de la convención 30C3 (aquí y aquí) quede perplejo de lo extendido que esta la piratería en este sector, si le agregamos a esto a que los precios se han reducido mucho en los últimos años tenemos un producto con lo cual se debe de tener especial cuidado al escoger.

¿Cuales son las consecuencias de usar una tarjeta corrupta?, la primera y más evidente es la perdida de información, tales como vídeos con segmentos dañados, archivos imposibles de abrir entre otros eventos, también se puede presentar como perdida de formato del sistema de archivos. Curiosamente el sistema operativo te deja formatear la memoria de forma normal (en formato rápido) y no despliega ninguna información de error, inclusive puedes copiar archivos y tampoco muestra ningún error, pero eventualmente, cuando se alcancen los sectores defectuosos los problemas comenzarán a surgir.

Diagnóstico de la tarjeta SD

Después de cargar el sistema operativo en la SD, el primer paso a seguir para diagnosticar la SD es observar bien el LED ACT de la raspberry, si este esta ligeramente encendido (se puede observar el led brillando muy tenue) es porque el arranque no se cargo correctamente, para corregir esto puedes volver a insertar la SD y reconectar la rpi, si ocurre lo mismo entonces la SD tiene un problema.

Yo nunca he tenido problemas con las imágenes descargadas del sistema operativo de la rpi (debo confesar que nunca he comprobado el SHA-1 de ningún sistema operativo de la rpi), así que descarté esta posibilidad.

Con lo que he tenido muchos problemas es con el adaptador de USB a SD, (un modelo como se muestra aquí), la rpi encendía pero se quedaba a medio arranque. El mejor adaptador que he encontrado es el que viene con el paquete de tres kingstone, si tu compu tiene una entrada SD mejor usa esa entrada.

Una vez sabiendo que el sistema operativo no es el problema (ya sea por acto de fe o haberla probado antes con una imagen que si funciona) y tampoco el adaptador SD, procedemos a hacer una prueba de integridad de información en la SD.

La siguiente prueba requiere tener una sola partición en la SD que ocupe toda la memoria (ya sea fat32 o NTFS), en Windows esto requiere un proceso especial, la forma más cómoda que he encontrado es por linea de comando en Windows.

Prueba de SD

Ahora procedemos a la prueba de la SD, descargamos el software h2testw (gratuito con su versión en inglés), conectamos la SD a la compu y abrimos el software, se verá la siguiente ventana:

 h2test_intro

(Consejo: selecciona la opción English para una mejor comprensión)

Presionamos “Select target” y escogemos la memoria sd, quedará la ventana como en la imagen anterior, también escogemos “all available space”.

Pulsamos “Write + verify”, en mi caso me deshabilita este botón porque previamente hice la prueba en esta memoria.

Cuando pulsamos “Write + verify” saldrá un mensaje diciendo que algunos sectores quedarán sin analizar debido al formato de archivos de la unidad, damos clic en aceptar.

Y comenzará a trabajar el programa.

¿Como funciona h2testw?

Es muy sencillo como trabaja este programa, escribe archivos con patrones conocidos que ocupan el espacio de toda la memoria y después lee esos archivos y compara los patrones leídos.

Al finalizar la prueba en la memoria SD quedará lo siguiente:

 sandisk_8GB_files_test

Que son los archivos que crea para comprobar, después de que el programa ha terminado el análisis puedes eliminar con toda seguridad estos archivos.

Resultado de h2testw

Llego la hora de interpretar los resultados de h2testw, que en realidad no son difíciles de interpretar, cuando acabe el programa de copiar y comprobar nos dará esta ventana (aproximadamente 40 minutos todo el proceso).

sandisk_8GB

Para mi mala suerte marca una unidad defectuosa, agrego el texto completo:

Warning: Only 7782 of 7783 MByte tested.
The media is likely to be defective.
951.8 MByte OK (1949487 sectors)
6.6 GByte DATA LOST (13988049 sectors)
Details:0 KByte overwritten (0 sectors)
0 KByte slightly changed (< 8 bit/sector, 0 sectors)
6.6 GByte corrupted (13988049 sectors)
0 KByte aliased memory (0 sectors)
First error at offset: 0x000000003b7e5e00
Expected: 0x000000003b7e5e00
Found: 0x9ad973567d108688
H2testw version 1.3
Writing speed: 4.63 MByte/s
Reading speed: 13.4 MByte/s
H2testw v1.4

Conclusión

Tengo una una SD que solo tiene cerca de 1 GB disponible, el problema es que debido a los algoritmos internos de la SD no hay garantía de que toda la información quede en sectores buenos, nunca he usado esta SD antes, lo que me hace pensar que esta SD es pirata.

Espero les haya gustado este post, cuando tenga más tiempo (en conjunto con otros problemas y otras soluciones)  volveré a escribir, por lo pronto les dejo el link de mi blog (que esta un poco desordenado por el momento).

http://tejonbiker.wordpress.com/

Cualquier duda, comentario o corrección no duden en escribir.

Fácil instalación de TP-Link TL-WN725 y TL-WN723N en Raspberry Pi (Realtek 8188eu)

raspberry_pi_wifi_Realtek8188_TIH

raspberry_pi_wifi_Realtek8188

ACTUALIZACIÓN 17/06/2014: Si por alguna razón no funciona este driver para tu versión de kernel prueba en este foro y busca el binario para distintos kernels, gracias a @tejonBiker

Ayer compre uno de los pequeños y baratos adaptadores USB wifi de TP-Link denominadados TL-WN723, estos aparatitos traen dentro el chipset Realtek 8188eu. Compré este dispositivo con la intención de por fin conectar mi Raspberry Pi inalambricamente a la red de The Inventor’s House.

Elegí este dispositivo por que en la wiki lista de dispositivos usb wifi compatibles de Raspberry se indica que esta tarjeta no requiere hub extra de alimentación para funcionar correctamente.

Estuve buscando en varios lugares como instalar el driver del TL-WN723 en linux, algunos  de los drivers no funcionaban por la versión del kernel, otros pedían compilar y las mejores fuentes que encontré estaban en ingles por eso decidí hacer este tutorial, recopilando información que consulte y que en mi caso funciono, en teoría debería funcionar para cualquier tarjeta con el chipset Realtek 8188

Añadir repositorio del driver

Añadir el repositorio creando el siguiente archivo /etc/apt/sources.list.d/repository.pi3g.com.list con la siguiente linea:

deb http://repository.pi3g.com/debian/ wheezy main

O puedes hacerlo de la forma fácil con el siguiente comando:

sudo wget -O /etc/apt/sources.list.d/repository.pi3g.com.list http://repository.pi3g.com/sources.list

Ahora debes añadir la clave publica, lo que garantizará los paquetes no son interceptados y alteraron durante la descarga. El comando apt-key add <keyfile> le permitirá hacer justamente eso. O en un solo comando:

wget -O - http://repository.pi3g.com/pubkey | sudo apt-key add -

Ahora hay que Instalar el paquete del controlador

En primer lugar hay que asegúrese de que el sistema está al día:

sudo apt-get update
sudo apt-get upgrade

Entonces sólo tiene que instalar el paquete rtl8188eu como cualquier otro paquete. Por ejemplo con este comando:

apt-get install rtl8188eu

Listo!! ya esta instalado

Como punto extra puedes modificar el fichero rpi-rtl8188eu/include/autoconf.h

Es preciso modificar dos aspectos:

Descomentar la línea #define CONFIG_LED, si es que tu dispositivo tiene un pequeño led azul, si la dejas comentada este led nunca encendera

Comentar la línea #define CONFIG_DEBUG_RTL819X. esto es una depuración que el driver hace automáticamente al iniciar el dispositivo y por lo cual es recomendado desactivar para que el inicio sea mas rápido.

Conectar a la red inalambrica

Probablemente quieras que tu Raspberry PI se conecte al arrancar. En ese caso edita el fichero/etc/network/interfaces para configurar el SSID y la contraseña de la red wifi:

Entramos a editar nuestro archivo con el siguiente comando

sudo nano /etc/network/interfaces

Y hay que dejar nuestro archivo de la siguiente manera

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
   wpa-ssid "nombre-de-tu-wifi"
   wpa-psk  "contraseña-de-la-wifi"
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Prueba que todo funciona apagando y volviendo a encender la conexión y mirando con ifconfig que wlan0 ahora ya tiene una IP:

sudo ifdown wlan0
sudo ifup wlan0
ifconfig

 

Espero en este paso ya este conectada su Raspberry Pi a su red inalambrica, no olvides suscribirte a nuestro canal de Youtube donde tenemos mas tutoriales sobre Raspberry Pi

raspberry_pi_wifi_Realtek8188_TIH

Fuentes:

http://blog.pi3g.com/2013/10/easy-tp-link-tl-wn725-driver-installation/

http://bitacora.eniac2000.com/?p=3439

Raspberry Pi Guía del Usuario Parte I y II en Español by Eben Upton

raspberry_pi_Matlab

raspberry_pi_Matlab

Desde hace tiempo en “The Inventor’s House” promovemos la Raspberry Pi, ya que creemos es una excelente herramienta para aprender electrónica y programación, hemos realizado varios vídeos, los cuales puedes encontrar en nuestro canal de youtube con algunas aplicaciones que puede ejecutar esta pieza de hardware libre. Por ello decidimos compartir esta traducción al idioma español de la guía de usuario realizada por el creador de raspberry pi, con el fin de promover la adopción de esta tecnología y con un libro completamente en español creemos sera mas fácil.

Esperamos les sirva para iniciar en el genial mundo de la frambuesa.

(NOTA: Mucha atención el link requiere código de desincriptacion para iniciar la descarga)

Descargar

Código de desencriptación: TiaU0wqiV_3bZg5F3KSOc1ob6cVK0xOptZuMMqg3buA

¿Como nos puedes agradecer? Compartiendo el link en tus redes sociales.

Para saber mas sobre raspberrypi en español no olvides seguirnos en tu red social favorita estamos en facebook, twitter, g+ y youtube, en el cual puedes encontrar mas vídeos de como usar raspberry pi y otras piezas de hardware.