Raspberry Pi Cero conectada a pantalla de información


Raspberry Pi Zero es un nuevo dispositivo que entra fuerte en el terreno de los dispositivos conectados y a la Internet de las Cosas. Gracias a su reducido tamaño y consumo podemos darle un montón de posibilidades en casa, como por ejemplo la automatización de determinadas tareas o simplemente mostrar información en un espacio ínfimo. Especialmente si la complementamos con unpequeño display OLED como éste, comercializado por Adafruit.

Frederic Vandenbosch ha creado un interesante proyecto con la Raspberry Pi Zero, usando un  display de Adafruit anteriormente mencionado y un par de pulsadores soldados en los terminales GPIO de la Raspberry Pi.

Para conectar la Zero a internet, Frederic ha utilizado  una extensión wifi de la que ya hablamos en este blog   y que permite agregar conectividad Wi-Fi a la menor de las Raspberry Pi soldándolo directamente a la placa. Como podéis ver en el vídeo que acompaña la imagen, los dos pulsadores son programables y en los ejemplos propuestos permiten navegar por una serie de opciones, como por ejemplo mostrar la dirección IP o forzar la reconexión de la Raspberry Pi Zero a internet.

 

 

Hardware

El hardware consiste en los siguientes componentes:

El cableado del OLED y botones es bastante sencillo, como se ilustra a continuación:

adafrut

El dongle wifi se conecta de la misma manera como lo hice anteriormente con el hub USB:

  • Pi Zero PP1 a dongle 5V
  • Pi Cero PP6 al dongle GND
  • Pi Cero PP22 para dongle D +
  • Pi Cero PP23 para dongle D-

Por último, para mantener todo en su lugar, he diseñado una caja sencilla lo suficientemente grande para encajar todo. Un panel trasero se atornilla en el lugar para mantener todos los componentes en el interior, dejando al descubierto el puerto microUSB entrada de energía en el lado.

 

Un poco de cinta kapton evita contactos expuesto a tocarse y mantiene el cableado en su lugar. El dongle wifi se coloca en la parte superior para una mejor conectividad. Su LED azul brillante brilla a través del recinto, dando una clara indicación de su estado y la actividad.

Los archivos para el recinto de impresión 3D se pueden encontrar en Thingiverse: http://www.thingiverse.com/thing:1193350

Software

Por el lado del software del proyecto, se necesita la creación de la tarjeta microSD con la última imagen Raspbian Jessie disponible.Arrancando  desde el combo hub Pi Cero / USB con el teclado y wifi dongle conectado  porque el puerto USB de este proyecto Pi Cero se ha cableado a un dongle wifi y un teclado ya no se puede conectar .

Se configura el wifi añadiendo el SSID y la frase de contraseña correcta en el archivo / etc / network / interfaces. Después de probar la conectividad wifi, poner la tarjeta microSD de vuelta en el Pi correcta. Con la conectividad de red, es posible iniciar sesión con SSH y trabajar en el guión para mostrar la información deseada.

Uso de la Biblioteca de Python Adafruit OLED SSD1306 y algo de código Python personalizada, en el ejemplo se programan  tres pantallas diferentes:

  • Hora y fecha
  • Configuración de la red
  • Los medios sociales suscriptores / seguidores

El botón izquierdo a través de las diferentes pantallas, mientras que el botón derecho desencadena una acción personalizada por pantalla.

En el caso de la visualización de la hora y la fecha, el botón, cambia entre las 12h y las 24h representación. Para la configuración de red, obliga al wifi de volver a conectar mediante un descenso de la interfaz y obligando de nuevo. Por último, para evitar el tráfico excesivo, información de medios sociales solamente se recupera cada cinco minutos, al pulsar el botón de fuerza a la recuperación de la información.

Por supuesto, esto es sólo un subconjunto de lo que podría ser mostrado. Podría recuperar la información del tiempo, el correo electrónico, últimos tweets, etc … Usted también podría tener que desplazarse por pantallas diferentes sin necesidad de pulsar un botón. Todo es posible.

El código actual se puede encontrar a continuación. Está lejos de ser perfecto, pero hace el trabajo.

Por último, para conseguir que se inicie automáticamente al arrancar el sistema, cree un script lanzador (por ejemplo, “launcher.sh“) que contiene la ruta de acceso a la secuencia de comandos, así:

  #! / bin / sh
 cd / home / pi
 sudo python info_display.py y

Y por último, añadir el cronjob con el comando “sudo crontab -e“:

  reboot sh /home/pi/launcher.sh

Cada vez que el Pi se inicia, se pondrá en marcha el script.

