• No results found

CHAPTER 2: THE CASE STUDY OF NEPAL

2.1 THE COUNTRY CONTEXT

[email protected]

UPV/EHU

Resumen

La informática favorece la mejora de la docencia en las áreas técnicas. Hoy en día, el docente dispone de una gran variedad de programas comerciales, desde una hoja electrónica hasta programas especializa- dos en tareas muy específicas. Sin embargo, también existe la posibilidad de crear programas propios, siendo ésta una opción superior y más satisfactoria. Este autor utiliza el lenguaje BASIC en su docencia desde hace más de 30 años. Se trata de un lenguaje accesible apto para cualquier persona con un poco de práctica. La verdadera revolución es que, actualmente, el código BASIC de siempre puede ser ejecu- tado en teléfonos móviles y ordenadores con sistemas operativos diferentes. Las plataformas de pro- gramación B4J, B4A, y B4I que como se dice en su portal de Internet «The easy way to develop great, native, Android, iOS, IoT, desktop and server apps» se convierten así en la herramienta ideal. El autor, informático autodidacta, ha realizado múltiples programas que pueden ser descargados desde «Google Play Store» en todos los teléfonos con sistema operativo «Android».

Palabras clave: Programación, Basic, Java, Android.

Abstract

Teaching in technical areas is better with the help of computer programming. Lecturers have a great number of commercial computer programs available from electronic spreadsheet to specific specialized software. But there is another solution consisting in creating their own computer programs. We think that this last option is superior and more satisfactory. This author has been using BASIC programming language for more than 30 years. BASIC language is a tool for programming computers available for everybody with some practice. However, the real revolution is that currently the old BASIC code can be executed in movil phones and computers running any operating system. Programming platforms like B4J, B4A, and B4I, like it is said in their Internet site are, «The easy way to develop great, native, Android, iOS, IoT, desktop and server apps». These are actually the ideal tools. The author, self-taught computer programmer, has created many computer programs that the whole world can download from «Google Play Store» into their movil phones with «Android» OS.

programar en Basic para multiplataformas

Introducción

Las enseñanzas en las áreas técnicas requieren actualmente de la utilización de la informá- tica tanto por docentes como por estudiantes. Desde el imprescindible procesador de texto hasta el correo electrónico pasando por las hojas de cálculo hay un enorme número de programas ya elaborados que facilitan las labores docentes y las de adquisición de competencias por parte del alumnado. Pero una parte del profesorado se ha atrevido, sin tener una formación especí- fica en informática, a elaborar sus propios programas de ordenador. En el mundo de la progra- mación de ordenadores siempre han existido los «frikis», es decir, las personas que han pasado muchas horas de su vida tratando de poner un ordenador a sus órdenes. El conocimiento de un lenguaje de programación permite interactuar con un ordenador a otro nivel pero no siempre es fácil. Entre todos los lenguajes de programación destaca uno por ser accesible a casi todo el mundo, el BASIC. Es una lenguaje de programación poco apto para profesionales de la informá- tica pero que se ha venido utilizando masivamente por el público aficionado por su facilidad de comprensión ya que sus comandos y expresiones son cercanos al lenguaje hablado. La experien- cia de este autor en la utilización del BASIC se remonta a la década de los 70 del siglo pasado en que compró un ordenador de bolsillo sin saberlo porque en la vitrina había unas calculado- ras curiosas que tenían teclado numérico y también de letras como las máquinas de escribir. En los años siguientes aquel ordenador se convirtió en una herramienta imprescindible en el ejerci- cio profesional a bordo de los buques mercantes de transporte de productos derivados del pe- tróleo. En aquellos buques, por aquél entonces, los inspectores de tierra no utilizaban la infor- mática para realizar los cálculos de carga a bordo y tenían que pulsar muchas veces las teclas de sus calculadoras para completar dichos cálculos. Este autor utilizaba su ordenador CASIO y su cálculo de carga salía automáticamente en una impresora de agujas mucho más rápido y sin errores de tecleo. Muchas veces los inspectores de tierra delegaban sus propios resultados por la fiabilidad del método informático con la ventaja profesional que ello suponía para este autor ya que el buque terminaba la operación de carga-descarga más rápido y sin discusiones en las cantidades calculadas. A bordo de los buques mercantes de finales de los años 70 y principios de los 80 no se conocía la informática y los cálculos que había que realizar, de carga, de navega- ción, de contabilidad, de control de almacén, recambios, étc., se llevaban en cuadernos manus- critos. La ventaja de producir programas informáticos específicos para cada buque era enorme. Años después se expandieron los ordenadores personales especialmente los IBM, sus clónicos, y otros. Aparecieron nuevas versiones del lenguaje BASIC mejor adaptadas al sistema operativo más extendido, el WINDOWS. La evolución fue rápida y los programadores aficionados fuimos adaptándonos hasta que llegó, a principio de los 90, el denominado «Visual Basic 6.0». Esta ver- sión de BASIC se autodefinió como «el sueño de cualquier programador» y todos estábamos de acuerdo. Con «VB 6.0» se podía hacer de todo, rápido y con una apariencia espectacular. Este autor empezó a «fabricar» sus primeros simuladores coincidiendo con su cambio de destino pro- fesional de los buques a la docencia universitaria. Además de programas de simulación (navega- ción, operaciones de carga, instrumentación, étc.) surgían necesidades de tipo docente (listas de estudiantes, calificaciones, étc.). El lenguaje «VB 6.0» era tan potente y a la vez tan fácil de usar que era el preferido frente a hojas de cálculo y programas de bases de datos. Pero llegaron los te- léfonos móviles, especialmente los denominados «smartphones». En el nuevo escenario estos te- léfonos disponían de todo e incluso más de lo que tenían los PC (p. ej.: GPS integrado) y cabían en el bolsillo.

