Automatizacion del hogar con twitter


 En efecto es posible escribir  un ‘tuit’ y accionar cualquier dispositivo eléctrico por ejemplo una cafetera  y  ademas el sistema para conseguirlo es bastante sencillo

En  el caso del cafe , sólo necesita  una cafetera eléctrica , un interruptor electronico( basicamente un relé sólido ) , un ordenador  , una placa Arduino ,  un script en python  y convertir su cuenta de Twitter (como desarrollador) en una cuenta que accione lo que desee.

En el ejemplo qeu nos proponen desde Instructables,  vemos como es posible hacer que su cafetera  se encienda cuando esté en la cama o en el autobús solamente escribiendo un ‘tuit’. Además de ahorrar tiempo, podrá presumir de que su cuenta del pájaro azul es más inteligente que las demás.

Por supuesto esta idea es extrapolable a cualquier otro sistema que quiera acccionar o liberar de forma remota, como  puede ser un  calentador eléctrico,la calefacción de casas,o simplemente  una  lámpara para simular actividad en su vivienda.

Veamos un vídeo de la cafetera accionada por twitter:

 
Como vemos Tweet-a-pot es una sencilla aplicación  para el control de dispositivos a distancia que usa muy  poco de código y también muy poco  hardware, para tener su propia cafetera accionada  por twitter.

Para hacer su propio Tweet-a-pot  necesitará la siguiente:

  • 1 interrruptor electronico :esto es básicamente un relé que se utiliza para interactuar con el voltaje de corriente alterna mediante una pequeña señal de control de 5VDC
  • 1 placa Arduino (cualquiera sirve)
  • 1 Equipo que ejecute el IDE de Arduino y Python
  • 1 Cafetera goteo

 

Lo primero que necesitará será  configurar su ordenador como receptor.

Para interconectar entre el Arduino y Twitter, vamos a utilizar pyton. Hay una biblioteca que ya está elaborada, que nos permite utilizar la API de Twitter. Se llama pitón-twitter .

Después de haber instalado Python , instale la biblioteca de Python-twitter y todas sus dependencias. Si se encuentra con problemas consultela documentación en el sitio web de python-twitter.

A continuación, instalar el IDE de Arduino para que pueda programar el Arduino y comunicarse con él a través del puerto serie.

Una vez que ambos se configuran y  funcionan , es tiempo para ir a tomar sus credenciales de twitter.com

Interactuar con Twitter solía ser fácil, todo lo que tenía que hacer era poner su nombre y contraseña en su código  y ya funcionaba.  Ahora Twitter se lo ha tomado más en serio mediante OAuth, y  debiendo registrar su aplicación con twitter y obtener una clave de API.

En primer lugar, cree  una cuenta de twitter para este proyecto que edeberia estar separado de su cuenta principal de Twitter. En el ejemplo es , driptwit.

Luego, vaya a dev.twitter.com y registre su aplicación, esto le permitirá tomar 4 piezas importantes de información:

-Access Token
-Access Token Secret
-Consumer Key
-Consumer Secret

Se necesitarán estos tokens en el código python más tarde para interactuar con la API de Twitter. Una vez que tenga los 4 códigos, usted ya puede  continuar.

En primer lugar vamos a repasar nuestro código Python. El código python básicamente utiliza la biblioteca de python -twitter para pedir a Twitter los estados de usuario ” x ” , despues toma el último estado y busca el término ” #driptwit ” .
Si se encuentra ” #driptwit ”  envía el valor ASCII del 1 al puerto serie (  para Arduino ) , y  si se encuentra “#driptwitstop” , envía un valor ASCII de 0 .
Por último se realiza un bucle que comprueba la cuenta de twitter cada 15 segundos en busca de cambios .

Como se puede ver , también en el código  es donde se introducen las claves que obtuvo de Twitter en el último paso .

Aquí está el código real :

#******************************************#
# Tweet-a-Pot by Gregg Horton 2011 #
# Please email changes or #
# updates to [email protected] #
# *****************************************#

##Import Libraries

import twitter
import serial
import time

##authenticate yourself with twitter
api = twitter.Api(consumer_key=’consumerkeyhere’, consumer_secret=’consumersecrethere’, access_token_key=’accesskey’, access_token_secret=’accesssecret’)

##set to your serial port
ser = serial.Serial(‘/dev/ttyUSB0’, 19200)

## check serial port
def checkokay():
ser.flushInput()
time.sleep(3)
line=ser.readline()
time.sleep(3)

if line == ‘ ‘:
line=ser.readline()
print ‘here’
## Welcome message
print ‘Welcome To Drip Twit!’
print ‘Making Coffee..’
def driptwit():
status = [ ]
x = 0

status = api.GetUserTimeline(‘X’) ##grab latest statuses

checkIt = [s.text for s in status] ##put status in an array

drip = checkIt[0].split() ##split first tweet into words

## check for match and write to serial if match
if drip[0] == ‘#driptwit’:
print ‘Tweet Recieved, Making Coffee’
ser.write(‘1’)
elif drip[0] == ‘#driptwitstop’: ##break if done
ser.write(‘0’)
print ‘stopped, awaiting instructions.’
else:
ser.write(‘0’)
print ‘Awaiting Tweet’

while 1:
driptwit() ## call driptwit function
time.sleep(15) ## sleep for 15 seconds to avoid rate limiting

CODIGO ARDUINO

La única conexión entre el código python y Arduino es un valor único del puerto  serie. Python envía esto como un valor ASCII , por lo que Arduino interpreta esto como un número de bit , en nuestro caso 1 = 49 .

 

Aquí está el código:

/*
Tweet-a-pot Gregg Horton 2011
Please email changes to [email protected] so i
can improve this code!

Enables blinking/relay control over twitter, using python code
Based off of Blink and Serial demo code

*/

int relayPin = 13; // LED connected to digital pin 13
int incomingByte = 0; //declare incoming byte
// The setup() method runs once, when the sketch starts

void setup() {
// initialize the digital pin as an output:
pinMode(relayPin, OUTPUT);
Serial.begin(19200); // set up Serial library at 19200 bps

Serial.println(“Arduino is ready!”);
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()
{
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
Serial.println(incomingByte);
if (incomingByte == 49){
digitalWrite(relayPin, HIGH);
} else {
digitalWrite(relayPin, LOW);
}

// say what you got:
Serial.print(“I received: “);
Serial.println(incomingByte, DEC);
}
}

El hardware requerido es bastante simple, ya que el control de voltaje de CA está siendo manejado por el interruptor electrónico.

El interruptor  electronico ( llamado tambien relé sólido) le permite conectando sólo 2 cables, uno a tierra y otro para la señal de control de Arduino, poder encender y apagar el relé  y como se ve en el código, todo lo que necesita es una simple señal de control  baja / alta.

Conecte el Arduino al ordenador y asegúrese de que el puerto serie está configurado,  y conecte al interruptor electrónico  el terminal 13 y tierra de Arduino

A continuación conecte la cafetera al interruptor  electrónico y conecte el interruptor electrónico a una toma de corriente normal. Lógicamente la  cafetera tiene que tener el café y el agua en ella,  antes de empezar.

Si el mensaje contiene la palabra #driptwit el café comenzará a hacerse ,pero  si recibe #driptwitstop,se detendrá.

A continuación, ya sólo le queda disfrutar de su taza de café bien caliente accionada por un tweet.

Esta  idea  tambien  puede emplearse   en  cualquier otro sistema que quiera acccionar o liberar de forma remota, como  puede ser un  calentador eléctrico, la calefacción de casa, un control de acceso ,la puerta  electrica del grage   o como deciamos al principio simplemente  una  lámpara para simular actividad en su vivienda.

 

 

Fuente  aqui,

Anuncios

Volver a caminar ya es posible


Los humanos hemos usado durante mucho tiempo las armaduras como exoesqueletos artificiales para nuestra  protección, especialmente en combate. Las ortesis son sin embargo una forma médica limitada de exoesqueleto constituyendo un mecanismo que acoplado a una pierna, o al torso, permite mejorar o corregir el comportamiento de esa pierna o de la espina dorsal en contraposición a una prótesis  que es un dispositivo que sustituye la parte faltante del miembro

Los exoesqueletos  han  saltado al terreno de la ciencia-ficción,  de hecho no en vano  el gobierno de los Estados Unidos ha financiado con 50 millones de dólares un proyecto para integrar exoesqueletos mecánicos a unidades de Marines, con propósito de aumentar su rendimiento,   pero  donde realmente se esta viendo disrruptivo es el campo de la salud.

Indego es el  segundo exoesqueleto para recibir la certificación de la FDA de Estados Unidos para su uso. El primero fue un dispositivo producido por  Robótica Ltd. Sin embargo, Indego ha realizado el ensayo clínico más grande exoesqueleto realizado en los Estados Unidos a lo largo de más de 1.200 sesiones individuales donde  los participantes del estudio fueron capaces de utilizar Indego para caminar con seguridad en una variedad de superficies interiores y exteriores s sin acontecimientos adversos graves.

 

 

