Subscribe:

AD (728x90)

About

Blogroll

Blogger templates

Blogger news

Podcast Programar


#131 Programar con un Nokia 2690, en ensamblador o e



Bienvenido a este nuevo programa del podcast La Tecnología Para Todos. Como ya habrás oído en pasados capítulos, de vez en cuando nos juntamos José Manuel, Germán y yo y hacemos un programa algo distinto.
Hablamos de noticias, proyectos, recomendaciones y un recurso Maker. Hoy el programa viene bastante cargado así que voy a empezar haciendo un resumen.
Comenzamos con tres noticias. La primera es una historia muy inspiradora que ha enviado José de Logroño donde nos cuenta cómo un chico de 14 años pasó de programar en un Nokia 2690 a trabajar en una startup del MIT.
Luego continuamos con una la noticia de la publicación de una nueva release del laminador o slicer Cura, la versión 3.2.1. Y terminamos con la polémica generada en el programa El Hormiguero y las licencias Creative Commons.
El proyecto de la semana nos lo ha mandado Daniel Pose y es un sensor de inundación muy especial.
Las recomendaciones son dos, Fred un plataforma para Node-RED y ESPurna un firmware para dispositivos inteligentes basados en el ESP8266 muy completo.
Para poner la guinda a este pastel el recurso maker nos acerca la programación de microcontroladores de 8-bit con ensamblador y el Amstrad Z80.
¿Estás preparado para empezar? ponte cómodo y disfruta del contenido.
nokia 2690 ensamblador código máquina

Noticias de la semana

Vamos a empezar con las tres noticias que os traemos esta semana.

De programar con un Nokia 2690 a una startup del MIT

Esta historia es muy inspiradora y nos cuenta como Elvis Chidera, un chico nigeriano pasó de programar en un antiguo Nokia 2690 a desarrollar aplicaciones en Java en una startup fundada por unos ingenieros del MIT.
elvis chidera
La noticia nos la envió José de Logroño y es de eldiario.es donde puedes encontrar toda la información.
Como muchos de nosotros, Elvis empezó con la tecnología a través de los videojuegos. Y como tantos de nosotros, sintió curiosidad de cómo se hace el software en especial, las páginas web.
Internet es un mundo de recursos casi infinito y entre ellos se encuentra una web de la que nos hemos nutrido mucha gente, W3Schools. Elvis lo descubrió y aprendió HTMLCSS y JavaScript.
ebook intro arduino
Esto no desanimó a Elvis y consiguió hacerse con un móvil, un Nokia 2690. Si eres muy joven no sabrás qué tipo de móvil es pero, para los viejunos como yo, este tipo de móviles nos acompañaron en nuestros primeros años con la telefonía móvil.
nokia 2690
Y así empezó a programar webs y APPS gracias a un software ruso que permitía editar y compilar programas en Java. Con sólo una pantalla de 1,8 pulgadas podía visualizar 6 líneas de código. ¿Te imaginas leer en este tipo de pantallas? Pues imagínate programar :)
Ya con 16 años había desarrollado varias aplicaciones y entre ellas, Xmx Me. Una APP que permite enviar SMS a múltiples destinos a un precio bastante bajo.
Esto llamó la atención de una revista de emprendedores Africana. Consiguió que 5.000 usuarios se descargaran la aplicación tras la publicación de una notica. Pero, como era normal, el Nokia 2690 no era suficiente y se planteó comprar un portátil.
La idea fue ofrecer sus servicios como desarrollador web freelance y con los beneficios, comprarse un portátil. Consiguió hacer un proyecto y gracias a un amigo que le ayudó a depurar la web, el portátil llegó y así pudo seguir desarrollándose como programador.
En el año 2016 entró en el proceso de selección en la startup Dot Learn. Fundada por dos ingenieros del MIT, esta startup mejora el acceso a vídeos educativos en países en vías de desarrollo.
dot learn
El algoritmo implementado consigue reducir en 10 el tamaño de los vídeos sin apenas perder calidad, todo un avance para que estos países tengan acceso a la información.
Elvis pasó el proceso y empezó a trabajar de desarrollador Java para Android. En la actualidad sus funciones se han ampliado.
Pero aquí no termina la aventura de Elvis, ahora ha puesto su punto de mira en la universidad. Quiere sacarse una carrera universitaria y viendo su historial, estoy seguro que lo conseguirá.
Y es que nada puede frenar el ímpetu de un chico que, con tan sólo 14 años consiguió aprender a programar con un Nokia 2690.