Objetivos

Mostrar la experiencia del autor en programación informática ya que se trata de la evolu- ción de un programador sin formación específica en informática y que puede servir como ejem- plo motivador para muchos miembros de la comunidad universitaria. El trabajo se centrará espe-

cialmente en las herramientas de programación más actuales y que sean accesibles a este tipo de público. Debido a su limitada extensión no se darán instrucciones del tipo «como se hace» pero se informará del camino en la red de redes para empezar a andar.

Metodología

primeros programas

Los primeros programas se tenían que ejecutar mostrando los resultados en una pantalla LCD de pocas líneas. Hoy puede parecer una importante restricción pero entonces permitía in- troducir los valores de entrada, realizar los cálculos, y exponer los resultados, es decir, todo lo ne- cesario. Aquellos programas sirvieron para aprender y también sorprender a los compañeros del buque mercante. Cabe citar aquél Capitán que competía con su calculadora programable TEXAS contra nuestro ordenador de bolsillo CASIO programable en BASIC. Tuvo que rendirse cuando para calcular la carga total de petróleo a bordo tuvo que elaborar fórmulas aproximadas del volu- men de los tanques de carga mientras que el CASIO era capaz de utilizar una matriz con los volú- menes exactos de las tablas de calibración de los tanques del buque.

Los simuladores más potentes

La rápida evolución de la informática personal (PCs) nos llevó rápidamente al sistema ope- rativo DOS con sus propias versiones de BASIC y el paquete imprescindible para el gran pú- blico, el procesador de textos, la hoja de cálculo, y la base de datos. Las pantallas empezaban a lucir gráficos. Llegó WINDOWS con sus ventanas gráficas y sus nuevas versiones de BASIC. La adecuación a las nuevas herramientas se hizo con entusiasmo porque los resultados siempre eran sorprendentes. En los 90 llegó el cambio de destino profesional desde la marina mercante a la docencia universitaria. Este cambio de rumbo incentivó la elaboración de nuevos programas, algunos pequeños pero útiles y otros no tan sencillos. El primer reto fue nuestra tesis doctoral (Uriarte, 2002). En su epígrafe de conclusiones puede observarse con claridad la importancia que tuvo la capacidad de programar ordenadores:

El principal objetivo de este trabajo era la consecución de un nuevo método, económico, que permitiera conocer la proporción de nubes presentes y cielo despe- jado, en imágenes captadas desde superficie. Con un ordenador personal y una cá- mara digital de resolución estándar se ha conseguido una capacidad de segmenta- ción de imágenes nubosas celestes que supera la propia detección de nubes tenues que tiene el ojo humano. Las conclusiones de este trabajo son las siguientes:

1. Los métodos de captación de imágenes de nubes desde superficie utilizados actualmente consisten principalmente en la captura y almacenamiento ma- sivo de datos de imágenes. Se desarrollan algoritmos dedicados a la segmen- tación nube / no-nube, con mayor o menor precisión. En el reconocimiento automático de las formas nubosas todavía es muy poco lo conseguido. En imágenes satelitarias el avance ha sido mayor.

2. En segmentación nube / no-nube utilizando imágenes, incluso el mejor equipo actual, el WSI de la Marina Norteamericana, tiene dificultades con las nubes tenues.

3. El método desarrollado en este trabajo para la segmentación automática de nubes a partir de imágenes digitales captadas desde superficie, aporta una precisión con nubes tenues que es comparable e incluso aparentemente su- perior a los demás métodos automáticos analizados.

programar en Basic para multiplataformas