Indego  es un ortesis de potencia que   permite a las personas paralizadas por debajo de la cintura se pongan de pie y caminar, siendo el resultado de un esfuerzo intensivo, de 10 años. El desarrollo inicial fue financiado por una subvención del Instituto Nacional de Salud Infantil y Desarrollo Humano . En 2012 Parker, líder mundial en tecnologías de movimiento y control, adquirió una licencia exclusiva para comercializar el diseño y ha trabajado en estrecha colaboración con el grupo de Goldfarb para desarrollar una versión comercial del dispositivo médico.

El carácter innovador del diseño Indego llevó Mecánica Popular para nombrar Goldfarb uno de sus ” Diez innovadores que cambiaron el mundo ” en 2013.

La FDA ha dado autorización para comercializar y vender el exoesqueleto de los miembros inferiores impulsado creado por un equipo de ingenieros de Vanderbilt y comercializado por  Parker , tanto para uso clínico y personal en los Estados Unidos por  lo que en unos días cualquiera podrá comprar este milagro de la tecnología.

 

Hasta hace poco, los robots “llevables” como Indego eran cosa de ciencia ficción , pero en los últimos 15 años, gracias a  los avances en las tecnologías de la robótica, la microelectrónica, la batería y el motor eléctrico han hecho que sea práctico poder desarrollarlos para ayudar a las personas con lesiones de la médula espinal y accidente cerebrovascular.

Este dispositivo actúa como un esqueleto externo. Sus correas se ciñen al rededor  del torso y las piernas se atan a los soportes rígidos y se extienden desde la cadera hasta la rodilla y de la rodilla hasta el pie. Las articulaciones de la cadera y de la rodilla son impulsados por motores eléctricos controlados por ordenador  siendo alimentado todo el conjunto  por baterías avanzadas. Los pacientes  utilizan ademas  andadores o muletas para mantener su equilibrio.

De hecho se puede pensar en este exoesqueleto como un Segway con las piernas. Si la persona que lo lleva se inclina hacia delante, se mueve hacia adelante. Si se inclina hacia atrás y mantiene esa posición durante unos segundos, se sienta. Cuando está sentado, si se inclina hacia delante y mantiene esa posición durante unos segundos, y luego se pone de pie

Indego pesa unos 13kg   ,viene en tamaños intercambiables y puede acomodar una persona con  altura que va desde 155 hasta  191cm  y un peso de hasta  113kg  . Actualmente Indego se puede utilizar con los índices de lesiones de la médula espinal de T7 a L5 en las comunidades o en el hogar y con los niveles de daño de T4 a L5 en los centros de rehabilitación (pero sin embargo no está destinado para los deportes o subir escaleras ).

 

indego

Indego también tiene dos características que están diseñadas específicamente para ayudar en la rehabilitación:

  • La cantidad de asistencia robótica se ajusta automáticamente a los usuarios que tienen cierto control muscular en las piernas. Esto les permite utilizar sus propios músculos al caminar. Cuando un usuario está totalmente paralizado, el dispositivo hace todo el trabajo. Los otros diseños proporcionan plena potencia todo el tiempo.
  • Es el único robot portátil que incorpora una tecnología de rehabilitación probada llamada estimulación eléctrica funcional. FES aplica pequeños impulsos eléctricos a los músculos paralizados, haciendo que se contraigan y se relajen. FES pueden mejorar la fuerza en las piernas de las personas con paraplejia incompleta. Para parapléjicos completos, FES puede mejorar la circulación, cambiar la densidad ósea y reducir la atrofia muscular.
  • Uno de los objetivos de diseño de Goldfarb fue dar a los usuarios la máxima cantidad de libertad personal posible. Uno de sus requisitos, por ejemplo, fue permitir al usuario poner en el exoesqueleto y quitárselo mientras se  está sentado en una silla de ruedas. Como resultado,  Indego es considerablemente más ligero y menos voluminoso que los otros exoesqueletos en desarrollo ( y ademas tiene al posibilidad de cargarlo con una segunda batería auxiliar)
  • Las personas que usan sillas de ruedas con regularidad puede desarrollar serios problemas con su urinario, respiratorio, cardiovascular y digestivo, así como conseguir  aumentar  osteoporosis, úlceras por presión, coágulos de sangre y otras afecciones asociadas con la falta de movilidad. El riesgo de desarrollar estas condiciones puede reducirse considerablemente por estar de pie regularmente, gracias al movimiento y el ejercicio de sus extremidades inferiores.

 

Indego esta disponible también en Europa desde noviembre, cuando recibió la marca CE, equivalente de aprobación de la FDA de la Unión Europea siendo el precio inicial  de $ 80.000.

El siguiente paso es conseguir que el gran coste de dispositivo sea subvencionado  por los seguro de salud. Este consiste en reunir a los Centros de Servicios de Medicare y Medicaid (CMS) para aprobar un “código de tarifa” para el exoesqueleto: un código numérico que identifica las características de los pacientes que Medicare / Medicaid reembolsará por la compra de una determinada pieza de equipo médico. Por lo general, en EEUU el gobierno reembolsará el 80 por ciento del costo de los dispositivos médicos aprobados. En la mayoría de los casos los proveedores de seguros de salud privados adoptan el código CMS. Es de esperar que en Europa  se siga un modelo similar de subvenciones como en EEUU para sufragar el altisimo coste de esta maravilla tecnológica:

En el siguiente video podemos ver la historia de Michael Gore, un T10 completamente parapléjico, que comparte obre cómo el exoesqueleto Parker Indego® le ha permitido caminar de forma independiente por primera vez desde que un accidente de trabajo le dejó paralizado en febrero de 2002. Michael es uno de los primeros pacientes para probar Indigo como un dispositivo de rehabilitación en el Centro Shepherd en Atlanta, Georgia:

Indego se está probando actualmente en el Centro Shepherd, así como otros centros de rehabilitación que lleva a establecer un cuerpo de evidencia clínica de que demuestra los beneficios de que el dispositivo para la terapia y el uso personal. Parker está  aprobado en  la FDA y la marca CE, y en unos días se realizara el lanzamiento comercial .

Para obtener más información acerca de Indego, visite www.indego.com.

Cómo recuperar fotos borradas de una SD


Las tarjetas de memoria flash han revolucionado el mercado del almacenamiento y la transferencia de datos. Su tamaño, capacidad y durabilidad las han hecho ideal para almacenar los datos de dispositivos pequeños, como cámaras de fotos o teléfonos móviles, aparatos donde los discos duros convencionales se podrían dañar más fácilmente

Es fácil equivocarse accidentalmente y borrar  cualquier foto bien desde nuestra cámara digital  o bien desde nuestro ordenador manejando la memoria SD o la micro-sd.

Asimismo es incluso posible eliminar  alguna foto de forma completamente intencionada y luego cambiar de opinión.

Si es su caso ,  no pierda la esperanza  pues hay bastantes programas  gratuitos y tambien de pago para intentar recuperar  sus fotos, pero antes de nada, si  quiere   recuperar con garantía sus fotos ,no copie, ni escriba nada en  la  SD para no sobre-escribir sobre  la información que aun esta en el sd card.

 

 

 

El programa Recuva (gratuito)  es otro candidato para probar a recuperar sus fotos eliminadas .
Una de las condiciones para aumentar la probabilidad de recuperar un fichero, es no sobrescribir nada en la tarjeta de memoria luego de haber eliminado el archivo.

Los pasos  a seguir son los siguientes:

  1. Descargue el programa Recuva
  2. Instale el programa en tu PC: ejecute el archivo que bajo, elija el idioma español, y siga las instrucciones del asistente de instalación. No olvide desmarcar la casilla “Instalar la barra Google gratis con Recuva”
  3. Al terminar la instalación aparecerá el Asistente de Recuva para recuperar sus archivos borrados: marque la casilla “No mostrar este Asistente al iniciar” y  clic en “Cancelar”
  4. Ahora, seleccione el tipo de archivo que quiere recuperar: Imágenes, Música, Documentos, Video…Luego haz clic en “Siguiente”
  5. Seleccione la ubicación del archivo donde Recuva lo buscará (tarjeta de memoria, papelera de reciclaje…) y haga clic en “Siguiente”
  6. Haga clic en “Iniciar” para empezar con la búsqueda de los archivos eliminados.
  7. Una vez terminada la búsqueda, Recuva muestra los archivos que ha encontrado: selecciona el archivo que quiere recuperar y haga clic en “Recuperar”
  8. Seleccione la ubicación donde se recuperará el fichero, no debe ser la misma unidad donde se encontraba el fichero eliminado, luego le da clic a “Aceptar” y listo!
  9. Ahora ya puede abrir su archivo recuperado.

recuva

DiskDigger es un programa que deshace la eliminación y recupera los archivos perdidos de su disco duro , tarjetas de memoria , unidades flash USB – lo que sea! Si ha borrado accidentalmente algunos documentos o fotos desde el ordenador , vuelve a formatear la tarjeta de memoria de la cámara , o si desea ver qué archivos están al acecho en una vieja unidad USB , DiskDigger está aquí para usted .

