Saltar la navegación

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:
modoPin 10 "salida ;establece el pin 10 como salida
modoPin 7 "entrada ;estable el pin 7 como entrada
modoPin "A5 "salida ;utilizamos el pin A5 como salida digital

escribeDigital pin estado
Pone el pin correspondiente en estado "on u "off

Ejemplo:
escribeDigital 10 "on ;activa el pin 10
escribeDigital 10 "off ;desactiva el pin 10

leeDigital pin
Devuelve el estado ("on / "off) del pin

Ejemplo:
;supongamos conectado un pulsador al pin 9
;creamos la variable pulsador para almacenar
;el estado del pin "on / "off
haz "pulsador leeDigital 9

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:
;tenemos un LED conectado al pin 10
;podemos cambiar su luminosidad
escribeAnalogico 10 200

escribeAnalogico 10 125

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:
;la toma central de un potenciómetro en el pin A0
;queremos leer el valor (0...1023) de la tensión
;y guardarlo en la variable "valorPot
haz "valorPot leeAnalogico 0

 
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:
;moviendo el potenciómetro en A0 queremos controlar
;la luminosidad del LED en el pin 10
;tener en cuenta que hay una diferencia de escalas
;de 0 a 1023 en la lectura y de 0 a 255 en la escritura
haz "valorPot leeAnalogico 0
haz "valorPot map :valorPot 0 1023 0 255
escribeAnalogico 10 :valorPot

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:

programa parpadeo13

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.

programa ratonLed

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

leer temperatura con LM35

Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0