-->

Menú principal

jueves, 4 de febrero de 2016

TECNOLOGÍA 4º ESO: TEMA 5.- CONTROL POR ORDENADOR

INDICE TEMA 5.- CONTROL POR ORDENADOR

1.- BASES DEL CONTROL POR ORDENADOR

2.- PROGRAMACIÓN CON LENGUAJE DE ALTO NIVEL: LOGO

     2.1.- El entorno de Xlogo
     2.2.- Primitivas de programación con LOGO
     2.3.- Ejercicios con Xlogo
     2.4.- Las variables
     2.5.- La reutilización del código: rutinas
     2.6.- Realizando operaciones

3.- PROGRAMACIÓN DE LA TARJETA CONTROLADORA ARDUINO

     3.1.- IDE de Arduino
     3.2.- Scratch for Arduino (S4A)
     3.3.- Programación con mBlock
     3.4.- Programación con Visualino
     3.5.- Programación con el entorno ArduinoBlock

4.- CONTROLADORAS DE INTERFACES DE CONTROL

     4.1.- Accionar interruptores
     4.2.- Encender una bombilla con una controladora
     4.3.- Mover un motor con una controladora
     4.4.- Controlar el giro del motor
     4.5.- Sensores
     4.6.- Conectar un sensor a una controladora
     4.7.- Tipos de controladoras

5.- INTERFACES DE CONTROL Y PROGRAMACIÓN

6.- CODIFICANDO PROGRAMAS

7.- DIAGRAMAS DE FLUJO

8.- ESQUEMA Y VOCABULARIO

9.- ACTIVIDADES




1. BASES DEL CONTROL POR ORDENADOR:

 Un dispositivo es automático cuando es capaz de realizar una tarea determinada sin la intervención del hombre. Para que una máquina funcione automáticamente, es necesario disponer de un sistema de control, es decir, de un conjunto de dispositivos de distinta naturaleza (mecánicos, hidráulicos, neumáticos, eléctricos, informáticos, etc.) que realicen las acciones necesarias en cada momento.

 Los sistemas de control automático tienes tres partes diferenciadas:
     Las entradas o sensores.- son los dispositivos que detectan el estado en el que se encuentra el sistema. 
     La unidad de control.- decide la acción que han de realizar las salidas con la información recibida de las entradas. 
     Las salidas o actuadores.- son los dispositivos que ejecutan las acciones que decide la unidad de control. 
Para realizar programas de control automático, vamos a utilizar el ordenador con unidad de control, pero conectaremos las entradas y las salidas a través de una tarjeta controladora. Para manejar esta tarjeta controladora, se utilizan distintos programas informáticos y uno de los más empleados es el MSWLogo, que estudiaremos a continuación.

1.1.- Lenguaje

El lenguaje de programación o código es la forma que tenemos de comunicarnos con un ordenador; los circuitos electrónicos digitales de la máquina le permiten transformar nuestras instrucciones en señales eléctricas.

Recordemos que es el código binario el que nos permite interactuar con la máquina. A los ceros y unos se les llama con el nombre de lenguaje máquina porque son instrucciones que el sistema electrónico es capaz de comprender (pasa o no pasa corriente).

Pero sería muy laborioso traducir a ceros y unos las instrucciones que queremos que realice el ordenador. El código nos permite recurrir a un lenguaje mucho más comprensible para nosotros, llamado lenguaje de programación de alto nivel; bajo este código existe un subcódigo encargado de traducir nuestras instrucciones al lenguaje máquina, es decir, a ceros y unos, pero ya no necesitamos conocerlo.
Existen cientos de lenguajes de programación y son muy diversos; algunos de ellos son muy antiguos, mientras que otros son relativamente nuevos. Además, varían mucho según su complejidad, existiendo algunos más o menos simples. A finales de los años 60 se desarrolló un lenguaje sencillo para educación llamado LOGO. Este lenguaje es el que vamos a utilizar en esta unidad didáctica.

1.2.- Tarjetas controladoras

Las tarjetas de control o controladoras sirven de enlace entre el ordenador y el sistema a controlar o un robot. Reciben las instrucciones del ordenador en forma digital y tienen que convertirlas en señales, normalmente analógicas, que sean comprensibles para el robot; y viceversa, también tienen que recibir las señales del sistema robótico y enviárselas al ordenador para su procesamiento. Es decir, estas tarjetas tienen una serie de entradas y una serie de salidas.

Existen diferentes tipos de controladoras pero su apariencia es la de cualquier circuito impreso. Las controladoras necesitan su propia fuente de alimentación.

1.3.- Comunicación con el ordenador. Entradas y salidas

