Está en la página 1de 16

Módulo: Programación

“Desarrollando pensamiento computacional”

1. ALGORITMOS

a. Diagramas de flujo
Es una de las representaciones más conocidas para expresar un algoritmo, suelen ser llamados también
diagramas lógicos o flujogramas. Un diagrama de flujo utiliza cajas estándar tales como las que se
muestran a continuación:

Inicio o fin

Ingreso de datos

Proceso

Decisión lógica

Conector de fin de página

Conector dentro de página

Repetición

Llamada a subproceso o
subrutina

1
b. Pseudocódigo
Es la técnica que permite expresar la solución de un problema mediante un algoritmo escrito en palabras
normales de un idioma (por ejemplo, el español), utilizando palabras imperativas. Es común encontrar
en un pseudocódigo palabras como: inicie, lea, imprima, calcule, repita, finalice, etc.
No hay un léxico obligado para el pseudocódigo, pero con el uso frecuente se han establecido algunos
estándares. Ahora veremos un ejemplo de un programa escrito en pseudocódigo:

Inicie
{Calcule el salario neto y deducción de 6%}{Esto es un
comentario}
Lea nombre, horas, valor_hora
Salario_bruto = horas * valor_hora
Deducción = Salario_bruto * 6%
Salario_neto = Salario_bruto – Deducción
Imprima nombre, Salario_bruto, Deducción, Salario_neto
Finalice

c. Lenguajes de programación
Un lenguaje, es un sistema de comunicación dentro de un contexto. El lenguaje humano se realiza a
través de la voz, mensajes hablados o escritos, cartas, etc. Cuando se analiza la solución a un problema,
se idea un algoritmo, este algoritmo ¿en qué lenguaje es desarrollado? Obviamente cuando vamos
pensando en cada paso, lo pensamos en nuestro lenguaje, el español.

Pero, las computadoras no entienden español, se necesita un lenguaje especial para poder comunicarnos
con ella. Estos lenguajes son los llamados lenguajes de programación [1].

Las personas en el mundo usan lenguajes como español, inglés, chino, portugués, etc.

Las computadoras utilizan lenguajes como Python, Java, etc.

2
Existen otro tipo de lenguajes de programación, que introducen a principiantes al mundo de la
programación de una forma más creativa y práctica, los lenguajes gráficos por bloques como el de LEGO
MINDSTORMS NXT.

2. INTRODUCCIÓN AL SOFTWARE

a. Software LEGO MINDSTORMS NXT-G

i. Detalle de la Paleta Completa de Programación:


En esta paleta de programación encontramos todos los bloques de programación del software
LEGO MINDSTORMS NXT-G. A continuación veremos al detalle cada grupo de bloques y la
función que cumple cada bloque:

3
Figura: Paleta completa de programación LEGO MINDSTORMS NXT-G

1. Grupo de bloques COMÚN

Este grupo comprende los bloques básicos para desarrollar una secuencia de
programación simple. Cada uno de estos bloques es configurable según la necesidad y
el objetivo que deseemos abarcar en nuestra programación. Este grupo comprende los
siguientes bloques:

NOMBRE
FIGURA DEL DESCRIPCIÓN
BLOQUE
Este bloque controla el movimiento hacia adelante
y hacia atrás de los motores. Este bloque es usado
Mover para el movimiento lineal o en curva de un robot
terrestre o en otros prototipos en los que se pueda
usar un motor.

4
Grabar/Re Este bloque es usado para grabar y reproducir
producir movimientos hechos manualmente en los motores.

Este bloque es usado para reproducir un archivo de


Sonido sonido (predeterminados por el kit LEGO NXT) o
un tono que puede ser grabado manualmente por el
usuario.
Este bloque es usado para mostrar un gráfico, un
Pantalla texto o una figura en la pantalla del LEGO Brick.
Este bloque también puede ser usado para resetear
la pantalla.
Este bloque es usado para retrasar la ejecución de
otros bloques de programación hasta que pase un
Esperar instante de tiempo o hasta que un dato sea
suministrado por un sensor que satisfaga una
condición predeterminada.
Este bloque funciona repitiendo la ejecución de
uno o más bloques que se encuentran dentro de
Repetir este. Esta repetición puede ser de acuerdo a una
cantidad de veces, durante un tiempo o puede
depender de una condición dada a un sensor.
Este bloque es usado para darle a los programas
Escoger NXT-G la habilidad de seleccionar uno de dos
casos basados en la evaluación de una condición
específica.

