En la era de la digitalización y la automatización, la Inteligencia Artificial (IA) está transformando la forma en la que hacemos muchas cosas, y ahora llega Code Generator for Arduino o Duino Code Generator para hacerlo también en cómo programamos nuestros sketchs o códigos fuente para Arduino.
Ya sea que seas un entusiasta de la electrónica, un ingeniero experimentado o simplemente alguien interesado en la IA, este nuevo servicio te puede ayudar con tus códigos fuente. Más aún si no eres demasiado bueno creando código o eres un principiante, ya que podrás generar el código automáticamente y luego modificarlo si necesita algún retoque.
¿Qué es Duino Code Generator?
Si eres un apasionado del DIY o un maker que está comenzando y que no tiene demasiados conocimientos sobre escribir código para programar placas como Arduino, entonces la IA te puede ayudar. Es aquí donde entra en escena Duino Code Generator, impulsado por el famoso GPT-3.5-turbo, podrá escribir el código del sketch por ti. Este avanzado modelo de lenguaje, desarrollado por OpenAI, tiene la capacidad de generar código para tus proyectos de Arduino con tan solo una indicación sencilla. Es decir, escribes en un prompt la descripción detallada de lo que quieres que haga tu código, y al pulsar el botón Generar, el código aparecerá en cuestión de segundos para que puedas copiarlo y pegarlo en el IDE.
Por ejemplo, yo he realizado una prueba introduciendo en el prompt la siguiente información: «Record data from a temperature sensor and use three LEDs (blue, orange and red) to indicate temperature.» Y al pulsar sobre el botón Generar, el resultado ha sido este:
// Include the necessary libraries #include <OneWire.h> #include <DallasTemperature.h> // Define the pins for the LEDs #define BLUE_LED 2 #define ORANGE_LED 3 #define RED_LED 4 // Setup a oneWire instance to communicate with the temperature sensor OneWire oneWire(5); // Pass the oneWire instance to DallasTemperature library DallasTemperature sensors(&oneWire); // Variable to store the temperature value float temperature; void setup() { // Initialize the serial communication Serial.begin(9600); // Initialize the LEDs as output pins pinMode(BLUE_LED, OUTPUT); pinMode(ORANGE_LED, OUTPUT); pinMode(RED_LED, OUTPUT); // Start communication with the temperature sensor sensors.begin(); } void loop() { // Request temperature readings from the sensor sensors.requestTemperatures(); // Read the temperature value and convert it to Celsius temperature = sensors.getTempCByIndex(0); // Print the temperature value to the serial monitor Serial.print("Temperature: "); Serial.print(temperature); Serial.println(" °C"); // Check the temperature value and turn on the corresponding LED if (temperature < 20) { digitalWrite(BLUE_LED, HIGH); digitalWrite(ORANGE_LED, LOW); digitalWrite(RED_LED, LOW); } else if (temperature >= 20 && temperature < 30) { digitalWrite(BLUE_LED, LOW); digitalWrite(ORANGE_LED, HIGH); digitalWrite(RED_LED, LOW); } else { digitalWrite(BLUE_LED, LOW); digitalWrite(ORANGE_LED, LOW); digitalWrite(RED_LED, HIGH); } // Wait for 1 second before taking the next reading delay(1000); }
La información que le aportes al prompt debe ser correcta, ya que de lo contrario la IA podría interpretar otra cosa y generar un código que no se corresponda con lo que realmente buscas. Además, debes tener presente que Duino Code Generator no es una varita mágica que garantice siempre un código perfecto y optimizado. A pesar de ello, constituye una herramienta excepcional para generar rápidamente fragmentos de código o para inspirarse, modificar códigos generados, y un compañero perfecto de Arduino IDE.
Acceder a Code Generator for Arduino gratis
Limitaciones y consideraciones
Como he comentado, Duino Code Generator no es una herramienta mágica. La IA aún no es perfecta, y puede fallar. Más aún cuando se trata de interpretar un prompt que has escrito y que puede que no entienda del todo bien o lo malinterprete. Por tanto, generar un código 100% perfecto no es fácil. De hecho, en la propia web del servicio te advierte de que el código ha sido generado utilizando inteligencia artificial y no se garantiza que funcione según lo previsto.
Por otro lado, también te avisa de que tengas en cuenta cualquier biblioteca que necesites incluir en el entorno de desarrollo integrado (IDE) de Arduino, esto es algo que tienes que hacer tú cuando peques el código fuente en Arduino IDE, ya que esto no lo puede hacer la IA por ti. Además, no sirve para códigos fuente o sketchs demasiado largos, ya que la salida está limitada a aproximadamente 2400 caracteres.
Ejemplos de prompts
Si vas a usar Duino Code Generator, entonces deberías conocer mejor la forma en la que introducir el texto o descripción que tienes que poner en el prompt para que la IA pueda interpretarlo correctamente y generar un código lo más correcto posible. No es siempre fácil, pero aquí te pongo algunos ejemplos de buenas y malas prácticas:
- Prompts incorrectos:
- «Crear una impresora 3D con Arduino» –> Este prompt estaría mal porque es demasiado genérico, no aporta a la IA suficiente información como para generar un código adecuado.
- «Aprendizaje automático con Arduino» –> Como sabrás, esto no es posible, ya que Arduino no tiene esta capacidad, por lo cual el código no se podrá generar o el generado no funcionará en absoluto. Tienen que ser cosas concretas y factibles.
- «Controlar el riego de un jardín» –> Este otro también es muy simple, necesita más detalles, en este caso sobre los sensores y dispositivos implicados en este sistema… Puede que genere un código, pero seguro que no es lo que esperabas.
- Prompts correctos:
- «Programar Arduino UNO para que titile un LED conectado al pin 13 cada 3 segundos» –> Este ejemplo es más conciso y simple para que Duino Code Generator lo comprenda y pueda generar el código apropiado.
- «Lee la temperatura de un sensor DS18B20 conectado a Arduino Uno y muestra la temperatura en grados Celcius en una pantalla LCD DFR0063» –> Este otro también es muy específico y funcionaría bastante bien.
- «Lee datos de un sensor de humedad y cuando esté seco ponga en funcionamiento una bomba de agua para regar» –> Este otro ejemplo también es detallado, aunque no especifica qué sensores y dispositivos se usarán, pero la IA puede interpretar bien qué es lo que buscas.
En definitiva, los trucos para que el código fuente para Arduino IDE salga lo más perfecto posible son:
- Idioma: no es importante, puedes escribir el prompt tanto en español como en inglés y la IA lo sabrá interpretar. No obstante, para conseguir mejores resultados, es mejor en inglés, especialmente cuando es un código más complejo.
- Sé específico: tienes que ser muy específico, proporcionando al prompt los detalles de lo que quieres, y no ser muy genérico. Mejor si citas todos los componentes implicados (sensores, motores, módulos,…), incluso si especificas el nombre o modelo mucho mejor, ya que puede haber diferencias o uso de distintas bibliotecas según el dispositivo empleado.
- Desglosa: si tu descripción es muy compleja, lo mejor es que dividas en partes concisas y simples para que la IA pueda procesarlo adecuadamente.
- Prueba y error: por último, deberías realizar prueba-error hasta que te familiarices con esta herramienta. De este modo, podrás ir perfeccionando tanto tus prompts como el código generado. Y siempre es conveniente repasar el código generado automáticamente para optimizarlo o corregir pequeños errores que pueda haber…