FMSLogo y Arduino
Desde FMSLogo podemos controlar la tarjeta Arduino y utilizar este lenguaje para realizar nuestros programas; ahora bien, la tarjeta debe permanecer conectada al ordenador, no se podrá usar de manera autónoma. Por contra, si podremos utilizar el teclado, el ratón o la pantalla en los programas de control. Hay que tener en cuenta que los pines 0 y 1 se usan para enviar y recibir datos entre la tarjeta y el ordenador, por lo tanto, no debemos utilizarlos.
Para establecer la comunicación entre FMSLogo y Arduino tenemos que dar los siguientes pasos:
- Instalar y ejecutar el entorno de Arduino (podéis descargarlo aquí).
- Abrir el archivo FMSLogoArduino.ino (ver ficheros adjuntos) y subirlo a la tarjeta Arduino.
- Anotar el puerto en el se ha instalado Arduino, lo podéis ver en la parte inferior derecha del entorno (por ejemplo, Arduino UNO en com3).
- Abrir con el block de notas el archivo FMSLogoArduino.lgo (ver ficheros adjuntos). Ir a la parte final del archivo y, en haz "puerto "com1, reemplazar la palabra "com1 por el nombre del puerto en el que se haya instalado Arduino (por ejemplo: "com3). Guardar el archivo modificado.
- Abrir con FMSLogo el archivo modificado FMSLogoArduino.lgo
- Ya podemos escribir nuestros programas en el editor y ejecutarlos. Dentro de FMSLogoArduino.lgo hemos escrito un pequeño procedimiento de prueba (parpadeo13) que enciende y apaga el led incluido en el pin 13 de la tarjeta a intervalos de medio segundo. Si escribís parpadeo13 en la caja de entrada podréis comprobar si todo el proceso ha sido correcto.
Los procedimientos que hemos incluido en el archivo FMSLogoArduino.lgo para controlar los pines de Arduino son similares a los utilizados por su propio lenguaje:
modoPin pin modo | |
Establece si el pin indicado se va a usar como entrada o como salida (por defecto los pines están programados como entradas).
Ejemplo: |
|
escribeDigital pin estado | |
Pone el pin correspondiente en estado "on u "off
Ejemplo: |
|
leeDigital pin | |
Devuelve el estado ("on / "off) del pin
Ejemplo: |
|
escribeAnalogico pin valor | |
El pin indicado suministra una señal analógica (PWM) con una resolución de 8 bits; es decir, valor será un número comprendido entre 0 y 255 (sólo en los pines marcados con el símbolo ≈).
Ejemplo: |
|
leeAnalogico pin | |
Devuelve el valor de la tensión analógica existente en el pin con una resolución de 10 bits (devuelve un número entre 0 y 1023).
Ejemplo: |
|
referenciaAnalogica tipo | |
Pone el voltaje de referencia en el convertidor analógico/digital de Arduino. Si tipo "defecto el voltaje es de 5v. Si tipo "interno el voltaje es de 1'1v. Si tipo "externo será el conectado al pin Vref. |
|
map :valor :Emin :Emax :Smin :Smax | |
re-escala valores de un rango de entrada a valores de un rango de salida. :Emin y :Emax son los valores mínimo y máximo del rango de entrada en el que está comprendido :valor, Smax y Smin son los valores mínimo y máximo del nuevo rango en el que estará comprendido el valor devuelto.
Ejemplo: |
Ficheros adjuntos: FMSLogoArduino
Pinchar con el botón derecho sobe los archivos y seleccionar Guardar enlace como... para almacenarlos en vuestro ordenador.
Utilizarlos como se ha explicado anteriormente.
parpadeo13
Como primer ejemplo podéis ver el procedimiento parpadeo13 que hace parpadear el LED incluido en la tarjeta:
ratonLed
En este programa encendemos y apagamos el diodo LED incluido en el pin 13 de Arduino pinchando con el ratón en un cuadrado de la pantalla. El cuadrado también cambia de color.
temperatura
Ahora vamos a usar el sensor LM35 para medir la temperatura y hacerla visible en la pantalla; además, si la temperatura está comprendida entre 27 y 30 grados el fondo se pondrá de color amarillo, si es inferior a 27 grados el color será verde y si es superior a 30 rojo (la forma de conectar el sensor está indicada en el apartado anterior).
Para que la precisión sea buena hay que poner la tensión de referencia del convertidor A/D en 1'1 v, ya que el sensor nunca suministrará tensiones superiores. Los grados centígrados se obtienen mediante la expresión:
grados = (valorsensor *1'1*100/1024) - 2
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0