Sacar señal con los pin GPIO en Raspberry Pi con Python

Hace poco, en Workether restauramos una máquina Arcade de 1982. Al lograr hacerla funcionar, nos llevamos la grata sorpresa de que traía instalado el mítico “Choplifter”.  El monedero de la máquina, que es lo que genera los créditos, estaba roto y decidimos hacerlo funcionar con tweets en lugar de monedas.

Para sacar una señal por uno de los pines de  la Raspberry, debemos antes que nada importar RPi.GPIO.

import RPi.GPIO as GPIO 

Después, hemos de indicar cual es el pin por el que queremos sacar la señal.

GPIO.setmode(GPIO.BOARD)
GPIO.setup(5, GPIO.OUT)

Con esto indicamos que queremos sacar la señal por el pin 5.

Una vez elegido el pin, simplemente poniéndolo a “True”, comenzaría a sacar la señal.

GPIO.output(5,True)

Podemos complicar esto cuanto queramos.  Por ejemplo para hacer el típico blink, necesitaríamos importar la librería “time”.

import time

Y con esto ya se podría realizar el programa “blink” simplemente para hacer parpadear un led.

GPIO.output(5,True)
time.sleep(2)
GPIO.output(5,False)
time.sleep(1)

Esto es aplicable a lo que quieras, nosotros utilizamos esta señal para generar un crédito en la máquina arcade de la oficina leyendo un hashtag concreto (#worketherArcade).

cabecera

Pronto escribiré un post describiendo el proceso para  conectar tu Raspberry Pi a Twitter y algunos ejemplos de funcionamiento.

¡Ahora os toca “cacharrear”con la Raspberry!

Saludos.

 

 

 

ERROR 500 en WordPress al instalar plugins

Prácticamente siempre que he de trabajar con un CMS utilizo Drupal, por esa misma razón para montar mi propio blog decidí utilizar WordPress y de paso practicar.

Como buen curioso, lo primero que hice fue indagar en como funciona, poner plugins, cambiar themes, etc… Y en una de esas, me cargué la instalación.

Al activar un plugin, WordPress me devolvió el error 500 (Cundió el pánico unos segundos, y después me puse a intentar repararlo), no podía acceder a ninguna parte del wordpres, ni siquiera a la administración.

La solución fue bastante lógica y a mi me funcionó: Desactivar el último plugin añadido.

Puesto que no podía acceder a la administración, abrí la BBDD con phpMyAdmin.
Continue reading

Problemas con usuario Anónimo y $_SESSION en Drupal.

Hace algún tiempo que tuve este problema y quizás a más de uno le haya ocurrido, por ello comparto la que fue mi solución.

Al estar en una web como usuario anónimo, Drupal no permitía almacenar nada en sesión  ($_SESSION). En mi caso, necesitaba poder agregar artículos al carro de la compra, aún siendo usuario anónimo.

Después de darle muchas vueltas buscando el error, comprobando que todo estaba correcto ene el código y que en cada refresco de pantalla la sesión desaparecía, decidí tirar mano de la inmensa comunidad que hay detrás de drupal, así pues me puse a indagar.

Encontré las siguientes fuentes de información:
Continue reading

Proceso de desarrollo en proyecto con Drupal II. (Diseño y maquetación del theme)

Después de unos meses de trabajo y coincidiendo con el aniversario de Gestiweb, el mes pasado lanzamos la nueva versión de gestiweb.com

Describí en un post anterior el análisis del proyecto, el proceso de estructurado de la información, tipos de contenidos, relaciones en drupal, etc…
Continue reading

Proceso de desarrollo en proyecto con Drupal ( I. análisis )

Estoy empezando con un nuevo proyecto en el trabajo: Con motivo de su 10º aniversario, se ha decidido darle un lavado de cara a la web de Gestiweb S.L.

La web que hay actualmente en http://www.gestiweb.com data de 2006 – 2007 aprox. y se quiere volver a estructurar los distintos contenidos así como su aspecto.

Se requiere una estructura más optima de contenidos además de una imagen más amigable, adaptada a los tiempos que corren. Pues muchos proyectos y contenidos  realizados en gestiweb, no aparecen en la web ( o no todo lo destacados que deberían ).

¡ Así pues, vamos a intentarlo ! :-)

