Arduino IDE en Raspberry Pi 400

Probamos a programar un Arduino desde nuestra Raspberry Pi 400, usando Arduino IDE, pero una versión antigua porque la actualizada no se termina de lanzar correctamente desde Raspberry OS. Aprovechamos para ver qué cositas se pueden hacer con Arduino. Música por internia. Subtítulos en español e inglés.

Hola amigos, canal Virtus Dante, aquí de nuevo con vosotros estoy, después de unos días, o quizás semanas, un poco a la baja con el tema del covid, pero bueno, recuperándonos.

Perdonadme la imagen, las barbas, el gorrito... es que, por decirlo de alguna manera, voy despeinado.

En fin, ¿qué pasa?

que he estado haciendo más cosas con la raspberry pi 400, aquí, con la que ya tenemos varios vídeos subidos.

Y cositas interesantes, he probado algo muy normal, como el editor de imagen con GIMP, y funciona bien, sin problema, sólo que hay que acostumbrarse a él, hay que aprender a manejarlo porque a los que venimos de PhotoShop nos cuesta un poquito el cambio, pero es el editor que hay de imagen para Linux, perfecto.

Bueno, también una cosa muy interesante que quería probar, era programar arduino desde la raspberry pi ¿Qué es Arduino?

Para los que no lo sabéis, arduino es una tarjetita, una placa, os puede recordar a la raspberry propiamente, que es, tiene un microcontrolador y multitud de puertos para conectar los dispositivos que podemos controlar mediante un programa que grabamos en la placa.

El microcontrolador funciona, empieza a dar en bucle, bucle, y va haciendo lo que le digamos.

¿Tenemos un ejemplo?

Pues si, vamos a ver, aquí tenemos, esto sería una arduino mega, mega porque es un poco más grande, hay distintos formatos, igual que en raspberry tenemos la pi zero, la pi 3, la pi 4, la pi 400 dentro del teclado... pues de arduino tenemos distintos formatos también.

Esta es una mega, que es la arduino más grandecita que encontramos.

La UNO, que es la normal, sería una cosa así, y luego hay otras más pequeñas incluso, y, como veis, tiene una multitud de puertos, este sería para conectarlo al ordenador, alimentación...

Y ¿qué podemos hacer?

Pues controlar dispositivos, os voy a hacer un ejemplo, porque he instalado el arduino ide en la raspberry pi 400, para meterle un programita a esta arduino y hacer una demo de cómo funciona.

Entonces, voy a ir arrancando el IDE...

Tengo que decir que no ha sido fácil, ha habido problemas, vamos a ver ahora cuando arranque el IDE, veis, me da bastantes avisos sobre librerías, esto es porque son librerías modernas, actuales, y yo he tenido que instalar el ide antiguo, la versión 1.6, cuando en realidad la más moderna es la 1.8.13 que está disponible desde la página de Arduino, te la puedes bajar e instalar en tu raspberry pi porque está compilada para arquitectura ARM de nuestra Raspberry, pero sin embargo yo cuando le daba a ejecutar parecía que iba a arrancar, pero no aparecía el IDE, no llegaba a aparecer el ide y no lo pude solucionar.

Entonces decidí instalar la versión antigua, que se puede hacer simplemente desde la línea de comandos, y con esta versión antigua me da problemas con las librerías que tengo actuales que me traje del PC, con lo cual voy a hacer un ejemplo muy sencillo de controlar un buzzer, un buzzer es un altavozcillo, con nuestra arduino mega, ésta que tengo aquí.

Bueno, aquí tengo ya el arduino IDE, entorno de desarrollo, dentro de este entorno programamos en C, y voy a abrir este buzzer de ejemplo.

Aquí está, mi programita, como veis muy sencillo, son unas cuantas líneas aquí tengo que haga buzzerEscala(), voy a hacer que no haga nada... este es el, lo que decía, el bucle, el loop, voy a hacer que no haga nada, y luego tengo estas funciones para hacer ejemplo, pero ahora mismo no quiero que haga nada.