2. Grupo de bloques ACCIÓN

Este grupo comprende los bloques que cumplen la función de actuadores en el kit
LEGO MINDSTORMS NXT.

NOMBRE
FIGURA DEL DESCRIPCIÓN
BLOQUE
Este bloque es similar al bloque Mover, pues sirve
Motor para darle movimiento a un motor, pero a
diferencia del bloque Mover, este bloque brinda un
control más preciso.
(Ver bloque “Sonido” desarrollado en el grupo de
Sonido bloques COMÚN)

5
(Ver bloque “Pantalla” desarrollado en el grupo de
Pantalla bloques COMÚN)

Este bloque es usado para enviar mensajes a otro


Enviar NXT Brick mediante la tecnología Bluetooth. Este
mensajes bloque trabaja en conjunto con otro bloque llamado
“Recibir mensajes” el cual debería estar
programado en otro robot.
Color de Este bloque controla la funcionalidad del sensor de
lámpara color como lámpara, activando la luz roja, azul o
verde del sensor de color.

3. Grupo de bloques SENSOR

Este grupo comprende los bloques que brindan datos al LEGO Brick por medio de
los sensores. Todos estos bloques se conectan hacia otros bloques mediante “cables
de datos”.

NOMBRE
FIGURA DEL DESCRIPCIÓN
BLOQUE
Sensor de Este bloque captura la información brindada por el
tacto sensor de tacto, es decir detecta si es que el sensor
está presionado, suelto o fue golpeado.
Sensor de Este bloque captura la información brindada por el
sonido sensor de sonido, es decir detecta los decibeles del
sonido del exterior y lo compara según un umbral
dado.
Sensor de Este bloque captura la información brindada por el
luz sensor de luz, es decir detecta la luminosidad del
exterior y lo compara según un umbral dado.
Sensor de Este bloque captura la información brindada por el
ultrasonido sensor de ultrasonido, es decir detecta la distancia
que hay entre el sensor y algún objeto puesto en su
misma dirección y lo compara según un umbral
dado.

6
Botones Este bloque captura si es que alguno de los
NXT botones del LEGO Brick ha sido presionado.

Este bloque captura la información brindada por


Sensor de un motor que en este caso funciona como un
rotación sensor de rotación, es decir detecta la cantidad de
grados que se giró dicho motor y lo compara
según un umbral dado.
Este bloque lee el tiempo (en segundos) que pasa
Timer en la ejecución de alguna programación y lo
compara según un umbral dado.
Este bloque es usado para recibir mensajes de otro
Recibir NXT Brick mediante la tecnología Bluetooth. Este
mensajes bloque trabaja en conjunto con otro bloque llamado
“Enviar mensajes” el cual debería estar
programado en otro robot.
Este bloque captura la información brindada por el
Sensor de sensor de color, es decir detecta el color en RGB
color que tiene un determinado objeto y lo compara
según un umbral dado.

4. Grupo de bloques FLUJO

Como su nombre lo sugiere, este grupo de bloques controlan la ejecución del flujo
lógico de nuestra programación.

NOMBRE
FIGURA DEL DESCRIPCIÓN
BLOQUE
(Ver bloque “Esperar” desarrollado en el grupo de
Esperar bloques COMÚN)

(Ver bloque “Repetir” desarrollado en el grupo de


Repetir bloques COMÚN)

(Ver bloque “Escoger” desarrollado en el grupo de


Escoger bloques COMÚN)

7
Este bloque detiene la ejecución de una secuencia
Detener de programación.

5. Grupo de bloques DATA

Este grupo de bloques comprende los bloques que han sido diseñados para procesar
los datos pasados a través de los “cables de datos” de algunos bloques vistos
anteriormente y enviarlos hacia otros bloques mediantes otros “cables de datos”.

NOMBRE
FIGURA DEL DESCRIPCIÓN
BLOQUE
Este bloque desarrolla una operación lógica (AND,
OR, XOR, NOT) con dos valores de entrada. Estos
Lógico valores de entrada son brindados por otros bloques
mediante los “cables de datos”. Las salidas de este
bloque son los valores de verdad TRUE
(verdadero) o FALSE (falso).
Este bloque desarrolla un cálculo matemático
(adición, sustracción, multiplicación, división,
Matemático valor absoluto o raíz cuadrada) usando como
entradas valores de otros bloques pasados a través
de “cables de datos”. Las salidas de este bloque son
valores numéricos.
Este bloque determina si una de las entradas es
“mayor que”, “menor que” o “igual a” la otra
Compara entrada. Estos valores de entrada son brindados por
otros bloques mediante “cables de datos”. El dato
que se brinda como salida es un valor de verdad
TRUE (verdadero) o FALSE (falso).
Este bloque determina si un número se encuentra
dentro o fuera de un rango de números. El valor
Rango de entrada es brindado por otros bloques mediante
“cables de datos”. El valor de salida es un valor de
verdad TRUE (verdadero) o FALSE (falso).
Este bloque genera un número aleatorio dentro de
Aleatorio un rango especificado.