Se ha decidido contemplar ( a grandes rasgos ) las siguientes secciones:

  • Proyectos
  • Soluciones
  • Tecnologías
  • Servicios
  • Clientes
  • Laboratorio
  • Noticias
  • Artículos

Continue reading

Utilidades para desarrollo web en Linux

Llevo mucho tiempo (prácticamente desde que utilizo twitter) leyendo a diario titulares del tipo “5 herramientas de desarrollo web en MacOS”. Así que he decidido escribir “la alternativa”Desarrollo web desde Linux.

En la oficina donde trabajo actualmente, todos los equipos utilizan herramientas por lo general Open Source. Aunque cada uno utilice la distribución que más se adapta a sus necesidades (Debian, Ubuntu,Open Suse…) todos utilizamos linux. Hasta el momento, este sistema ha cumplido muy bien su cometido.

Dependiendo del escritorio que utilicéis ( Gnome o KDE ) utilizareis unas herramientas u otras por defecto. Personalmente utilizo el escritorio KDE4.

Las herarmientas que utilizo a diario para el desarrollo/diseño web son las siguientes:

  • Editor de textos: Bien Kate (en KDE), o Gedit (en Gnome)  Personalmente recomiendo Kate, si queréis saber un poco más sobre este editor y algunas de sus virtudes, aquí tenéis información: http://kate-editor.org/about-kate/. Variadas opciones de resaltado, opción de dividir ventana y un largo etcétera. Además, el uso de este editor, junto con el cliente FTP de Konqueror, es una potente combinación que agiliza mucho el trabajo. Edita directamente el archivo que tienes en la nube, y visualiza los cambios en tiempo real. Combinando Konqueror y Kate, conseguís un funcionamiento similar al de Notepad++, que integra también un plugin de FTP.
  • Cliente FTP: Dependiendo para qué, puedes utilizar Konqueror o Filezilla. Ambas muy buenas opciones. (Konqueror es realmente un navegador, forma parte de KDE y podéis encontrar más información, junto con la descarga en: http://www.konqueror.org/). En cuanto a FIlezilla, es la opción más famosa y extendida. Filezilla es el cliente FTP por excelencia, lo podéis descargar desde: http://filezilla-project.org/
  • Editor de imagen: Para realizar los bocetos, suelo utilizar “The gimp” ( la alternativa libre de Photoshop). En caso de tener que maquetar desde un “.psd” The Gimp también cumple perfectamente su función, pues soporta este tipo de archivos. Si lo que necesitas es una herramienta de dibujo vectorial, cuentas con “Inkscape” un programa potente y sencillo de utilizar. Puedes encontrar más información sobre Inkscape en: http://inkscape.org/ En cuanto a “The GImp”, puedes descargarlo desde: http://www.gimp.org/ También podéis ver un par de dibujos hechos por mi con Inkscape: http://algargar.com/blog/?cat=5

 

 

 

¿Utilizas Linux para el desarrollo web? ¿Qué herramientas utilizas tu? :-)

¡Un saludo!

 

HTML5 “El presente de la web”

Desde hace un tiempo hacia aquí ( sobre todo de mitad a final del 2011 ) se viene hablando mucho sobre todo el tema del HTML5. Bien, pues como dicen en la “Guia de HTML5“:

“HTML5 es el presente de la web y si no estás asimilando lo que está pasando ya eres parte de la vieja generación de desarrolladores. Eso tendría que tenerte preocupado.”

 

En Gestiweb llevamos un tiempo implementándolo, hemos desarrollado varios proyectos en HTML5. Una tienda online http://km42.es , la web de un restaurante http://restauranterufino.com ( diseñados y desarrollados íntegramente aquí en Gestiweb ). Así como varios themes Drupal en HTML5 ( http://eltratadodemaripaz.com , http://blog.eltratadodemaripaz.com, http://www.cuartopensante.com y http://blog.cuartopensante.com diseñados por  “El tratado de maripaz” y desarrollados por Gestiweb).

Logo HTML5

 

 