DiskDigger  es pues otra utilidad que puede recuperar archivos borrados por accidente de cualquier medio de almacenamiento incluyendo discos duros, memorias USB, tarjetas de memoria y otros más , escaneando a fondo los medios en busca de rastros de los archivos perdidos, ya sean fotos, videos, documentos o música, permitiéndole previsualizarlos mientras sigue explorando.

  1. Descargue el programa aqui Funciona con Windows 10 , Windows 8 , Windows 7, Windows Vista, Windows XP y Linux
  2. Extraiga el fichero en un carpeta
  3. Ejecute el programa
  4. Seleccione la  unidad  que contiene los archivos a recuperar
  5. Ahora elija “Excavado normal”

dikdigger

Por ultimo  solo queda pinchar en cada arhivo recuperado la ubicacion donde se desea almacenar  la imagen  y el programa lo archivara en esa localizacion ( incluso sinl icencia)

 

dikdigger2

Por ultimo destacar  el veterano Undelete Plus  como otro  programa para recuperar archivos. Para recuperar los ficheros eliminados de la tarjeta de memoria primero hay que bajar el programa , después sencillamente extraemos y ejecutamos el programa Undelete Plus, escogemos la letra de unidad de nuestra tarjeta de memoria con datos perdidos y apretamos la opción: “Start Scan”.

Cuando el programa haya encontrado los archivos perdidos de la SD Card sencillamente apretaremos “Start Undelete”. Después de eso podemos cerrar el programa Undelete Plus, abrir la tarjeta de memoria y comprobar que se han recuperado los archivos como fotos borrados de la tarjeta de memoria

 

Como ejemplo de programa de pago destace  Stellar Photo Recovery ,la cual pretender ser una herramienta de recuperación de imagen digital dinámico del tipo “profesional  ”  que es capaz de recuperar fotos , vídeos , música, etc. Los formatos de archivo soportados de formatos de fotos incluye JPEG , PNG , TIF , TIFF y RAW de cámara fotos , etc. ,  los formatos de vídeo y audio tales como MP3 , MP4 , AVI , WMV , FLV , MOV , WAV y más.

No sólo desde el PC , pero la cámara , iPod , teléfono  , etc. , no sólo fotos , sino también vídeos y archivos de audio se pueden recuperar . La aplicación también lleva a cabo los procedimientos de sólo lectura y no va a hacer ningún daño a su dispositivo.

  1. Descargue el  programa  aqui 
  2. Instale el programa en su PC aceptando ejecutar el archivo que ha descargado
  3. Al terminar la instalación si conecta una SD en su ordenador ,automáticamente aparecerá la unidad  y empezara a scanear la unidad
  4. Tardara  en función del tamaño de la SD ,así que tenga bastante paciencia
  5. Finalmente cuando concluya el proceso de escaneo ,pinche sobre los ficheros que desea recuperar  y pulse “Recover”
  6. Desgraciadamente si desea recuperar ahora alguna foto ( aparece en el programa en modo miiatura )  tendrá que pasar por caja y pagar la licencia  ahora aunque sólo quiera recuperar una sóla foto..

 

 

fotos

Es una herramienta potente que recupera fotos que fueron borrados de forma accidental en dispositivos como tarjeta de memoria SD, común en cámaras digitales y en dispositivos USB, pero  tiene un coste entre 30 y 50€ por la licencia de uso.

 

Un robot con su Raspberry Pi


En efecto , con un mando Wiimote de Nintendo (en Amazon  cuesta menos de 16€ ), junto con  su  Raspberry Pi 2 Model B  puede  crear su propio “robot mayordomo” eso si usando  una plataforma que le de movilidad al conjunto .

2016-03-27_18h23_36     2016-03-27_23h10_21

Evidentemente la forma del robot quedara sujeta a sus gustos, a los materiales que emplee y por supuesto a su creatividad ,pero el resultado siempre sera muy interesante sobre todo por el alto grado de personalización al que puede llegar  . Lógicamente, ademas  de la Raspberry  y el mando wiimote , también necesitará comprar un chasis  con las dos orugas motorizadas   para que el robot pueda moverse.

Aunque el resultado probablemente no este a la altura de los grandes desarrollos de   robots industriales , al hacer este robot aprenderá cómo utilizar Bluetooth para comunicarse con su Raspberry Pi, cómo conectar una tarjeta de robótica básica usando los pines GPIO ( y controlarlos con Python)  ,así como también cómo utilizar una Nintendo Wiimote para controlar su Raspberry Pi ( también usando  Python)

Para empezar ,siempre es bueno descomponer proyectos complejos en otros mas  pequeños proyectos  , ya que esto  hace que sea mucho más fácil de resolverlos. Es decir: si hace este proyecto de una sola vez y no funciona , ¿cómo saber si es la tarjeta del motor , los motores , la conexión Bluetooth o el programa el culpable del fallo?

Como referencia ,los pasos a  seguir en la construcción podrían ser los siguientes:

  1. Configurar y probar la tarjeta del motor y los motores
  2. Configurar y probar la conexión Bluetooth
  3. Configurar y probar el Wiimote
  4. Escribir el programa definitivo
  5. Construir el cuerpo de su robot  usando su creatividad

Montaje inicial

Para poder controlar los motores del grupo motor , necesitará un escudo  que tendrá que intercalar entre los pines del GPIO  de su Raspberry   y los cables de alimentación de los dos motores DC. Para ello simplemente  ponga la placa  encima de  los pines del GPIO de su Raspberry PI cuidando el orden . Debería  tener un aspecto como este:

 

2016-03-26_19h38_28

Un vez conectado el escudo, el siguiente paso es conectar los cables  de uno de los  motores al conector azul marcado J3 / M1 , utilizando cables pelados en cada extremo o cables  usando un conector macho – macho . Obviamente  también debe conectar el otro motor para J2 / M2 .

El Rover 5 utiliza 2 motores independientes , cada uno con un codificador de cuadratura óptica y la caja de cambios . El montaje de la caja de cambios completo puede hacerse girar a incrementos de 5 grados para diferentes configuraciones de despacho . Puede incluso sustituir a las orugas de los tanques con ruedas tradicionales .

Esto no es una base de robot endeble :con un peso de más de 2,5 libras sin baterías , esta base es resistente y puede pasar por encima de casi  todo.

No importa  en qué forma conecta cada motor individual en este punto (si es un motor gira en la dirección equivocada entonces simplemente puede intercambiar los cables de otro ). Ademas en este punto también puede conectar la alimentación  que simplemente puede  proporcionarse por un portapilas de 6 pilas AAA de 1,5V , el cual  proporcionara los 6V necesarios para el escudo Ahora tiene una batería conectada a los motores del robot a través de la tarjeta de control del motor .

Atención :tenga cuidado con la polaridad: el cable rojo del portapilas debe conectarlo al terminal +VCC   del escudo  y el cable negativo al terminal GND o 0V del escudo.

El aspecto final debería ser algo similar al siguiente :

2016-03-27_00h27_54

El ultimo paso es conectar  la Raspberry  Pi al escudo  con lo que ya tendríamos conectados   todos los elementos del  robot.

Ahora  lo siguiente que toca es dotar del sw necesarios en la  Raspberry Pi para controlar cómo y cuándo los motores reciben energía .


Prueba de motores

La placa  Ryanteck se controla mediante los pines  GPIO  17 , 18, 22 y 23 de la Raspberry  Pi . Si establece el pin  17 a nivel alto  , un motor va hacia la derecha , mientras que si se activa a nivel alto el pin 18 , el  motor  gira en sentido antihorario . Los  pines  22 y 23 dan  control del motor 2 funcionando de un modo idéntico a los pines 17 y 18 pero con el motor 2.

Con todo el conjunto conectado a  su Raspberry Pi  vamos a escribir un pequeño script en Python para probar  el  funcionamiento de la base motorizada .

En la línea de comandos  escriba  test_motors.py tipo nano .

Ahora escriba en el siguiente programa:

import RPi.GPIO as io
import time

io.setmode(io.BCM)
pins = [17, 18, 22, 23]
for pin in pins:
  io.setup(pin, io.output)

#Los motores de prueba  giran a  un lado y luego al otro con retardo de 0,5 segundos .
for pin in pins:
  print ('Testing pin ' + str(pin))
  io.output(pin, 1)
  time.sleep(0.5)
  io.output(pin, 0)

Presione Ctrl-O y luego Enter para guardar . Pulse CTRL – X para salir de la línea de comandos . Ahora ejecute el programa de prueba : sudo test_motors.py pyton .

Si la prueba no se ejecuta como se esperaba , compruebe todas las conexiones así como la batería y vuelva a intentarlo .

 

Prueba  bluetooth

Otro modulo que usted necesitará es un adaptador Bluetooth . Teniendo conectividad Bluetooth se puede utilizar para transferir archivos y para la comunicación , pero  también le permite utilizar dispositivos de juego como en la Nintendo Wiimote y el controlador de PS3 para aplicaciones de  robótica .No todos los adaptadores funcionan en el Pi ; no se puede recomendar específicamente cualquier Inateck pero el adaptador de Bluetooth 4.0 que estamos utilizando funciona muy bien.

