A l'era de la digitalització i l'automatització, la Intel·ligència Artificial (IA) està transformant la forma com fem moltes coses, i ara arriba Code Generator for Arduino o Duino Code Generator per fer-ho també en com programem els nostres esquetxos o codis font per a Arduino.
Ja sigui que siguis un entusiasta de l'electrònica, un enginyer experimentat o simplement algú interessat a la IA, aquest nou servei et pot ajudar amb els teus codis font. Encara més si no ets massa bo creant codi o ets un principiant, ja que podràs generar el codi automàticament i després modificar-lo si necessita algun retoc.
Què és Duino Code Generator?
Si ets un apassionat del DIY o un maker que està començant i que no té gaires coneixements sobre escriure codi per programar plaques com Arduino, aleshores la IA et pot ajudar. És aquí on entra en escena Duino Code Generator, impulsat pel famós GPT-3.5-turbo, podrà escriure el codi de l'esquetx per tu. Aquest model de llenguatge avançat, desenvolupat per OpenAI, té la capacitat de generar codi per als teus projectes d'Arduino amb només una indicació senzilla. És a dir, escrius en un prompt la descripció detallada del que vols que faci el teu codi, i en prémer el botó Generar, el codi apareixerà en qüestió de segons perquè el puguis copiar i enganxar a l'IDE.
Per exemple, jo he realitzat una prova introduint al prompt la informació següent: «Recorda data de temperatura sensor i utilitzeu tres LEDs (blue, orange and red) to indicate temperature.» I en prémer sobre el botó Generar, el resultat ha estat aquest:
// 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ó que aportis al prompt ha de ser correcta, ja que altrament la IA podria interpretar una altra cosa i generar un codi que no es correspongui amb el que realment busques. A més, has de tenir present que Duino Code Generator no és una vareta màgica que garanteixi sempre un codi perfecte i optimitzat. Tot i això, constitueix una eina excepcional per generar ràpidament fragments de codi o per inspirar-se, modificar codis generats, i un company perfecte d'Arduino IDE.
Accedir a Code Generator for Arduino gratis
Limitacions i consideracions
Com he comentat, Duino Code Generator no és una eina màgica. La IA encara no és perfecta i pot fallar. Més encara quan es tracta d'interpretar un prompt que has escrit i que potser no entengui del tot bé o ho malinterpreti. Per tant, generar un codi 100% perfecte no és gens fàcil. De fet, a la pròpia web del servei t'adverteix que el codi ha estat generat utilitzant intel·ligència artificial i no es garanteix que funcioni segons allò previst.
D'altra banda, també t'avisa que tinguis en compte qualsevol biblioteca que necessitis incloure a l'entorn de desenvolupament integrat (IDE) d'Arduino, això has de fer tu quan pequis el codi font a Arduino IDE, ja que això no ho pot fer la IA per tu. A més, no serveix per a codis font o sketchs massa llargs, ja que la sortida està limitada a aproximadament 2400 caràcters.
Exemples de prompts
Si utilitzaràs Duino Code Generator, llavors hauries de conèixer millor la manera com introduir el text o descripció que has de posar al prompt perquè la IA pugui interpretar-lo correctament i generar un codi el més correcte possible. No és sempre fàcil, però aquí us poso alguns exemples de bones i males pràctiques:
- Prompts incorrectes:
- «Crear una impressora 3D amb Arduino» –> Aquest prompt estaria malament perquè és massa genèric, no aporta a la IA prou informació per generar un codi adequat.
- «Aprenentatge automàtic amb Arduino» –> Com sabràs, això no és possible, ja que Arduino no té aquesta capacitat, per la qual cosa el codi no es podrà generar o el generat no funcionarà en absolut. Han de ser coses concretes i factibles.
- «Controlar el reg d´un jardí» –> Aquest altre també és molt simple, necessita més detalls, en aquest cas sobre els sensors i dispositius implicats en aquest sistema… Pot ser que generi un codi, però segur que no és el que esperaves.
- Prompts correctes:
- «Programar Arduino UNO perquè titili un LED connectat al pin 13 cada 3 segons» –> Aquest exemple és més concís i simple perquè Duino Code Generator ho comprengui i pugui generar el codi apropiat.
- «Llegeix la temperatura d'un sensor DS18B20 connectat a Arduino Uno i mostra la temperatura en graus Celcius en una pantalla LCD DFR0063» –> Aquest altre també és molt específic i funcionaria prou bé.
- «Llegeix dades d'un sensor d'humitat i quan estigui sec posi en funcionament una bomba d'aigua per regar» –> Aquest altre exemple també és detallat, encara que no especifica quins sensors i dispositius es faran servir, però la IA pot interpretar bé què és allò que busques.
En definitiva, els trucs perquè el codi font per a Arduino IDE surti el més perfecte possible són:
- Idioma: no és important, pots escriure el prompt tant en espanyol com en anglès i la IA ho sabrà interpretar. Tot i això, per aconseguir millors resultats, és millor en anglès, especialment quan és un codi més complex.
- sé específic: has de ser molt específic, proporcionant al prompt els detalls del que vols, i no ser gaire genèric. Millor si cites tots els components implicats (sensors, motors, mòduls,…), fins i tot si especifiques el nom o model molt millor, ja que hi pot haver diferències o ús de diferents biblioteques segons el dispositiu emprat.
- Desglossa: si la teva descripció és molt complexa, el millor és que dividisques en parts concises i simples perquè la IA pugui processar-lo adequadament.
- Prova i error: finalment, hauries de fer prova-error fins que et familiaritzis amb aquesta eina. D'aquesta manera, podreu anar perfeccionant tant els vostres prompts com el codi generat. I sempre és convenient repassar el codi generat automàticament per optimitzar-lo o corregir petits errors que hi pugui haver…