Las controladores disponen de varias entradas y salidas; éstas pueden ser analógicas o digitales:
• Digitales admiten solamente información del tipo pasa-no pasa; permitirán o no el
     paso de la corriente por el circuito; son adecuadas para conectar elementos del sistema robótico como lámparas, diodos LED o indicadores del funcionamiento de la máquina.
• Analógicas, en cambio, permiten regular la cantidad de corriente que pasa
    (recordemos que las variables analógicas admiten cualquier valor). Serán adecuadas si queremos regular la luz que emite una bombilla, la velocidad de giro de un motor .

2.- PROGRAMACIÓN CON LENGUAJE DE ALTO NIVEL: LOGO

Una vez que tenemos una idea de cómo se transmiten nuestras órdenes al robot, vamos a empezar a estudiar las órdenes, es decir, los lenguajes de programación; por muy variados que sean estos, su estructura es similar: siempre parte de unas órdenes básicas denominadas primitivas.
Vamos a estudiar las primitivas que usa el software XLogo, ya que es el programa que tenemos instalado en nuestros ordenadores con el sistema operativo Guadalinex EDU, basado en el lenguaje Logo, pensado con fines didácticos para explicar los conceptos básicos de programación.

2.1.- El entorno de XLOGO

La pantalla de XLogo se divide en varias partes; Un lienzo, en la zona superior donde podemos ver la posición y dirección del cursor y el resultado de las órdenes que hayamos dado hasta entonces. En la zona inferior podemos ver la consola de comandos con el código que hayamos escrito. En la parte superior tenemos una línea de comandos donde podemos ejecutar los comandos individualmente y ver el resultado inmediatamente en el área de dibujo o lienzo.

También tenemos dos botones en la parte inferior derecha, un botón para editar, que nos abre la ventana de edición para crear nuestros procedimientos con varias primitivas, y otros botón para detener la ejecución del programa.

2.2.- Primitivas de programación en LOGO

Primitivas básicas
Las órdenes o instrucciones básicas de MSWLogo se llaman primitivas. Las primitivas deben escribirse en el cuadro inferior de la ventana de trabajo. Al pulsar Enter o hacer clic en el botón Ejecutar, la primitiva se ejecuta. Si la primitiva es mal escrita o si le faltan datos, el intérprete contesta “no sé cómo...” Cada una de las órdenes queda anotada en la ventana de trabajo.

La primitiva puede escribirse completa o mediante abreviaturas y tanto en minúsculas como en mayúsculas.

• AVANZA (AV): Sirve para desplazar el cursor una determinada longitud que debe de especificarse a continuación de AVANZA o de AV. Por ejemplo, AV 40 desplazará el cursor 40 unidades. Es importante separar con un espacio la primitiva (AV) del parámetro (40) o el programa no entenderá la orden.

• GIRADERECHA (GD) Y GIRAIZQUIERDA (GI): Sirven para cambiar la orientación del cursor; el parámetro que acompaña a la primitiva será el número de grados de giro y tendrá que ir separado mediante un espacio de la primitiva. Al abrir el programa, el cursor está orientado en dirección vertical con sentido hacia arriba.

GD 90 desplazará el cursor 90 grados en el sentido de las agujas del reloj. GD 180 o GI
180 da la vuelta al cursor y lo pone en posición de retroceso.

•RETROCEDE (RE): Hace retroceder el cursor el número de unidades que le indique el parámetro que venga a continuación. Es equivalente a GD 180 o a GI 180 seguido de AV.

En este enlace podemos ver un manual completo con todas las primitivas de Xlogo


2.3.- Ejercicios con Xlogo

Algunos ejercicios realizados por los alumnos con Xlogo:

Para ampliar información sobre Xlogo y ver más ejemplos consulta esta entrada del blog:

2.4. Las variables

Las variables son espacios de la memoria del ordenador donde se guardan valores que se van a utilizar durante la ejecución del programa. Imagina la memoria como un mueble con muchos cajones, a cada uno de los cuales se le da un nombre y dentro de cada uno se almacena un valor numérico o letras.
Ejemplos de variables: area, pi, edad, lado, número, nlados, etc.

2.5.- La reutilización del código: rutinas

En logo para escribir una rutina o procedimiento utilizamos las primitivas PARA y FIN.Ejemplo:
Para realizar un cuadrado escribimos el siguiente procedimiento:

PARA cuadrado :l
 repite 4 [av :l gd 90]
FIN

En la primera línea definimos el procedimiento "cuadrado" con el parámetro "l"  (lado).
En la segunda línea usamos el comando "repite" para dibujar los cuatro lados.
En la tercera línea  terminamos el procedimientos con la orden FIN.