4. En la segmentación de este tipo de imágenes, puesto que el CCD capta el cielo azul de forma muy variable, se hace necesaria una calibración previa mediante la generación de una base de datos de cielo azul específica para la cámara utilizada.

5. Los errores propios del CCD son importantes, se hace necesario detectarlos y anularlos mediante un programa auxiliar que hay que aplicar periódica- mente pues el CCD se degrada progresivamente.

6. El método de segmentación desarrollado está basado en una umbralización dinámica multivariable con comprobación adicional por el modelo CIE para iluminación de cielo despejado. El empleo de esta comparación con el mo- delo CIE se hace especialmente necesario en segmentaciones cerca del sol y también con el sol cerca del horizonte.

7. La capacidad de detección de nubes tenues que tiene el ojo humano es fran- camente inferior a nuestro método, como queda demostrado por el experi- mento realizado en Diciembre del 2001. La observación subjetiva es fiable solo con nubes opacas.»

Durante estos primeros años de docencia universitaria también se desarrollaron pequeños simuladores específicos para algunas asignaturas. Cabe citar los realizados para la asignatura op- tativa «Navegación, Meteorología, y Gobierno de Embarcaciones Menores» en cuya guía de la asignatura había un tema denominado «Táctica meteorológica en las regatas a vela». Para esta asignatura se prepararon 2 pequeños simuladores, uno a bordo de un balandro y el otro para las prácticas con ordenador. Se incluye a continuación un pequeño extracto de los apuntes de la asig- natura en donde se explica la utilidad de ambos simuladores (Uriarte, 2000):

Se trata de conocer el comportamiento teórico de un barco de propulsión a vela con relación a su velocidad de avance hacia el destino según la presencia de dis- tintas condiciones meteorológicas y oceanográficas comparando en tiempo real el comportamiento teórico del barco con el verdadero a partir de las lecturas suminis- tradas por los instrumentos de navegación (compás, corredera, anemómetro, veleta y GPS).

Para ello es necesario instalar a bordo un ordenador que conectado al equipo básico de instrumentos de navegación realice los cálculos necesarios en tiempo real.

Método empleado

Se ha instalado en el balandro de 28 pies «Remojón» un equipo de instrumen- tos de navegación cuyos datos circulan en red SEATALK de AUTOHELM. Una caja conversora convierte los datos al formato NMEA 0183 y así se introducen en el PC a través de su puerta serie a 4800 baudios. Se conecta a las baterías de a bordo un PC con tarjeta de sonido SOUNDBLASTER de 16 bits en entorno WINDOWS.

Se escribe (en su totalidad) un programa informático que permite conseguir los objetivos propuestos haciendo uso del entorno de programación VISUAL BASIC.

Revisión de los objetivos

1. Para conocer el rendimiento del barco según distintas condiciones meteo- oceanográficas es necesario introducir en el programa las gráficas polares del ba- landro, es decir, la velocidad que tiene que hacer para cada ángulo y fuerza del viento. En presencia de corriente, el viento sinóptico se ve modificado así como la propia derrota del barco. El programa tiene que realizar cada segundo los si- guientes cálculos:

— Con la corriente estimada y el viento real se calcula el viento de superficie. — Con el viento de superficie y su marcación se calcula la velocidad potencial

del barco así como el abatimiento teórico. — Se calcula la derrota sobre el agua. — Se calcula la derrota sobre el fondo.

— Se calcula la demora y distancia al próximo destino (una boya, una posición) — Se calculan las proyecciones de la derrota efectiva sobre la directa del tramo

(de boya a boya), así como la proyección sobre la derrota directa a barlo- vento.

— Se calcula el viento aparente en cubierta.

2. Para conocer entre varias derrotas cual es la más rápida se acelera el desarro- llo del programa pudiendo hacer simulaciones de distintas derrotas buscando entre ellas la más rápida.

3. Instalando el programa en distintos ordenadores puede realizarse una «re- gata numérica» en la que los participantes tienen que escoger (mediante una plani- ficación previa) la mejor derrota posible. Poniendo en hora todos los ordenadores y dando la salida simultáneamente se simula una regata numérica teniendo un solo vencedor al término del recorrido planteado.

4. Debido a la dificultad de instalar en cubierta el ordenador (ambiente muy duro en la bañera del balandro) se hace uso de la capacidad multimedia del PC de la siguiente forma:

— El ordenador no necesita mostrar la información, la dice; nos habla cuando nosotros lo deseamos.

— El periférico de entrada teclado es lo único que se saca a cubierta y conve- nientemente impermeabilizado. Con este periférico controlamos, mediante un menú de tecla pulsada, la información que el ordenador debe «sonori- zar».

