A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

Curso Básico de Arduino: 4ª edición

Arduino + TLC5940El próximo 16 de Marzo empezamos la cuarta edición del Curso Básico de Arduino que imparto en el Cevug en colaboración con la Oficina del Software Libre de la Universidad de Granada.  Se trata de un curso básico puesto que no se requieren conocimientos previos más allá de saber usar el ordenador y tener una mente abierta para comenzar a aprender electrónica e informática.

Todos aquellos que no hayan programado nunca verán qué sencillo es programar usando herramientas modernas como bitbloq

Este curso se realiza con metodología online, es decir a través de una plataforma web, con lo que puedes emplear el horario que más te interese y funcionar a tu ritmo.

Tendrá lugar desde el 16 de marzo hasta el 1 de mayo de 2015.

Este curso te prepara el curso de arduino avanzado

Además de una introducción a la electrónica y a la programación, en el curso aprendemos el funcionamiento de la plataforma Arduino, terminando el mismo con la elaboración de un proyecto.

Puedes ver algunos de los vídeos del curso así como de los proyectos que han hecho  los alumnos a lo largo del mismo en mi canal de youtube y el índice 

Para matricularte usa la página oficial del curso y para más detalles y el índice en la mi página sobre el curso.

Protocoder: programa fácilmente tu android con javascript

ideProtocoder es un entorno de desarrollo para Android que nos permite utilizar javascript (uno de los lenguajes que más tirón tienen ahora mismo) para crear aplicaciones Android rápidamente. Es totalmente open-source y podemos ver su código en github

 

Podemos resumir diciendo que se trata de un entorno de desarrollo de aplicaciones Android que utiliza javascript como lenguaje y que incluye la documentación y multitud de ejemplos en forma local. Usaremos el navegador en el pc para desarrollar de forma muy sencilla aplicaciones Android que se ejecutarán en dicho dispositivo.

En su forma de funcionar, se nota que su principal desarrollador (Victor Díaz @victornomad) ha tenido que trabajar en multitudes de entornos de lo más diversos, con y sin conexión a Internet.

De ahí la necesidad de hacer un entorno que se pueda ejecutar totalmente en local, en contra de la tendencia actual de emplazar las desarrollos en la nube.

Desde este entorno podremos realizar aplicaciones Android que acceden de forma muy sencilla al hardware del dispositivo: bluetooth, cámara, red,… a los distintos subsistemas del terminal: reconocimiento de voz, TextToSpeech (lectura de contenidos por voz) así como a dispositivos conectados (arduino o similares)

En definitiva nos permite crear aplicaciones capces de utilizar nuestro teléfono Android como centro de procesamiento de la información disponible, lo que lo hacen ideal para desarrollar aplicaciones de robótica donde el teléfono actuará como cerebro.

Utilización

Para utilizarlo sólo hay que instalar en nuestro dispositivo Android la aplicación Protocoder. Al ejecutarla tendremos acceso vía un navegador web a un potente entorno de desarrollo desde cualquier otro dispositivo que esté conectado a la misma red Wifi o al puerto USB sin más que acceder a la url que nos indica la aplicación al arrancar.

ide

Este entorno de programación web además de un editor y un pequeño menú de las distintas opciones, dispone de multitud de ejemplos y documentación, a los que podemos acceder en cualquier momento.

Se han incluido multitud de APIs a las que podemos acceder desde javascript como Processing (desarrollo visual), Pure Data, Open Street Map, …

También podemos acceder al hardware de nuestro terminal, como el acelerómetro, cámara, ….

Todos los proyectos que realicemos (scripts javascript y los ficheros de recursos necesarios, como imágenes, sonidos, etc…) quedan almacenados dentro de la aplicación y podemos acceder posteriormente a cualquiera de las realizadas (o descargadas) para editarlas o ejecutarlas. Incluso podemos generar aplicaciones independientes, sin más que incluir nuestro script en la aplicación.

Además de usar los recursos del smartphone, podemos conectar otras placas externas como arduino (siempre que nuestro smartphone soporte USB OTG) e intercambiar datos entre ambos, controlándolas o representando gráficamente los contenidos

grafica de sensores

Otra de las posibilidades es la de depurar nuestro código línea a línea

depuración

Con esta aplicación tenemos todo lo necesario para programar en cualquier parte

Instalación