De esta manera evitamos repetir muchas líneas de código y los programas resultas más elegantes.

2.6.- Realizando operaciones

Con Logo podemos realizar operaciones matemáticas como suma, resta, división, multiplicación, etc.
En esta tabla podemos ver algunos de los operadores que tiene Logo:


3.- PROGRAMACIÓN DE LA TARJETA CONTROLADORA ARDUINO

    La tarjeta controladora Arduino es una plataforma de hardware de código abierto que se utiliza ampliamente para el desarrollo de proyectos electrónicos. Se programa utilizando el lenguaje de programación Arduino que se base en el lenguaje Processing

    Las principales formas de programar una tarjeta Arduino:
  • Entorno de Desarrollo Integrado (IDE) de Arduino:Es la herramienta oficial proporcionada por Arduino.Ofrece un editor de código, compilador y cargador para programar la tarjeta Arduino.Se puede descargar gratuitamente desde el sitio web oficial de Arduino.Soporta una amplia variedad de tarjetas Arduino y otros microcontroladores compatibles.
  • Scratch for Arduino (S4A): Scratch for Arduino es una herramienta poderosa y accesible que combina la facilidad de uso y la intuitividad de Scratch con las capacidades de programación y control de hardware de las tarjetas Arduino, permitiendo a personas de todas las edades y niveles de experiencia aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.
  • Programación con mBlock: mBlock es un entorno de programación visual basado en Scratch que también permite la programación de tarjetas Arduino. Ofrece una interfaz gráfica intuitiva con bloques de programación que se pueden arrastrar y soltar para crear programas para Arduino.
  • Programación con Visualino: Visualino es un entorno de programación visual para Arduino, que permite programar tarjetas Arduino utilizando un lenguaje de programación por bloques similar al de Scratch. Visualino es una herramienta poderosa y accesible que combina la facilidad de uso y la intuitividad de un entorno de programación visual con las capacidades de programación y control de hardware de las tarjetas Arduino, permitiendo a personas de todas las edades y niveles de experiencia aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.

3.1.- IDE de Arduino

Para comenzar a programar una tarjeta Arduino, generalmente se sigue el siguiente proceso:

1. Instalar el IDE de Arduino:

   - Descargar e instalar el IDE de Arduino desde el sitio web oficial.

2. Configurar el IDE:
   - Seleccionar el tipo de tarjeta Arduino que se va a utilizar en el menú "Herramientas" > "Placa".
   - Seleccionar el puerto COM al que está conectada la tarjeta Arduino en el menú "Herramientas" > "Puerto".

3. Escribir y Cargar el Código:
   - Escribir el código en el editor de texto del IDE de Arduino.
   - Verificar y compilar el código haciendo clic en el botón "Verificar" (✓).
   - Cargar el código en la tarjeta Arduino haciendo clic en el botón "Cargar" (➔).

4. Ejecutar el Programa en la Tarjeta Arduino:
   - Una vez cargado el código en la tarjeta Arduino, el programa comenzará a ejecutarse automáticamente.


3.2.- Scratch for Arduino (S4A)

Scratch for Arduino es una extensión del entorno de programación visual Scratch que permite programar y controlar tarjetas Arduino utilizando un lenguaje de programación por bloques. Esta herramienta combina la facilidad de uso y la intuitividad de Scratch con las capacidades de programación y control de hardware de las tarjetas Arduino.
Características principales de Scratch for Arduino:

1. Programación Visual por Bloques:
   - Utiliza un lenguaje de programación por bloques que facilita la programación para aquellos que no tienen experiencia previa en programación textual.
   - Los bloques representan diferentes funciones y acciones que se pueden arrastrar y soltar en un lienzo para crear programas.

2. Interfaz Gráfica Intuitiva:
   - Ofrece una interfaz gráfica intuitiva con bloques de programación, lo que facilita la creación y la comprensión de los programas.
   - Permite crear programas complejos utilizando bloques de programación simples que se pueden conectar entre sí.

3. Integración con Arduino:
   - Proporciona una interfaz de comunicación entre el entorno de programación Scratch y las tarjetas Arduino.
   - Permite enviar comandos y datos desde los bloques de programación en Scratch a la tarjeta Arduino para controlar diferentes componentes y periféricos.

4. Control de Componentes y Periféricos:
   - Permite controlar una amplia variedad de componentes y periféricos compatibles con Arduino, como LEDs, motores, sensores, pantallas y más.
   - Facilita la programación de interacciones físicas y proyectos de electrónica utilizando las capacidades de las tarjetas Arduino.

Cómo usar Scratch for Arduino:

