Puedes programar el Compluino 03 directamente desde el IDE de Arduino, pero la forma más sencila de hacerlo es usando la librería que hemos escrito para este robot.
En este caso hemos optado por realizar un conjunto de funciones que nos permitan programar el robot, de forma textual, de una forma muy similar al lenguaje natural. A continuación se listan todas las funciones de esta librería. Hemos acompañado un pequeño ejemplo a la descripción de cada función. También puedes examinar los distintos ejemplos que también están incluidos en la propia librería del Compluino 03.
Inicialización Movimiento- Robot.para()
- Robot.avanza()
- Robot.retrocede()
- Robot.mueve()
- Robot.gira_derecha()
- Robot.gira_izquierda()
- Robot.gira()
- Robot.mueve_motor()
- Robot.borra_oled()
- Robot.escribe_oled()
- Robot.escribe_2x_oled()
- Robot.escribe_oled_sensor()
- Robot.escribe_oled_pot()
- Robot.escribe_oled_ldr()
- Robot.escribe_oled_pulsador()
- Robot.escribe_oled_suelo_d()
- Robot.escribe_oled_suelo_i()
- Robot.escribe_oled_suelo_dd()
- Robot.escribe_oled_suelo_id()
- Robot.escribe_oled_distancia()
- Robot.escribe_oled_brujula()
- Robot.escribe_oled_int()
- Robot.lee_sensor()
- Robot.lee_pot()
- Robot.lee_ldr()
- Robot.lee_pulsador()
- Robot.lee_suelo_d()
- Robot.lee_suelo_i()
- Robot.lee_suelo_dd()
- Robot.lee_suelo_id()
- Robot.lee_distancia()
- Robot.espera_pulsador()
- Robot.espera_pulsador_mensaje()
- Robot.espera_pulsador_soltar()
- Robot.estado_pulsador()
Robot.inicia()
DescripciónInicialización del robot
SintaxisRobot.inicia()
ParámetrosNo necesita parámetros
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Movimiento -----------
Robot.para()
DescripciónDetiene el movimiento del robot
SintaxisRobot.para()
ParámetrosNo necesita parámetros.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.avanza()
DescripciónMueve el robot en el sentido de avance, a la velocidad indicada
SintaxisRobot.avanza(velocidad)
Parámetrosvelocidad: velocidad de avance robot en %. El rango de velocidad es de 0% al 100%.
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.retrocede()
DescripciónMueve el robot en el sentido de retroceso, a la velocidad indicada
SintaxisRobot.retrocede(velocidad)
Parámetrosvelocidad: velocidad de retroceso robot en %. El rango de velocidad es de 0% al 100%.
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.mueve()
DescripciónMueve el robot en el sentido de avance o de retroceso.
SintaxisRobot.mueve(velocidad)
Parámetrosvelocidad: velocidad de movimiento del robot en %. El rango de velocidad es de -100% al 100%. De -100% a 0% se mueve en el sentido de retroceso y de 0% a 100% se mueve en el sentido de avance.
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.gira_derecha()
DescripciónHace girar el robot hacia la derecha (sentido horario), haciendo avanzar la rueda izquierda y retroceder la rueda derecha.
SintaxisRobot.gira_derecha(velocidad)
Parámetrosvelocidad: velocidad de giro a la derecha del robot en %. El rango de velocidad es de 0% al 100%.
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.gira_izquierda()
DescripciónHace girar el robot hacia la izquierda (sentido anti-horario), haciendo avanzar la rueda derecha y retroceder la rueda izquierda.
SintaxisRobot.gira_izquierda(velocidad)
Parámetrosvelocidad: velocidad de giro a la izquierda del robot en %. El rango de velocidad es de 0% al 100%.
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.gira()
DescripciónHace girar el robot hacia la derecha o la izquierda, usando ambas ruedas: avanzando la rueda izquierda y retrocediendo la rueda derecha para girar a la derecha (sentido horario) y avanzando la rueda derecha y retrocediendo la rueda izquierda para girar a la izquierda (sentido anti-horario).
SintaxisRobot.gira(velocidad)
Parámetrosvelocidad: velocidad de giro del robot en %. El rango de velocidad es de -100% al 100%. De -100% a 0% gira hacia la derecha (sentido horario) y de 0% a 100% gira hacia la izquierda (sentido anti-horario).
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.mueve_motor()
DescripciónEsta función permite controlar la velocidad y sentido de giro de cada motor del robot de forma independiente.
SintaxisRobot.mueve_motor(motor, velocidad)
Parámetrosmotor: indica el motor a mover. PIN_MOTOR_D, para el motor de la derecha del robot y PIN_MOTOR_I para el motor de la izquierda del robot.
velocidad: velocidad de movimiento del motor en %. El rango de velocidad es de -100% al 100%. De -100% a 0% se mueve en el sentido de retroceso y de 0% a 100% se mueve en el sentido de avance.
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Display OLED -----------