Bueno lo primero que tengo que hacer es conectar el arduino a la raspberry pi por el puerto USB Ya está, conectado.

Bien, ahora, como veis aquí, tengo la tarjeta, tengo seleccionada la que es, la mega 2560, hay un montón y estas son de cuando las antiguas, pero bueno.

El puerto de lo detectado, y si yo ahora le mando el programa, me compila y me manda el programa al Arduino.

Compilando, cargando... carga terminada, ya está cargado, pero como está puesto que no haga nada, pues no hace nada, claro.

Y ahora, lo que necesito es el buzzer, hemos dicho que vamos a hacer un ejemplo con el buzzer, este es el buzzer, un altavozcillo pequeñito...

Vamos a conectarlo, tiene dos pines, uno es a tierra y el otro es al voltaje, para que dé el tono, y el tono lo tengo en el pin 13.

Cada uno de estos agujeritos está numerado, son pines, son 13, tengo uno aquí para tierra, y otro que es el pin 13, ya está conectado nuestro altavoz, y ahora le voy a decir en el programa que me haga, el buzzerEscala() no, que me haga buzzerTest(), y simplemente me va a hacer un par de pitidos.

Cargo el programa, empieza y ahí lo tenemos.

Una pequeña tontería.

Pero vamos a mejorarlo un poquito, haciendo la escala musical.

Voy a recorrer las notas musicales hacia arriba y hacia abajo.

Lo tengo ya preparado, este es, ves, estos son los tonos.

Este es el bucle para subir, y este es el bucle para bajar.

Compilo y mando el programa a la placa y ahí está.

Voy a acercarlo al micrófono.

Bueno, entretenido para los que no habéis hecho nunca nada de electrónica, con placas ni nada puede resultar bastante interesante, así me enganché yo.

Y, para animaros, os voy a poner una cosita un poco más chula, vamos a ver, este sketch.

Aquí tengo abierto otro programa.

Este es un poco más elaborado, pero al fin y al cabo es una melodía lo que vamos a hacer.

Las notas están codificadas como tonos.

Voy a mandar el programa al Arduino.

Una cosita importante, porque aquí tengo definido el buffer con el pin 11 y antes lo teníamos conectado al pin 13.

Pues del 13 al 11.

Y el toma tierra que no se nos olvide.

Qué, ¿os suena, no?

Sí señor, StarWars.

No soy demasiado entusiasta de StarWars, pero la musiquilla sí que me mola.

Bueno, pues esto ha sido un ejemplo de programando arduino desde raspberry pi.

Y, bueno, como cosa curiosa ¿que podéis hacer?

Otras cosas que podéis hacer con arduino, algo más, bueno pues aquí tengo unos juguetitos...

¿Esto qué es?

Una torreta láser.

¿Qué juguetito es este?

Bueno, aquí dentro hay un Arduino, y aquí tenemos un joystick, un botoncito, un led, y la torreta, la torreta que lleva dos motores, y un láser, un láser que se acciona mediante el botón del joystick.

Vamos a conectarlo al USB para que se alimente a través de la raspberry pi, y aquí lo tenemos.

Quieta.

Lo fijamos con el botón amarillo, ahí estaría fijado. Fijaros, pasa el led a rojo, y esto quiere decir que puedo disparar el láser. Toma, toma con el láser. No os apuntéis a los ojos, por eso la tengo puesta con el aviso del led rojo, cuando líbero me pasa a verde, el motor ya lo puedo mover y acciona el láser pero no funciona, para disparar el láser tengo que armarlo: botón, armado y disparo.