8
Este bloque almacena un valor (textual, numérico
Variable o lógico) en la memoria del LEGO Brick. Dichos
valores pueden ser escritos o leídos en dicho
bloque.
Este bloque almacena un valor (textual, numérico
Constante o lógico) en la memoria del LEGO Brick, pero a
diferencia del bloque Variable, este bloque no
permite que se cambie el valor que es almacenado.

6. Grupo de bloques AVANZADO

NOMBRE
FIGURA DEL DESCRIPCIÓN
BLOQUE
Este bloque convierte un valor numérico a un valor
Número a textual para que de esta manera dicho valor se
texto pueda leer en la pantalla del LEGO Brick. El valor
de entrada (valor numérico) es brindado por otros
bloques mediante “cables de datos”.
Este bloque puede concatenar hasta 3 cadenas de
texto para crear una cadena de texto más grande.
Texto Los valores de las cadenas de texto pueden ser
ingresados manualmente en el bloque o pueden ser
suministradas por otros bloques de programación
mediante “cables de datos”.
Este bloque pone al LEGO Brick en un modo
Mantener dormir después de un periodo de inactividad
vivo resultante del no uso del LEGO Brick

Este bloque escribe o lee datos numéricos o


textuales en el LEGO Brick. Su función es parecida
Acceso a a la del bloque “Variable” a excepción que en lugar
archivo de almacenar dichos datos en la memoria del
LEGO Brick, se guardan estos en un archivo de
manera indefinida.
Este bloque es usado para calibrar los sensores de
Calibrador sonido y luz.

Resetear Este bloque es usado para resetear la corrección


motor de error automático del motor.

9
Conexión Este bloque es usado para establecer una conexión
Bluetooth con otro dispositivo Bluetooth de otro LEGO
Brick.

b. Instalación del Software BricxCC

A continuación veremos cómo instalar el software BricxCC, en el cual podemos programar mediante
líneas de código un programa en nuestro robot. Los pasos para la instalación son los siguientes:

1. Primero ingresar al siguiente link:

http://bricxcc.sourceforge.net/

Dar click al vínculo que dice “test releases”.

2. Se re direccionará a otra parte de la página, allí está ubicado el instalador que se debe descargar.
Hacer click al vínculo que dice “bricxcc_setup_33810_20130220.exe”. El instalador empezará a
descargarse.

10
3. Ir a la carpeta donde se descargó el instalador y le hacer doble click a este.

4. Se cargará una ventana como la siguiente. Hacer click en el botón “Next”.

11
5. Luego hacer click al botón que dice “Yes”.

6. Nuevamente hacer click en “Next”.

7. Nuevamente hacer click en “Next”.

12
8. Nuevamente hacer click en “Next”.

9. Nuevamente hacer click en “Next”.

13
10. Nuevamente hacer click en “Next”.

11. Entonces empiezan a instalarse los archivos del software BricxCC.

12. Una vez terminada la instalación, buscar el programa “Bricx Command Center” en el menú Inicio
y hacer click.

14
13. De esta manera se abrirá una ventana inicial (que solo aparece la primera vez que se usa el
programa) donde se pedirá seleccionar el Puerto (Port) y el Tipo de Brick (Brick Type).
Para este paso tenemos que tener conectado el LEGO Brick a la computadora o laptop.

14. Una vez conectado el LEGO Brick, seleccionar las opciones:


 USB, en Port
 NXT, en Brick Type

Luego de esto, hacer click en el botón “OK”.

15. Finalmente abrir el entorno de programación del BricxCC para empezar a programar.

15
Bibliografía

[1] J. G. Brookshear, Computer Science an Overview, Mexico: PEARSON, 2012.

[2] Jerry Lee Ford, LEGO MINDSTORMS NXT 2.0 for Teens, USA, 2010.

[3] Universidad Nacional del Nordeste, Algoritmos, Argentina.

16