Para la prueba  del mando de  la Nintendo es habitual usar  el dongle Inateck Bluetooth Adaptador USB 4.0 con LED | Dongle inalámbrico con inactivo inteligente y Wake-Up | Compatible con Windows XP / Vista / 7/8 / 8.1 | Soporte EDR y A2DP estéreo | Broadcom Chipset – Negro , el cual usa un chip Broadcom 20702, el chip Bluetooth más reconocida en Europa y América; Nivel 1, la distancia de transmisión de hasta 10 m; Velocidad de transmisión máxima de 3 M / S.Ademes.Este dongle emite una señal de Bluetooth 4.0, es estable y fuerte,  usa modo dúplex  y  tiene un  bajo consumo de energía.Ademas cuenta con  ahorro de energía a través de los modos inteligentes de sueño y despertar, evita la interferencia de monitoreo CRC de 24 bits y usa  modulación de frecuencia automática contra superposiciones

2016-03-27_18h41_12

 

Enchufe el adaptador Bluetooth en el puerto USB de la Raspberry Pi , arránquela y   conectese  a esta  .

Procedeamos a instalar el sw necesario,para ello desde línea de comandos debería instalar el driver usando el siguiente comando:

>sudo apt-get install –no-install-recommends bluetooth

Una vez instalado el software ,debería ver el bluetooth está en marcha,para ello escriba:

>sudo service bluetooth status

Deberia dar el mensaje bluetooth is running.

Si no es así, reinicie la Raspberry Pi   y vuelva a intentarlo .

Para probar el dongle  escriba

>hcitool  scan

Cualquier dispositivo detectable  por  Bluetooth en la zona aparecerá en la pantalla ; lo cual indicará  que ahora está listo para usar Bluetooth en el Raspberry Pi . Si no se ve nada , asegúrese de que usted tiene un teléfono u otro dispositivo compatible con Bluetooth cerca del Pi y pruebe a  detectarlos.

 

Prueba de conexión  del mando  .

Antes de continuar,  debe tener Bluetooth instalado y funcionando en su Raspberry Pi  ( habiendo seguido todos los pasos  anteriores ).  El hecho de que el servicio de Bluetooth esté en funcionamiento y pueda ver otros dispositivos no significa que el dongle bluetooth sea capaz de ver el Wiimote( de hecho también puede tener problemas si está utilizando un mando Wiimote diferente del oficial).Así que no hay reglas seguras y rápidas; puede que tenga que probar diferentes configuraciones si tiene problemas.

Escriba desde linea de comandos:

>hcitool scan

Ahora pulse los botones ‘1’ y ‘2’ en su Wiimote al mismo tiempo:los LEDs azules deben parpadear en el Wiimote y debería ver algo como esto en la pantalla:

Scanning … 00:1E:02:8A:CD:A1 Nintendo RVL-CNT-01

También puede ver otros dispositivos Bluetooth que están dentro del alcance, pero obviamente  puede hacer caso omiso de ellos.

Si todo ha ido correctaemmnte ,ahora se sabe que la función Bluetooth está funcionando y  puede comunicar el Wiimote con su Raspberry Pi.

El último paso es asegurarse de que podemos hablar con el Wiimote usando Python.,para lo cual debe instalar el módulo CWIID ,con objeto de que desde Python puede hablar con el Wiimote. 

>sudo apt-get install python-cwiid.

 

El siguiente programa probará que el Wiimote puede comunicarse con el Raspberry Pi. En la línea de comandos teclee

>nano wii_remote_1.py

Luego escriba o copie y pegue el código siguiente:

#!/usr/bin/python
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#|R|a|s|p|b|e|r|r|y|P|i|-|S|p|y|.|c|o|.|u|k|
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#
# wii_remote_1.py
# Connect a Nintendo Wii Remote via Bluetooth
# and  read the button states in Python.
#
# Project URL :
# http://www.raspberrypi-spy.co.uk/?p=1101
#
# Author : Matt Hawkins
# Date   : 30/01/2013

# -----------------------
# Import required Python libraries
# -----------------------
import cwiid
import time
#import RPi.GPIO as io

#io.setmode(io.BCM)
#pins = (2,3,4,17)
#for i in pins:
#  io.setup(i,io.OUT)

button_delay = 0.1

print 'Press 1 + 2 on your Wii Remote now ...'
time.sleep(1)

# Connect to the Wii Remote. If it times out
# then quit.
try:
  wii=cwiid.Wiimote()
except RuntimeError:
  print "Error opening wiimote connection"
  quit()

print 'Wii Remote connected...\n'
print 'Press some buttons!\n'
print 'Press PLUS and MINUS together to disconnect and quit.\n'

wii.rpt_mode = cwiid.RPT_BTN
 
while True:

  buttons = wii.state['buttons']

  # If Plus and Minus buttons pressed
  # together then rumble and quit.
  if (buttons - cwiid.BTN_PLUS - cwiid.BTN_MINUS == 0):  
    print '\nClosing connection ...'
    wii.rumble = 1
    time.sleep(1)
    wii.rumble = 0
    exit(wii)  
  
  # Check if other buttons are pressed by
  # doing a bitwise AND of the buttons number
  # and the predefined constant for that button.
  if (buttons & cwiid.BTN_LEFT):
    print 'Left pressed'
    time.sleep(button_delay)         
    #io.output(2, True)

  if(buttons & cwiid.BTN_RIGHT):
    print 'Right pressed'
    time.sleep(button_delay)          
    #io.output(3, True)

  if (buttons & cwiid.BTN_UP):
    print 'Up pressed'        
    time.sleep(button_delay)          
    #io.output(4, True)
    
  if (buttons & cwiid.BTN_DOWN):
    print 'Down pressed'      
    time.sleep(button_delay)  
    #io.output(17, True)
    
  if (buttons & cwiid.BTN_1):
    print 'Button 1 pressed'
    time.sleep(button_delay)          

  if (buttons & cwiid.BTN_2):
    print 'Button 2 pressed'
    time.sleep(button_delay)          

  if (buttons & cwiid.BTN_A):
    print 'Button A pressed'
    time.sleep(button_delay)          
    #for i in pins:
      #io.output(i, False)    

  if (buttons & cwiid.BTN_B):
    print 'Button B pressed'
    time.sleep(button_delay)          

  if (buttons & cwiid.BTN_HOME):
    print 'Home Button pressed'
    time.sleep(button_delay)           
    
  if (buttons & cwiid.BTN_MINUS):
    print 'Minus Button pressed'
    time.sleep(button_delay)   
    
  if (buttons & cwiid.BTN_PLUS):
    print 'Plus Button pressed'
    time.sleep(button_delay)

 

 

Cuando haya terminado: Presione Ctrl-O y luego Enter para guardar Presione CTRL-x para salir de la línea de comandos .

Ahora ejecute el programa de prueba tecleando

>sudo python wii_remote_1.py

Siga las instrucciones y debería ver la pantalla respuestas a todas sus pulsaciones de botón  así que ha llegado hasta aquí, ya sólo le queda probar todo el conjunto.

 

A continuación  vamos  a ver  el programa principal que le permitirá controlar el vehículo con el Wiimote

En la línea de comandos escriba lo siguiente:

>nano robot.py

Ahora puede  escribir  , o cortar y pegar, el siguiente  programa .

#!/usr/bin/python
#based on Matt Hawkins' code http://www.raspberrypi-spy.co.uk/?p=1101
#Re written by Ryan Walmsley

import cwiid
import time
import RPi.GPIO as io

io.setmode(io.BCM)
#Motor 1 is designed to be the motors on the left, Motor 2 is designed to be on the right
#If one motor is in the wrong direction you can swap the pins around to save you having to re-wrire the robot.
m1a = 17 #Motor 1 Forwards
m1b = 18 #Motor 1 Backwards
m2a = 22 #Motor 2 Forwards
m2b = 23 #Motor 2 Backwards
pins = (m1a,m1b,m2a,m2b)
for i in pins:
  io.setup(i,io.OUT)

for i in pins:
  io.output(i,False)

button_delay = 0.1

print 'Press 1 + 2 on your Wii Remote now ...'
time.sleep(1)

# Try to connect to the Wiimote & quit if not found
try:
  wii=cwiid.Wiimote()
except RuntimeError:
  print "Can't connect to Wiimote"
  quit()

print 'Wiimote connected'
wii.rpt_mode = cwiid.RPT_BTN
 
while True:
  buttons = wii.state['buttons']
  if (buttons & cwiid.BTN_UP):
    #Forwards
    time.sleep(button_delay)    
    io.output(m1a, True)      
    io.output(m2a, True)
   
  elif (buttons & cwiid.BTN_DOWN):
    time.sleep(button_delay)  
    io.output(m1b, True)
    io.output(m2b, True)
  
  elif (buttons & cwiid.BTN_LEFT):
    time.sleep(button_delay)         
    io.output(m1a, True)
    io.output(m2b, True)
   
  elif(buttons & cwiid.BTN_RIGHT):
    time.sleep(button_delay)          
    io.output(m1b, True)
    io.output(m2a, True)
  
  else:
    io.output(m1a, False)
    io.output(m1b, False)
    io.output(m2a, False)
    io.output(m2b, False)
   

    