Ya son bastantes los proyectos que hemos realizados utilizando HTML5, pero este post no es para hacernos propaganda ( :P ) , sino para aportar el enlace a un material que me resulta interesante a modo de introducción en el ”cambio” en la web que es el HTML5, sin morir en el intento.

 

 

El libro se llama: “Guia HTML5. El presente de la web“. Está escrito por @freddier y @cvander, podéis encontrarlo junto con muchísima más información en “mejorando.la

También está en “OpenLibra” (La biblioteca de etnassoft) o en Google Docs

Espero que os sirva de ayuda :-)

¡ Un saludo ! ;-)

Google +1, la nueva forma de puntuar webs de Google

Google ha dado una vuelta de rosca a su forma de posicionar webs, ahora mediante el sistema llamado “Google+1″, lo que se quiere conseguir es dar fiabilidad a los sitios web, pues Google jugará con cierto ranking dependiendo si los usuarios han hecho click en el botón +1 de un sitio web, para que este salga mejor posicionado cuando realizen una busqueda. Por lo tanto, cuantos más “+1″ tenga tu sitio, mayor confianza y popularidad transmitirá a los usuarios.

Según el sitio de google:

El botón +1 es una forma rápida de indicar que algo es muy interesante o merece la pena que otras personas lo vean.

Haz clic en el botón +1 para decir públicamente que te gusta algo. Tus +1 pueden ayudar a tus amigos y contactos, o a otros usuarios, a encontrar los mejores resultados cuando buscan en Internet.

Aquí un video de ejemplo:

Más info en la web de Google:

Google +1

Interceptar y validar formularios en Drupal

¿ No se os ha dado el caso de necesitar validar cierto campo de algún formulario en Drupal y no habeis podido hacerlo, o habeis recurrido a algún tipo de parche ?

Ej: Cuando un usuario intente comprar en mi tienda desde los países “A”,”B” o “C” quiero que le deje seleccionar su país, pero que no le deje comprar. En lugar de eso que le salga un mensaje a modo informativo, para que entren en contacto conmigo y hablar de precios.

Bueno, pues voy a explicar una forma lograr esto, trabajando de forma interna con Drupal.

La idea consiste en desarrollar un módulo de Drupal, cuya única tarea sea en el formulario “X” realizar una tarea cuando se cumplan ciertas condiciones.

Un módulo básico de Drupal, consta de 2 archivos:

  1. nombremodulo.info
  2. nombremodulo.module

El archivo nombremodulo.info contendrá lo siguiente:

; $Id: nombremodulo.info,v 1.4 2007/06/08 05:50:56 dries Exp $
name = Modulo Algargar
description = "Modulo para validar el formulario antes de realizar el pedido."
package = "Paquetes Algargar"
version = "6.x-1.0"
core = 6.x
php = 5.0

; Information added by drupal.org packaging script on 2010-12-17
version = "6.x-1.0"
core = "6.x"

Básicamente es información para el drupal.

El archivo nombremodulo.module , que es el que realmente interesa, es quien se encargará de interceptar nuestro formulario. Incluiría lo siguiente:

<?php
// $Id: nombremodulo.module,v 1.414.2.16 2010/08/06 11:10:57 goba Exp $
function algargar_form_alter($form_id, &$form) {
//interceptamos el formulario de revision del pedido
if ($form_id['#id'] == 'nombre-formulario') {
//En caso de haber elegido un país de envío
if($form[post][panes][envio][pais_envio]){
//en caso de que sea A
if($form[post][panes][envio][pais_envio]==620){
$pais='A';
}
//en caso de que sea B
if($form[post][panes][envio][pais_envio]==250){
$pais='B';
}
//en caso de que sea C
if($form[post][panes][envio][pais_envio]==250){
$pais='C';
}
form_set_error('pais_envio', t('Lo sentimos, usted está intentando comprar desde '.$pais.'.
Para compras desde '.$pais.', consulte nuestra tabla de precios '));
}
}
}
?>

Con esto, al intentar comprar desde “A”,”B” o “C”, Drupal nos sacaría un error similar al siguiente:

¡ Si lees esto, y crees que el código es mejorable, o tienes una idea mejor de como hacerlo, no dudes en decirlo ! ;-)

¡Un saludo!