1. Instalar la Extensión de Scratch for Arduino:
   - Descargar e instalar la extensión de Scratch for Arduino en el entorno de programación Scratch.

2. Conectar la Tarjeta Arduino:
   - Conectar la tarjeta Arduino al ordenador utilizando un cable USB.
   - Configurar el puerto COM correspondiente en el entorno de programación Scratch para establecer la comunicación con la tarjeta Arduino.

3. Programar con Bloques:
   - Arrastrar y soltar bloques de programación en el lienzo de Scratch para crear programas.
   - Conectar los bloques de programación para definir la lógica y el flujo de ejecución del programa.

4. Cargar y Ejecutar el Programa en Arduino:
   - Cargar el programa en la tarjeta Arduino haciendo clic en el botón correspondiente en el entorno de programación Scratch.
   - Una vez cargado el programa, la tarjeta Arduino comenzará a ejecutar el programa y controlar los componentes y periféricos según lo definido en el programa.



3.3.- Programación con mBlock

Pasos para programar una tarjeta Arduino con mBlock:

1. Instalación de mBlock:
   - Descarga e instala mBlock desde el sitio web oficial o desde la tienda de aplicaciones correspondiente a tu sistema operativo.


2. Conexión de la Tarjeta Arduino:
   - Conecta la tarjeta Arduino al ordenador mediante un cable USB.
   - Abre mBlock y selecciona el tipo de tarjeta Arduino que estás utilizando en el menú "Conectar" > "Configuración de placa".

3. Configuración del Puerto COM:
   - Selecciona el puerto COM al que está conectada la tarjeta Arduino en el menú "Conectar" > "Puerto".

4. Programación con Bloques en mBlock:
   - Arrastra y suelta los bloques de programación disponibles en mBlock para construir tu programa. Estos bloques representan diferentes funciones y acciones que se pueden realizar con la tarjeta Arduino.
Ejemplo de programación con mBlock para encender un LED:

1. Seleccionar Bloques:
   - Arrastra un bloque "Cuando el botón verde de la bandera se presiona" (evento de inicio) y un bloque "Establecer el pin13 a alto" (acción para encender el LED) al área de programación.

2. Configurar Bloques:
   - En el bloque "Establecer el pin13 a alto", cambia el número de pin a "13" para seleccionar el pin digital donde está conectado el LED.

3. Conectar Bloques:
   - Conecta el bloque "Cuando el botón verde de la bandera se presiona" al bloque "Establecer el pin13 a alto" para establecer la secuencia de acciones que se ejecutarán cuando se presione el botón verde de la bandera.

4. Cargar y Ejecutar el Programa:
   - Haz clic en el botón "Subir a Arduino" en mBlock para compilar y cargar el programa en la tarjeta Arduino.
   - Una vez cargado el programa, el LED conectado al pin 13 de la tarjeta Arduino se encenderá cuando se presione el botón verde de la bandera en mBlock.

Ventajas de usar mBlock para programar Arduino:

- Interfaz Intuitiva: mBlock ofrece una interfaz gráfica intuitiva con bloques de programación que facilita la creación y la comprensión de programas para Arduino.
  
- Fácil Aprendizaje: Permite a personas sin experiencia previa en programación aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.
  
- Amplia Gama de Bloques: mBlock proporciona una amplia gama de bloques de programación que permiten controlar una gran variedad de componentes y periféricos compatibles con Arduino.

En resumen, mBlock es una herramienta poderosa y accesible que combina la facilidad de uso y la intuitividad de Scratch con las capacidades de programación y control de hardware de las tarjetas Arduino, permitiendo a personas de todas las edades y niveles de experiencia aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.


3.4.- Programación con Visualino

Pasos para programar una tarjeta Arduino con Visualino:
  • Instalación de Visualino:Descarga e instala Visualino desde el sitio web oficial o desde la tienda de aplicaciones correspondiente a tu sistema operativo.
  • Conexión de la Tarjeta Arduino:Conecta la tarjeta Arduino al ordenador mediante un cable USB.
  • Abre Visualino y selecciona el tipo de tarjeta Arduino que estás utilizando en el menú "Herramientas" > "Placa".
  • Configuración del Puerto COM:Selecciona el puerto COM al que está conectada la tarjeta Arduino en el menú "Herramientas" > "Puerto".
  • Programación con Bloques en Visualino:Arrastra y suelta los bloques de programación disponibles en Visualino para construir tu programa. Estos bloques representan diferentes funciones y acciones que se pueden realizar con la tarjeta Arduino.