Nueva release Cura v3.2.1

Cura es un software de código abierto desarrollado por la empresa Ultimaker. Su función principal es laminar o cortar en rodajas los diseños 3D para poder ser impresos por una impresora 3D.
cura impresion 3D
A parte de diseñar, tener conocimientos de electrónica, mecánica o programación, a la hora de imprimir en 3D debemos conocer el proceso de laminado.
Básicamente consiste en cortar en capas un objeto en 3D como si fuera un salchichón. Esto es sólo una aproximación ya que Cura es mucho más y nos permite parametrizar nuestras impresiones.
Entre las mejoras que incorpora esta nueva versión destacan el soporte o estructura de árbol para soportar modelos, capas adaptativas que se calculan automáticamente con un algoritmo y mejoras en la interfaz gráfica.
cura soporte arbol
Con esto, Ultimaker pone en manos de los Makers el software de impresión 3D más avanzado del mundo.

Polémica desatada en El Hormiguero Maker

El pasado 22 de febrero saltó la polémica a raíz del programa que se emitió ese mismo día en El Hormiguero.
En la sección de ciencia que presenta Marron, se presentó un robot impreso en 3D llamado Kame. Como has podido ver en el vídeo, hablan de código abierto sin saber muy bien qué es.
La polémica viene por ahí y se inicia por un Tweet publicado por este programa donde dan a entender, como en la emisión del programa, que ellos lo han hecho desde cero.

Traducimos... 😜 Nuestro compi Javi Vargas ha construido estos robots de cero, los ha programado y creado la App para hacerlos funcionar... ¡¡y bailar!! ¿Se habrá inspirado en el dueño? 🕺🏽 Grande nuestro súper equipo se @CienciaHormi 👏🏼

A este Tweet contestó Javier Isabel, el creador de Kame, molesto por la no atribución del proyecto.


A todo esto siguió un montón de comentarios de Makers indignados y entre ellos Pepo Jiménez, periodista y creador de webs como Kurioso.
En vozpopuli, uno de los medios de Pepo, se publicó un estupendo artículo donde explican con una gran argumentación el caso de Kame, el robot con licencia abierta Creative Commons.
Básicamente lo que ocurrió es que, este tipo de licencias obliga a la persona que lo utiliza para beneficio propio, atribuya la autoría de modo explícito al creador, cosa que no ocurrió en ningún momento en el programa.
Como cuenta el artículo de vozpopuli, tras los reproches de la comunidad Maker y de Javier Isabel, El Hormiguero rectificó en parte. Hizo un comunicado en Instagram, una red social donde sólo tienen 500 seguidores, atribuyendo el proyecto a Javier Isabel.
ebook intro arduino

¿Quieres empezar con Arduino?

! Apúntate al curso gratuito !

Curso de Introducción a Arduino gratuito. Accede al Campus y empieza a programar con Arduino desde cero.
Según la licencia de este proyecto, la atribución se debe hacer en el mismo medio donde se utiliza el proyecto, cosa que no ha sucedido por el momento. La diferencia es que El Hormiguero tiene 3 millones de espectadores e Instagram sólo 500.
Este tipo de comportamientos hacen un flaco favor a la comunidad Maker donde intentamos divulgar y compartir el conocimiento con muy pocos recursos.
Ponemos nuestro material, nuestro conocimiento, pero sobre todo nuestro tiempo, tiempo que quitamos a nuestras familias, maridos, esposas e hijos. Lo mínimo que pedimos es que respeten la autoría de los proyectos. No queremos ser famosos ni ricos, ni tener un programa en la televisión.
Sólo cabe esperar lo que esperaríamos de todo el mundo, un poco de respeto y un poco de sentido común cuando se habla de algo que se desconoce.

Proyecto Maker: detector de inundaciones con un ESP8266