Para usar Protocoder necesitamos un dispositivo con Android 4.0 o posterior y un ordenador donde ejecutaremos un navegador que usaremos como editor de la programación.

  1. Descargamos la aplicación básica o la extendida (que incluye el acceso al envío de SMS) y la instalamos.
  2. Conectamos nuestro ordenador y nuestro Android a la misma red o por medio de cable USB.
  3. Ejecutamos la aplicación Protocoder y un navegador en el ordenador que conectaremos a la URL que nos indica la aplicación.
  4. Para conectar vía USB usamos Activamos la depuración usb en el smartphone ¿Permitir Depuración usb? y ejecutamos en el pc las siguientes líneas
    adb forward tcp:8585 tcp:8585
    
    adb forward tcp:8587 tcp:8587
    

Ejemplo

Para probarlo he creado un pequeño ejemplo con reconocimiento de voz (al que pretenciósamente he llamado Jarvis) que permite hacer una foto o nos contesta si decimos “foto” o “adiós”. Aunque el programa es enormemente simple nos da una idea de la capacidad del entorno. Podéis verlo en este enlace. El código es de lo más sencillo:

/*
*   
*   Description first test in Protocoder, just a jarvis asistant
*   by javacasm
*
*/



media.startVoiceRecognition(function (text)
{ 
    console.log(text);
    if (text==”voz”)
        media.textToSpeech(“Has dicho “+text);

    if(text==”foto”)
    {
        var camera = ui.addCameraView(0, 0, 0, 500, 500);
        camera.takePicture(“picture.jpg”,function(xx)
        {
            console.log(xx);
        });
    }
    if(text==”adios”)
    {
        media.textToSpeech(“Sayonara baby”);
        exit;
    }
});

 

Para la próxima entrada dejamos hacer una prueba controlando y comunicando con un arduino.

Montando una Prusa I3 Hephestos I: Revisión del material

Voy a comenzar a montar una impresora 3D Prusa I3 Hephestos, fabricada por Bq. Comenzaremos revisando el material.

Primera revisión

contenido

  • Con solo abrir la caja salta a la vista que el empaquetado es totalmente profesional
  • Viene bastante documentación en papel, incluyendo por supuesto con la garantía por escrito. De un vistazo rápido vemos:
    • Claramente aparece la url para tener acceso a la documentación online, yo añadiría un email/teléfono de soporte (que sí está accesible online)
    • Advierten de que se pierde la garantía si modificamos la electrónica, para pasar de 230º la temperatura de hotend o si añadimos otros elementos (imagino que principalmente la cama caliente, debido a que sus 11-15A de consumo pueden son demasiados para una Ramps)
    • Todos los documentos viene numerados de forma clara.
    • El marcado como número 1 muestra unos pasos previos al montaje (incluir la tuercas en el plástico, limar los ejes de los motores, etc…)

    empaquetado

  • Todas las cajas también están perfectamente etiquetadas y numeradas. Al sacarlas de la caja externa vemos que va a ser difícil volver a colocarlas de la misma manera. ¿Haría falta unas instrucciones de recolocación? ;p (Después hemos visto que se puede recolocar sin problema)
  • Personalmente pondría las etiquetas de manera que se puedan leer cuando están abiertas (en la caja 2 está por debajo).

    herramienta

  • No me resisto a abrir la caja 7 de herramientas, donde hay:
    • Destornillador de plástico para ajustar la electrónica
    • Llaves Alen para la tornillería
    • Llave fija para la estructura
    • Herramientas para la limpieza del hotend
    • Piezas impresas para sujetar el rollo de plástico a la estructura. Viendo de cerca estas piezas se ve que están impresas con gran calidad (aunque en el cilindro se aprecia que esa impresora tenía un leve cabeceo en el eje Z)

    piezas

  • Viendo la caja de las piezas que hay que preparar para el montaje se ve que la calidad de las piezas es bastante alta, todas vienen en bolsas de plástico
  • Se repite el problema de volver a encajar las cosas una vez que las sacamos: es difícil volver a meter las piezas en la caja una vez que las sacamos, y no he visto ninguna advertencia sobre su fragilidad.

    extrusor

  • El extrusor es una bloque metálico compacto, con los engranajes internos (pienso que un mk7) y con un ventilador para el motor y otro de capa . Viene en una caja perfectamente embalado.

    tornillería

  • La tornillería viene perfectamente organizada en bolsas con todos los componentes del tipo junto. Un pero: pondría el texto en español (como el resto de las etiquetas) o al menos una pequeña hoja donde traduzca los 4-5 términos: (screw,nut,bolt,…)
  • El cristal viene empaquetado y protegido perfectamente en su caja, pero echo en falta un aviso sobre el contenido, es fácil que se caiga y rompa.
  • Algunas piezas vienen en sobres (dentro de la caja) y estos son díficiles de abrir, se podrían usar de los que tiene un plastiquito que abre todo más fácil.

    electrónica

  • La electrónica (de elecfreaks) tiene muy buen aspecto, incluye un Freaduino Mega, una Ramps 1.4 y un LCD con control y SD, para usar la impresora independientemente del PC. No veo ninguna pieza que sea el mando del lcd.  TODO: me apunto buscar piezas para completar o mejorar el aspecto de la hephestos ¿habrá algún repositorio con todas ellas?.

    motores

  • Los motores paso apaso son de calidad y se nota, con conector lo que facilita el montaje, veo que tiene el eje limado cuando en las instrucciones he visto que hay que limarlo. ¡¡Mucho mejor, pero hay que actulizar las instrucciones!! Consulto con el servicio técnico y me informan de que ya está corregido en la web (igual que la advertencia sobre la fragilidad del cristal y que en papel ya se está enviando la nueva versión, me debe de haber llegado una de las antiguas :-/ ).

    alimentación

  • Debido a que ĺa Hephestos está pensada para usar PLA sin cama caliente la alimentación es como el cargador de un portátil, pero con suficiente potencia para mover todo el sistema: 12v 8A TODO: me hago este apunte para revisar cómo queda integrado en la estructura

    marco

  • El marco tiene un acabado mate muy bonito, se ve muy pulido. Me ha sorprendido no ver ningún logo de Bq ni tampoco el nombre del modelo.
  • Después de abrir todas las cajas echo en falta el que se incluyan un par de metros de plástico para poder probar el funcionamiento en el mismo momento que se termine de montar.