#press button A to stop all motors
  if (buttons & cwiid.BTN_A):
    time.sleep(button_delay)          
    for i in pins:
      io.output(i, False)    

 

Cuando haya terminado : Presione Ctrl-O y luego Enter para guardar pulse CTRL – x para salir de la línea de comandos .

Ahora ejecute el programa :

>sudo python robot.py.

Si todo funciona correctamente usted debería ser capaz de controlar su vehículo con el Wiimote . Si no es así , vuelve a atrás y compruebe que cada paso está funcionando correctamente ..

Ahora usted ya tiene un robot con control remoto , que es completamente funcional  , pero obviamente acaba de empezar , pues tendrá que pensar en el contenedor  donde lo va a ubicar  ( tendrá que usar su imaginación ) así  como si le va a añadir algún accesorio más :por ejemplo sonido, algún tipo de luz, sensores ultrasonidos , etc

 

2016-03-27_23h10_21

Por cierto  el código completo esta disponible en su pagina oficial de Github

 

Fuente  aqui  

Pistas para reparar una cámara digital compacta


Como cualquier dispositivo  con piezas móviles, circuitos integrados y multitud de otros componentes, una cámara digital puede sufrir una avería, las cuales no suelen  diferir mucho de las de otros aparatos electrónicos de precisión sobre todo al incorporar elementos mecánicos que son susceptibles de  fallar  en gran parte porque están sujetos a uso o desgaste.

Quizás el fallo más habitual sea la caída fortuita  o accidental de la cámara ,la cual   puede provocar diferentes anomalías  como puede ser la  rotura de lentes, objetivo, display  tapas, carcasas, mecánica de zoom, etc. Otras averías provocadas pueden ser debidas a  caídas de líquidos, o por la entrada de elementos extraños en el aparato como ejemplo la arena (especialmente  nociva para las parte móviles). Es obvio que cualquier liquido puede provocar averías muy serías por cortocircuito en componentes además de la corrosión o sulfatado de placas y elementos.

Tanto por un uso frecuente como por no utilizar una cámara ,también pueden  sufrir algún percance, por ejemplo el simple hecho de no usar la cámara  puede generar el secado de un electrolítico que derivará en una mala tensión  y qeu no encienda la cámara cuando vayamos a usarla.

Lo mejor en la mayoría de los casos es llevar la cámara digital a un servicio técnico de prestigio ( especialmente si esta en garantía)  pues  si no se elige un buen servicio técnico, estas averías o fallos pueden generar facturas desorbitantes.  Destacar que dada la espectacular bajada de precios es realmente importante antes pedir un presupuesto ya que en muchas ocasiones  le costará menos comprar un equipo nuevo que repararlo por parte de un profesional ( a no ser que aún este en garantía)

Afortunadamente la reparación de cámaras    compactas se suele “reducir”  a cambio de la batería  , problemas con la óptica o con la lente del objetivo, fallos en la electrónica del encendido o apagado, desperfectos en la mecánica interna, etc , que gracias a la modularidad  permiten la sustitución de esos elementos  haciéndolas  susceptibles de  reparar incluso por un aficionado.

 

Ante las caídas accidentales  o   salpicaduras de líquidos de  una cámara , lo mas normal  es que ocurra: que  no salga el   zoom, con el objetivo abierto  ya no funcione,  de error de memoria , el flash no funcione ,el  enfoque de cerca falle, no haga fotos, se apague sola, no se vea imagen,el zoom este mal, engranaje óptica mal, no cierre el objetivo, el objetivo vaya mal,tenga rota la pantalla, ya no encienda, no salga el  objetivo del todo,el objetivo se meta solo o se quede bloqueado, ya no cierre objetivo( mensaje de apagar) ,las fotos no se vean en pantalla, imagen mal, objetivo no cierre y se apague sola, pantalla rota, sin imagen, lcd roto,  no abra objetivo,no se apague, no haga buen contacto, objetivo desencajado, pantalla sin imagen,se apaga al hacer fotos, no cierra   y un largo etcétera.  Veamos pormenorizado   como subsanar estos problemas:

Alimentación

Es una de las averías mas frecuentes pues sin energía  ningún dispositivo electrónico puede funcionar .Es importante destacar  que las baterias  tienen una vida útil y  ademas de la antigüedad  influye en esto las cargas y la frecuencia de uso. Una batería o pila, irá perdiendo capacidad a medida que pase el tiempo y nunca volverá a estar al 100 % de carga como en sus primeros momentos de uso. Los cargadores de baterías son elementos que también están expuestos a averías propias o provocadas por el estado de los acumuladores que se usen. Prestando atención a los anteriores apartados podemos garantizar que minimizarán el riesgo de averías en un muy alto porcentaje.

Para descartar que el problema no es de energía pruebe las siguientes cosas:

  • La cámara puede estar en modo de suspensión : Si la cámara está en modo de espera, presionando ligeramente el botón disparador se encenderá la pantalla de nuevo.
  • El cable de conexión USB está conectado:Si el cable USB está conectado al ordenador, la pantalla de la cámara se apagará. Desconecte el cable USB para restablecer la pantalla.
  • Conectar otra fuente de energía: La sustitución de  la fuente de energía, como un adaptador de CA o un cable USB puede resolver el problema. Asegúrese de que la tarjeta de memoria está fuera de la cámara cuando se intenta encender el dispositivo.
  • Revisar  tapa de la batería : si no ajusta bien por desgaste o uso , no hará buen contacto la/s baterías  y  no  se suministrará alimentación a la cámara.
  • Revisar cargador : si no se suministra corriente no se cargará la batería  y no  habrá energía en la cámara por lo que es muy importante medir con un voltímetro  a la salida de este( o si no dispone revisando el led  testigo de salida de alimentación)
  • Si  a pesar de todo lo anterior no responde        es probable que  el problema puede estar relacionado con una batería vacía o defectuosa. Para solucionar este problema, intente reemplazar la batería.Signos  que nos  harán sospechar que esta averiada pueden ser   que no funciona con la batería  pero sí con el cargador , que al tomar unas pocas fotos se apaga o que se descarga  rápidamente incluso habiéndola cargado  recientemente

bateria

Placa madre

Es una avería grave que según la gravedad  normalmente obligara a la sustitución de la misma.

Síntomas que nos pueden hacer pensar en una avería de este tipo pueden ser los siguintes:

  • Se apaga
  • Al encender entra y sale el zoom y no hace nada
  • Al encenderla se apaga en seguida , o alimentación,
  • Al hacer foto se apaga
  • Al hacer foto se queda pantalla en negro y se apaga
  • Bloqueada todas las funciones
  • Cuando graba sale logotipo y no se puede quitar
  • Cuando se hacen fotos se bloquea
  • Da error
  • En caliente, da error y se para al grabar y reproducir
  • En modo cámara se apaga
  • En modo reproducir no funciona
  • Enciende pero no sale imagen
  • No deja reproducir las fotos
  • No deja ver fotos se pasa función cámara sola
  • Pantalla en azul y no hace nada
  • Pantalla en blanco o  en negro
  • Punto negro en pantalla  (también posible avería de limpieza)

Suele ser una operación muy delicada , que depende fuertemente del tipo de cámara . Para la nikon colpix  s51C  ,puede consulta  aqui  el proceso paso a paso de como  remplazar la placa averiada por otra nueva

placa madre

 

Problemas de la óptica:

Una avería muy común  aun mayor que las originadas por la placa madre , es todos los relacionado  con los fallos en el sensora sí  como  la optica y mecanica asociada a esta  que suelen ir en una única pieza . Puede ser un mal funcionamiento puntual o por defecto de fabricación. Otras averías comunes en las cámaras digitales son: que el botón de encendido no responda, que la pantalla muestre una imagen distorsionada, que el objetivo se atranque, que la óptica se haya desajustado o está mal calibrada, o que se haya partido algún componente de plástico interno.