El fin de un Maker es crear proyectos. Da lo mismo para lo que se utilice o si es muy simple o muy complicado. Lo importante es compartir nuestras obras con los demás.
Eso mismo es lo que ha hecho Daniel Pose, un oyente del Podcast de Santiago de Compostela que me mandó un email donde me explicaba su ingenioso proyecto para detectar inundaciones.

detector inundaciones ESP8266

Quiero agradecer su colaboración y sobre todo, el valor que demostró al enviarnos un audio que va junto al podcast donde nos explica, con todo lujo de detalles, el detector de inundaciones.
Aquí te dejo el email que me envió al completo, no tiene desperdicio.
Hola Luis,
quería aprovechar este correo para felicitarte por tu labor divulgadora y el esfuerzo en favor de la comunidad. Debo decir que sigo tu podcast y me gusta bastante el nuevo formato que le has dado de resolución de dudas porque es cierto que de una forma u otra todos acabamos aprovechando si no para aprender algo nuevo para reforzar algo que ya conocíamos.
Por otra parte, también quería compartir contigo un proyecto que he creado recientemente. Me costó bastante trabajo y creo que puede aportar algo a la comunidad por lo que si tu consideras puedes utilizarlo en tus divulgaciones. Se trata de un detector de inundación. Hasta aquí podríamos dejar la “”versión corta”” del correo y a partir de aquí empiezo todo el “”rollo”” para describir el proyecto.
Los requerimientos que me propuse para el proyecto eran un poco particulares y se podían resumir en los siguientes:
1. Que funcionara con pilas (4 pilas AA).
2. Que el consumo fuera bajo para que el cambio de pilas se realizara con una frecuencia baja, a ser posible de más de un año.
3. Lógicamente que la alarma de inundación pudiera enviarse a internet por cualquier método inalámbrico (wifi, radio, etc).
4. El circuito debería avisar en caso de necesidad de cambio de pilas también de forma inalámbrica.
Después de documentarme decidí utilizar una placa ESP8266, concretamente el modelo ESP-01. A pesar de que estas placas disponen de modos deep-sleep, los consumos promedio que se pueden alcanzar no me resultaron suficientemente buenos para conseguir una buena duración de batería. Finalmente decidí realizar el proyecto de forma similar a la que utilicé para un proyecto anterior de coger la señal de un detector de humos y enviarla a internet: la ESP se arranca sólo en caso de que sea necesario enviar la señal de alarma bien sea por inundación o por falta de tensión de alimentación.
Para conseguir esto necesité meterme un poco a fondo en temas de electrónica para conseguir un circuito que fuera capaz de arrancar la ESP cuando se detecta agua y al mismo tiempo también arranque la ESP cuando la tensión de las pilas empiece a caer por debajo de un valor que pueda poner en peligro el funcionamiento del sistema. La electrónica debería además conseguir el objetivo de consumir muy poco para ser considerablemente mejor a utilizar la ESP en modo deep sleep comprobando cada poco el estado de alarma y tensión de las pilas.
Estuve buscando varios circuitos electrónicos para hacer todo esto pero no encontré nada que estuviera ya hecho siguiendo estas especificaciones. Lo más cerca que encontré fueron circuitos tipo “”interruptor”” por un lado y circuitos tipo “”detector”” por otro. Además en todos los casos los circuitos detector para sensar la tensión de las pilas utilizaban o bien comparadores o bien transistores por lo que los consumos eran altos. Encontré la posibilidad de utilizar algunos comparadores de muy bajo consumo basados en MOSFET pero eran caros y difíciles de encontrar. Resignado me puse a hacer pruebas sobre la protoboard utilizando las ideas recogidas y con la convicción de que debería utilizar MOSFET. Finalmente, después de muchísimas pruebas conseguí un circuito que funcionó a la perfección y además utilizando componentes muy baratos con un consumo que incluso se puede mejorar respecto al que conseguí (simplemente poniendo resistencias de valor más elevado y llevando el sistema al equilibrio deseado).
Todo este proyecto me animó a construir todo el conjunto utilizando KiCAD y de paso aprender a utilizar la herramienta. También me encontré con JLCPCB con lo que finalmente envié el conjunto a fabricar y después de las pruebas monté mi primer PCB:
Debo confesar que me queda imprimir la caja en la impresora 3D (también diseñada por mi usando FreeCAD) para tener la imagen final de la placa montada pero ya puedo asegurar que funciona. También me quedaría realizar mediciones reales de duración aunque con un consumo promedio de 90 uA puedo intuir que será bastante buena. Si no fuera así, debería ajustar los valores de la tensión a la que se decide asumir que las pilas están agotadas y los valores de algunas resistencias que son las que controlan el consumo.
En un zip adjunto te va toda la documentación:
– El diagrama del circuito en KiCAD con la descripción funcional
– Los documentos gerber para enviar a fabricación la PCB
– El sketch para cargar en la ESP-01
Espero que te guste el proyecto y pueda resultar útil bien en su estado original o aprovechando sus partes para componer otros proyectos.
Puedes encontrar toda la información en el GitHub de Daniel Pose.
detector inundaciones pcb
Si tienes algún proyecto y quieres compartirlo con los demás, desde aquí te ofrezco este espacio para que difundas tus ideas y las puedas compartir con los demás.

