Robotec es una competencia de robótica institucional e interinstitucional de escuelas técnicas de la ciudad de Mar del Plata que apunta a la participación de alumnos tanto del Ciclo Básico como del Ciclo Superior de la especialidad Técnico en Electrónica.
La competencia gira en torno al alumno: que deberá desarrollar su robot, y durante este recorrido, deberá aprender e implementar conceptos de lógica, matemática, física, electrónica y programación. Además, se plantea la posibilidad del trabajo en equipo, para generar una mayor autoestima, un fortalecimiento de las relaciones interpersonales, mayor facilidad de expresión, fortalecimiento del trabajo en equipo y mejorar la solución de conflictos.
Al día de la fecha se han desarrollado dos encuentros (ediciones 2022 y 2023) que han superado las expectativas de todos los participantes. En los mismos tuve la posibilidad de asesorar y acompañar a diversos grupos de alumnos, viendo de primera mano el impacto de la competencia en su formación.
Aporte: biblioteca para Arduino
Para facilitar el trabajo de programación, estoy trabajando en una biblioteca escrita en C++ para Arduino que abstrae algunos conceptos de hardware mediante clases y métodos. Actualmente, soporta los siguientes dispositivos:
- Motor DC con drivers L293 y L298
- Sensor de distancia por ultrasonidos
- Sensor de proximidad por infrarrojos simple
- Sensor de proximidad por infrarrojos triple
- LED de uso general
- Pulsador de uso general
El desarrollo está abierto a colaboraciones, y se puede acceder al repositorio público que se encuentra alojado en GitHub. La documentación generada con Doxygen se encuentra en línea a través del siguiente enlace lmtreser.github.io/Robotec.
Ejemplo de uso
Para poder utilizar las diferentes clases que aporta la biblioteca, hay que incluir el archivo Robotec.h, luego se declaran los dispositivos que queremos utilizar (generalmente indicando el número de pin en donde los tenemos conectados) y realizamos la lógica de nuestro programa. Por ejemplo, para utilizar un pulsador y un LED simplemente:
#include <Robotec.h>
// Constantes
const int BOTON_B_PIN = 3;
const int START_TIME = 2000;
// Declaración de objetos: pulsador y LED
Button botonPullDown(BOTON_B_PIN, PULL_DOWN);
Led led(LED_BUILTIN);
void setup() {
// Enciende un LED hasta que transcurra un tiempo desde pulsado el boton
// Luego lo apaga
led.on();
botonPullDown.pushStart(START_TIME);
led.off();
}
void loop() {
}
Dejo el ejemplo de uso completo y el archivo de simulación creado con el programa SimulIDE (versión 1.0.0-SR2 R1449).