Síntomas que nos pueden hacer pensar en una avería de este tipo son:

  • Zoom mal (ni sale ni entra )
  • Zoom no va a tope
  • Rayas en pantalla al hacer foto ,reproduce fotos muy mal ,sale flash pero las fotos oscuras
  • Salen las fotos de color verde o  fotos oscurecidas
  • Salen puntos de color en el objetivo interior
  • Enfoca mal
  • Salen rayas de display que luego salen en la foto (también  posibles por fallos en placa madre)
  • Imagen mal ,al encender, no abre objetivo óptica bloqueada o golpeada
  • Al hacer fotos sale rayita como suciedad ccd averiado
  • Da error fotos con flash muy oscuras diafragma mal
  • Da error sale en la pantalla vuelva a encenderla óptica mal
  • Da error y no se ve imagen ccd mal
  • Desenfoca lente de foco no se mueve
  • Display con rayas
  • Hace fotos con demasiada luz
  • Hace fotos con punto negro (también posible avería de limpieza)
  • Hace las fotos en blanco
  • Hace las fotos muy claras
  • Hace las fotos sin color, o oscuras con nieve verde
  • Hace mal las fotos como desenfocadas
  • Hace un ruido al encender (posible avería mecánica zoom)
  • Imagen borrosa o desenfocada,
  • De  color rojo y sin imagen cuando graba
  • Imagen distorsionada se ve mal ,las fotos salen borrosas no va bien ,
  • No enfoca bien , rayas en imagen se ve mal ,no enfoca bien el objetivo
  • Flash a veces falla-objetivo ni entra ni sale sincronismo de obturador
  • Flash e imagen salen descompensadas (poca nitidez) sincronismo de obturador
  • El objetivo se cierra y abre mal arena en servo mecánica
  • El zoom esta mal uso o arena
  • El zoom no va bien, se queda sin cerrar uso o arena
  • Error de lente: es un error que algunas cámaras lo notifican en el lcd

Si el objetivo esta defectuoso, la sustitución de todo el conjunto suele ser la  la única opción.A veces manteniendo pulsado el disparador mientras se enciende puede ayudar (es decir
mantener  pulsado el disparador hacia abajo y la lente hacia arriba mientras la cámara está encendiendo).Otra idea es colocar  la lente de la cámara hacia abajo y encender la cámara:  colocando   la lente de la cámara hacia abajo e intentando encender la cámara varias veces puede realinear los pasadores en el prolongador del objetivo si  no están alineados ( a veces con un golpecito suave en el lado de la cámara  posiblemente pueda realinear también los pasadores).

Si los trucos anteriores no le han solucionado el problema lo mas aconsejable seria reemplazar el CCD. Suele ser una operación muy delicada , que depende fuertemente del tipo de cámara . Para la nikon colpix  s51C  ,puede consulta  aqui  el proceso paso a paso de como  remplazar el modulo CCDo  por otro nuevo

onbjetivo

Pantalla lcd

Cambiar la pantalla  también es una avería muy típica .Al igual que con otros equipos electrónicos reemplazar  es la única opción, sobre todo cuando es evidente por fractura del lcd o grietas externas. Por tanto si el monitor está dañado o roto, tendrá que reemplazar el monitor LCD sobre todo si la pantalla LCD de la cámara no muestra nada cuando se enciende o el monitor se ha dañado
Síntomas que nos pueden hacer pensar en una avería de este tipo son:

  • Por golpe, no se ve la pantalla (si hace fotos)
  • Rayas en pantalla
  • Por golpe pantalla rota provocado por uso

lcd

Suele ser una operación una vez  mas  también muy delicada , que depende fuertemente del tipo de cámara . Para la nikon colpix  s51C  ,puede consulta  aqui  el proceso paso a paso de como  remplazar la placa averiada por otra nueva

Flash

El conjunto de flash puede no estar funcionando correctamente lo cual obliga normalmente a sustituir el conjunto del flash  o el condensador de alta capacidad.

Síntomas que nos pueden hacer pensar en una avería de este tipo son:

  • Cuando se trata de tomar fotografías, el flash no se dispara.
  • NO DISPARA EL FLASH Y PARPADEA LUZ DE CARGA condensador alta capacidad
  • EL FLASH NO FUNCIONA circuito drive flash

 

Tarjeta de memoria

A veces al disparar la foto ,esta no se queda grabada en la tarjeta,lo  cual puede ser  o bien por la tarjeta  de memoria averiada ( que debemos remplazar para descartar este problema)  o por el lector interno , fácilmente deducible por   pines rotos. En otras ocasiones da error de tarjeta con  una tarjeta  nueva  lo cual es una señal inequívoca  de  pines mal

 

Botonera o carcasa

A veces  la carcasa está dañada porque  ha sufrido daño externo: es evidente que para proteger  la electrónica  y el CCD debe volver a colocar la carcasa exterior  con los medios que tenga disponibles.

Otras avería son los pulsadores que por desgaste no responden, lo cual  su reparación es obvia ya que sin  ellos la cámara no responderá ,pero puede ser dificultoso obtener las placas donde se ubican estos por lo que en muchas ocasiones habrá que reemplazar fisicamente estos

 

 

 

 

Herramientas:

Aparte de un polímetro para comprobar la batería, lo normal es usar las dos  siguientes herramientas:

Destornillador Philps 00:Phillips # 00 es el tornillo de tamaño más común en pequeños dispositivos electrónicos .Es necesario un  destornillador  de precisión robusto con un eje sólido de metal , mango de plástico recubierto de goma , y la peonza para girarlo mas cómodamente .


Puede  conseguir un  destornillador en Amazon en el siguinte enlace  Connex COX977600 – Destornillador de punta de estrella (Philips 00, 60 mm)

Spudger:  es una herramienta antiestática resistente que se puede utilizar para una variedad de propósitos en la reparación de los dispositivos electrónicos. Suelen  estar hechos de nylon y tienen un extremo plano y otro extremo puntiagudo. Las propiedades antiestáticas y flexibles, los hacen ideales para trabajar alrededor de los componentes electrónicos sensibles sin temor a la impactante o rayarlos.

El lado plano señalado se puede utilizar para desconectar los conectores, retirar la pasta térmica del disipador de calor, hacer palanca en componentes, ayudar en la soldadura, o simplemente para desenroscar la batería de un MacBook. El extremo puntiagudo del spudger se puede utilizar para conectar / desconectar los componentes, sostener objetos para la soldadura, o de ayudar para introducir algun conector . Algunos spudgets  también incluye una muesca para conectar cables.

 


Puede  conseguir un  spudger en   Amazon en el siguiente enlace Menda Nylon soldadura Tool Spudger negro de punto

 

Tutorial IoT con Fiware


Gracias a  Telefónica R&D Chile( Telefónica I + D Chile) nos  ofrecen   un interesantisimo tutorial  intruductorio sobre  IOT   concretamente usando la plataforma Orion Context Broker  (FIWARE ) con Arduino aunque puede extrapolarse  a otras placas de IoT ( por ejemplo Netduino ,Intel Edison o Raspberry Pi)

 

Un punto interesante para analizar el IoT (Internet of Things  )es el uso de las normas. Para el caso concreto vamos a revisar más adelante en la sección Orion Context Broker, una adaptación basada en la especificación OMA (Open Mobile Alliance) NGSI (Next Generation Service Interface).  En términos simples, esto significa que las peticiones HTTP o acciones que deben utilizarse son los que están actualmente empleados por los navegadores tales como GET, POST, DELETE y PUT para interactuar con el contexto Broker.

Configuración de hardware

Los componentes que vamos a utilizar son:

  •  Una placa Arduino (hay muchas alternativas, pero una versión con WiFi es esencial)
  •  Una placa protoboard
  •  LEDs
  •  Cables de conexión
  • Un router o un dispositivo celular que pueden ofrecer Wi-Fi (tethering)

Como se ha comentado en este blog , Arduino tiene su propia interfaz de desarrollo utilizando el lenguaje C ++ y se integra una serie de librerías para facilitar la  aplicación de prototipos. Esto no quiere decir que Arduino no se puede utilizar en entornos industriales o de alta demanda. Sin embargo, en estos escenarios cuestiones de costos por lo general conducen a la utilización de componentes ad-hoc.

Al observar la estructura, se puede reconocer algunos pines digitales en la parte superior y analógicas pines en la parte inferior (idéntico  a muchas otras placas como Netduino). Además, en la parte inferior, también  hay una  fila de conectores para alimentar al propia  placa u otras que se conecten. Por supuesto la  placa   también  tiene un conector a una toma de corriente y un conector mini USB, entre otros componentes, dependiendo de la versión de la tarjeta y si se utiliza add-on “escudos” o no.

Si conectamos un LED a la placa podemos hacerlo directamente, conectando el ánodo LED de pin digital 13 y el cátodo del   led  al pin de   GND como se ve aquí.  Hay que señalar que es interesante conectar  entre el pin digital 13 con una resistencia de 220 ohmios para proteger el diodo led , pero estrictamente podría omitirse dicha resistencia.

led.jpg

 

Por último, este mismo esquema se puede usar para agregar más LEDs o sensores de nuestra placa Arduino para que pueda añadir más funcionalidades. Para ello hay que recordar que en un tablero de alimentación corre horizontalmente en los puntos exteriores y vertical en los puntos interiores

 

Arduino, software and communications Arduino, software y comunicaciones

En este ejemplo  vamos a aprender cómo programar la placa Arduino con el fin de activar el LED se instaló en la segunda parte y se apaga. A continuación, vamos a utilizar una conexión a Internet con WIFI  en  la placa.

Como requisito previo, hay que ya hemos configurado el software de Arduino según nuestro sistema operativo. Además, hay que tener USB de la placa conectada a nuestro ordenador para cargar el programa a nuestra placa (  consulte  aquí para ver cómo instalar el software en una placa Intel Edison).

Debe onviamente seleccionar la versión del software que corresponde a su sistema operativo.  Una vez que el software está configurado e instalado abrimos nuestra IDE hasta el comienzo de la codificación.