Recomendaciones de la semana

En este capítulo del podcast te traemos dos recomendaciones muy interesantes, una plataforma para empezar con Node-RED y el firmware de Xose Pérez para ESP8266,ESPurna.

Fred Node-REd

Fred es una plataforma desarrollada por Sense Tecnic que nos permite crear y desplegar aplicaciones del IoT y domóticas con Node-RED de una forma fácil y sencilla.
Se trata de un servicio alojado en la nube diseñado para agilizar la creación de aplicaciones para el IoT.
node red dashboard
Este servicio o plataforma nos ofrece varios niveles de licencia. La más básica es gratuita y nos deja utilizar una instancia de Node-RED con hasta 50 nodos y un tiempo de ejecución de 24 horas.
La siguiente licencia ya es de pago y cuesta unos 10$. Esta opción ya nos deja cear hasta 150 nodos y un tiempo de ejecución 24 x 7.
Aunque es mucho más interesante instalar tu propia versión de Node-RED en una Raspberry Pi por ejemplo, Fred es una buena alternativa para empezar a trabajar con Node-RED sin preocuparnos nada más que de programar.

ESPurna

ESPurna es un fantástico firmware de código abierto para dispositivos inteligentes basados en el ESP8266. Nos permite controlar interruptores, relés o medidores de consumo por ejemplo.
Xosé Pérez es su creador y puedes ver su magnífico sitio donde nos muestra poco a poco como va profundizando en la electrónica.
Se trata de un firmware muy completo compatible con un montón de dispositivos inteligentes y domóticos. Entre ellos se encuentra mi favorito, Sonoff de Itead. Un relé WiFi que tiene dentro un ESP8266.
esp8266 sonoff itead
En la web de GitHub podemos encontrar una extensa documentación para abrir, hackear e instalar este Firmware. Hace poco le envié un email a Xose porque estoy muy interesado que venga al programa y poder hablar sobre todo lo que hace y comparte. Dentro de poco estará con todos nosotros :)
Por último cabe destacar la compatibilidad de ESPurna con Google Assistant, Domoticz, Home Assistant, InluxDB y ThingSpeak. Además, todo es completamente configurable a través de una interfaz web.
No se puede pedir más a un firmware muy completo y de código abierto. Muchas gracias a Xose por compartir con todos nosotros su conocimiento.

Recurso Maker: aprende ensamblador con el Amstrad Z80

Para finalizar un recurso increíble. Se trata de un curso para aprender a programar ensamblador con un Amstrad Z80. Francisco Gallego es un profesor de la Universidad de Alicante en el departamento de Ciencia de la Computación e Inteligencia Artificial.
Desde hace ya unos años que lo sigo a raíz de una entrevista que le hicieron en uno de mis podcast favoritos sobre programación, We Developers. En esa entrevista Francisco habla del Amstrad CPC y cómo programar algoritmos de inteligencia artificial con ensamblador.
amstrad-cpc-464
Hace unas semanas comenzó una iniciativa muy interesante. Compartir con todos nosotros el Curso Dominando Ensamblador Z80. A día de hoy lleva publicados dos niveles tanto teoría como práctica.