Compluino 03 incluye un display OLED gráfico monocromo de 0,96" de tamaño (diagonal). La resolución es de 128 x 64 pixels, siendo la coordenada (0,0) la esquina superior izquierda, y la coordenada (127,63) la esquina inferior derecha.
Este display usa el driver SSD1306, que controlamos mediante la librería U8g2. Esta librería es muy amplia (soporta un montón de dispositivos) y además tiene dos modos de trabajo:
- U8g2 - Funciones para escritura de gráficos y texto.
- U8x8 - Funciones para escritura de texto.
En las funciones de la librería del Compluino 03 hemos implementado U8x8, ya que son funciones que usan menos memoria y, por tanto, reducen el tiempo de descarga del programa al robot.
Robot.borra_oled()
DescripciónBorra el display OLED del robot
SintaxisRobot.borra_oled()
ParámetrosNo necesita parámetros
RetornaNo retorna nada
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled()
DescripciónEscribe en el display OLED del robot. En este modo el display del robot actúa como una cuadrícula de 16 columnas y 8 filas. Siendo la posición (0,0) la esquina superior izquierda y la (15,7) la esquina inferior derecha.
SintaxisRobot.escribe_oled(xpos, ypos, "texto")
Parámetrosxpos: [0..15] posición en la coordenada x del display.
ypos: [0..7] posición en la coordenada y del display.
texto: texto a mostrar en el display a partir de las coordenadas (xpos,ypos).
RetornaNo retorna nada
Ejemplo
En el siguiente ejemplo mostramos los números del 1 al 4 en cada una de las esquinas del display OLED usando el tamaño normal de texto. Con este tamaño de texto podemos visualizar una gran cantidad de información en el display del robot.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_2x_oled()
DescripciónEscribe en el display OLED del robot, con caracteres de tamaño grande. En este modo el display del robot actúa como una cuadrícula de 15 columnas y 7 filas. Siendo la posición (0,0) la esquina superior izquierda y la (14,6) la esquina inferior derecha.
SintaxisRobot.escribe_2x_oled(xpos, ypos, "texto")
Parámetrosxpos: [0..14] posición en la coordenada x del display.
ypos: [0..6] posición en la coordenada y del display.
texto: texto a mostrar en el display a partir de las coordenadas (xpos,ypos).
RetornaNo retorna nada.
Ejemplo
En el siguiente ejemplo mostramos los números del 1 al 4 en cada una de las esquinas del display OLED usando el tamaño grande de texto. Es de notar que en este modo de texto el posicionamiento x e y sigue teniendo el mismo espaciado que en el modo normal. Esto es por que se trata de un display gráfico y el posicionamiento del texto no está sujeto al tamaño del caracter, por lo que se recomienda dejar una posición libre entre cada caracter.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_sensor()
DescripciónFunción genérica que nos permite mostrar en la pantalla OLED la información de cualquiera de los sensores del robot. La función es la misma con independencia del tipo de lectura (analógica, digital, anchura de pulso o comunicación I2C) que proporcione cada sensor.
SintaxisRobot.escribe_oled_sensor(xpos, ypos, font, ref_sensor)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
font tamaño de letra:
- T_NORMAL - Tamaño de letra normal
- T_GRANDE - Tamaño de letra grande
ref_sensor referencia del sensor a medir:
- REF_POT - Referencia al potenciómetro
- REF_LDR - Referencia al sensor de luz LDR
- REF_PULSADOR - Referencia al pulsador de usuario
- REF_SUELO_D - Referencia al sensor reflexivo de suelo derecho en analógico
- REF_SUELO_I - Referencia al sensor reflexivo de suelo izquierdo en analógico
- REF_SUELO_DD - Referencia al sensor reflexivo de suelo derecho en digital
- REF_SUELO_ID - Referencia al sensor reflexivo de suelo izquierdo en digital
- REF_DISTANCIA - Referencia al sensor de distancias HC-SR04
- REF_BRUJULA - Referencia al sensor de orientación HMC5883L (brújula electrónica)
El valor medido en el sensor referenciado.
Ejemplo
El siguiente programa de ejemplo muestra en la pantalla OLED la información de varios de los sensores del robot. En la primera línea, en el centro, tenemos la medida del sensor de distancias (HC-SR04). En la segunda y tercera línea se visualiza la lectura de los sensores reflexivos de suelo, en la segunda de forma analógica y en la tercera de forma digital (el robot está sobre una superficie blanca). En la cuarta línea tenemos a la izquierda la lectura del sensor de luz (LDR) y a la derecha la lectura del potenciómetro. En la última línea, en el centro, se muestra el estado del pulsador de usuario.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_pot()
DescripciónEscribe en el display OLED del robot la lectura del potenciómetro normalizada a los valores min y max.
SintaxisRobot.escribe_oled_pot(xpos, ypos, tamaño, min, max)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
min: valor leido en la posición mínima del potenciómetro. El valor mínimo por defecto es 0.
max: valor leido en la posición máxima del potenciómetro. El valor máximo por defecto es 1023.
RetornaLectura del potenciómetro normalizada a los valores min y max.
Ejemplo
Con las funciones originales del IDE de Arduino, los rangos de lectura y actuación no están normalizados, en Compluino 03 hemos preferido normalizar todo de 0 a 100, como en la lectura del potenciómetro de este ejemplo. Aun así el usuario puede modificar este rango de normalización cambiando los valores min y max de la función.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_ldr()
DescripciónEscribe en el display OLED del robot la lectura del sensor de luz LDR normalizada a los valores min y max.
SintaxisRobot.escribe_oled_ldr(xpos, ypos, tamaño, min, max)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
min: valor mínimo para el sensor de luz LDR. El valor mínimo por defecto es 0.
max: valor máximo para el sensor de luz LDR. El valor máximo por defecto es 1023.
RetornaLectura del sensor de luz LDR normalizada a los valores min y max.
Ejemplo
Con las funciones originales del IDE de Arduino, los rangos de lectura y actuación no están normalizados, en Compluino 03 hemos preferido normalizar todo de 0 a 100, como en la lectura del sensor de luz de este ejemplo. Aun así el usuario puede modificar este rango de normalización cambiando los valores min y max de la función.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_pulsador()
DescripciónEscribe en el display OLED del robot el estado del pulsador de usuario. Escribe "PUL" si se encuantra pulsado y "NO PUL" en caso contrario.
SintaxisRobot.escribe_oled_pulsador(xpos, ypos, tamaño)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
RetornaEl valor numérico 0 si el pulsador no está pulsado y el valor numérico 1 en caso contrario.
EjemploEn el siguiente ejemplo vamos a monitorizar el estado del pulsador de usuario. Fíjate que en el programa podemos combinar texto escrito con los dos tamaños (normal y grande), en función de lo que nos interese que se vea más grande.
![]() |
![]() |
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_suelo_d()
DescripciónEscribe en el display OLED la lectura analógica del sensor reflexivo de suelo derecho, normalizada a los valores min y max. La indicación del sensor es más alta cuanto más oscura es la superficie sobre la que se encuentre el robot. Así pues, este sensor está diseñado como un detector de líneas negras.
SintaxisRobot.escribe_oled_suelo_d(xpos, ypos, tamaño, min, max)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
min: valor mínimo para el sensor reflexivo de suelo. El valor mínimo por defecto es 0.
max: valor máximo para el sensor reflexivo de suelo. El valor máximo por defecto es 1023.
RetornaLectura analógica del sensor de suelo derecho normalizada a los valores min y max
Ejemplo
Con las funciones originales del IDE de Arduino, los rangos de lectura y actuación no están normalizados, en Compluino 03 hemos preferido normalizar todo de 0 a 100, como en la lectura del sensor reflexivo de este ejemplo. Aun así el usuario puede modificar este rango de normalización cambiando los valores min y max de la función.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_suelo_i()
DescripciónEscribe en el display OLED la lectura analógica del sensor reflexivo de suelo izquierdo, normalizada a los valores min y max. La indicación del sensor es más alta cuanto más oscura es la superficie sobre la que se encuentre el robot. Así pues, este sensor está diseñado como un detector de líneas negras.
SintaxisRobot.escribe_oled_suelo_i(xpos, ypos, tamaño, min, max)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
min: valor mínimo para el sensor reflexivo de suelo. El valor mínimo por defecto es 0.
max: valor máximo para el sensor reflexivo de suelo. El valor máximo por defecto es 1023.
RetornaLectura analógica del sensor de suelo izquierdo normalizada a los valores min y max
Ejemplo
Este programa de ejemplo hace que se muestren los valores analógicos de los sensores de suelo izquierdo y derecho, normalizados de 0 a 100. En la imagen de la derecha ambos sensores se encuentran sobre una superficie blanca.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_suelo_dd()
DescripciónEscribe en el display OLED el estado digital del sensor reflexivo de suelo derecho, mostrando "BLANCO" o "NEGRO" según sea el color de la superficie sobre la que se encuentra el robot.
SintaxisRobot.escribe_oled_suelo_dd(xpos, ypos, tamaño)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
RetornaEl valor numérico 0, cuando detecta BLANCO y el valor 1, cuando detecta NEGRO.
EjemploEl siguiente programa de ejemplo muestra en el display OLED el estado digital del sensor reflexivo derecho.
![]() |
![]() |
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_suelo_id()
DescripciónEscribe en el display OLED el estado digital del sensor reflexivo de suelo izquierdo, mostrando "BLANCO" o "NEGRO" según sea el color de la superficie sobre la que se encuentra el robot.
SintaxisRobot.escribe_oled_suelo_id(xpos, ypos, tamaño)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
RetornaEl valor numérico 0, cuando detecta BLANCO y el valor 1, cuando detecta NEGRO.
Ejemplo
El siguiente programa de ejemplo muestra en el display OLED del robot el estado digital de los sensores reflexivos izquierdo y derecho. En la imagen de la derecha, la fotografía del display muestra el caso en el que el robot está con el sensor derecho sobre una marca (línea) negra y el izquierdo sobre una zona blanca.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_distancia()
DescripciónMuestra en la pantalla OLED del robot la distancia, en centímetros, a la que se encuentra un objeto en su parte delantera. Para ello utiliza el sensor de distancia por ultrasonidos HC-SR04.
SintaxisRobot.escribe_oled_distancia(xpos, ypos, tamaño, led)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
led: Activa [SI] o desactiva [NO] la indicación visual del proceso de medida en el led azul del robot. En caso de activación [SI] esta funcionalidad es incompatible con cualquier otro uso que se quiera dar al led azul del robot en ese mismo programa.
RetornaLa distancia en centímetros a la que se encuentra el objeto, con un máximo de 255 cm.
Ejemplo
El siguiente ejemplo muestra en la pantalla OLED la distancia, en centímetros, a la que se encuentra un objeto que está en la parte delantera del robot.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.escribe_oled_brujula()
DescripciónMuestra en la pantalla OLED del robot la orientación del robot el grados sesagesimales [+/- 180º] La orientación de 0º se toma en el proceso de inicialización y es, por tanto, la posición inicial del robot. Para clacular la orientación el robot usa una brújula electrónica HMC5883L. Este dispositivo, al igual que todos los similares, es muy sensible a los campos magnéticos, radiaciones electromagnéticas y estructuras metálicas próximas al robot.
SintaxisRobot.escribe_oled_brujula(xpos, ypos, tamaño)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
RetornaValor numérico que indica la orientación del robot en el rango de [+/- 180º]
EjemploRobot.escribe_oled_int()
DescripciónMuestra en el display OLED del robot el contenido de una variable del programa de ltipo entero (int).
SintaxisRobot.escribe_oled_int(xpos, ypos, valor, tamaño)
Parámetrosxpos: posición en la coordenada x del display.
ypos: posición en la coordenada y del display.
valor: valor de la variable a mostrar en el display OLED.
tamaño: [T_NORMAL, T_GRANDE] tamaño del texto a usar. Por defecto la fuente es T_NORMAL.
RetornaNo retorna nada.
EjemploEl siguiente ejemplo muestra en la pantalla OLED la variable contador que varía de 0 a 100.
GeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Altavoz piezoeléctrico -----------
Robot.beep()
DescripciónEmite un beep, una señal aguda de corta duración, concretamente un tono de 1000Hz durante 200 milisegundos.
SintaxisRobot.beep()
ParámetrosNo necesita parámetros.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.doble_beep()
DescripciónReproduce dos sonidos tipo Beep espaciados 50ms.
SintaxisRobot.doble_beep()
ParámetrosNo necesita parámetros.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.enciende_altavoz()
DescripciónActiva el altavoz reproduciendo un tono de la frecuencia indicada.
SintaxisRobot.enciende_altavoz(frecuencia)
Parámetrosfrecuencia: valor de la frecuencia del tono a reproducir.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.apaga_altavoz()
DescripciónDetiene la fúncion de encendido del altavoz.
SintaxisRobot.apaga_altavoz()
ParámetrosNo necesita parámetros.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Lectura de sensores -----------
Robot.lee_sensor()
Descripción SintaxisRobot.lee_sensor()
Parámetros Retorna EjemploRobot.lee_pot()
DescripciónObtiene la lectura del potenciómetro normalizada a los valores min y max.
SintaxisRobot.lee_pot(min, max)
Parámetrosmin: valor leido en la posición mínima del potenciómetro. El valor mínimo por defecto es 0.
max: valor leido en la posición máxima del potenciómetro. El valor máximo por defecto es 1023.
RetornaLectura del potenciómetro normalizada a los valores min y max.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_ldr()
DescripciónObtiene la lectura del sensor de luz LDR normalizada a los valores min y max.
SintaxisRobot.lee_ldr(min, max)
Parámetrosmin: valor mínimo para el sensor de luz LDR. El valor mínimo por defecto es 0.
max: valor máximo para el sensor de luz LDR. El valor máximo por defecto es 1023.
RetornaLectura del sensor de luz LDR normalizada a los valores min y max.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_pulsador()
DescripciónObtiene el estado del pulsador de usuario.
SintaxisRobot.lee_pulsador()
ParámetrosNo necesita parámetros.
RetornaEl valor numérico 0 si el pulsador no está pulsado y el valor numérico 1 en caso contrario.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_suelo_d()
DescripciónObtiene la lectura analógica del sensor reflexivo de suelo derecho, normalizada a los valores min y max. La indicación del sensor es más alta cuanto más oscura es la superficie sobre la que se encuentre el robot. Así pues, este sensor está diseñado como un detector de líneas negras.
SintaxisRobot.lee_suelo_d(min, max)
Parámetrosmin: valor mínimo para el sensor reflexivo de suelo. El valor mínimo por defecto es 0.
max: valor máximo para el sensor reflexivo de suelo. El valor máximo por defecto es 1023.
RetornaLectura analógica del sensor de suelo derecho normalizada a los valores min y max.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_suelo_i()
DescripciónObtiene la lectura analógica del sensor reflexivo de suelo izquierdo, normalizada a los valores min y max. La indicación del sensor es más alta cuanto más oscura es la superficie sobre la que se encuentre el robot. Así pues, este sensor está diseñado como un detector de líneas negras.
SintaxisRobot.lee_suelo_i(min, max)
Parámetrosmin: valor mínimo para el sensor reflexivo de suelo. El valor mínimo por defecto es 0.
max: valor máximo para el sensor reflexivo de suelo. El valor máximo por defecto es 1023.
RetornaLectura analógica del sensor de suelo izquierdo normalizada a los valores min y max.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_suelo_dd()
Descripción>Obtiene la lectura digital del sensor reflexivo de suelo derecho, 0 si es blanco o 1 si es negro.
SintaxisRobot.lee_suelo_dd()
ParámetrosNo necesita parámetros.
RetornaEl valor numérico 0, cuando detecta BLANCO y el valor 1, cuando detecta NEGRO.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_suelo_id()
Descripción>Obtiene la lectura digital del sensor reflexivo de suelo izquierdo, 0 si es blanco o 1 si es negro.
SintaxisRobot.lee_suelo_id()
ParámetrosNo necesita parámetros.
RetornaEl valor numérico 0, cuando detecta BLANCO y el valor 1, cuando detecta NEGRO.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_distancia()
DescripciónObtiene la distancia, en centímetros, a la que se encuentra un objeto en su parte delantera. Para ello utiliza el sensor de distancia por ultrasonidos HC-SR04.
SintaxisRobot.lee_distancia(led)
Parámetrosled: Activa [SI] o desactiva [NO] la indicación visual del proceso de medida en el led azul del robot. En caso de activación [SI] esta funcionalidad es incompatible con cualquier otro uso que se quiera dar al led azul del robot en ese mismo programa. Por defecto led se configura como [NO].
RetornaLa distancia en centímetros a la que se encuentra el objeto, con un máximo de 255 cm.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Control de la brújula -----------
Robot.lee_brujula()
Descripción SintaxisRobot.lee_brujula()
Parámetros Retorna Ejemplo----------- Control del pulsador -----------
Robot.espera_pulsador()
DescripciónEl programa se mantiene a la espera de que se pulse el pulsador para continuar con la siguiente instrucción. En caso de estar activo al llegar a esta sección, habrá que soltar y pulsar de nuevo.
SintaxisRobot.espera_pulsador()
ParámetrosNo necesita parámetros.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.espera_pulsador_mensaje()
DescripciónEl programa se mantiene a la espera de que se pulse el pulsador para continuar con la siguiente instrucción. En caso de estar activo al llegar a esta sección, habrá que soltar y pulsar de nuevo. Mientras tanto muestra por pantalla el mensaje "Pulsar ->", indicando donde se encuentra el pulsador de usuario.
SintaxisRobot.espera_pulsador_mensaje()
ParámetrosNo necesita parámetros.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.espera_pulsador_soltar()
Descripción SintaxisRobot.espera_pulsador_soltar()
Parámetros>No necesita parámetros.
RetornaNo retorna nada.
EjemploRobot.estado_pulsador()
DescripciónObtiene el estado del pulsador de usuario.
SintaxisRobot.estado_pulsador()
ParámetrosNo necesita parámetros.
RetornaEl valor numérico 0 si el pulsador no está pulsado y el valor numérico 1 en caso contrario.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Control de los ledes -----------
Robot.enciende()
DescripciónEnciende el led de usuario LED o el led RGB en el color indicado.
SintaxisRobot.enciende(color)
ParámetrosCOLOR: Indica el led azul de usuario conectado el pin 13 [LED] o el color del led RGB:
- [RGB] - Para el color blanco
- [RGB_NEGRO] - Para el color negro, es decir, apagado
- [RGB_ROJO] - Para el color rojo
- [RGB_VERDE] - Para el color verde
- [RGB_AZUL] - Para el color azul
- [RGB_MAGENTA] - Para el color magenta
- [RGB_CIAN] - RPara el color cian
- [RGB_AMARILLO] - Para el color amarillo
- [RGB_BLANCO] - Para el color blanco
No retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.apaga()
DescripciónApaga el led indicado, pudiendo ser el led RGB o el led de usuario LED.
SintaxisRobot.apaga(led)
Parámetrosled: Corresponde al led que queremos apagar, [RGB] para el led RGB o [LED] para el led de usuario conectado al pin 13.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.brillo_rgb()
DescripciónControla el color del led RGB mediante cada una de sus componentes rojo, verde o azul.
SintaxisRobot.brillo_rgb(rojo,verde,azul)
Parámetrosrojo: Corresponde al valor de color rojo del led RGB en %. El rango varía de 0% al 100%.
verde: Corresponde al valor de color verde del led RGB en %. El rango varía de 0% al 100%.
azul: Corresponde al valor de color azul del led RGB en %. El rango varía de 0% al 100%.
RetornaNo retorna nada.
Ejemplo1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // Este ejemplo alterna el encendido // del led RGB en sus colores primarios. #include <Compluino_03.h> Compluino_03 Robot; void setup() { Robot.inicia(); } void loop() { // Color rojo al 100%, verde y azul al 0% Robot.brillo_rgb(100,0,0); Robot.espera_segundos(1); // Color verde al 100%, rojo y azul al 0% Robot.brillo_rgb(0,100,0); Robot.espera_segundos(1); // Color azul al 100%, verde y rojo al 0% Robot.brillo_rgb(0,0,100); Robot.espera_segundos(1); } |
----------- Control de la brújula (Compass) -----------
----------- Esperas -----------
Robot.espera_segundos()
DescripciónMantiene en espera el programa cierto tiempo. Durante estos segundos se mantendrá en ejecución los comandos anteriores antes de proseguir con los siguientes.
SintaxisRobot.espera_segundos(segundos)
Parámetrossegundos: Indica el número de segundos que está en espera el programa.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.espera_milisegundos()
DescripciónMantiene en espera el programa cierto tiempo. Durante estos milisegundos se mantendrá en ejecución los comandos anteriores antes de proseguir con los siguientes.
SintaxisRobot.espera_milisegundos(milisegundos)
Parámetrosmilisegundos: Indica el número de milisegundos que está en espera el programa.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Servo -----------
Robot.pos_servo()
DescripciónMueve el servo a la posición indicada en grados. Se recomienda estimar un tiempo de espera necesario para que se establezca el posicionamiento correctamente, pudiendo ser 200ms por ejemplo.
SintaxisRobot.pos_servo(grados)
Parámetrosgrados:Indica la posición en grados a la cual se va a colocar el servo. Este valor debe estar normalizado de 0 a 180 grados.
RetornaNo retorna nada.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
Robot.lee_pos_servo()
DescripciónObtiene la posición en grados a la que se encuentra posicionado el servo. Dicho valor estará normalizado de 0 a 180 grados.
SintaxisRobot.lee_pos_servo()
ParámetrosNo necesita parámetros.
RetornaEl valor en grados al que que encuentra colocado el servo. Este valor está comprendido entre 0 y 180.
EjemploGeSHi Error: GeSHi could not find the language arduino (using path /var/www/vhosts/complubot.com/httpdocs/inicio/wp-content/plugins/codecolorer/lib/geshi/) (code 2)
----------- Constantes -----------
Asignación de pines
Asignación de pines de Compluino 03, configurados según el formato del IDE de Arduino para la placa Arduino UNO. Los pines 0 y 1 están reservados a las comunicaciones (Serie-USB y Bluetooth). Los pines del 2 al 13 corresponden a las entradas/salidas digitales. Los pines 16 y 17 hacen referencia a los pines A2 y A3 configurados como digitales. Los pines A0..A3 son entradas analógicas. Los pines A4 y A5 no están disponibles ya que están utilizados como bus I2C para controlar el display OLED y la brújula electrónica. Puedes encontrar más información en el esquema de Compluino 03.
- 2 - PIN_SERVO - Control de servos de RC
- 3 - PIN_PULSADOR - Pulsador de usuario
- 4 - PIN_EN - Habilitación de los motores
- 5 - PIN_MOTOR_D - PWM motor derecho
- 6 - PIN_MOTOR_I - PWM motor izquierdo
- 7 - PIN_US - Sensor de distancias ultrasonidos HC-SR04. Configuración un pin
- 8 - PIN_ALTAVOZ - Altavoz piezoeléctrico (pasivo)
- 9 - PIN_RGB_ROJO - Color rojo del led RGB
- 10 - PIN_RGB_AZUL - Color azul del led RGB
- 11 - PIN_RGB_VERDE - Color verde del led RGB
- 12 - PIN_MISO - Pin MISO (1) del conector ICSP (CMUCAM)
- 13 - PIN_LED - Led azul
- 16 - PIN_SENSOR_DD - Sensor reflexivo derecho, en digital
- 17 - PIN_SENSOR_ID - Sensor reflexivo izquierdo, en digital
- A0 - PIN_POT - Potenciómetro
- A1 - PIN_LDR - Sensor de luz LDR
- A2 - PIN_SUELO_D - Sensor reflexivo de suelo derecho, en analógico
- A3 - PIN_SUELO_I - Sensor reflexivo de suelo izquierdo, en analógico
Referencias a sensores
Algunas funciones de la librería del Compluino 03 usan referencias genéricas (distintas del pin físico) para poder tratar a los distintos sensores por una misma función, con independencia del pin al que están conectados o al tipo de señal que usan.
- REF_POT - Referencia al potenciómetro
- REF_LDR - Referencia al sensor de luz LDR
- REF_PULSADOR - Referencia al pulsador de usuario
- REF_SUELO_D - Referencia al sensor reflexivo de suelo derecho en analógico
- REF_SUELO_I - Referencia al sensor reflexivo de suelo izquierdo en analógico
- REF_SUELO_DD - Referencia al sensor reflexivo de suelo derecho en digital
- REF_SUELO_ID - Referencia al sensor reflexivo de suelo izquierdo en digital
- REF_DISTANCIA - Referencia al sensor de distancias HC-SR04
- REF_BRUJULA - Referencia al sensor de orientación HMC5883L (brújula electrónica)
Notas musicales

Para simplificar el uso del altavoz, hemos creado referencias a la escala musical de la cuarta octava. Paras ello puedes usar las siguientes referencias a dichas notas musicales:
- DO4 - Nota musical DO de la cuarta octava
- RE4 - Nota musical RE de la cuarta octava
- MI4 - Nota musical MI de la cuarta octava
- FA4 - Nota musical FA de la cuarta octava
- SOL4 - Nota musical SOL de la cuarta octava
- LA4 - Nota musical LA de la cuarta octava
- SI4 - Nota musical SI de la cuarta octava