#!/usr/bin/env python
import time
import Adafruit_SSD1306
import RPi.GPIO as GPIO
import Image
import ImageFont
import ImageDraw
import os
def display_time():
# Collect current time and date
if(time_format):
current_time = time.strftime(%I:%M)
else:
current_time = time.strftime(%H:%M)
current_date = time.strftime(%d/%m/%Y)
# Clear image buffer by drawing a black filled box
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Set font type and size
font = ImageFont.truetype(Minecraftia.ttf, 35)
# Position time
x_pos = (disp.width/2)/2)
y_pos = 2 + (disp.height48)/2 (35/2)
# Draw time
draw.text((x_pos, y_pos), current_time, font=font, fill=255)
# Set font type and size
font = ImageFont.truetype(Minecraftia.ttf, 8)
# Position date
x_pos = (disp.width/2)(string_width(font,current_date)/2)
y_pos = disp.height10
# Draw date
draw.text((x_pos, y_pos), current_date, font=font, fill=255)
# Draw the image buffer
disp.image(image)
disp.display()
def display_social():
# Collect social media subscribers/followers/… by parsing webpages
twitter = os.popen(curl https://twitter.com/f_vdbosch?lang=en | grep ‘data-nav=\”followers\”‘ | grep -o ‘[0-9]\+’).read()
youtube = os.popen(curl https://www.youtube.com/c/FrederickVandenbosch | grep -o ‘[0-9]\+ subscribers’ | grep -o ‘[0-9]\+’).read()
facebook = 0
instagram = os.popen(curl https://www.instagram.com/f_vdbosch/ | grep -o ‘\”followed_by\”:{\”count\”:[0-9]\+}’ | grep -o ‘[0-9]\+’).read()
googleplus = 0
# Put data in lists that can be iterated over
channels = [YouTube, Twitter, Facebook, Instagram, Google+]
subscribers = [youtube, twitter, facebook, instagram, googleplus]
# Clear image buffer by drawing a black filled box
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Set font type and size
font = ImageFont.truetype(Minecraftia.ttf, 8)
# Iterate over lists
for i in range(0, 5):
# Position channel name
x_pos = 2
y_pos = 2 + (((disp.height4)/5)*i)
# Draw channel name
draw.text((x_pos, y_pos), channels[i], font=font, fill=255)
# Position subcribers/followers/…
x_pos = disp.width 2 string_width(font, subscribers[i])
y_pos = 2 + (((disp.height4)/5)*i)
# Draw subcribers/followers/…
draw.text((x_pos, y_pos), subscribers[i], font=font, fill=255)
# Draw the image buffer
disp.image(image)
disp.display()
def display_network():
# Collect network information by parsing command line outputs
ipaddress = os.popen(ifconfig wlan0 | grep ‘inet addr’ | awk -F: ‘{print $2}’ | awk ‘{print $1}’).read()
netmask = os.popen(ifconfig wlan0 | grep ‘Mask’ | awk -F: ‘{print $4}’).read()
gateway = os.popen(route -n | grep ‘^0.0.0.0’ | awk ‘{print $2}’).read()
ssid = os.popen(iwconfig wlan0 | grep ‘ESSID’ | awk ‘{print $4}’ | awk -F\\\” ‘{print $2}’).read()
# Clear image buffer by drawing a black filled box
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Set font type and size
font = ImageFont.truetype(Minecraftia.ttf, 12)
# Position SSID
x_pos = 2
y_pos = 2
# Draw SSID
draw.text((x_pos, y_pos), ssid, font=font, fill=255)
# Set font type and size
font = ImageFont.truetype(Minecraftia.ttf, 8)
# Position IP
y_pos += 12 + 10
# Draw IP
draw.text((x_pos, y_pos), IP: +ipaddress, font=font, fill=255)
# Position NM
y_pos += 10
# Draw NM
draw.text((x_pos, y_pos), NM: +netmask, font=font, fill=255)
# Position GW
y_pos += 10
# Draw GW
draw.text((x_pos, y_pos), GW: +gateway, font=font, fill=255)
# Draw the image buffer
disp.image(image)
disp.display()
def display_custom(text):
# Clear image buffer by drawing a black filled box
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Set font type and size
font = ImageFont.truetype(Minecraftia.ttf, 8)
# Position SSID
x_pos = (width/2) (string_width(font,text)/2)
y_pos = (height/2) (8/2)
# Draw SSID
draw.text((x_pos, y_pos), text, font=font, fill=255)
# Draw the image buffer
disp.image(image)
disp.display()
def string_width(fontType,string):
string_width = 0
for i, c in enumerate(string):
char_width, char_height = draw.textsize(c, font=fontType)
string_width += char_width
return string_width
# Set up GPIO with internal pull-up
GPIO.setmode(GPIO.BCM)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# 128×64 display with hardware I2C
disp = Adafruit_SSD1306.SSD1306_128_64(rst=24)
# Initialize library
disp.begin()
# Get display width and height
width = disp.width
height = disp.height
# Clear display
disp.clear()
disp.display()
# Create image buffer with mode ‘1’ for 1-bit color
image = Image.new(1, (width, height))
# Load default font
font = ImageFont.load_default()
# Create drawing object
draw = ImageDraw.Draw(image)
prev_millis = 0
prev_social = 0
display = 0
time_format = True
while True:
millis = int(round(time.time() * 1000))
# Software debouncing
if((millis prev_millis) > 250):
# Cycle through different displays
if(not GPIO.input(12)):
display += 1
if(display > 2):
display = 0
prev_millis = int(round(time.time() * 1000))
# Trigger action based on current display
elif(not GPIO.input(16)):
if(display == 0):
# Toggle between 12/24h format
time_format = not time_format
time.sleep(0.01)
elif(display == 1):
# Reconnect to network
display_custom(reconnecting wifi …)
os.popen(sudo ifdown wlan0; sleep 5; sudo ifup –force wlan0)
time.sleep(0.01)
elif(display == 2):
# Refresh social media now
display_custom(fetching data …)
display_social()
time.sleep(0.01)
prev_millis = int(round(time.time() * 1000))
if(display == 0):
display_time()
prev_social = 0
elif(display == 1):
display_network()
prev_social = 0
elif(display == 2):
# Only fetch social media data every 5 minutes when active
if((millis prev_social) > 300000):
display_custom(fetching data …)
display_social()
prev_social = millis
time.sleep(0.1)

 

El uso de una pantalla OLED Adafruit, dos pulsadores, un dongle wifi y un pi Cero, permite como vemos  una pantalla de información conectada a internet. La información podría ser cualquier cosa: fecha y hora, el clima, el estado de las redes sociales, etc … Los dos botones se utilizan para desplazarse por los datos y desencadenar ciertas acciones.
Sin duda el abanico de posibilidades es inmenso..

Envio de correo SMTP desde Netduino


Todos sabemos, que Micro Framework no puede tener todas las características de .NET Framework completo. Una cosa que  faltaba es SmtpClient clase que permita el envío de mensajes de correo electrónico utilizandoSimple Mail Transfer Protocol (SMTP). Si nos fijamos en la especificación SMTP encontrará protocolo comuinication muy fácil – es sólo comandos de texto. Comando no, la respuesta Atrás – eso es todo.

Asi  es de fácil puede ser el envío de e-mails de .NET Micro Framework pero  no lamntablemente esta clase no esta disponible para , Net Micro Framework 

 utilizando (SmtpClient smtp = new SmtpClient ("smtp.hostname.net", 25))
 {
     // Enviar mensaje
     smtp.Send ("john@doe.com",
               "foo@bar.net",
               "Buenas noticias",
               "¿Cómo te Foo?");
 }

Esto le  trajo  la idea a Pavel Bánský  de escribir  su propia implementación de la clase SmtpClient para .NET Micro Framework   que ademas  ha decididoser lo más compatible posible con la versión de “escritorio” de System.Net.Mail.SmtpClient clase.

1920px-par_avion_air_mail
Par avion air mail” by Kristoferb at English Wikipedia. Licensed under CC BY-SA 3.0 via Commons.

 

 

 

Bansky.SPOT.Mail biblioteca de clases

Enviar sencilla correo electrónico mediante SMTP es muy fácil; PERO. Hoy en día la mayor parte del servidor SMTP requiere autenticación. Esto significa, que SmtpClient sin autenticación sería un poco inútil.

En el caso de usar el servidor de correo de terra

SMTP: smtp.terra.com

Puerto 587 o 465 (SSL)

Pero  atención   , no podra usar SSL, por  lo que no olvide  apuntar el puerto 587

Y aquí comienza la diversión. Autenticación SMTP necesita Base64 nombre de usuario y la contraseña codificada. Damned, Base64 no es compatible con Micro Framework. Por lo tanto, la primera tarea es obtener Base64 clase de codificación / decodificación. Una vez que usted pueda codificar datos en Base64, puede codificar los datos de los archivos adjuntos de correo electrónico también. Vamos a implementar System.Net.Mail.Attachment clase. Más funcionalidad necesita el manejo de excepciones más compleja. Ok, agreguela clase  System.Net.Mail.SmtpException .

Después de unos días te despiertas y ves, que ha terminado con la biblioteca de clases completa para el correo electrónico. Eso es cómo se  creo biblioteca de clases Bansky.SPOT.Mail 

Base 64, Autenticación y error en Micro Framework

Cuando el servidor SMTP requiere autenticación, el cliente de sesión de inicio con el comando EHLO domain.com.Servidor responde con métodos compatibles de autenticación. Simplemente dicho, los métodos de las credenciales de codificación. La mayoría de los servidores SMTP soporta método SENCILLOS o entrada o ambos; si no, SmtpClientva a terminar con una excepción. Hay otros métodos de autenticación como CRAM-MD5 y CRAM-SHA1.

Información de autenticación para el método SENCILLOS es esta cadena “usernamepassword” codificado en Base64. El problema es que Micro Framework versión 2.5 (y menos) interpreta “” como un fin de la cadena. Esto significa que la cadena de autenticación SENCILLOS se interpreta como una cadena vacía. Caracteres  después de  “” se ignoran pero esto se puede. En primer lugar debe conviertir  en  serie de “contraseña de usuario” en la matriz de bytes y luego reemplazar los espacios adecuados con el byte 0x00. Tal matriz de bytes es la entrada para el método Base64.Encode ().

Es importante decir que el núcleo de la clase Base 64 se basa en Base64Encoder clase de Timm Martin  y se  he añadido los métodos para dividir los datos codificados en líneas de 76 bytes como es requerido por MIME especificación.

Siguiente código muestra cómo configurar las credenciales de autenticación a clase SmtpClient. Método de autenticación será elegido automáticamente en función de las capacidades del servidor.

 utilizando (SmtpClient smtp = new SmtpClient ("smtp.hostname.net", 25))
 {
     // Crear un mensaje
     MailMessage mensaje = new MailMessage ("john@doe.com",
                                           "foo@bar.net",
                                           "Buenas noticias",
                                           "¿Cómo te Foo?");

     // Authenicate al servidor
     smtp.Authenticate = true;
     smtp.Username = "UserLogin";
     smtp.Password = "userpassword";

     // Enviar mensaje
     smtp.Send (mensaje);
 }

Archivos adjuntos de correo electrónico

Además de los mensajes HTML con formato, la implementación MailMessage soporta archivos adjuntos. Archivo adjunto de e-mail puede ser cualquier dato binario, que se procesan utilizando la codificación Base64 y agregados en mensaje MIME multiparte. Ejemplo de mensaje con archivo adjunto está por debajo.

ADVERTENCIA: codificación de datos binarios en base64 en .NET Micro Framework puede ser extremadamente tiempo y consumo de recursos. Esto significa, que el mayor de los datos es, más tiempo se necesita para procesarla; y si se dice  “más tiempo”, es porque  es  realmente mucho tiempo. Por lo tanto, tener cuidado y no se sorprenda.

 MailMessage mensaje = new MailMessage ();
 // Establecer el nombre del remitente y dirección
 message.From = new MailAddress ("foobar@contoso.com", "Foo Bar");

 // Destinatarios Set
 message.To.Add (nueva MailAddress ("john.doe@customer.com", "John Doe"));
 message.Cc.Add (nueva MailAddress ("manager@contoso.com"));

 message.Subject = "Hola Mundo";
 message.Body = "de ahora en adelante usted puede enviar mensajes de correo electrónico desde <b> .NET Micro Framework </ b>.";
 // Cuerpo Formato como HTML
 message.IsBodyHtml = true;

 // Crear nuevo adjunto y definir su nombre
 Accesorio = nuevo Adjunto ("Snwoflake.gif");        
 attachment.ContentType = "image / gif";
 attachment.TransferEncoding = TransferEncoding.Base64;
 // Contenidos adjuntos
 attachment.Content = Base64.Encode (Resources.GetBytes (
                                     Resources.BinaryResources.Snowflake_gif),
                                     true);

 // Añadir adjunto al mensaje
 message.Attachments.Add (archivo adjunto);

 // Crear instancia SMTP nueva
 SmtpClient smtp = new SmtpClient ("smtp.contoso.com", 25);
 probar
 {
     // Authenicate al servidor
     smtp.Authenticate = true;
     smtp.Username = "UserLogin";
     smtp.Password = "userpassword";

     // Enviar mensaje
     smtp.Send (mensaje);
 }
 capturas (SmtpException e)
 {
     // El manejo de excepciones aquí
     Debug.Print (e.Message);
     Debug.Print ("Código de error:" + e.ErrorCode.ToString ());
 }
 finalmente
 {
     smtp.Dispose ();
 }

Cabeceras adicionales

Cada mensaje de correo contiene cabecera, que especifica la información como la fecha en que se creó el mensaje, el nombre del remitente, etc. Si usted quiere poner información adicional en la cabecera se puede utilizar la propiedadencabezados. Consulte el siguiente ejemplo.

 MailMessage mensaje = new MailMessage ("john@doe.com",
                                       "foo@bar.net",
                                       "Buenas noticias",
                                       "¿Cómo te Foo?");

 message.Headers = "X-Priority: 1 
  ";
 message.Headers + = "X-Microsoft Mail-Prioridad: Alta 
  ";
 message.Headers + = "X-Mailer: Micro Framework mail del remitente 
  ";

Manejo de excepciones

Además excepciones estándar como ArgumentNullException y ArgumentOutOfRangeException, también haySmtpException lanzada por Enviar método de SmtpClient. SmtpException en marco completo contiene propiedadStatusCode, que describe el estado en que se produjo la excepción. Desde mi Enviar método no es tan rico, he reemplazado StatusCode con ErrorCode, que describe la razón de la excepción. La enumeración SmtpErrorCodecontiene valores como BarResponse, AuthFailed, connectionFailed y así sucesivamente.

Demostración y Descarga

Biblioteca completa con las fuentes, documentación y aplicación de la muestra están disponibles para su descarga.Biblioteca fue probado en emulador y Maestro GHI Embedded módulo. Todo el código    el autor  ha  movido el   software al repositorio GitHub.

 

 

 

Fuente

Muy pronto placas con procesadores de 64bits


Hoy en día, sorprendentemente, se puede comprar un mini-ordenador  por $ 8 o menos. Son grandes placas  de 32 bits  muy flexibles  y sencillas de usar , pero si necesita un soporte de 64 bits ,muy pronto sólo con un extra de diez dólares podrá comprarlo gracias  a   PINE64 . Con esta propuesta no solo hablamos de un mini-pc , pues es un ordenador quad-core de alto rendimiento de 64 bits con 512 megabytes de RAM  con la capacidad de calculo  similar a  un ordenador de 250 vatios, pero que sólo consume  2,5 vatios y que cuesta solamente 15 dólares .

Este  modelo ampliable ,tiene el aspecto de una   sola tarjeta (SBC) y aspira a ser  uno de los más impresionantes opciones de bajo costo para todos aquellos que buscan implementar vídeo de alta resolución en su proyecto  haciendo un claro   guiño  a la Plataforma Raspberry Pi .

Es una pequeña computadora   versátil y ampliable que puede  ejecutar  casi cualquier distribución moderna de GNU / Linux, como Ubuntu, así como el sistema operativo móvil Android 5.1, OpenWrt y OpenHub  contando ademas con especificaciones impresionantes que eclipsan a productos comparables por un margen considerable . No sólo el Pine A64 tiene una velocidad de reloj más alta, también tiene una arquitectura más avanzada que consume menos energía y logra un mayor rendimiento. !La A64 Pine aspira a ser el ordenador de escitorio de  64 bits  más asequible del  mercado!.

Como era de esperar,  ha  sido lanzada por Kickstarter   y alcanzado ya el objetivo inicial de financiación ,  en unas semanas  muy pronto se podrá comprar

 

 

La versión básica (512 megabytes, Ethernet 10/100) tiene un precio de apenas 15 dólares,  será capaz de ejecutar una variedad de diferentes sistemas operativos como Android 5.1, Ubuntu Linux, y otros, y, pero hay más: La edición Plus del PINE64 añade accesibilidad para paneles táctiles, cámara y pantalla LCD, junto a un puerto Gigabit y 1 GB de RAM por 19 dólares, y quien desee llevar la memoria a 2GB sólo debe agregar diez dólares extra. Las entregas se llevarán a cabo entre febrero y abril

Si usted es un profesional de TI, aficionado a la electrónica, estudiante, profesor, pirata informático, inventor, o simplemente alguien que quiere tener más flexibilidad para aumentar su productividad en el trabajo, esta nueva placa puede  serle muy útil pues  PINE4 Pine es un ordenador de a bordo hecho para todo el mundo. Disfrute de más diversión y el entretenimiento en casa con un sinfín de posibilidades.

El   tamaño  como era  de esperar  es muy similar a otras placas de IoT   y  no se diferencia  sustancialmente respecto  a otras placas  .En la imagen  podemos  verla junto al iPhone 6S para la comparación de tamaño:

Pine A64 tablas Junto al iPhone 6S Para La comparacion de Tamano

¿Cómo se enfrenta al Raspberry Pi? ¿Acaso se mejoran las especificaciones, o el precio? Las mentes detrás del proyectoPINE64 decidieron abordar ambos puntos, y aunque sigue siendo más costoso que un Pi Zero, lo que entregan a cambio es impresionante: El PINE64 CPU es un ARM A53 procesador quad-core de 64 bits que funciona a 1.2GHz.

La GPU en la A64 Pine es un dual-core MALI-400 MP2 y corre a 500MHz, capaz de 1,1 Gpixel / s rendimiento. Esto significa que las capacidades gráficas son un poco más alto que el nivel de desempeño del X-Box originales.

En la siguientes tablas podemos  ver a Pine A64 comparado con la Raspberry, Arduino y Next Thing C.H.I.P  ofreciendo hasta 20 a 30% más de rendimiento que otros homólogos de código abierto 32 bits.

Pine A64 en comparacion con el Raspberry Pi

PINE A64 en comparación con el Raspberry Pi

Pine A64 en comparacion con CHIP y Arduino

Pine A64 en comparación con CHIP y Arduino

Es posible añadir diferentes interfaces de hardware a un A64 Pine  . Dependiendo de si tiene que elegir el Pine A64 o A64 + Pine, las placas  A64 Pine por  defecto incluyen dos puertos USB, salida HDMI, de 3,5 mm de audio / salida de micrófono, puerto Ethernet y dos buses de expansión de E / S.

En la A64 Pine más avanzado , recibirá tres puertos adicionales para agregar accesorios opcionales tales como: módulo de la cámara, el módulo de panel táctil, y el puerto del panel LCD.

Se pude añadir un teclado y ratón de modo que  Pine A64 se convertiría en una computadora completa Android 5.1 para funcionar navegador Chrome, Microsoft Word, Excel, Powerpoint, o incluso ver sus programas favoritos en YouTube.

También  es posible cargar versiones especiales de Android 5.1 y lanzar reproductores multimedia para convertir en un  producto Android como de televisión avanzada(de hecho  A64 Pine apoya miracast.)

Se software con la Muestra de Medios Android

Asimismo es posible instalar un módulo de pantalla táctil y elegir entre cientos de miles de juegos de la tienda de Android para construir su propia galería.

Una opción  que los diseñadores   proponen es también construir una caja personalizada para utilizar el PINE64 en su próximo proyecto innovador  ,   aunque como en otras plataformas no se olvidan de los típicos emplazamientos  con piezas de Lego , sport de acrílico   o  muchos  más!.

 

Sistema operativo

Debido A64 Pine es una plataforma de código abierto, puede cargar todo lo que quiera, pero  recomiendan  emparejar A64 Pine con Ubuntu, Android o openHAB IoT. Al alinear la A64 Pine para ser compatible con estos sistemas operativos, se obtiene básicamente acceso a más de 1.7 millones de aplicaciones Android(Android App Store)  en el mercado hoy en día, a partir de las utilidades, juegos y aplicaciones de medios.

Compatibles Sistemas Operativos

A diferencia de muchos otros consejos y computadoras, A64 Pine almacena su disco de arranque en una tarjeta MicroSD extraíble (como en la Raspberry Pi)  ,siendo  capaz de soportar hasta 256 GB. Esto permite a los usuarios simplemente actualicen, vuelvan  a instalar, o incluso intercambiar sistemas operativos por la simple eliminación de una tarjeta y la inserción de una nueva. Almacenamiento adicional si es necesario se puede agregar mediante la conexión de una unidad flash USB o disco duro externo.

Pine A64 es un equipo asequible que cabe en la palma de su mano y se conecta a un televisor o monitor de ordenador con un teclado y un ratón estándar. Con el apoyo de Ubuntu OS y Android Lollipop, permiten  al usuario explorar el mundo de la informática y la programación ( Python, JSON, HTML y JAVA.)  desde principiantes hasta expertos con facilidad  sin olvidar de que  con esta placa  se puede navegar  por Internet y jugar 4K videos de alta definición.

Ordenadores de escritorio típico o servidor  puede consumir  entre 75 a 300 vatios. La placa  Pine A64 ofrece el mismo poder de computación de escritorio en un mero consumo de  2,5 a 3,5 vatios. Con sólo aprovechar la eficiencia energética obtenida con una placa Pine A64 es capaz de ahorrar mucho sin sacrificar nada en el rendimiento. El PINE64 funciona con alimentación de 5V a través de microUSB o la batería de 3,7 V a través de la administración de energía de a bordo.

Empate 5V 0.5A Potencia
Vemos  aquí el consumo de  CC de 5V es  de unos sólo  0.5A 
El A64 Pine es compatible con diferentes tipos de adaptadores y accesorios disponibles. Accesorios interesantes pueden ser el adaptador bluetooth, adaptador Zwave, el contacto me seco / S analógica, cámara, sensores, 802.11bgn wifi, y más. Al cargar el sistema operativo en una tarjeta microSD externa, es fácil para usted para actualizar y cargar nuevos archivos.
Sólo ALGUNOS accesorios Opcionales Que Funcionan con Pine 64

Sólo algunos accesorios opcionales  funcionan con Pine 64
Para terminar no solo ofrecen la opción de duplicar la RAM por unos 4$ y 10$ para cuadricarla ( 2GB) , también desde su propia tienda ofrecen    un abanico  de  complementos  gracias a su   alianza   con el fabricante Backerkit
Muchos de los componentes  se pueden vender por separado en el sitio web PINE64 después de Kickstarter. Estos componentes incluyen teclados Bluetooth ,ratón, wifi, pantalla, bluetooth ,z-wave, pantalla táctil ,baterias y diferentes recintos que  beta testers han ido creando con impresoras 3D( y que  se pueden descargar archivos de impresión 3D,)
A  modo de kits proponen 5 opciones desde los 15$ hasta los 89$  variando el numero de “complementos” conforme  aumenta el precio:

Puede del: Añadir complementos Como wifi, Pantalla, Caso, a la carta, Gracias a Backerkit Despues de su promesa. Todos los kits con A64 + pueden Actualizar un 2GB por $ 10.

Pine A64 no es sólo un reproductor de medios, es una  plataforma Linux,una  herramienta de aprendizaje, o un dispositivo de juego. Es un supe-ordenador  en tarjeta  de 64 bits completo, 4K capaz, totalmente ampliable .Al ser tan asequible en $ 15, Pine A64 ahora abre las puertas a nuevas oportunidades para todos.   ! Utilícela para construir simplemente casi cualquier cosa.!

Una aplicacion curiosa con Arduino : “el deploynator”


 Gracias a un Arduino, un escudo  Ethernet de Arduino,  unos botones tipo arcade , los LED , una aplicación web de despliegue  y el código de Arduino, SmugSmuh ha  creado un proceso de implementación de un curioso  botón que tiene este aspecto que parece sacado de la ciencia ficción al puro estilo James Bond:

Puede   parecer  muy raro ,  pero   SmugMug que es desarrollador de software  en  Amazon , cade vez desplegaba con  mayor  frecuencia mediante la fusión manualmente ramas, etiquetas, haciendo dobles comprobaciones y  a continuación, ejecutando un grupo de comandos que finalmente  hacian el trabajo  (algunos a través de sudo y otros no). Este  proceso podia llevar  once pasos    y para empeorar las cosas  no todos los desarrolladores tenían acceso a dicho proceso sintiendose generalmente incómodos debido a la complejidad que implicaba.

Finalmente todo  se automatizó  y  el proceso se consolidó en un script de shell, que todavía tenía que ser ejecutado a través de sudo en un servidor designado. Más recientemente, el script de shell estaba envuelto en una aplicación web que hizo las cosas mucho más fácil que tiene este aspecto :.

Pushit

Mientras que la aplicación web es bastante impresionante y fácil de usar, un desarrollador   soñaba con un botón físico real  que al pulsarlo  reamente lanzara el proceso de implementar código : SmugMug Deployinator 5000, cuyas fotos podemso ver a acontinuacion:

Frente

Deployinator 5000

Adentro de

Deployinator 5000 en el interior

Botones

Botones

Arduino Shield Ethernet

Arduino

El Deployinator 5000 consta de los siguientes componentes:

La instalación es relativamente simple. El interruptor de palanca, bloqueo del teclado, y dos interruptores momentáneos están conectados en secuencia para que el Arduino los vea como un botón. Cuando se presionan los cuatro a la vez  ,entonces, y sólo  entonces,  el Arduino hace una petición HTTP POST a un  servidor de implementación, que a su vez empuja cualquier código pendiente en vivo. Mientras que el Arduino está a la espera para el despliegue a fin, parpadea el LED amarillo. Cuando se despliega el empuje, el LED verde se ilumina. Si algo sale terriblemente mal, el LED rojo indica    que ha habido un error   (provocando  temor en el corazón del implementador)

 

Las ideas   a largo plazo para el Deployinator incluyen la adición de luces más grandes, una bola de discoteca, y la reproducción de música cuando se produce un deploy,etc. Esta   idea  se puede extrapolar    para muchas otras cosas que se puedan controlar con energía de 220V ,por ejemplo usando un  dispositivo  PowerSwitch   o en su defecto simplemente un rele

PowerSwitch II está diseñado para permitirle controlar con seguridad un dispositivo de salida sin exponer ningún voltajes de 120/220 VCA. Puede conectar cualquier salida de 120 VCA 3 clavijas estándar para ser controlado por la mayoría de cualquier microcontrolador. Esto funciona muy bien con Arduino! La cola PowerSwitch II mejora en la cola original de PowerSwitch por lo que le permite cambiar una carga grande (ahora hasta 15A) con una gama más amplia de señales de control (3-12VDC).

 

PowerSwitch Tail II

Implementación de código no tiene por qué ser aburrido!

 

 

 

Fuente  aqui

 

 

 

 

 

123D Circuits


123D Circuits es un software gratuito de Autodesk que hace simulaciones de circuitos electrónicos y permite hacer prototipos con herramientas fáciles de usar y todo directamente  usando su navegador  favorito  ( es decir desde la web )  por supuesto sin instalar nada.

Si usted es un principiante, usted puede comenzar con simples experimentos en el Laboratorio de Electrónica o Circuit Scribe ya que simula en tiempo real todos los componentes. Los usuarios experimentados pueden saltar hacia delante e ir directamente al PCB Design.

123io1
La manera más fácil de aprender  programación de Arduino pues aprender a código es mucho más fresco cuando se puede programar cosas que se encienden, mover o incluso explotar. Es bastante impresionante ya que incluso se pueden añadir placas Arduino y cargar el programa para que emule en tiempo real

 

io2

Para los usuarios más experimentados, puede saltar e ir directamente al diseño de PCB e incluso puede pedir su fabricación directamente desde su web. Es decir todo lo que necesita, enviado a su puerta:si usted está listo para tomar a diseñar de lo virtual a físico, ahora  es mucho más fácil comprar todo lo que necesita.

 

io3

Desde luego me parece una herramienta muy interesante para probar cosas o hacer esquemas rápidos de cualquier proyecto.

Todos  los proyectos que creemos  con esta  herramienta  pueden ser compartidos de manera que se hagan cooperativos, de modo   que se pueden encargar los PCBs que hagamos de manera muy parecida a la que nos ofrece Fritzing y además tenemos un IDE de programación online, de manera que también podemos seguir escribiendo código directamente  desde el interfaz web  desde cualquier lugar  y plataforma  ( como por ejemplo desde nuestro smartphone   o  desde una tablet).

Y una vez hayamos terminado el código, es tan fácil como dar a “upload & run” para empezar a ver como tu creación cobra vida.

La única pega que tiene esta  plataforma es que si su código no compila no le va a decir donde está el error, aunque este sea un simple error sintáctico. Si no encuentras su error, puede dar a “download code” o un simple copiar y pegar en nuestro IDE arduino para verificar, corregir y volver a copiar. Como vemos simula muchos componentes y además también simula una terminal serie.

 

En el siguiente vídeo podemos ver todas las potencialidades de esta estupenda herramienta:

 

Como ganar dinero con una Raspberry Pi


Si usted no lo  sabe aún , Bitcoin es una moneda virtual creada en 2009, habiendo crecido en popularidad en los últimos años convirtiéndose en un muy popular como un método para pagar los servicios a través de Internet . El valor se ha disparado recientemente gracias a la gran cobertura en los medios de comunicación , tanto por razones positivas y negativas.

Hay dos maneras de obtener Bitcoin :

-Comprando Bitcoins  por medio de un  intercambio : este  normalmente es  el proceso de conversión de la moneda local a Bitcoin .

-Minería de  bitcoins :  entendemos por minería al proceso de verificación de las transacciones en el blockchain .

Como se descentraliza el conjunto del sistema de Bitcoin , cada transacción es públicamente visible dentro de lo que se llama el blockchain . Este blockchain contiene cada bitcoin intercambiados entre los usuarios menos, ya que no hay servidor central , que tiene que ser uno mismo rige . Este es el trabajo de los mineros y del que vamos a hablar en este post.

Con el fin de explotar Bitcoin , para hacer mineria de Bitcoin se necesita :

 

Veamos ahora  como empezar  configurando las cuentas  de bitcoins. Hay  cuatro  cosas que hay que hacer:

  • Descargar una billetera Bitcoin
  • Crear una cuenta del grupo
  • Configuar los pagos.
  • Configurar  a los trabajadores

Descargar una Bitcoin Wallet:Una carpeta es un programa que se encuentra en su equipo y le da una dirección de cartera, esto es una cadena única de números y letras que utilizará para recibir bitcoins. Puede descargar el cliente para su equipo desde https://bitcoin.org/en/download

Después de la instalación, tendrá que guardar un archivo llamado wallet.dat, mantenga este archivo seguro, ya que contiene su dirección de cartera única dentro de ella, incluyendo todos los bitcoins que va a ganar. Si pierde este archivo, no se puede recuperar los bitcoins que contenía.

Crear una cuenta de grupo: Una vez que tenga una dirección de la cartera, cree una cuenta de grupo. Un pool es una enorme colección de otras personas que trabajan para ganar bitcoins. Debido a la complejidad de la minería un bitcoin, se ha convertido en poco realista minas el solo acto de procesar millones de números para resolver el problema de bloque. Trabajando en grupo, o en el poool  permite que cada uno tenga la oportunidad de ganar algo de Bitcoin. Hay muchas poools en este post vamos   ver uno  llamado pool del Slush: https://bitcoin.org/en/download

Configuración de Pago:Una vez que haya creado una cuenta de grupo, tendrá que introducir su dirección de cartera única de la dirección de pago de Bitcoin.

Crear Cuenta Trabajador:El siguiente paso es crear una cuenta de trabajador de inicio de sesión. Dentro de su cuenta del grupo que tiene la capacidad de crear algo que se llama un trabajador por cada uno de sus mineros Bitcoin, por lo que es capaz de controlar a todos ellos por separado en caso de que uno debe fallar.

Cada trabajador tiene su propio nombre de usuario y contraseña. Mientras que usted está en mi Accountclick Registro Nueva trabajador y darle un nombre, por ejemplo; trabajador, y una contraseña. Ahora está listo para configurar su minería Raspberry Pi para Bitcoin.

bitcoin

 

Para empezar    a  usar  su Rasberry Pi,necesita   una nueva instalación de Raspbian , la cual se puede descargar desde el propio  https://www.raspberrypi.org/downloads/raspbian/.Una vez instalado solo tendrá que usar el win32Imager para instalar la imagen  en  la microsd  con la que arrancara  su Raspberry  Pi ( consulte este post para mas detalles)

Si planea ejecutar más de un minero de Bitcoin , al mismo tiempo , lo mejor es utilizar un concentrador USB con alimentación . Tenga en cuenta el grado de energía como la minería necesitará una gran cantidad de energía , tanto como un punto de fusión por la minera .

 

 

antminer

 

Con su minero USB conectado a su Raspberry Pi , vamos a llegar a  tener  todo instalado .   El minero  se instalará con los archivos de origen , lo que significa que el programa debe ser compilado en un binario antes de que pueda ser ejecutado . Para hacer un programa , en este caso BFGMiner , se requieren muchas dependencias. Las dependencias son software adicional , o bibliotecas de las necesidades de los programas con el fin de compilar correctamente, ya que se ha desarrollado de usarlos para hacer el software más eficiente.

Esperamos que pueda ser de ver el escritorio Raspbian , por lo que hacer doble clic en el tipo LXTerminal  y escriba  lo siguiente:

1) sudo apt-get update

2) sudo apt-get install autoconf autogen libtool uthash-dev libjansson-dev libcurl4-openssl-dev libusb-dev libncurses-dev git-core –y

Este proceso llevará unos minutos en completarse.

Una vez que se han instalado todas las dependencias , ahora es el momento de descargar e instalar BFGMiner , así que escriba lo siguiente en LXTerminal . Es normal que estos tomen unos minutos para completar lo que se necesita un poco de paciencia ..

git clone https://github.com/luke-jr/bfgminer.git
cd bfgminer

./autogen.sh

./configure

make

 

Terminado este proceso  vera una pantalla similar a la siguiente :

bi2

Ahora está listo para comenzar la minería. Para ello, la prestación está utilizando la piscina del Slush, vamos a usar el siguiente comando:

/bfgminer -o stratum.bitcoin.cz:3333 -O username.worker:password -S all

La sección de nombre de usuario se compone de dos partes, el nombre de usuario que utiliza para iniciar sesión en la piscina, y el trabajador que es el nombre del trabajador que le dio cuando se registró el trabajador. Por último, la contraseña establecida al crear el trabajador.

En la pantalla hay  un montón de números, por lo que va a hacer algunos de ellos un poco más claro.

  • Current mining speed(Velocidad de la minería actual), calcula típicamente en megahashes o gigahashes. El número de los hashes de un segundo que se puede calcular mejor. Un hash es un algoritmo de conversión de números y letras en un conjunto undecryptable de caracteres. Así que un minero se utiliza para procesar millones de números en un esfuerzo para que coincida con el hash de adivinar el número original. Los más hashes que se pueden procesar más rápido se es capaz de resolver el problema.
  • Number of accepted shares:  es decir  el número de acciones aceptadas. Un recurso compartido en un pool para mostrar el minero que ha funcionado con éxito un problema dado, por lo que los más acciones que puede procesar mejor será su recompensa del  pool.
  • Detailed information on accepted shares and pool updates. La información detallada sobre las acciones aceptadas y actualizaciones del pool. Se trata de un registro de funcionamiento de lo que ocurre actualmente con los mineros y la información básica de la piscina, como los mensajes de actualizaciones y cuando se encuentren nuevos bloques.

Más información se puede encontrar en el sitio de github BFGminer.

Después de estos pasos le dejará con una energía eficiente bitcoin minero, como Raspberry Pi sólo utiliza cuatro vatios de potencia , y un minero es típicamente  de 2.5W .

La minería se hacía con los ordenadores que consumen más de 700W para el mismo proceso para hacer un salto en el ahorro ayuda a pagar el costo del hardware que estamos utilizando. Todo lo que hay que hacer ahora es sentarse y ver el dinero poco a poco se acumulan . Aunque es importante que usted entienda que el valor de Bitcoin fluctúa violentamente , es extremadamente volátil , por lo que invertir en su propio riesgo . También puede soportar pantallas LCD . Conecte más Pis para conseguir mejor velocidad: D Para más información hay una serie de sitios web y foros disponibles , tales ashttps : //bitcointalk.org/,to ayudar a empezar .

 

raspn

A modo de resumen: si se quiere iniciar en el minado de bitcoins y no se quiere gastar casi nada en su factura de la luz, usar  una Raspberry  Pi  con los mineros usb es una muy buena opción pues aprenderá bastante, y luego decidirá si quiere continuar  o no.

La rentabilidad del minado de bitcoins influyen principalmente estos 2 factores:

  • El precio del bitcoin
  • La dificultad de minado

Cada aproximadamente 2 semanas la dificultad en general aumenta de modo que si no renovamos nuestros equipos, nuestra potencia de minado se mantendrá  siempre fija, pero si la dificultad sigue aumentando (como es de prever que ocurra), cada vez ganaremos menos, por eso, y ante esta situación en la que el bitcoin anda en unas cotizaciones relativamente bajas, quizás la solución ideal es usar  el equipo de minado de la Raspberry PI  pues   no implica una gran inversión y nos  permitirá iniciarnos (o bien comprar bitcoins y esperar a  que suban su valor  para volver a venderlos).

Comprar equipos potentes, con el gasto energético que supone y el coste de infraestructura , la dificultad actual y el precio del bitcoin por debajo de los US$ 400, es algo que no merece la pena para la mayoría de los que no son mineros profesionales……!Mucha suerte!.

¡Ánimo y bienvenidos al universo Bitcoin!

Mas información  aqui

Primeros comandos con Raspberry Pi


Si es  de los muchos curiosos que no ha aguantado la tentación y finalmente se  ha hecho con una Raspberry Pi para desarrollar sus propios proyectos en su tiempo libre o simplemente como centro de entretenimiento o multimedia  ,  vamos   a  intentar hacer un resumen de  comandos linux   que  podrá usar desde el terminal  de su Raspberry Pi

 

 

Si estamos en modo línea de comandos y queremos volver al modo gráfico usar el comando :startx y si quiere salir del interfaz de comandos  deberá escribir el comando exit

  • Para la navegación entre carpetas:
    • Imprimir en el terminal el directorio en el que se encuentra pwd(print working directory), automáticamente le mostrará la ruta donde estás situado.
    • Ver el contenido del directorio ls.Además, añadiendo al comando el parámetro –l (ls –l), la descripción del listado será mucho más completa, mostrando pesos, permisos, etc.
    • Cambiar a otro directorio se hace con cd (change directory) de modo similar al interfaz de terminal de windows , como por ejemplo  cd directorio. Puede usar también “cd ../” para ir al directorio superior o escribir el nombre del directorio que quieres ir “cd /pepe/dormitorio”.
  • Para la creación de directorios usamos:
    • Para un solo directorio mkdir nombredirectorio... Si se añade el parámetro –p, se pueden crear árboles completos (mk –p /home/nuevodir/dir2/dir3)
    • Para un árbol de directorios mkdir -p /home/usuario/directorio1/directorio2

 

Está muy bien poder navegar por el árbol de directorios de tu Raspberry o crear nuevas estructuras pero con algunos comandos podrás acceder a un “universo” de información  :

  • Para conocer la información hardware general: cat /proc/cpuinfo , con la información en su pantalla, podrá acceder a la tabla que se encuentra aquí para saber el modelo y revisión de tu placa.
  • Para saber el estado de la memoria: at /proc/meminfo
  • Para ver las particiones de los dispositivos de almacenamiento (a tarjeta de memoria o el disco duro): cat /proc/partitions , el espacio libre que queda df -f
  • Si queremos conocer la versión de nuestra Rasp: cat /proc/version
  • Temperatura de la CPU: vcgencmd measure_temp
  • Visualizar todos los dispositivos USB conectados: lsusb si añades el parámetro -v el listado será más descriptivo)
  •  Directamente ver la versión con cat /proc/version.
  • También le puede interesar conocer la IP que estás usando con ifconfig (si está conectado a una red por cable ethernet),
  • Ver los procesos que se están ejecutando con el comando ps -a
  • Parar eliminar aquellos que no nos interesan con Kill -9 ID_proceso

 

El apagado normal  del dispositivo: sudo shutdown -h ,aunque lo mejor es un apagado seguro para lo cual tendrá que optar por el comando sudo shutdown –h now, aunque si “solo” se trata de un reinicio mejor cambiar la orden por sudo reboot –f.

Igual de importante es acceder al menú de configuración en Raspbian (quizá la distro más usada), desde aquí podremos cambiar el idioma, la velocidad o expandir el sistema para que el espacio de una unidad de almacenamiento se aproveche al 100%, Para entrar en la ventana de configuración de Raspbian deberemos usar el comando :sudo raspi-config  Para estos comandos tener privilegios de administrador es necesario, por lo que deberemos o bien acceder como root con sudo -i o poner delate de la orden a ejecutar sudo (como ocurre en el pagado y reinicio).

Para  terminar  para cambiar la contraseña de los usuarios posible el comando es  passw.