Páginas

Contenido

martes, 13 de junio de 2017

Red Malla con Scratch



Hace unos meses estuve buscando un software que permita aprovechar la capacidad del procesador de una computadora, de tal manera que de un CPU se pudiera tener dos teclados, dos ratones y dos monitores independientes. Buscando en la red encontré cómo hacerlo: Como convertir una PC en DOS con SoftXpand. No es el único software.

Sin siquiera imaginarlo, en uno de los foros que revisé un usuario solicitó hacer la tarea al revés. Esto quiere decir "Cómo convertir dos PCs en UNA". Posteriormente otro usuario le sugería crear una malla.

Las escuelas del estado en Perú han sido dotadas del kit de robótica WeDO 1.0. Programar el funcionamiento de un robot resulta sencillo; sin embargo, cuando aumenta la complejidad del robot la tarea se complica también, puesto que el software WeDo no permite el funcionamiento de motores independientes.

En las primeros proyectos realizados no tuve dificultad cuando solo requería motores al utilizar Scratch 2 (También es posible en Scratch 1.4). El problema surge cuando pretendo utilizar dos motores y un sensor en un mismo robot. Más aún cuando requiero 4 motores independientes y 8 sensores de movimiento en un mismo robot. La primera solución fue trabajar con una computadora para cada mecanismo. Esto resulta poco manejable, requería centralizar todo en una computadora que actúe como servidor.

La solución no se hizo esperar. Abee  sugirió una Red Malla. Investigando logré configurar Scratch 1.4 para que trabaje en una Red Malla, de tal manera que todas los Scratch se comuniquen compartiendo datos. Es así que, por ejemplo, en la "Laptop Servidor" podría presionar una tecla, y con esta acción enviar un mensaje a la "Laptop Elevador" para que al recibir el mensaje se encienda el motor determinado. Del mismo modo, cuando la "Laptop Sensor de Movimiento Norte" detecte un movimiento envíe un mensaje a la "Laptop Servidor" al respecto, de esta forma se podría enviar una respuesta para que la cámara de vigilancia gire hacia esa dirección.

Parece ser que Scratch 2 no tiene habilitado esas funciones. Encontré un módulo en proceso de experimentación para esta versión. Aún no lo probé. Tenemos 16 Laptops XO donde están instalados Scratch 1.4

Para la configuración de la Red Malla en Scratch 1.4 sugiero que revises lo siguiente:







sábado, 3 de junio de 2017

Acceso a puertos con Scrat 2.0

Cuando programo un robot WeDo cob Scratch tengo limtaciones. Solamente puedo:

  1. Controlar dos motores independientes (A y B) con un Hub. Si agrego un segundo Hub Scratch no lo reconoce.
  2. Controlar un motor y un sensor en un solo Hub. Si agrego dos motores (A y B) y adiciono un sensor, se genera un conflicto.

Ante esto tuve la necesidad de controlar motores o recibir señales desde otros medios. Podría activar un motor desde Scratch, luego apagarlo. Podría encender varios motores a la vez. Actualmente no puedo a menos que trabaje con Hardware libre (Arduino por ejemplo). Hacerlo demanda un gasto adicional a mis alumnos, un privilegio que no pueden darse. Por esta razón he buscado alternativas.

  1. Utilizar el circuito de un teclado para crear nuevos teclados (controles tipo Joystick), los que les permitan personalizarlos de acuerdo a lo que requieren. Scratch reconoce las teclas pulsadas. Debo elaborar una Tabla de doble entrada donde se indique el par de pines que reconocen una determinada tecla (TAREA 1).
  2. Trabajar con el puesto paralelo de las PCs. En la escuela tengo varias de ellas a las que vamos íbamos a dar de baja, aprovecharemos que ya llevan puerto paralelo. Con este podemos enviar y recibir datos. El problema resultaba en cómo trabajar con este puerto. Al parecer todo se resuelve con lo siguiente http://softwareybarralibre.org/?q=content/sensores-virtuales-para-scratch-enchanting-y-s4a , http://www.json.org/json-es.html , http://technoboy10.tk/after-scratch.html , http://moway-robot.com/Files/Manual%20para%20el%20profesor%20Smart%20City.pdf , https://colegiosaanjosecaba.files.wordpress.com/2016/06/scratch_tema10.pdf , (TAREA 2)
Debo organizar todo. Entiendo que puedo crear una aplicación en VB, luego crear un archivo con el estándar JSON donde seleccione un puerto (paralelo por ejemplo) y crear los códigos necesarios. De esta manera Scratch 2.0 podría tener contro del puerto paralelo.