Bueno, está bastante chulo, es un juguetito, simplemente, educativo, se puede hacer todavía más complicado, pero está bastante chulo. Si lo abrimos, pues veremos que es un arduino UNO lo que hay dentro, con el cableado, y todo metido en una caja de Voll-Damm de publicidad que venía con unos auriculares. ¿La caja de Voll-Damm? Bueno, pues me dije: ya que voy a hacer un arma de destrucción masiva, ¿por qué no hacerlo con clase? Vamos a probar otro juguetito.

Para este no necesito conectarlo porque tiene una batería, me basta con encenderlo aquí.

Y es una caja.

Aquí tenemos nuestra caja.

Que tiene un sensor, si golpeo aquí me muestra la hora ahí en ese falso espejo. Si golpeo dos veces, me saluda. Gracioso. De nuevo, una vez, la hora, dos veces, me saluda Voy a dejarlo abierto.

Parece una bomba, pero no, mucho más inocente que eso. Tiene un par de motores, el display del reloj, tiene un reloj RTC en tiempo real, con pila, para que no pierda la hora cuando lo desenchufamos, tienen alguna cosita más, como un lector de tarjeta...

Pero bueno, son cosas que se pueden hacer, entretenerse... Y, hablando de la reutilización de código, muy importante que os comenté la cantidad de recursos y de código que hay de ejemplo sobre arduino y programación para arduino en internet, un montón, pero ¿qué ocurre? que no son programas de muy buena calidad digamos, son programas que es difícil reutilizar.

Yo me he estado preocupando de hacer las librerías propias para Arduino, de forma que cuando quiero utilizar un motor, cuando quiero utilizar un sensor de distancia, cuando quiero utilizar el buzzer, o distintos dispositivos sólo cargo la librería y programo mucho menos lo que es en el programa. Si os enseño el programa de la torreta, veréis el programa en sí es nada, es simplemente definir los pines en donde tenemos conectado cada dispositivo en la placa de arduino, y ya está, y lanzar la torreta, aquí está el código de la propia torreta en sí. Yo esta clase, está en programación orientada a objetos, esta clase, fijaros que tampoco es muy extensa, me la llevo a otro programa que quiera hacer y tengo otra torreta ya disponible. En fin, pues nada más por hoy, sólo avisaros el próximo vídeo de qué va a ir: de un unbox, un unbox, un paquetito que tengo aquí, que me ha llegado hoy pero que abriremos mañana o pasado, y que contiene al menos dos cosas muy interesantes, una, una raspberry pi 4 de 8 Gb, la más potente que existe ahora mismo, recordamos que la pi 400 sólo está en versión con máximo 4 Gb de RAM, pero yo he pedido una pi 4, la que es la cajita, con 8 gb de RAM para probar su rendimiento, porque recordamos que cuando hicimos las pruebas sobre la pi 400, me quejaba, pedía más RAM, y vamos a ver si efectivamente más RAM se nota o no se nota, lo comprobaremos con lo que hay aquí. Y otra cosa muy interesante que tengo aquí: un AIY, pero ¿qué es un AIY? Para los que sepan lo que es el DIY (do it yourself), AIY es "artificial intelligence yourself", hacer inteligencia artificial por vosotros mismos. Y es un kit para crear un asistente de Google, un Google assistant, con una cajita de cartón, porque va con una raspberry pi funcionando dentro, una pi Zero creo que es, no estoy seguro, cuando lo abramos lo veremos, y creo que va a ser un buen experimento para probar a montarlo y luego probar cómo funciona. Así que, bueno, ya lo sabéis si os gusta el vídeo le dais al like, si no os gusta sin problema le dais a que nos gusta y ya está. Y, sobre todo, si os ha gustado el tema de arduino y queríais, no sé, aprender un poco más, os gustaría que os metiese un poco de tutorial, de demo de programas, que os enseñe a programar un poquito y hacer vuestros pinitos, en los comentarios me lo dejáis todo puesto y, venga, a tope, ánimo. El próximo vídeo mejor de imagen, eh.

¡Hasta luego!