sketc

 

Vamos  a ver  un ejemplo de la IDE Arduino.  Este ejemplo es específicamente para el IDE para los conjuntos de Intel, aunque los conceptos son los mismos. En la segunda fila de menú (donde el icono de comprobación es), encontrará los comandos para compilar y cargar nuestros desarrollos a la placa.   Si examina el código, tenemos dos funciones.  Uno es de configuración, donde las variables se inicializan y el bucle en el que se ejecutan las operaciones según se requiera. En el menú Archivo tenemos los ejemplos de opciones – 01 Básico – Blink. Esto mostrará una nueva ventana con el código necesario para poner a prueba nuestra LED:

/*

Blink Parpadeo

Se enciende un LED durante un segundo, luego se apaga durante un segundo, en repetidas ocasiones.

Este código de ejemplo está en el dominio público.

*/ Pin 13 tiene un LED conectado en la mayoría de las placas Arduino.

// Darle un nombre:

int led = 13;

// La instalación se ejecuta de rutina una vez cuando se presiona RESET:

void setup() { 

// Inicializar el pin digital como salida.

pinMode (led, OUTPUT);

}

// La rutina de bucle se ejecuta una y otra vez para siempre:

void loop() {

digitalWrite(led, HIGH);  //  Enciende el LED (ALTA es el nivel de tensión)

delay(1000);  // Espera un segundo

digitalWrite(led, LOW);  //  Apagar el LED haciendo que la tensión BAJA

delay(1000);  // Espera un segundo

}

El ejemplo que genera Arduino es bastante simple.  En la línea 10 se establece una variable con el número pin correspondiente en la placa . Posteriormente, el pasador la variable se  configura  como salida y se inicializa. Y, en el bucle, el LED se enciende y se apaga separado por un retraso de un segundo .

Antes de cargar el código anterior en la placa , el IDE se debe configurar para que sepa la placa  y qué puerto se  está utilizando:

Select Tools> Board> Intel Edison Seleccione Herramientas> Junta> Intel Edison ( para el caso de una placa Intel Edison)

Select Tools> Port> dev / ttyACM0 Seleccione Herramientas> Puerto> dev / ttyACM0

Ahora bien, si la tarjeta está correctamente conectada al puerto USB, podemos ‘Subir’ el código de la tarjeta (Ctrl + U) y deberíamos ver nuestra LED encendido y apagado de cada segundo.

 

Ahora para usar el wifi, tenemos que trabajar un poco más.  Por suerte, en los ejemplos de Arduino, tenemos una sección de WIFI con diferentes alternativas utilizando las soluciones de redes.  Entre ellos se encuentran los servidores Telnet y clientes, servidores Web y clientes, e incluso un cliente de Twitter.

CONSEJO: En nuestro caso, por motivos de simplicidad, podemos utilizar un cliente Web ya que vamos a enviar solicitudes posteriormente al corredor Orion Contexto utilizando el protocolo HTTP.  Tenga en cuenta que hay mejores soluciones, pero para los propósitos educativos vamos a tratar de minimizar el código tanto como sea posible.

#include <SPI.h>

#include <WiFi.h> >

/ ************************** /

/ * * Configuración de la instalación /

/ ************************ /

char ssid[] = “YourWifiSSID”;//Nombre de la red

char pass[] = “WifiPassword”; //Contraseña de red

char server[] = “130.206.80.47”;  // ORION IP address -> Create in /lab/ // Dirección IP ORION -> Crear en / lab /

int status = WL_IDLE_STATUS; int estado = WL_IDLE_STATUS; // we predefine the status as On but not connected // Nos predefinimos la condición pero no conectada

int led = 13; int LED = 13; // We initialize a variable to assign the pin number to which the led will be connected // Inicializamos una variable para asignar el número de identificación personal al cual se conectará el LED

/**

* Configuración Configuración Arduino

* (Ejecutar una sola vez)

**/

void setup() {

// Inititialization del puerto serie Arduino

Serial.begin(9600);

while (!Serial) {

// Esperar para el puerto serie para conectar. y Necesario para Leonardo solamente

}

// Comprobar que la placa tiene un escudo WiFi

if (WiFi.status() == WL_NO_SHIELD) {

Serial.println(“Wifi shield is not available”);

// No continúe con la instalación, o en otras palabras, se quedan aquí para siempre

while(true);

}

El código completo está disponible en:

https://bitbucket.org/tidchile/ecosystem/src/ https://bitbucket.org/tidchile/ecosystem/src/

FIWARE  y Orion Context Broker

Como se ha discutido anteriormente en este ejemplo, el Broker de Orión define un contexto como un servicio que en base al stándar  OMA NGSI 9/10 puede manejar el envío y recepción de información contextual.  ¿Qué significa esto?  En primer lugar, para manejar un gran número de mensajes de entidades y administrar las actualizaciones, consultas, y también se encargan suscripciones de datos de las entidades. Recordemos que, según la NGSI 9 y 10 estándares, nos ocupamos de las entidades como una abstracción de los nodos físicos o dispositivos utilizados en las soluciones de la IO.

En el ejemplo anterior, hemos hecho una solicitud de actualización a una entidad ya creada.  Pero primero vamos a revisar cómo trabajar con Orión. . Una manera simple de probar el servicio OCB es crear una cuenta en https://account.lab.fiware.org/ y crear una máquina virtual con Orion preconfigurada en la sección de la nube. Alternativamente, el sitio y el acceso GitHub de Orión descargar una máquina virtual para ejecutar en nuestro entorno local

Otra herramienta útil es un cliente REST, pero podemos usar cURL si parece más sencillo. RESTClient es un cliente para Firefox que es bastante fácil de usar.

Los aspectos de configuración de la OCB están fuera del alcance de este tutorial, ya que requeriría demasiados detalles.  En cuanto al Laboratorio fiware, es importante tener en cuenta que fiware proporciona máquinas virtuales en la nube de forma gratuita para probar fiware compontents. Sólo tiene que crear una cuenta para acceder a los servicios. Sólo una advertencia rápida. . A partir de hoy (19-03-2015) y temporalmente, España no tiene recursos disponibles, pero hay otras regiones en las que las máquinas virtuales se pueden crear.

Cuando tengamos las herramientas necesarias, la forma más básica para interactuar con la OCB es:

1. Creando una entidad:Para ello hay que tener en cuenta varios factores.  En primer lugar, la llamada se envía como una solicitud HTTP POST, por ejemplo, http://myhost.com:1026/v1/updateContext.  Con esto queremos decir que estamos ocupando la versión 1 del API con la operación updateContext.

También tenemos que definir varias variables en la cabecera de la solicitud:

Accept: application/json

Content-Type: application/json

X-Auth-Token: [TOKEN AUTHENTICATION]

En cuanto a la generación de tokens, la forma más sencilla es utilizar un script en Python creado por Carlos Ralli en GitHub. Se necesita una cuenta FIWAREy ejecutar el ‘get_token.py  se requiere la escritura’.

Después de configurar el encabezado de la solicitud, configurar el “cuerpo” de la solicitud mediante el siguiente código JSON:

{

“contextElements”:[

{

“type”:”LED”,

“isPattern”:”false”,

“id”:”LED001″, “

“attributes”:[

{

“name”:”switch”,

“type”:”bool”,

“value”:”false”

}

]

}

],

“updateAction”:”APPEND”

}

Esta es la estructura de un “contexto Elementos”, que es un grupo de entidades con ciertos atributos, tales como, “isPattern” e “id”, “tipo”.type ”  se refiere a un tipo definido y permite la búsqueda de entidades por un tipo particular. “Id” es un atributo que debe ser único para cada entidad para ejecutar búsquedas en base a este ID. “IsPattern” se explicará más adelante en el punto No. 2.

También puede agregar una serie de atributos de la entidad en la propiedad “atributos”, donde cada atributo se define por el “nombre”, “tipo” y “valor”. Por último, “updateAction” define si vamos a realizar un “añadir” o y “UPDATE”.

Si todo va bien, vamos a recibir una respuesta 200 OK desde el servidor y que nos dará los detalles de la entidad creada:

{

“contextResponses” :

{

“contextElement” : {

“type” : “LED”,

“isPattern” : “false”,

“id” : “LED001”, “

“attributes” :

{

“name” : “switch”,

“type” : “bool”,

“value” : “”

}

]

},

“statusCode” : { “

“code” : “200”,

“reasonPhrase” : “OK”

}

}

]

}

2. Consultar la entidad: Para consultar una entidad, la operación estándar es ‘queryContext’ que sería http://myhost.com:1026/v1/queryContext.También aplicamos las cabeceras que se describen en el punto No. 1 y el uso post.

El JSON utilizado en el cuerpo de la petición sería la siguiente:

{

“entities”:[

{

“type”:”LED”,

“isPattern”:”false”,

“id”:”LED001″

}

]

}

Aquí es donde puede utilizar “isPattern” en “verdadero” y trabajar bien en el campo “tipo” o el campo “id” con expresiones regulares si queremos ejecutar una búsqueda un poco más compleja. En el ejemplo anterior sólo estamos buscando la misma entidad creada a través de la “id”.

