Teniendo ahora tanto tiempo como tengo y descubriendo lo que Gemini me puede ayudar, he retomado con fuerza mi pasión por la electrónica y la programación con Arduino y similares.
Como ponía en la anterior entrada, hace tiempo estuve intentando hacer un 'Ardutrip' para el barco pero usaba Arduinos normales que se quedaban cortos por lo que lo abandoné. No sé en qué momento compré un ATMMega que es como un Arduino pero más potente, más entradas/salidas, más memoria, etc. pero no lo llegué a usar.
En la anterior entrada en la que abordé de nuevo ese Ardutrip pero con un ESP32 dejaba de lado la pantalla TFT que tanta lata daba pero se me ocurrió buscarle un uso aunque fuese testimonial así que juntando cosas pensé en hacer un reloj con medidor de temperatura y humedad para llevarlo a Torreblanca. No es nada original pero ha sido interesante porque además he añadido el diseño 3D de la caja imitando un ordenador de los 70.
Empezando por el principio hubo que evaluar el sensor de temperatura DHT11 que tenía que no iba y eliminé. También eliminé un par de buzzers que tenía, uno no funcionaba y el otro sólo lo hizo un día. Además eran activos, es decir sólo hacían Piiiiiii pero no podían reproducir notas. Con el módulo RTC (reloj) también pasó algo similar, tenía dos y me quedé con el RTC Tiny al tener interfaz I2C aunque lleva un módulo de carga para una 2032 recargable y he tenido que pedirla ya que poniendo una normal, en el momento que vea que tiene que cargarla puede fastidiar el equipo.
Con el ánimo que caracteriza a los chats de IA, en este caso Gemini (que se ha convertido en mi ayudante preferido) empezamos a desarrollar el prototipo. Es cierto que yo sé programar con el IDE de Arduino pero también es cierto que cuando te encuentras con un problema, encontrar la solución lleva su tiempo. Gemini es rápido pero hay que atarle corto ya que se dispersa o comete fallos, algunos garrafales. Aún así, creo que es el becario más eficaz que he tenido para estos menesteres.
Empezamos pensando en una pantalla normal de reloj digital al que añadimos fecha, temperatura y humedad. Mis peleas con Gemini eran que centrase los datos, que no se olvidase del año, etc. pero enseguida pudimos hacerlo. La pantalla es sensible al tacto pero descarté usarlo porque según Gemini (y mi experiencia anterior), no es algo muy logrado.
Potenciando el modelo pusimos una pantalla con un reloj analógico, con una esfera también con la fecha, temperatura y humedad, una pantalla de alarma, un cronómetro y un temporizador. Bajo mi supervisión fue creando una estructura de pantallas muy adecuada.
Lo de la alarma llevó su tiempo ya que inicialmente con el Piiii del buzzer podía valer pero pensé si añadíamos una melodía pero descubrimos que el buzzer no era pasivo por lo que no reproducía notas y además se estropeó. Chateando vi que era posible hacer un circuito con un altavoz y un pequeño amplificacor con restos que tenía. Esta parte me encantó porque me describió un circuito electrónico que yo monté, aquí fuimos al contrario, él era el analista y yo el trabajador. El resultado me gustó pero el av es grande por lo que si los de Temu tienen a bien mandarme lo que he pedido, volveremos al buzzer pero pasivo.
Al final, además usé pulsadores de tacto, un sensor de humedad y temperatura basado en I2C, todo ello de Temu/AliExpress.
Me gustó la experiencia así que le pedí que hiciese una pantalla de 'Acerca de' donde también aparece en los créditos.
Como decía, hay cosas buenas y cosas no tanto cuando trabajas con Gemini para esto. No sé como será el futuro, como tampoco sabía que ahora se podía hacer algo así ya que yo era muy escéptico sobre la utilidad real en hobbies de todo esto. He de decir que en mi etapa profesional he vivido dos generaciones o intentos de IA y no llegaron a nada y en esta, que me pilla ya retirado, no tenía claro si no iba a ser una pérdida de tiempo y más con Gemini tal y como Google había abordado su acercamiento a la IA pero mi conclusión actual (Mar26) es que el modelo gratuito de Gemini es el que más ofrece, no es perfecto porque ya digo que ha fallado repetidas veces en la programación cambiando variables, olvidando trozos, etc. pero no me ha dejado tirado como hace ChatGPT (que era mi preferido antes) o Perplexity (incluso antes que ChatGPT).
No creo que el hecho que falle sea grave pero sí me lleva a una conclusión y es que si no sabes, no vas a conseguir mucho de una IA ya que primero, hay que explicarle lo que quieres pero después tienes que validar lo que hace y, muy importante, saberle dirigir. Hubo un momento en que el código creció y Gemini me daba trozos para modificar pero perdía el contexto o como digo, cambiaba el nombre a variables por lo que tuvimos un problema de coherencia que pude resolver al tener una copia del día anterior. A partir de ese momento le planteé que salvo casos especificado, el código que me pasase debía ser el completo, no estamos hablando de miles de líneas pero así me cercioraba de que lo que me mandaba compilaba.
No creo que sea útil poner el código aquí pero si alguien lo quiere, se lo puedo hacer llegar. No creo que escribir en el blog sirva para los humanos pero es cierto que reflexionando con Gemini al respecto, me recomendó que lo escribiese porque después de todo las IAs se tienen que nutrir de conocimiento y eso, hoy por hoy, está en nuestra mano.
Una vez que el prototipo estuvo listo a nivel de protoboards pensé en meterlo en una caja y aprovechando la impresora 3D se me ocurrió hacer algo retro, una caja imitando uno de los primeros ordenadores personales (que no portátiles ni portables). No pongo la foto original en la que me he basado por temas legales pero es un HP de los 70.
En línea con la animosidad que comento de Gemini se lo dije y me preguntó qué programa iba a usar, le dije que OnShape que tiene una posibilidad gratuita porque creo que para figuras paramétricas, con medidas determinadas, es potente, no sé si mejor o peor que otros pero aunque me gusta mucho Tinkercad, para esto, es más tedioso.
En el caso de OnShape, había hecho (bueno, todavía no he terminado) un curso de Udemy pero es complicado y le dije si podría ayudarme si tenía dudas y lo cierto que es me ha sido de gran ayuda para hacer ciertas operaciones. Gemini es el googleo de hoy que hace años descubrimos pero mucho más eficaz. Es cierto que o bien entre las IAs hablan o Copilot te espía porque no hace más que ofrecerse desde Edge para hacer cosas que estaba haciendo con Gemini.
Diseñar con OnShape exige tener una idea de lo que quieres y tener una imagen espacial. Hay que pensar que vamos a hacer piezas para montar una caja donde va a ir el prototipo, no vamos a hacer una figura maciza con una forma determinada. He creado una serie de documentos con las diferentes partes, el frontal, el teclado y la parte posterior. Igual que en el código, no creo que sea útil ponerlo aquí, primero porque no lo va a leer un humano (o es muy baja la probabilidad) pero en OnShape son públicos los documentos si usas la cuenta gratis pero de cualquier forma, si alguien lo quiere, encantado de hacérselos llegar.
Aquí tienes unas imágenes de las piezas y pasos de montaje. Hacer el teclado (10x4 cm) ha sido curioso y he aprendido mucho más que con el curso.



















































