Software
El microcontrolador en la placa Arduino se programa mediante dos tipos de programación:
LENGUAJE POR CÓDIGO
Recomendable a partir de secundaria. Es un lenguaje basado en Wiring y permite la programación del Arduino en un entorno de desarrollo (basado en Processing). El programa se llama ARDUINO IDE y se puede descargar desde la página oficial de Arduino: https://www.arduino.cc/en/software. teniendo la posibilidad de utilizarlo online o descarga offline para todo tipo de sistema operativo:
En los cursos de CATEDU se ha utilizado el lenguaje por código empezando desde cero en:
- Curso Arduino con código
- Curso de Domótica con Arduino con ejemplos con lenguaje gráficos por bloques y con código.
Un resumen del lenguaje código del Arduino que conviene imprimirlo si vas a programar con código es este:
- En Español: enlaceDrive, enlaceGithub
- En Inglés: enlaceDrive, enlaceGithub,
LENGUAJE GRÁFICO POR BLOQUES
Recomendado para primaria. Tenemos muchas posibilidades de lenguajes gráficos. Destacamos dos:
- ARDUINOBLOCKS se trabaja online, muy visual y muy amigable. Está adaptado tanto para trabajar tanto Arduino como muchas placas controladoras y en el aula. Podemos verlo en los siguientes cursos:
- CURSO ROVER CON ARDUINO aunque no se utiliza un Arduino, sino un NodeMCU pero la programación es exactamente igual
- CURSO DE ARDUINO CON ARDUINOBLOCKS donde se utiliza el Arduino con una placa protoboard
- CURSO ARDUINOBLOCKS EN EL AULA
- CURSO ESP32 EN EL AULA donde también utiliza la Shiedl TDR Steam pero la placa no es un Arduino, sino ESP32, la programación es exáctamente igual.
- MBLOCK
- CURSO ARDUINO CON MBLOCK
- CURSO DE ECHIDNA CON MBLOCK
- CURSO DE
MBOTMBOT se utiliza el robot mBot
- CURSO ARDUINO CON MBLOCK
VENTAJAS E INCONVENIENTES
LENGUAJE GRÁFICO POR BLOQUES vs CÓDIGO
El lenguaje gráfico es un lenguaje sencillo de utilizar, nos evita tener en cuenta muchas librerías y cálculos, por ejemplo, la instrucción leer valor distancia el sensor ultrasonidos, gráficamente es :
mientras que en código es
double distancia;
double fnc_ultrasonic_distance(int _t, int _e){
unsigned long dur=0;
digitalWrite(_t, LOW);
delayMicroseconds(5);
digitalWrite(_t, HIGH);
delayMicroseconds(10);
digitalWrite(_t, LOW);
dur = pulseIn(_e, HIGH, 18000);
if(dur==0)return 999.0;
return (dur/57);
}
void setup()
{
pinMode(6, OUTPUT);
pinMode(5, INPUT);
}
void loop()
{
distancia = fnc_ultrasonic_distance(6,5);
}
Como se puede ver en código, tiene que calcular la distancia haciendo cálculos del tiempo de rebote del eco, mientras que el el gráfico es súmamente sencillo y se centra en el objetivo del algoritmo a crear, no en lo accesorio. Esto hace que un lenguaje gráfico por bloques se puede aplicar desde los 8 años.
Por otra parte, el lenguaje código tiene todo el potencial, es decir, no todo está en los lenguajes gráficos. Si se quiere cosas más avanzadas, hay que recurrir al código.
Un lenguaje gráfico se convierte en lenguaje código, pero al revés no se puede.
Imagen Federico Coca Notas sobre ESP32 STEAMakers CC-BY-SA
El lenguaje código se traduce en lenguaje máquina (ceros y unos) entendible para el microprocesador, pero al revés no se puede.
En este vídeo, en mi opinión se olvida de mBlock:
SIMULACIÓNN
Incluimos dentro del apartado de Software los diferentes programas que hay para simular placas electrónicas como Arduino, ESP32, etc...
Tinkercad
Esta herramienta https://www.tinkercad.com aparece en el Curso Arduino con código en la práctica Comunicación entre dos Arduinos, pero también es una plataforma que sirve para hacer los diseños de elementos 3D, ver curso Impresión 3D con Tinkercad
Tiene la ventaja que es aplicación online, muy visual y buscan un reflejo de la práctica real, además de estar la herramienta adaptada al aula (gestión de alumnos y proyectos). Como Como desventajas podemos decir que no tiene mucha variedad de componentes electrónicos y la simulación es algo lenta.
Wolwi
Si Tinkercad se queda corto, puedes probar esta plataforma https://wokwi.com/ con muchas posibilidades. Es online y puede trabajar con multitud de placas: ArduinoUno, ESP32, Raspberry,,,,
Como única desventaja que encontramos, es que echamos de menos la realidad de Tinkercad, por ejemplo no puedes poner una placa protoboard para realizar las conexiones, pero a cambio se gana simplicidad de cableado.
UnoArduSim
Es una aplicación local, UnoArduSim además es una aplicación portable fácil de instalar y con los elementos de leds, motores servos ya preparados, ideal para ejemplos sencillos y para examinar señales y no depender de Internet, pero no es tan versátil.