— La información que el ordenador puede decirnos con voz es la siguiente: a) Cualquier rumbo, demora, marcación de las que el programa calcula continuamente, así como sus integraciones en periodos significativos, como por ejemplo, el rumbo efectivo medio del bordo anterior, idem del bordo actual desde la última virada, rumbo de aguja a gobernar para lle- gar a destino sin tener que virar (para cada amura), tiempo que falta a la virada definitiva para llegar al destino, demora del viento real integrada a 7 segundos, 1 minuto, 5 minutos y 10 minutos. b) Efectividad de la ve- locidad del barco por comparación de los potenciales del barco según las condiciones meteorológicas para el último bordo, bordo actual y último minuto. c) Rumbo de aguja directo y distancia a destino en cualquier mo- mento.

— Hay un sistema de activación de alarmas mediante las cuales el ordenador nos avisa con su voz si detecta lo siguiente: a) Un cambio significativo en la dirección del viento real (valores medios a 1-5-10 minutos) b) Disminución anormal de la velocidad potencial del barco para las condiciones medias c) Disminuciones anormales de las velocidades efectivas (proyecciones de la derrota real sobre la directa del tramo y sobre la directa a barlovento o a so- tavento) (por ej. debido a una corriente desconocida) d) Cuando el momento de la última virada para llegar a destino está próximo.

Revisión del entorno de programación

La figuras 1 y 2 que se adjuntan a continuación son una muestra de lo que la programación moderna nos permite realizar.

programar en Basic para multiplataformas

Figura 1

Pantalla del simulador situado a bordo y que estando conectado a los instrumentos de navegación realiza en tiempo real los cálculos de navegación relacionados con un recorrido específico (imagen propiedad

del autor)

Figura 2

Pantalla del simulador que en base a los datos de potenciales del barco calcula diversas derrotas en función de los elementos meteoro-oceanográficos (imagen propiedad del autor)

En ellas se observan diversos «objetos» como son: cajas de texto con la informa- ción numérica necesaria y actualizada, cajas de texto con información alfabética fija, botones de control (por ej. para gobernar el barco simulado 1º, 10º, o 90º a babor y a estribor), una caja grande gráfica donde se ha cargado el dibujo de la carta náutica previamente grabada a partir de un sencillo escáner de mano, en esta caja gráfica se van superponiendo los puntos que sucesivamente representan la posición del barco trazando así su derrota efectiva. Todo ello en colores personalizables. Estas pan- tallas están «gobernadas» por los llamados «eventos» como son: un «click» con el ratón sobre cualquier control para modificarlo o para ejecutar subrutinas del pro- grama, actuaciones sobre las teclas del teclado para activar la «voz» del ordenador por medio de sus altavoces. Hay muchos más «objetos» disponibles para el progra- mador. La actuación sobre uno de ellos actualiza los demás conformando lo que se conoce por «programación orientada a objetos». Las ventajas de esta programación son enormes. En la programación de «arriba abajo», como era antes, el programa en cuanto crecía se hacía muy difícil de manejar. Con el sistema actual el programa se autoestructura permitiendo al programador avanzar rápido cuando la estructura inicial ya ha sido desarrollada.

En las enseñanzas del área de conocimiento «Ciencias y Técnicas de la Navegación» es obligatorio el uso de simuladores homologados. En nuestro centro los utilizamos desde 1995. Recientemente se ha adquirido el modelo más moderno con un coste de unos 120.000 euros. Se trata de un simulador espectacular por su gran realismo. Pero queríamos competir con seme- jante máquina para ver si utilizando materiales muy baratos (ordenadores clónicos y planchas de madera del trastero) se podía hacer algo «parecido» al menos aparentemente. Se incluye a continuación texto procedente de la comunicación que se presentó en un congreso reciente de nuestra universidad y que explica bien que es lo que se construyó (Uriarte, Campo, Basterre- chea et al., 2013):

Nuestro centro de enseñanza dispone de un simulador de navegación de re- ciente instalación que dispone de la simulación 3D más avanzada en su clase. Nues- tro alumnado puede navegar en distintos buques visualizando un mundo marítimo virtual de extraordinario realismo en condiciones meteorológicas que van desde la calma hasta el temporal huracanado. Uno de los buques del simulador, un remolca- dor de altura, dispone de propulsores transversales de túnel a proa y popa, dos pro- pulsores convencionales a popa y además un propulsor «azimutal». Estos medios propulsores le proporcionan un control total de sus movimientos en el agua. Ahora bien, los propulsores han de utilizarse de uno en uno o simultáneamente pero de forma manual a criterio del navegante, es decir, el buque no está preparado para el llamado «posicionamiento dinámico». Este sistema permitiría manejar el buque en 3