Ejemplo de programación con Visualino para encender un LED:

  • Seleccionar Bloques:Arrastra un bloque "Al iniciar" (evento de inicio) y un bloque "Encender LED" (acción para encender el LED) al área de programación.
  • Configurar Bloques:En el bloque "Encender LED", selecciona el número de pin donde está conectado el LED (por ejemplo, pin 13).
  • Conectar Bloques:Conecta el bloque "Al iniciar" al bloque "Encender LED" para establecer la secuencia de acciones que se ejecutarán cuando se inicie el programa.
  • Cargar y Ejecutar el Programa:Haz clic en el botón "Subir a Arduino" en Visualino para compilar y cargar el programa en la tarjeta Arduino.
  • Una vez cargado el programa, el LED conectado al pin seleccionado de la tarjeta Arduino se encenderá.

Ventajas de usar Visualino para programar Arduino:

Interfaz Intuitiva: Visualino ofrece una interfaz gráfica intuitiva con bloques de programación que facilita la creación y la comprensión de programas para Arduino.


Fácil Aprendizaje: Permite a personas sin experiencia previa en programación aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.


Amplia Gama de Bloques: Visualino proporciona una amplia gama de bloques de programación que permiten controlar una gran variedad de componentes y periféricos compatibles con Arduino.

3.5.- Programación con el entorno ArduinoBlock

ArduinoBlock es un entorno web de programación visual basado en bloques diseñado para programar tarjetas Arduino de forma intuitiva y accesible. Arduinoblocks actualmente funciona con todos los navegadores de última generación: Mozilla Firefox, Google Chrome, Opera, Safari, etc. (recomandado Firefox y Chrome). Es el entorno más usado actualmente para programar con Arduino.


    Existen guias y manuales de introducción con ejemplos sencillos que se puede descargar desde la propia web. https://drive.google.com/drive/folders/145rLGnHUqtUBUuhcdj4eSvbdUkBnhp23

    Arduinoblocks se basa en el framework Blockly de Google y la programación se realiza con bloques al estilo AppInventor o Scratch. No tenemos que escribir líneas de código y no nos permitirá unir bloques incompatibles evitando así posibles errores de sintaxis.

Pasos para programar con ArduinoBlock:

Instalación de ArduinoBlock: no se necesita instalar nada, solo hay que acceder a la web de ArduinoBlock desde su sitio web oficial. http://www.arduinoblocks.com/web/ . Es necesario registrarse creado una cuenta de usuario para que nuestros programas queden almacenados.


Conexión de la Tarjeta Arduino:Conecta la tarjeta Arduino al ordenador mediante un cable USB.
Abre ArduinoBlock y selecciona el tipo de tarjeta Arduino que estás utilizando en la configuración del proyecto.


Configuración del Puerto COM:Selecciona el puerto COM al que está conectada la tarjeta Arduino en la configuración del proyecto.


Programación con Bloques en ArduinoBlock:Arrastra y suelta los bloques de programación disponibles en ArduinoBlock para construir tu programa. Estos bloques representan diferentes funciones y acciones que se pueden realizar con la tarjeta Arduino.

Ejemplo de programación con ArduinoBlock para encender un LED:

Seleccionar Bloques:Arrastra un bloque "Al iniciar" (evento de inicio) y un bloque "Encender LED" (acción para encender el LED) al área de programación.


Configurar Bloques:En el bloque "Encender LED", selecciona el número de pin donde está conectado el LED (por ejemplo, pin 13).


Conectar Bloques:Conecta el bloque "Al iniciar" al bloque "Encender LED" para establecer la secuencia de acciones que se ejecutarán cuando se inicie el programa.


Cargar y Ejecutar el Programa:Haz clic en el botón "Cargar" en ArduinoBlock para compilar y cargar el programa en la tarjeta Arduino.
Una vez cargado el programa, el LED conectado al pin seleccionado de la tarjeta Arduino se encenderá.

Ventajas de usar ArduinoBlock:

Interfaz Intuitiva: ArduinoBlock ofrece una interfaz gráfica intuitiva con bloques de programación que facilita la creación y la comprensión de programas para Arduino.


Fácil Aprendizaje: Permite a personas sin experiencia previa en programación aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.


Amplia Gama de Bloques: ArduinoBlock proporciona una amplia gama de bloques de programación que permiten controlar una gran variedad de componentes y periféricos compatibles con Arduino.

En resumen, ArduinoBlock es una herramienta poderosa y accesible que combina la facilidad de uso y la intuitividad de un entorno de programación visual con las capacidades de programación y control de hardware de las tarjetas Arduino, permitiendo a personas de todas las edades y niveles de experiencia aprender y experimentar con la programación y la electrónica de manera sencilla y divertida.