También hay una manera más sencilla de hacer la misma consulta utilizando la siguiente solicitud: GET http://myhost.com:1026/v1/contextEntities/LED001 donde LED001 es el “id” de la entidad a buscar.

3. Actualización de la entidad: Esto es idéntico al punto No. 1, pero cambiando el atributo “updateAction” de “añadir” a “UPDATE”.

Por último, la integración de todo lo que hemos revisado, seremos capaces de generar una acción desde una página Web sencilla que se puede implementar en un servidor remoto y, de hecho demostrar que el LED de la aplicación se activa de forma remota utilizando la OCB.

Para ello vamos a utilizar el LED001 de reciente creación, estableciendo el atributo “interruptor” de verdadero a falso y viceversa para comprobar la acción.

Nuestra web se vería así:

 

ejemplño

Para ello, el código html, css y js se comparten en:   https://bitbucket.org/tidchile/ecosystem/src/ https://bitbucket.org/tidchile/ecosystem/src/

 

 

 

Fuente    aqui

Reproductor offline y abierto


Se llama Meesic, y es un proyecto de código abierto español ,  escrito por el desarrollador español José Amuedo “spheras”, el cual pretende ,tras la desaparición de grooveshere  ,ser una alternativa  ( eso si en local )  para  los que deseen reproducir sus archivos  MP3 desde cualquier lugar sin necesitar tener que llevarlos todos consigo

Messic  proviene de la unión de dos palabras:

  • Desastre: un estado sucio o desordenado de las cosas o de un lugar
  • Música: sonidos vocales o instrumentales (o ambos) combinados de tal manera  para producir belleza de la forma, la armonía, y la expresión de la emoción

El objetivo del proyecto es pues convertir el maremágnum  de archivos de música en una biblioteca de música de verdad ordenada y catalogada, pudiendo reproducirla  también de una manera cómoda y sencilla desde cualquier lugar en el que estemos sin depender de terceros.

Las principales características de Messic  son:

  • Totalmente abierto y libre! messic es totalmente libre y sin ningún beneficio personal. Tiene una licencia GPLv3 .
  • Ser un catálogo privado de la música lo más automático posible, y es propiedad sólo de usted. Usted puede ir siempre al sistema de archivos donde lo copia y conseguirlo.
  • Se reproduce la música en una interfaz muy cómoda y bonita.
  • Se ejecuta a través de la web, por lo que podría publicar este servicio en el hogar para cada dispositivo.
  • Es multiusuario.
  • Está enfocada a catalogar su biblioteca de música personal. Queremos gestionar y escuchar a nuestro propio catálogo de música en casa sin subir nada a la Internet.
  • No es necesario estar conectado a Internet para escuchar su música. Está disponible siempre en su red doméstica, o descargado de forma local en el dispositivo.

 

 

 

Meesic pretende ser fácil de instalar, así que  lo primero que tiene que hacer es descargarse   la aplicación básica que haga de servidor, la cual tendrá que ir en el ordenador que vaya a utilizar para alojar su música   Windows, Mac o Linux (acuérdese que tendrá que mantener el equipo siempre encendido, pues sin esta aplicación de servidor  funcionando, obviamente su servicio  de biblioteca musical no estará operativo)  y posteriormente ,si lo desea  instalar el cliente en cualquier dispositivo en su casa.

 

Respecto al servidor se puede descargar el instalador en la página oficial de Meesic, desde los enlaces  del repositorio de github para Linux, Mac y Windows. Obviamente debe seleccionar la versión más adecuada para su sistema y proceder a instalarlo:

 

Una vez instalado dicho  sw siguiendo el asistente , podrá  iniciar y detener el servicio,el cual  proporcionará un acceso web a la interfaz web de messic, es decir, una vez en servicio  se podría ver la interfaz web messic simplemente abriendo desde cualquier navegador moderno yendo a la dirección URL del dispositivo donde se instaló messic (probablemente algo similar a http: //192.168.1.X:. 8080 / messic .)  Esta URL dependerá del equipo en el que instaló el servicio messic en su red local … ( no se preocupe, el servicio messic le permitirá saber cómo es esa URL cuando se inicia).

Por lo tanto, si ha instalado el servicio de messic en cualquier ordenador de la red doméstica y ahora, desde este dispositivo, o desde cualquier otro, ya está listo para acceder a la interfaz web messic para administrar su música.

Una vez instalado y ejecutado,lo primero que tiene que hacer es ir a la opción Configuración para determinar en qué carpeta local quiere que se aloje la música que suba .Asimismo también podrá activar la opción de comunicaciones seguras o establecer el tiempo máximo de cada sesión.

Lo primero y obvio es  subir algo de música para messic: seleccione pues los archivos de audio que desee adjuntar para el álbum que está creando y cualquier otro recurso como cubiertas, artes, letras, y así sucesivamente …Se puede añadir toda la información adicional de su música(es decir los metadatos ) como puede ser el año de publicación, autor, observaciones, género, nombres de canciones, … o añadir la obtención de esta información de las etiquetas de mp3 de forma automática, o gracias a los servicios externos como freedb o Discogs, que también son compatibles con messic. A partir de ese momento  ya pude  usar esta interfaz web para escuchar su música siempre que lo desee, o incluso activar el protocolo DLNA para compartir su música con otros dispositivos en su hogar.

Una vez hecho esto ya podrá ir a la pestaña Principal. En ella sólo tendrá que darle a la opción Iniciar que te aparecerá arriba a la derecha y la aplicación se ocupará del resto. Cuando le aparezca en verde que el servicio está iniciado ya podrá abrir en una pestaña de tu navegador la URL que se te ha generado para acceder al cliente web.

Por otra parte, si el servicio messic está instalado en su casa, en la red, y no quiere publicarla  en Internet, entonces es probable que desee utilizar el cliente de teléfono inteligente Android pues este cliente de Android puede conectar con su servicio messic y escuchar su música desde allí, e  incluso puede descargar su música en el dispositivo con el fin de escuchar su música por todas partes, sin necesidad de estar conectado a su servicio messic.

En resumen  ,puede  conectarse a su Meetic de dos maneras, o a través de sus aplicaciones para Android disponibles en Google Play y Amazon o en la web con su APK, o utilizando cualquier navegador moderno con su cliente web.

Además de la opción de subir música, en la aplicación web también encontrará la opción de Inicio donde se le sugerirán canciones dependiendo de tus gustos, y un Explorar Música donde se le listan todos los discos de su colección. Asimsimo también tiene secciones para gestionar las listas de reproducción y para configurar tus parámetros de usuario o los del servidor.

Las versiones del cliente (no el servidor) para teléfonos inteligentes Android y Android TV son las siguientes:

 

 

repro

 

En cuanto al cliente para dispositivos Android, con él podrá reproducir todas su colección de música online y descargarla en su dispositivo para poder reproducirla fuera de línea. Todo ello sin subir ni ceder tu música a ningún proveedor de terceros, ya que está utilizando su propio ordenador como servidor desde el que emitir.

Este cliente es capaz de conectarse a un servidor messic para reproducir música online u offline.Lógicamente es necesario disponer por tanto de un servidor messic al que conectarse, al menos la primera vez para descargar música en su dispositivo, o reproducirla directamente del servidor messic.

Con esta app se pueden acceder a  las siguientes funcionalidades:

  • Reproducir música online de un servidor messic
  • Descargar música de un servidor messic
  • Reproducir música offline

Tenga en cuenta que messic NO sube/cede tu música a ningún proveedor externo. Tan sólo almacena su música en su propio sistema. Un típico caso de uso es descargar el servidor messic e instalarlo en cualquier ordenador  de casa. Puede subir su música a messic a través de un navegador web desde cualquier otro ordenador de casa, utilizando messic desde un navegador. Después de eso, podrá escuchar su música en cualquier sitio, en cualquier momento, bien a través del servicio de música messic (web) o a través de esta aplicación android.

 

 descargado

Al acceder a este cliente por primera vez tendrá que crearse una primera cuenta de usuario, la cual será también de administrador. Después podrá ir creando más para quienes vayan a utilizar la aplicación, y durante el proceso podrá configurar aspectos como si quieres que se suban tus estadísticas para que se creen listas con las canciones que más o menos has escuchado.

mmes1

Una vez creado el usuario accederá al panel principal del cliente online,no puede utilizar tus carpetas ya existentes de música en su smartphone, por lo que tendrá que ir subiendo cada disco que quiera que esté disponible.

 

 

mme3

Para hacerlo tendrá que hacer click en la opción “Subir Música”, y elegir los MP3 de cada disco incluyendo la imagen que quiera que se utilice como portada. La información del álbum puedes escribirla usted mismo, aunque también hay un asistente que utilizará la de los propios MP3 o webs como FreeDB o Discogs para obtener los metadatos.

mme2    mme4

 

 

 

 

La API de la aplicación y todo su código está disponible en la red, y lo puede encontrar en su repositorio de GitHub.