En definitiva se ve un kit de una calidad enormemente profesional.

Próxima parada: revisión de las instrucciones de montaje

 

Añadir conexión Wifi a Arduino con ESP8266

ESP8266

Hasta hace muy poco el conectar arduino a wifi era algo esencialmente caro, difícil y cuestionable:

  • Caro porque los shield costaban del orden de los 70-80€.
  • Difícil porque cada uno tenía su protocolo, su manera de configurarlos y sus propios problemas. Sé de gente a la que se le colgaba el router cuando conectaban su arduino al wifi.
  • Cuestionable porque dado que el shield wifi se basaba en un microcontrolador, normalmente de 32 bits (para el tema de la encripción que necesitan los modernos wifis) y capaz de hacer mucho más que una placa arduino, dudabas si el proyecto estaba bien planteado.

Actualmente han aparecido unas soluciones basadas en un sistema SOC (system on chip) que facilitan y abaratan mucho esta cuestión: tanto que podemos comprar uno por ¡¡¡¡ 5$ !!!!. Están basadas en el SOC ESP8266. Un SOC no es otra cosa que un sistema embebido que actúa como un ordenador completo y que podemos programar, sin más que actualizar su firmware

Existe un módulo que contiene al ESP8266 y que podemos conectar fácilmente al puerto serie (¿se puede utilizar otros pines con SoftwareSerial? de arduino y por medio de unos comandos AT de configuración podemos tener nuestra placa conectada al wifi. Al ser conexión via serie no vamos a poder aprovechar la velocidad del wifi, pero tampoco lo necesitamos.

Otra ventaja de ser conexión serie es que podemos utilizar practicamente cualquier hardware.

En esta primera entrada sobre este tema, me voy a limitar a dar enlaces a algunos proyectos interesantes basados en este sistema:

¿Será la revolución del IoT que estamos esperando?

Pronto nuestro propias pruebas, poniendo accesible la estación meteorológica.

 

Telemetría con Arduino

Vamos a empezar una serie de artículos sobre las aplicaciones de arduino a la telemetría. Es lo bueno de impartir cursos: nunca paras de aprender con las preguntas de los alumnos. Siempre hay propuestas de nuevos proyectos.

Comenzaremos viendo las distintas alternativas y sus ventajas e inconvenientes.

Alternativas

Nombre conexión coste alcance ancho de banda inconvenientes
3Dr UART/serie barato 1-2Km 100Kb/s
Bluetooth UART/serie barato 6-8m 100Kb/s corto alcance
Wifi SPI/Serie hay alternativas baratas 50m 1Mb/s interferencias y mósulos complejos
Zigbee UART/Serie medio 1-2Km 100kb caros y propietarios
RF digital baratisimo 10m 1Kb/s muchísimas interferencias
Nordic SPI baratisimo 1-2km 2Mb/s
GSM UART/Serie medio ilimitado 1Mb/s necesita covertura y costes de uso

Proyectos similares

Veamos algunos proyectos y qué sistema usan

Parece que los más usados son los sitemas 3DR.
Veamos dónde comprarlos baratos:

El siguiente paso será ver cómo recibimos los datos.