Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los...

50

Transcript of Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los...

Page 1: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar
Page 2: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos alos que Siempre Vuelvo October 1, 2018

Quisiera hablar de los juegos a los que solía jugar y de los juegos a los que sigojugando incluso hoy día y que ejecuto de hecho en el ODROID.

Sistema de Información de Ocio para Vehículos: Utilizando unODROID-C2 October 1, 2018

Me enorgullece presentar mi “Sistema de información y entretenimiento paravehículos ODROID”

Banco de Pruebas ODROID October 1, 2018

Hemos congurado una zona experimental ODROID remota para alguien que quieremedir, pre-visualizar y probar el rendimiento de los SBC ODROID. Los SBC ODROID denuestro banco de pruebas están conectados vía ethernet Gbit y están abiertos al

público. El sistema experiencial ofrece la posibilidad de evaluar el rendimiento, un

Carga Inalámbrica: Añadiendo un Sistema de Carga Inalámbrica Qial ODROID-GO October 1, 2018

Quiero demostrar que este dispositivo era mejor de lo que la gente decía, así que hicemi primer video sobre GO: un video con un mini-análisis sobre ODROID-GO. Después

de muchos más videos, he decidido escribir un artículo para que sea publicado, algo que nunca había hechoantes. Así que,

Campamento de Programación – Parte 5: Leer el Voltaje de laBatería Integrada en el ODROID-GO October 1, 2018

En esta guía vamos a aprender cómo obtener el estado de la batería con Arduino. Lapantalla LCD mostrará el voltaje restante de la batería en voltios.

Presentado NEMS Linux: Parte 1 – el Servidor de MonitorizaciónProfesional Nagios para Dispositivos ODROID October 1, 2018

NEMS Linux ha evolucionado para ser lo que pienso que es la mejor experiencia deNagios disponible. Como usuario de Nagios, este es el servidor de Nagios que siempre

he anhelado. A medida que NEMS ha seguido creciendo, empecé a buscar una plataforma más potente que laRaspberry Pi. Ahí

Page 3: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Conceptos Básicos de BASH: Introducción a BASH – Parte 5 October 1, 2018

Nuestra aventura con la programación continúa con más pruebas, declaraciones if,entradas y funciones; También haremos cálculos desde dentro de BASH. Primero,vamos a echar s un vistazo a la manipulación del nombre de archivo, ya que parece ser

una de las cosas más comunes que son necesarias en los

Driver de Video GBM October 1, 2018

Esta es una guía para instalar los drivers de espacio de usuario para activar GBM ycompilar emuladores de juegos retro.

Campamento de Programación – Parte 6: Generar Sonido desde elAltavoz del ODROID-GO October 1, 2018

Vamos a aprender cómo usar la salida DAC como un generador de tonos

Conociendo un ODROIDian: David Knight October 1, 2018

Por favor háblanos un poco sobre ti. Vivo en Newcastle, Reino Unido, trabajando comooptometrista en el sector de la cirugía refractiva. Mi trabajo diario consiste en lidiarcon pacientes que se han sometido a una cirugía ocular por láser o de cataratas. Fui

muy aplicado e introvertido en mi

Page 4: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 –Juegos a los que Siempre Vuelvo October 1, 2018 By Tobias Schaaf Juegos, ODROID-XU4

La última vez hablé bastante de mi pasado, cómocrecí y cuales fueron los sistemas que más meinuyeron durante mi infancia. Este y otros hechoshan generado un internso debate en los foros sobreun tema al que he llamado “Nostalgia por los juegos”.He pensado que éste sería un buen tema a tratar,pero centrándome en los ODROID y viendo cómopuedo proyectar mi nostalgia en el entorno ODROID.Por todo ello, me gustaría hablar de los juegos a losque solía jugar, de los juegos a los que sigo jugandoincluso hoy día y que ejecuto de hecho en el ODROID.

Loom

Creo que he jugado a casi todos los juegos deaventuras de LucasFilm/LucasArts, especialmente atodos los que se han creado con el motor SCUMM,empezando por Maniac Mansion, que dio nombre almotor. Considero que los juegos de aventura deLucasArts son los mejores juegos a los que he jugado

y me alegro de haber tenido la oportunidad deexperimentar con estos juegos de mayor. Es muyposible que muchos jugadores de “consolas” seperdieran la mayoría de estos juegos, ya que lasaventuras de apuntar y disparar estaban disponiblesen su mayoría para “ordenadores” y no para consolas,y simplemente puedo decir que, si nunca has jugadoa los juegos de aventura de LucasArts a lo largo de tuvida, es que te has perdido un buen cacho de historiade los juegos.

Monkey Island, Indiana Jones, Loom, The Dig: estosjuegos realmente me cambiaron y me transportarona mundos maravillosos, mágicos y un tanto extraños,de niño e incluso de mayor hoy día.

Loom, que también es un juego de LucasFilm,siempre ocupará un lugar especial en mi corazón, locual puede ser un tanto difícil de entender, ya quecomercialmente y desde un punto de vista crítico, el

Page 5: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

juego no tuvo tanto exitoso como otros juegos deLucasArts. Pero para mí, el juego es extremadamentefascinante, y muchos otros juegos de LucasArtshacian referencia a este juego con bastantefrecuencia a modo de sorpresas ocultas (o no tanocultas).

Figura 01 – Referencia a Loom en The Secret of MonkeyIsland (referencia muy ingeniosa y oculta … no)

Loom es un juego repleto de “gremios”: tejedores,fabricantes de vidrio, herreros, etc. Formas parte delgremio de los tejedores y éste inventó “The GreatLoom”, que permite a los tejedores tejer los hilos dela realidad en sí misma, lo cual, por supuesto, estabaprohibido. Los tejedores también tejian los grandestapices que muestran la historia del gremio. Aunquelos tejedores no usaban el Loom, eran tejedores dehechizos muy buenos, los cuales podían lanzar con laayuda de una rueca y con combinaciones de notasmusicales.

La historia se desarrolla en torno a Bobbin, un hijo deLoom, ya que le debe su existencia en sí a “The GreatLoom”, cuestión que se explica en un magníco audioincluido en un casete si compraste una versiónespecíca en el pasado. Hoy en día, puedes encontrarel audio en YouTube si quieres escucharlo. Terminassiendo el último de tu gremio e intentas encontrar elresto de tu clase, es el momento en el que empiezas acontrolarlo. Aprendes hechizos mágicos a lo largo detu camino y debes aprender cómo y cuándo usarlospara resolver diferentes puzles.

Figura 02 – Perturbar a los muertos es una muy malaidea Bobbin. Te advirtieron que no lo hicieras, ¡no lointentes!

Lo que más me fascinó de este juego es el uso real de“magia”, que es algo que no encuentras en ningúnotro juego de su tiempo. Había juegos como “Simonthe Sorcerer”, en los que nunca se lanzaba un hechizopese a su nombre, o la serie de Legend of Kyrandia,que trata de jóvenes magos y una vez más no usasnada de magia (un montón de pociones, pero nadade “magia real”). Siempre me ha resultado muyconfusa esta cuestión, hay muchos juegos sobre losllamados “magos o brujos” pero en ninguno de ellosrealmente lanzan hechizos. Incluso mucho más tarde,los llamados juegos de Harry Potter, por ejemplo, sonmás del tipo “shooter” en lugar de usar HECHIZOSreales para resolver algo. Una varita que disparadestellos para matar monstruos y dice “pui pui” no es“magia” en mi opinión, simplemente es un estúpidoshooter con un toque mágico.

Loom era diferente: contabas con hechizos quepodían abrir puertas, hechizos que permitían“rellenar” ciertas cosas (una copa de vino, porejemplo), hechizo que incluso podían convertir la pajaen oro. Tenías más de 15 hechizos (llamadosborradores) que podrías aprender dentro del juego yque usabas para resolver acertijos.

Realmente me gustaba la historia de este juego ycómo se desarrollaba. Originalmente fue planteadopara ser una trilogía, pero fue cancelado tras ellanzamiento de esta primera parte. También meencanta su clásica banda sonora de Swan Lake. Solíajugar al juego al menos una vez al año, y solo mellevaba entre 30 y 60 minutos terminar el juego. Siquieres jugarlo hoy día en los ODROIDs, puedes usar

Page 6: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

ScummVM para ejecutarlo perfectamente enODROIDs. Hay diferentes versiones de este juego,incluyendo una versión de CD “talkie” en el que todoel texto fue doblado en inglés.

The Curse of Monkey Island

Créeme, me encantan todos los juegos de MonkeyIsland, y me divertí bastante con The Secret ofMonkey Island y Monkey Island 2: LeChuck’s Revenge.Recomiendo encarecidamente estos juegos acualquiera. Me enganché a la historia de Guybrushcuando pisó Mêlée Island™ por primera vez y dijoque quería ser un pirata.

Figura 03 – The Curse of Monkey Island

Sin embargo, si nunca has llegado a jugar a ningúnjuego de Monkey Island a lo largo de tu vida y solotienes tiempo (por el motivo que sea) para jugar a unúnico juego de Monkey Island, te recomiendo TheCurse of Monkey Island. Aunque The Curse of MonkeyIsland ni siquiera es un título “ocial” de MonkeyIsland, ya que no forma parte de la pluma de RonGilbert, aun así, es un juego increíble.

Figura 04 – Así es como todo comenzó en 1990.

Monkey Island 1 y 2 son lo más clásicos y sereconvertidos hace un par de años en una ediciónremasterizada que mejoraba los grácos e incluíanuna completa interpretación de las voces que noexistía en el juego original por aquel entonces, pero

no son compatibles con ScummVM, lo cual signicaque no puedes ejecutalos en ODROIDs. Puesto quelos originales Monkey Island 1 y 2 estaban muypixelados, no han envejecido tan bien, aunque sondivertidos si te gustan los viejos grácos de 8 bits.Algunos juegos más recientes intentan replicar elaspecto de esa época, pero Monkey Island 3 (TheCurse of Monkey Island) ya contaba con grácos640×480 de “alta resolución” trazados con unmagnico estilo cómico, que incluso en la actualidadpresentan un aspecto sorprendente.

Figura 05 – Monkey Island 3

Figura 06 – Monkey Island 3

ScummVM no tiene problemas para escalar estosgrácos, y parece que fueron creados para 1080pcomo lo fueron para 640×480, lo que signica quepuedes disfrutar del juego hoy día tal y como lo eraen 1997 cuando salió. Realmente es algo que nuncahe llegado a entender. Hay ciertos tipos de grácosque no “envejecen” (el estilo del cómic es el mejorejemplo de ello), aunque solo hay unos pocos juegos

Page 7: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

que realmente lo utilizaron. Todavía se ven increíbles20 años después, y podrías pensar que se trata de unnuevo juego que acabas de comprar.

La historia y el diálogo son tan divertidos que vale lapena pasar tiempo en el juego simplemente haciendotodas las preguntas posibles para escuchar todosdiálogos y comentarios divertidos que tiene el juego.Las interpretaciones de las voces son excelentes, y lamúsica de Michel Z. Land que compuso toda lamúsica para los juegos Monkey Island es muyrepresentativa y realmente se ajusta al entornocaribeño. El juego toma referencias de los anterioresjuegos (Monkey Island 1 y 2), y también cogepersonajes de estos juegos, así que, si quieresentender cada pequeño chiste del juego, tambiéndeberías jugar a Monkey Island 1 y 2. Este es uno demis juegos favoritos de todos los tiempos y se ejecutaperfectamente en ODROIDs, así que puedes revivirtoda la experiencia del pirata caribeño utilizandoScummVM.

Dune 2

Dune 2 fue mi primer juego de estrategia en tiemporeal (RTS). De hecho, es conocido como “El abuelo detodos los juegos de estrategia en tiempo real”, y lojugué en mi el Amiga. El juego era increíble:Westwood se abrió camino en el género de estrategiaen tiempo real con Dune 2, y clásicos como la famosaserie Command and Conquer aparecieron comoresultado del éxito de Dune 2.

Dune 2 tiene todo lo que esperas de un juego deestrategia en tiempo real. Recolectas recursos(especias), construyes tu base y un ejército, te dirigesa aplastar a tu enemigo y su base. Una de las cosasque recuerdo de la versión de Amiga es que yacontaba con algunas muestras de voces que tedecían, por ejemplo, cuándo se completaban tusedicios.

Figura 07 – Dune 2 The Building of A Dynasty

Figura 08 – Dune 2 The Building of A Dynasty

En este juego, tenías 3 facciones diferentes dondeelegir. Todos ellas tenían un conjunto de unidadesque eran idénticas para cada facción, y algunas otrasque eran únicas para cada facción. Cada una con susventajas y desventajas, aunque prefería el misil

Page 8: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

nuclear de los Harkonnen frente a los Fremen de losAtreides (armas especiales de Palace).

Cuando salió por primera vez, Dune 2 supuso unaauténtica revolución. Controlabas varias unidades a lavez sobre el mapa y también lo hacia el enemigo.Tenías que concentrarte en la construcción, en larecolección de recursos y en tus ataques/defensas almismo tiempo. Cosas que son normales hoy día eranbastante novedosas por aquel entonces.

Figura 09 – Grácos originales de Dune 2

Aunque Dune 2 ha envejecido un tanto bien, suscontroles no son muy intuitivos. No podíasseleccionar varias unidades a la vez para darlesordenes, tenías que dar comandos a cada unidadindividualmente. Imagínese mover un ejército de 30 omás unidades de un lugar a otro (sí, lo hacíamos deuna la forma bastante complicada “volviendo a losviejos tiempos”).

Afortunadamente, hoy en día existen varios remakesde Dune 2 que incluyen mejores controles, lo cual tepermite mover ejércitos enteros sobre la marcha, yotras mejoras, como crear colas de puntos de reunióny, en ocasiones, mejores grácos (mayoresresoluciones y ltros para mejorar el aspecto).Personalmente preero Dune Legacy por todas estascuestiones, que está disponible en ODROID yfunciona bastante bien.

Dune Legacy

De vez en cuando pruebo algunas actualizaciones deDune Legacy y termino jugando durante horas y días,ya que el juego sigue siendo muy bueno como juegode estrategia, y me suelo perder entre sus batallas.

Figura 10 – Dune legacy

Aunque solemos hablar de Dune 2, también existe unjuego llamado “Dune”. Es una mezcla de estrategia yaventura, ya que sigue la historia de Paul Muad’dib deHouse Atreides al mismo tiempo que aprendes de losfremen y sus costumbres. Este juego también es muybueno, y tiene una de las mejores bandas sonoras,especialmente la versión CD para DOS con escenas devideo y renderizadores 3D. Es un magnico juego quefunciona bastante bien en DOSBox en ODROIDs,auqnue creo que hable de este juego hace un tiempoen mis artículos sobre juegos DOS.

Figura 11 – Dune, una legendaria historia de recolecciónde especias

UFO Enemy Unknown / XCOM – Ufo Defense

Este es realmente especial, no recuerdo cuandoempecé a jugarlo. Sé que existió en Amiga, pero creoque lo disfruté más intensamente en el PC bajo DOS.Absolutamente adoro este género, aunque es ungénero un tanto difícil de denir. La mayoría lodenen como un juego de estrategia con tácticasbasadas en turnos, o de simulación de administracióncon tácticas basadas en turnos, aunque creo que esalgo mucho más especíco lo que me fascina de estegénero de juegos y no conozco nada que se le

Page 9: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

parezca, a parte de los juegos XCOM y variantes queaparecieron con el paso del tiempo.

Figura 12 – UFO Enemy

El juego es bastante complejo y requiere de bastantetiempo para jugarlo, dominarlo y completarlo, peromerece la pena. Los alienígenas están aquí, llegaron ala Tierra, volando en sus naves espacialesextraterrestres, secuestrando a los humanos,aterrorizando las ciudades y quién sabe qué máshayan planeado. Los diferentes gobiernos del planetase han dado cuenta de que no están en condicionesde enfrentarse a un enemigo como este por sucuenta y han acordaron crear una fuerza unida“XCOM” para derrotar a los alienígenas.

Para ello, cada país accedió a nanciar al grupo XCOMcon dinero y personal para lograr este objetivo y esaquí donde tú entras en juego. Eres el comandantedel XCOM y tus decisiones afectarán al resultado deeste contexto. Has distribuido tu tiempo y recursospara montar una defensa contra los intrusos. Tienesque explorar nuevas tecnologías, que implica el cómoderrotar al enemigo. Tienes que construir tus propiasarmas, puesto que estas nuevas tecnologías aún noexisten y no puedes simplemente comprarlas. Tienesque entrenar a tus soldados, equiparlos conarmaduras para que se protejan, con armas paracombatir al enemigo y con otros objetos comobotiquines, granadas o rastreadores de movimiento.

También tienes que equipar a tus propios avionespara derribar a los ovnis enemigos. Tienes queanalizar los objetos que recoges y las armas delenemigo. Y por supuesto, aplastar al enemigo sobreel terreno, donde sea que lo encuentres.

Para mí, toda esta combinación es lo que hace queeste juego sea tan bueno. El hecho de que investigues

nuevas tecnologías construyendo nuevas armas,armaduras y aviones permite mejorar tusposibilidades de supervivencia. La mejora constante,no solo a través de un mejor equipamiento sinotambién de tus soldados, que mejoran cuanto mástiempo están en el servicio y más participan enmisiones y más enemigos eliminan. Creas unaconexión con tus soldados, especialmente cuantomás fuertes se vuelven. Perder a un novato realmenteno te importará, ya que simplemente puedes reclutaruno nuevo, pero un soldado veterano es muy valiosoy perder a uno normalmente te complica bastante lavida, hasta el punto de pensar en volver a cargar eljuego y intentarlo de nuevo.

Figura 12 – Grácos originales de UFO Enemy Unknown,luchando contra los “grays”

También fue uno de los primeros juegos en los queusé un editor hexadecimal para manipular el juegoguardado cuando era niño, pero solo para crear más“Elerium”, que era un mineral extraño necesario paralas armas y los equipos de alta tecnología.Constantemente se me agotaba, así que, sí hice unpoco de trampa por aquel entonces.

Lo que siempre más me fascinó de este juego fue lainvestigación. La evoluación a través de lainvestigación y el desarrollo de nuevas tecnologías eslo que me mantuvo jugando a este juego durantemucho tiempo.

Page 10: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 13 – Autopsia de uno de los alienígenas máspeligrosos de XCOM

Figura 14 – Autopsia de uno de los alienígenas máspeligrosos de XCOM

Investigar y leer todos esos detalles sobre losalienígenas y las armas o simplemente los elementosque encontrasbas siempre fue lo más interesantepara mí. Es lo que hace que este juego sea único:poder a través del conocimiento. Cuanto másinvestigues, más oportunidades tendrás de vencer alenemigo. Hoy en día, si quiero jugar al juego, usoOpenXcom en el ODROID, ya que tiene muchascaracterísticas adicionales y permite mods, contenidoadicional y diferentes conguraciones que mejoranotablemente la experiencia de juego.

Descubrí que OpenXCom funciona estupendamenteen los ODROIDs. Me gustan las opciones que ofrece,como deshabilitar las características del juego originalque lo hacían muy difícil (por ejemplo, combates denoche) o simples mejoras como hacer clic con elbotón derecho en la echa hacia arriba de la pantallade investigación para asignar todos los investigadoresdisponibles a cierto proyecto de investigación, o laposibilidad de “producir y vender” (producir artículosque no están disponibles en el mercado, por ejemplo,ries láser y venderlos para obtener benecios).OpenXcom te permite jugar al original UFO EnemyUnknown, así como al segundo juego llamado “Xcom

Terror from the Deep”, que es prácticamente igual alprimero, pero en esta ocasión luchas contraalienígenas que proceden del mar y sugen de debajodel agua.

OpenXcom también tiene muchos mods queintroducen nuevos escenarios en el universo, o creanuniversos completamente nuevos. Combinado con laposibilidad de reproducir música y sonidosmejorados, añadir más armas para investigar, etc.,OpenXcom es realmente único y vale la pena tenerloen ODROID.

Figura 15: Altas resoluciones, solo es una de las muchascaracterísticas de OpenXCom

Aparte de los juegos originales de UFO EnemyUnknown y Terror From the Deep, también disfrutémucho jugando al remake también llamado XCOM:Enemy Unknown, que lleva el género al modernosistema 3D.

Figura 16 – XCOM: Enemy Unknown de Firaxis Games

Este juego incluso salió para Android, lo que lo hacecompatible técnicamente con ODROID igualmente,aunque me encantaría ver una versión del juego paraLinux. También está UFO Alien Invasion (UFOAI) hechapor fanáticos, que está disponible para ODROID enhttps://forum.odroid.com/viewtopic.php?

Page 11: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

f=91&t=2375. Todavía no he jugado demasiado a estejuego, pero quiero hacerlo puesto que es bastante ela la mecánica original del juego.

Otro gran remake es Xenonauts, que utiliza grácos2D sobre una vista isométrica, que es un estiloartístico muy interesante. Estoy casi seguro que estejuego podría ejecutarse de forma nativa en ODROID sise recompilara para armhf, ya que solo usa SDL2. Sinembargo, actualmente no está disponible como tal.

Existe una serie más basada en la antigua serieUFO/XCOM que realmente me gusta, tambiénllamada UFO y es conocida como la trilogía UFO oserie Aftermath OVNI, llamada así por el primer juegode la serie. UFO Aftermath, UFO Aftershock y UFOAfterlight son juegos 3D lanzados entre 2003 y 2007,estos juegos me dejaron perplejo una vez más.

A muchas personas no les gustan, ya que no estantan “basados en turnos” como los juegos XCOMoriginales, pero como he dicho antes, para mí estosjuegos no son de tácticas basadas en turnos, sino masbien de investigación, desarrollo, mejora y evoluciónde los personajes.

Los juegos también contaban con toneladas deerrores, y la historia (especialmente la de los dosprimeros) no estaba muy bien escrita (especialmenteel nal), pero el sistema de juego era lo que tenia másvalor para mí, y llevaron a cabo muchas mejoras eneste sentido en comparación con otros juegos en miopinión.

Figura 17 – UFO Aftermath tiene una conguraciónmucho más siniestra y esta totalmente 3D, perolamentablemente sólo se ajusta a una resolución de1024×768

En los juegos XCOM, comienzas con una base ysoldados totalmente equipados y empiezas a buscar“tecnología futura” como láseres y demás al instante.En UFO Aftermath, empiezas en un mundo que fuesorprendido por alienígenas y la humanidad casi fueaniquilada. Las ciudades están derumbadas y losmutantes deambulan atacando a todo el mundo.Apenas tienes armas y encontrar una ametralladoraM4 es algo así como hallar un tesoro. Te lleva untiempo empezar a desarrollar “tecnología futura”, yhasta que llega ese momento, te tienes queconformar con las armas que vas encontrando antesde que puedas replicar las tecnologías alienígenas ymejorarla.

En la serie XCOM, debes satisfacer a las diferentesnaciones para nanciar tus operaciones. Si lo hacesmal en un país, pierdes dinero y, a medida que losalienígenas se vuelven más y más fuertes, con eltiempo perderás mucho dinero, de modo que el juegose vuelve más difícil y tienes menos recursos paraenfrentarte a ellos, lo cual es un poco molesto. EnUFO Aftermath, la sociedad ha colapsado, el dinerono tiene valor, y así es cómo luchas contra una fuerzade invasora global. Tu “moneda” es el tiempo. Cuantomás difícil es un proyecto, más tiempo te llevadesarrollarlo, y puedes cambiar esto dedicando másfuerzas de trabajo a un objetivo común. Puedes haceresto seleccionando lo que deberían hacer tusdiferentes bases: investigar, desarrollar tecnologías odefender con una fuerza militar.

Figura 18 – La materia marrón está cubriendolentamente la tierra.

El primer juego de la serie tiene la historia másinteresante, donde vas evolucionado empezando conviejas pistolas y ries hasta tecnología alienígena. Elsegundo juego de la serie es el más fasticioso de los

Page 12: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

tres. Se juega después del primero y asumes que lashas fastidiado. Ahora ha recuperado laadministración de los recursos, y es muy difícil yconfuso. Tiene diferentes secciones de humanos quepuedes reclutar o convertirse en tu enemigo.Realmente no supone una gran mejora con respectoa UFO Aftermath, que es mi pfavorito de los dos. Eltercero, UFO Afterlight, es el más avanzado de los tresy ofrece grácos en 3D muy mejorados. No se quedaen 1024×768 y esta vez, luchas en Marte, nuestrovecino rojo.

Figura 19 – Grácos altamente mejorados en los muchosy nuevos alienígenas de UFO Afterlight

Espero que algún día podamos jugar también almenos al UFO Aftermath en el ODROID, pero hastaentonces, me encanta jugar OpenXcom y UFOAI. Estosjuegos son realmente sorprendentes y si nunca loshas jugado, deberías probarlos.

Page 13: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Sistema de Información de Ocio para Vehículos: Utilizando unODROID-C2 October 1, 2018 By @poptmartone ODROID-C2, Mecaniqueo, Tutoriales

Me enorgullece presentar mi “Sistema de informacióny entretenimiento para vehículos ODROID”. Es lacombinación de un ODROID-C2 y una plataformaArduino capaz de establecer una comunicación CANcon el módulo BCM del coche. Esta función permiteque los controles del volante se “comuniquen” con elsistema operativo Android a través de una interfazpor infrarrojos (IR) adicional, como ya sugerí hacealgún tiempo. Aquí tienes la lista completa delhardware:

ODROID-C2

Montaje de la pantalla VU7 Plus

Placa de audio Hi-Fi Shield Plus

Placa de alimentación SmartPower 2

Módulo USB bluetooth

Módulo USB wi

Módulo USB GPS

HUB USB con alimentación externa

Ventilador

Arduino Nano

Transceptor CANBUS Niren MCP2515

Transformador para reducir 12/24 V -> 5V (paraalimentar el Arduino y el módulo CAN)

Varios conectores DuPont macho y hembra

El Arduino Nano trabaja ayudando al C2 yproporciona la lógica de las principales operaciones,el sistema de encendido/apagado, la interfaz IR, lacomunicación con el bus CAN y los servicios decontrol remoto del cabezal de sonido, mientras queen la placa ODROID es donde tiene lugar todo elentretenimiento. Con el n de minimizar el tamañofísico y adaptarlo todo al espacio designado en elsalpicadero de mi automóvil, he creado una placa decontrol electrónico que contiene todos loscomponentes electrónicos necesarios, tal como semuestra a continuación.

Page 14: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 01 – Placa de control incompleta

Figura 02 – Placa de control completada

Figura 03 – Vista lateral de la placa de control

Tras desmontar el kit de pantalla VU7 y reorganizarlos componentes en una especie de “placa base”, estefue el resultado:

Figura 04 – Todos los componentes conectados

Figura 05 – Primer plano de la placa

A continuación, lo montamos todo dentro del huecodel salpicadero del coche:

Figura 06 – Placa montada en el salpicadero del coche

Figura 07 – Parte interna del salpicadero del coche

Figura 08 – Frontal visible del salpicadero del coche

Ten en cuenta el LED infrarrojo

Page 15: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 09 – LED infrarrojo

Figura 10 – Todo instalado

Figura 11 – Instalado y funcionando

Echa un vistazo al video de demostración para vertodo el sistema en acciónen https://www.youtube.com/watch?time_continue=79&v=uQf7kH7wbuQ. Para másdetalles o hacer preguntas, visita el post de los forosde ODROIDhttps://forum.odroid.com/viewtopic.php?f=140&t=32189.

Page 16: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Banco de Pruebas ODROID October 1, 2018 By Dongjin Kim Linux, ODROID-C2, ODROID-XU4, ODROID-HC2

Hemos congurado una zona experimental ODROIDremota para alguien que quiere medir, pre-visualizary probar el rendimiento de los SBC ODROID. Los SBCODROID de nuestro banco de pruebas estánconectados vía ethernet Gbit y están abiertos alpúblico. El sistema experiencial ofrece la posibilidadde evaluar el rendimiento, un servidor en la nube ymucho más a través de SSH.

Figura 1: SBCs ODROID en el banco de pruebasconectado a maze.odroid.com

¿Qué dispositivos están disponibles en el banco depruebas?

Ofrecemos una red totalmente dedicada de 1 Gbpsbajo dominio maze.odroid.com y diferentes

conguraciones de hardware ODROID para quepuedas usar cualquier SBC ODROID en el que estéinteresado. Desde este entorno, puedes ver elrendimiento del hardware y la potencia de cálculo.Los futuros SBCs ODROID serán accesibles antes desu lanzamiento.

¿Qué sistema operativo está instalado en losODROIDs?

Ofrecen Debian Stretch en un contenedor Dockersobre un reciente kernel Linux que Hardkernelmantiene y actualiza. El rendimiento del hardware y lapotencia de cálculo no se ven afectados por otroentorno con esta conguración. Si eres nuevo en SBCODROID, todo el código fuente del kernel de Linux yU-boot está cargado en los repositorios de Githuben https://github.com/hardkernel.

¿Qué SBCs ODROID son accesibles?

Los comienzos parecerán un tanto humildes.Dispones de un intérprete de comandos ODROID tras

Page 17: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

conectarte vía SSH a una placa a través de un númerode puerto dedicado, e incluso puede ejecutar oinstalar un paquete. A día de hoy, ofrecemos 5 SBCODROID con una conguración básica:

2x ODROID-XU4

2x ODROID-C2

1x Kit Home Cloud ODROID-HC2 con un HDD 3.5″ de1TB

¿Cómo son accesibles?

Solo 4 de 5 SBC ODROID están listos para aceptarcomandos a través de SSH con un número de puertodedicado.

Login account: odroid

Password: odroid

Una vez que accedas a un SBC ODROID, tienescompleta autorización para ejecutar cualquiercomando de Linux para hacer pruebas (algunoscomandos podrían estar restringidos por razones deseguridad), y también puedes saltar a otro SBCODROID de la misma red local.

Figura 2 – Conguración de la red

Figura 3 – Esquema de ODROIDs conectados amaze.odroid.com

Por ejemplo, si deseas acceder al ODROID-XU4 en elque el número de puerto es 2220, puedes ejecutar el

siguiente comando, que te permitirá acceder a unODROID-XU4 con la dirección IP interna 192.168.0.20:

$ ssh ­p 2220 [email protected]

Una vez que tenga acceso a un ODROID, puedesconectarte a cualquier otro ODROID de la misma redcon su dirección IP interna dedicada. Por ejemplo,este comando le permitirá acceder al ODROID-C2desde ODROID-XU4 al que te conectaste con elcomando anterior:

$ ssh ­p 2222 [email protected]

Figura 4 – Conectando a los ODROID a través de SSH

¿Qué otro hardware hay disponible?

A parte de los 4 SBC ODROID, también ofrecemos unalmacenamiento en la nube dedicado que ejecutaNextcloud con un disco duro de 1 TB. Este dispositivode almacenamiento evidencia que puedes montar tupropio dispositivo en la nube con un ODROID-XU4 yte ofrece la oportunidad de usarlo antes de quedecidas montarlo por ti mismo. Todo el mundo puedeacceder a este almacenamiento con una cuentaabierta, Así que debes saber que cualquiera puedeacceder a todos los archivos. Por lo tanto, no deberíascargar ningún archivo privado en el almacenamiento.Además, no debe compartir ningún tipo de archivo no

Page 18: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

gratuito para tu uso personal a través de estealmacenamiento.

Login account: odroid

Password: odroidfun

Figura 5 – Conexión a almacenamiento en la nube desdeun dispositivo móvil

¿Qué es posible y que no?

Todos los SBCs ODROID en maze.odroid.com son deacceso público y están abiertos con el n de ofrecerexperiencias de muestra con SBC. Nos alegraría quelo utilizaras y nos gustaría escuchar tu opinión sobreque podríamos mejorar. Puede ver el rendimiento delhardware con herramientas de rendimiento comosysbench o incluso con simples herramientas deLinux como dd o ping. Además, si está dispuesto aejecutar una herramienta de red con un determinadopuerto, puede usar los puertos entre el 4000 y el 4499en el contenedor Docker.

Figura 6 – Ejecutando Sysben en ODROID-XU4

Figura 7 – Ejecutando iperf3 para medir el ancho debanda de la red entre dos SBCs ODROID

El SBC ODROID al que estás accediendo se estáejecutando en un contenedor Docker, de modo quetambién puedes ver cómo de bien se comporta elcontenedor Docker como sistema operativo nativosobre el hardware ARM.

Figura 8: di “Hola” si encuentras a alguien más que estéhaciendo un trabajo interesante

Desafortunadamente, no ofrecemos acceso deentorno gráco debido al potencial limitado delhardware a la hora de permitir muchos usuarios al

Page 19: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

mismo tiempo. Tampoco queremos que sean unrecurso para la piratería o que se utilice comomáquina de compilación que consuma todos losrecursos del hardware. Además, el ODROID al que teconectas debería funcionar lentamente, ya que sepuede acceder a los dispositivos de maze.odroid.comen cualquier momento.

¿Durante cuánto tiempo funcionarámaze.odroid.com?

Esperamos ofrecer buenas experiencias con los SBCsODROID que hemos montado, pero tambiénofrecemos dispositivos populares o futuros pocodespués de su introducción en el mercado. Hoy día

solo tenemos 5 SBC ODROID, pero se puedenincorporar más dispositivos a demanda o cada vezque se publique un nuevo SBC ODROID. Siempre ycuando tengamos usuarios que quieran tener unaexperiencia, ejecutaremos más SBC ODROID enmaze.odroid.com.

Nos gustaría escuchar tus sugerencias o peticiones,visita el hilo del foro ODROIDen https://forum.odroid.com/viewtopic.php?f=29&t=32257#p234012. Para preguntas,comentarios y sugerencias, visita el artículo originalen https://medium.com/@tobetter/odroid-bench-c5c1a10d6bec.

Page 20: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Carga Inalámbrica: Añadiendo un Sistema de Carga InalámbricaQi al ODROID-GO October 1, 2018 By @Kamots ODROID-GO

Soy un entusiasta de la electrónica desde que teníaocho años, cuando mi abuelo solía enviarmepequeños componentes como LEDs, pequeñosmotores DC y temporizadores 555. Incluían esquemasdibujados a mano con notas que podía seguir paracrear simples proyectos. A medida que iba creciendo,los proyectos se volvían más complejos,permitiéndome seguir aprendiendo. También meadentré en el mundo de los ordenadores, laprogramación y la radio amateur antes de ir a launiversidad para conectarme a redes informáticas.

Avance rápido del 2018: ahora hago videos deYouTube sobre tecnología. Empecé mi canal “KamotsTalks Tech” porque compré un ODROID-GO y meimpliqué con la comunidad, pero no estaba satisfechocon la veracidad de la mayoría de las críticaspublicadas sobre el GO. Quería demostrar que estedispositivo era mejor de lo que la gente decía, así que

hice mi primer video sobre GO: un video con un mini-análisis sobre ODROID-GO. Después de muchos másvideos, he decidido escribir un artículo para que seapublicado, algo que nunca había hecho antes.

El objetivo de mi proyecto es añadir la posibilidad decargar de forma inalámbrica el ODROID-GO. Lamotivación me vino por el hecho de utilizar laplataforma Qi Wireless Charging que ya tengo parahacer algo increíble con lo que disfrutasen lossuscriptores de YouTube. Me inspiré en un video deETA PRIME en el cual se añadía la carga inalámbrica alNeoGeo Mini. Puede parecer un proyecto complicado,pero en realidad, tan sólo supone realizar cuatroconexiones de soldadura. Si dedicas algo de tutiempo a seguir las instrucciones que aparecen acontinuación, probablemente tendrás éxito. Sinembargo, existe el riesgo de dañar tu GO, así que no

Page 21: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

lleves a cabo este proyecto a menos que confíes entus habilidades de soldadura y electrónica.

Componentes necesarios

ODROID-GO (https://bit.ly/2lgWvGA)

Módulo receptor inalámbrico Universal Qi de Adafruit(https://www.adafruit.com/product/1901)

Cable muy delgado (28AWG/0.081mm2). Desmonté uncable Ethernet plano para conseguir el mío.

Cinta aislante u otro adhesivo fuerte no conductor

Soldador y soldadura

Preparación

Primero, veamos partes del esquema del ODROID-GOpara entender dónde conectar la salida de la bobinaQi. La energía para el GO es suministradanormalmente a través del puerto USB, pero las yemasde soldadura son muy pequeñas para el conectorMicro USB, de modo que necesitamos encontrar otraforma de realizar la conexión por dentro del GO.

Figura 1 – Extractos del esquema de ODROID-GO

Como puede ver en la Figura 1, normalmente sesuministra energía al GO a través del conector MicroUSB hacia el VBUS y GND. Esos mismos rieles dealimentación están disponibles en el cabezal IOexterno, que tiene pines mucho más grandes en laplaca del GO. Así que soldaremos el módulo Qi al pin1 y 10 del cabezal IO externo, que puedes ver en laFigura 2. La alimentación USB estándar es de 5voltios. El módulo Qi también proporciona 5 voltios,de modo que alimentará el GO como si lo conectarasa través de USB.

Figura 2 – Cabezal IO externo

Ahora que hemos descubierto dónde conectar labobina, deberás doblar con mucho cuidado los doscables que proceden de la bobina Qi hacía tu placacontroladora. Esto nos permite eliminar los plieguesde plástico en el interior de la cubierta posterior deGO donde nalmente montaremos el módulo Qi. Youtilicé unas pinzas de depilar para doblar con cuidadolos cables de alimentación de la bobina, como puedever en la Figura 3. Aunque yo lo hice después dehaber soldado los cables, te recomiendo que lo hagaantes de soldar.

Figura 3 – Doblando los cables de alimentación de labobina Qi

Page 22: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 4 – Cables de bobina Qi doblados

Haciendo las conexiones

Ahora comienza el delicado trabajo de soldadura.Necesitaras usar la soldadura de diámetro másdelgado que tengas. Añade cuidadosamente unapequeña cantidad de soldadura a las yemas V4+ yGND en la placa controladora de la bobina Qi tal ycomo se ve en la Figura 5. Hay tres yemas y si tiene labobina orientada de la misma forma que en la Figura5, deberás añadir soldadura a la yema central yderecha.

Figura 5 – Soldadura sobre las yemas V4+ y GND

Una vez que hayas añadido la soldadura a las yemas,suelda un cable a cada yema remanando la soldaduraque has añadido a las yemas y presionando el cablesobre ellas. Puedes verme haciendo esto en la gura6.

Figura 6 – Añadiendo los cables a la bobina Qi

A continuación, comprueba la longitud de los cablespara asegurarte de que puedan alcanzar los pines delcabezal IO externo sin que sean tan largos queresulten difícil de manejar cuando vuelvas aensamblar el GO. Recomiendo cortar donde el cablealcanza mis dedos en la Figura 7.

Figura 7 – Comprobando la longitud del cable

Para el siguiente paso, es probable que necesites unsoporte tipo “Mano Amiga” con pinzas de contacto,como se muestra en la Figura 8, o un juego adicionalde manos humanas. Necesitarás colocar los cablessobre los pines del cabezal, calentar el pin del cabezaly el cable, luego añadir soldadura para hacer unabuena conexión. Tal y como recordarás del esquemade la Figura 1, el cable de V4 + va al pin 10 y el cablede GND al pin 1. Ten mucho cuidado al soldar el cableal pin 1 ya que el componente que hay justo al ladopodría dañarse.

Page 23: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 8 – Soldando los pines del cabezal

Comprueba tus conexiones con un multímetro,asegurándote de que dispones de buenas conexionessin resistencia. Verica que has conectado los pinesde salida de la bobina Qi a los pines correctos en elGO. Hacer las cosas al revés podría dañar tudispositivo y/o la placa controladora de la bobina Qi.

Figura 9 – Probando tus conexiones

Terminando

Una vez que estés seguro de que todo está conectadocorrectamente, coge tu plataforma de carga Qi ycoloca la bobina Qi sobre ella tal y como se ve en laFigura 10. La luz roja en el GO debería iluminarse, locual indica que se está cargando.

Figura 10 – Comprobando que carga

Si funciona, ¡celébralo! La parte difícil ya ha pasado.Ahora solo necesitas asegurar la bobina Qi en lacarcasa posterior del GO. Utiliza cinta aislante comose puede ver en las fotos. No obstante, Justin Thomasdejó un comentario en mi video sobre este proyectoque decía que debería probar la cinta de doble caraVHB de la marca 3M. Dejo a tu criterio, la que quierasusar. Lo más importante es asegurarse de que labobina quede en sentido horizontal dentro de lacubierta posterior y que no se dañe. También esposible que quieras cortar parte de los pliegues deplástico que hay dentro de la cubierta posterioralrededor de donde se encuentra la placa delcontrolador de la bobina Qi antes de asegurar labobina. Puedes ver cómo aseguré la mía en la Figura11.

Figura 11 – Bobina montada en el panel posterior

Page 24: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Una vez que hayas asegurado la bobina Qi y tu placaal panel posterior, cierra el GO (asegurándote de quelos cables no queden atrapados en ninguna parte) yvuelve a colocar todos los tornillos en su lugar. Elresultado nal debería ser similar a la Figura 12.

Figura 12 – ODROID-GO ensamblado con la bobina Qi

Ahora puede colocar tu GO en una plataforma decarga Qi, asegurándote de centrar la bobina sobre laplataforma y disfrutar de la carga inalámbrica del GO.Ten en cuenta que la bobina se calienta un poco trasun tiempo, pero no creo que sea un problema. Sinembargo, la bobina no puede saber cuándo el GOtermina de cargarse, así que no lo dejes en unaplataforma de carga durante toda la noche. Tambiénpuede utilizar un cable USB para cargar tu GO siquieres.

Page 25: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Campamento de Programación – Parte 5: Leer el Voltaje de laBatería Integrada en el ODROID-GO October 1, 2018 By Justin Lee ODROID-GO, Tutoriales

En esta guía vamos a aprender cómo obtener elestado de la batería con Arduino. La pantalla LCDmostrará el voltaje restante de la batería en voltios.

Page 26: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 1 – El ODROID-GO tiene un módulo de batería deunos 3.7V

Podemos leer el nivel de la batería a través de uno delos ADCs SAR de 12 bits que están integrados enESP32. Estos ADCs son:

ADC1: 8 canales, conectado a GPIOs 32-39.

ADC2: 10 canales, conectado a GPIOs 0, 2, 4, 12-15, 25-27.

Existen algunas limitaciones a la hora de usar ADC2en una aplicación. La batería está conectada alnúmero pin GPIO 36, de modo que deberíamos leerun valor al usar ADC1. Existe una librería paracontrolar ADC para ESP32 que se llama adc.h. En estaguía, la vamos a usar para leer el nivel actual de labatería en voltios y mostrarlo en la pantalla LCD. Enprimer lugar, prepara el código tal como se muestra acontinuación para mostrarlo en la pantalla LCD:

#include

void setup()

// put your setup code here, to run once:

GO.begin();

GO.lcd.setTextSize(2);

double readBatteryVoltage()

void showBatteryVoltage(double voltage)

GO.lcd.clear();

GO.lcd.setCursor(0, 0);

GO.lcd.printf("Current Voltage: %1.3lf V

", voltage);

void loop()

// put your main code here, to run repeatedly:

showBatteryVoltage(readBatteryVoltage());

delay(1000);

Denimos dos funciones por adelantado:

readBatteryVoltage(): devuelve el voltajecompletamente calculado.

showBatteryVoltage(): recibe este voltaje y lo muestraen pantalla.

Ajusta el canal con los correspondientes valores tal ycomo lo hemos diseñado. Antes de congurarlo, esimportante saber que el voltaje de la batería GPIOestá dividido por 2 debido a la limitación de entradade datos del ADC integrado. Por lo tanto, si el valororiginal que procede de la batería es de 3.7V,entonces el valor de entrada al pin GPIO será deaproximadamente 1.85V. Así pues, tenemos quemultiplicar el valor por 2 para conocer el voltaje real.

Utilizamos el ADC SAR de 12 bits para el canal con unaatenuación de 11 dB. Deberíamos usar estos rangospara calcular igualmente el resultado. En primerlugar, dene este valor extra como una macroPreprocesador e incluye las librerías necesarias parausar ADC en ESP32:

driver/adc.h: para obtener el valor bruto ADC sobre elvoltaje.

esp_adc_cal.h: para calcular el voltaje correctoutilizando el AP.

Page 27: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

A continuación, congura el canal con el valoradecuado usando dos funciones:

adc1_cong_width(): congura el ancho del ADC.

adc1_cong_channel_atten(): congura la atenuacióndel canal. El número de pin GPIO 36 utiliza el canalnúmero 1.

Para conseguir un voltaje ADC preciso, es necesariorecurrir a la calibración. El voltaje de referencia delADC es originalmente 1.1V por defecto, pero enrealidad diere un poco en cada módulo ESP32. Elfabricante escribe los datos de calibración en efuse:

esp_adc_cal_characterize(): devuelve una característicade su AP como una estructura.

La función readBatteryVoltage () lee un valor ADC conla función adc1_get_raw (). Devuelve un voltajecalculado como un valor de tipo doble utilizando lafunción esp_adc_cal_raw_to_voltage ():

#include

#include <driver/adc.h>

#include

#define RESISTANCE_NUM 2

#define DEFAULT_VREF 1100

static esp_adc_cal_characteristics_t

adc_chars;

void setup()

// put your setup code here, to run once:

GO.begin();

GO.lcd.setTextSize(2);

adc1_config_width(ADC_WIDTH_BIT_12);

adc1_config_channel_atten(ADC1_CHANNEL_0,

ADC_ATTEN_DB_11);

esp_adc_cal_characterize(ADC_UNIT_1,

ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12,

DEFAULT_VREF, &adc_chars);

double readBatteryVoltage()

return (double)

esp_adc_cal_raw_to_voltage(adc1_get_raw(ADC1_C

HANNEL_0), &adc_chars) * RESISTANCE_NUM /

1000;

void showBatteryVoltage(double voltage)

GO.lcd.clear();

GO.lcd.setCursor(0, 0);

GO.lcd.printf("Current Voltage: %1.3lf V

", voltage);

void loop()

// put your main code here, to run repeatedly:

showBatteryVoltage(readBatteryVoltage());

delay(1000);

Opcionalmente, podemos realizar el cálculo con

una mayor precisión mediante un muestreo

múltiple del valor ADC

Lee el valor 64 veces y lo divide por el total

de repeticiones.

#include

#include <driver/adc.h>

#include

#define RESISTANCE_NUM 2

#define DEFAULT_VREF 1100

#define NO_OF_SAMPLES 64

static esp_adc_cal_characteristics_t

adc_chars;

void setup()

// put your setup code here, to run once:

GO.begin();

GO.lcd.setTextSize(2);

adc1_config_width(ADC_WIDTH_BIT_12);

adc1_config_channel_atten(ADC1_CHANNEL_0,

ADC_ATTEN_DB_11);

esp_adc_cal_characterize(ADC_UNIT_1,

ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12,

DEFAULT_VREF, &adc_chars);

double readBatteryVoltage()

uint32_t adc_reading = 0;

for (int i = 0; i < NO_OF_SAMPLES; i++)

adc_reading += adc1_get_raw((adc1_channel_t)

ADC1_CHANNEL_0);

Page 28: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

adc_reading /= NO_OF_SAMPLES;

return (double)

esp_adc_cal_raw_to_voltage(adc_reading,

&adc_chars) * RESISTANCE_NUM / 1000;

void showBatteryVoltage(double voltage)

GO.lcd.clear();

GO.lcd.setCursor(0, 0);

GO.lcd.printf("Current Voltage: %1.3lf V

", voltage);

void loop()

// put your main code here, to run repeatedly:

showBatteryVoltage(readBatteryVoltage());

delay(1000);

Presiona CTRL-U para compilar y cargar el esquema.El voltaje actual de la batería aparecerá en la pantallaLCD.

Ejemplo completo

El ejemplo completo lo tienes disponible haciendo clicen el menú Files → Examples → ODROID-GO →Battery para importar y presiona CTRL-U paracompilar/cargar, tal y como se muestra en la Figura 2.

Figura 2 – Accediendo al ejemplo completo

Para comentarios, preguntas y sugerencias, visita elartículo originalen https://wiki.odroid.com/odroid_go/arduino/05_battery.

Page 29: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Presentado NEMS Linux: Parte 1 – el Servidor de MonitorizaciónProfesional Nagios para Dispositivos ODROID October 1, 2018 By Robbie Ferguson Linux, Tutoriales

Nagios® Core™–al que me referiré simplementecomo “Nagios” a lo largo de este artículo, es unaaplicación de servidor de código abierto gratuita quepermite monitorizar los hosts y servicios queespeciques, que te avisa cuando las cosas van mal ycuando mejoran. He estado usando Nagios durantemuchos años. Si tuviera que aventurarme a poneruna fecha de cuándo lo empecé a usar, diría que fuealrededor de 2006.

Mi esposa y yo administrábamos una pequeñaempresa de servicios informáticos en nuestra casapor aquel entonces, y para hacer un seguimiento delos sitios de mis clientes y ser tan proactivo comopodría ser, tenía un monstruoso ordenador en elgaraje vigilando El espacio del disco duro de misclientes, el estado de las copias de seguridad, la cargade la CPU y las actualizaciones del antivirus, así comootros servicios.

Recuerdo haber congurado ese antiguo servidorNagios. El proceso fue un poco pesado y toda laconguración se realizó a través del terminal de Linuxabriendo los archivos de conguración en vi. Unasintaxis malformada y Nagios no se iniciaría. Lo hicefuncionar, y si alguien alguna vez ha dudado de misabiduría, estaba totalmente equivocado. ¡Ah!, ¿aquién estoy engañando? Nadie ha dudado nunca demi sabiduría. A medida que pasaron los años y mibase de clientes de soporte profesional continuabacreciendo, empecé a reutilizar hardware antiguo,instalando un servidor Nagios independiente en cadasitio del cliente. Esto funcionaba bastante bien.

Recibí mi primera Raspberry Pi en 2014. Después detenerla en un estante durante un año, empecé aconsiderar posibles formas de utilizarla. Me di cuentade que el consumo de energía, el espacio en rack y elruido de estos antiguos servidores Nagios suponían

Page 30: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

una increíble pérdida de recursos. Estaba convencidode que un ordenador de placa reducida podía ser unexcelente servidor Nagios, y empecé a hacerpequeñas conguraciones.

¿Por qué reinventar la rueda? La imagen NagiosPi deRyan Siegel estaba lista para usarse y ganaba enpopularidad. Empecé a usarla, pero rápidamente mesentí desanimado por el estado de la distribución,que parecía estar absoleta y no se estabaactualizando a un ritmo adecuado para usarla a unnivel profesional. Era un excelente punto de partida,pero en algunos aspectos importantes sentía que eraun producto incompleto. Empecé a trabajar en mipropia recompilación de NagiosPi, llamándola NEMS;abreviatura de “Servidor de MonitorizaciónProfesional Nagios”.

Figura 1: Este servidor Nagios cliente fue reemplazadopor el primer servidor NEMS en 2016

Soy programador en mi vida profesional. Desarrolloaplicaciones de servidor, principalmente para web.Además de desarrollar una base de software másreciente, lo primero que me propuse fue crear una IUbasada en navegador para NEMS, que reuniese todoslos componentes de NagiosPi en una única interfaz.Esto más tarde se convertiría en el panel de controlde NEMS, también conocido por su nombre derepositorio GitHub, “nems-www”.

Figura 2 – Panel de control de NEMS

Después de poner NEMS a disposición de la gente através de mi blog, el propio Siegel dijo: “Me encantaríaactualizar NagiosPi, pero no tengo la habilidad paracrear una GUI que pueda superar la de NEMS. Creormemente que siempre ha sido necesaria realizaruna reforma a NagiosPi y NEMS ha supuesto lo que esesencialmente una versión actualizada y mejorada deNagiosPi. No hay razón para no empezar a usar NEMSpor lo pronto. ¡Buen trabajo, Robbie!” No me detuveaquí y con su maravilloso espíritu de comunidad,Siegel incluso llego a colaborar durante el desarrollode NEMS 1.2 a principios de 2017, realizando diversasaportaciones de Windows a NEMS.

Con un nuevo lanzamiento importante de NEMS cadaseis meses y actualizaciones continuas, NEMS estábasado actualmente en Debian Stretch con NagiosCore 4.3.4 en su corazón. Habiendo actualizado ymantenido NEMS con una base de software actual,también incluye cosas como PHP 7, certicados SSLactualizados y un conjunto de software personalizadooptimizado para trabajar en un servidor moderno.Por ejemplo, NConf (una herramienta muy útil paracongurar Nagios) detuvo su desarrollo hace años, asíque solo funciona en PHP 5.3 o inferior. Enconsecuencia, decidí modicar el código y crear unversión aparte con el objetivo que fuera compatiblecon PHP 7.0+. Por supuesto, hice algunas otrasmejoras en el camino.

NEMS Linux, como se llama actualmente (tenía quebuscar una .com, después de todo) recurre a unamonitorización de recursos de red más moderna yelimina el antiguo requisito de porgramación deNagios. Los scripts aún están ahí, es solo que tú (elusuario) nunca tendrás que verlos o tocarlos. Todo secontrola, congura y monitoriza a través de tu

Page 31: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

navegador web, con noticaciones por correoelectrónico, Telegram o Pushover, todas operativaslistas para usarse. También cuenta con una API JSON,un sistema de visualización por TV para tu sala deservidores y mucho más.

NEMS Linux ha evolucionado para ser lo que piensoque es la mejor experiencia de Nagios disponible.Como usuario de Nagios, este es el servidor de Nagiosque siempre he anhelado. A medida que NEMS haseguido creciendo, empecé a buscar una plataformamás potente que la Raspberry Pi. Ahí fue cuandoencontré el ODROID-XU4. Hace poco más de un año(el 13 de septiembre de 2017, para ser exactos) iniciela tarea de exportar NEMS Linux al ODROID-XU4.Después de casi un año de desarrollo, estoyextremadamente orgulloso y emocionado porcompartir: NEMS Linux ahora está disponible para lasplacas ODROID.

Características de NEMS

Ya hemos mencionado la interfaz obvia y las mejorasde UX que NEMS Linux aporta a la experiencia deNagios. Estos son quizás los puntos clave que hacenque NEMS destaque, pero es importante entenderque NEMS Linux es mucho más que sólo Debian conNagios instalado. Veamos una pequeña selección decaracterísticas adicionales.

NEMS Migrator

Al centrarme en el desarrollo de una distro paraordenadores de placa reducida (SBC), me tomé muyen serio el hecho de que las tarjetas SD pueden yprobablemente fallen, y los datos pueden perderse.Quería crear una forma para que los usuariospudieran realizar copias de seguridad y restaurarfácilmente su conguración. De ese deseo nacióMigrator.

Migrator te permite hacer una copia de seguridad detoda tu conguración NEMS (hosts, servicios,vericaciones, conguración del sistema, etc.) a travésde un recurso compartido samba, una descarga httpso incluso un servicio de copia de seguridad externoopcional. Las copias de seguridad se pueden cifrar ysolo tú conoces la clave de descifrado. En el caso deque tu dispositivo falle, puede escribir la imagen en

una nueva tarjeta SD, restaurar tu copia de seguridadhecha por Migrator y empezar a funcionar en menosde cinco minutos con toda tu conguración intacta.Migrator también facilita la transición de unaplataforma a otra. Por ejemplo, teniendo conguradoun servidor NEMS Linux en una Raspberry Pi 3,puedes cambiar fácilmente a un ODROID-XU4 con eln de aumentar el rendimiento de formaconsiderable.

Otra ventaja que pone Migrator sobre la mesa es unaruta de actualización de lo más simple que puedaexistir: a medida que se presenten las nuevasversiones principales de NEMS Linux, puedes escribirfácilmente la nueva imagen de NEMS, importar tucopia de seguridad y disponer de la última versión deNEMS en solo unos minutos.

Conguración basada en interfaz de usuario conNEMS Congurator

NEMS Congurator (NConf) es lo que hace posibleque la conguración de Nagios esté basada ennavegador. Esta versión personalizada de la antiguaherramienta de conguración NConf aporta unsosticado front-end a la moderna arquitectura deNEMS. Toda la conguración de Nagios se realiza através de esta interfaz: desde añadir hosts hastacongurar tus Chequeos de servicio. Todo se hace através de un sistema muy intuitivo basado en elnavegador.

Ahora bien, debo admitir que NConf estéticamente noes la característica con mejor aspecto de NEMS eneste momento, pero su funcionamiento es brillante.Está previsto un rediseño de la interfaz de usuariopara un futuro lanzamiento. Cuando eso suceda, lainterfaz se actualizará automáticamente en todas lasimplementaciones existentes a través del sistema deactualización automática de NEMS. Con NEMS NConf,¡nunca más tendrás que examinar un archivo cfg deNagios!

NEMS System Settings Tool (SST)

Hablando de suprimir los archivos de conguraciónde Nagios, son varias las opciones de conguraciónde Nagios que han sido trasladas a la herramientaconocida NEMS System Settings Tool, también

Page 32: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

llamada NEMS SST. Elementos como la conguracióndel servidor SMTP, las credenciales de usuario dedominio y otros valores por defecto forman parte deesta interfaz.

Así que ahora que ya conoces un poco NEMS y cómosurgió, ¡Vamos a zambullirnos en él!

Instalación

Todo lo que necesitas para echar a andar NEMS Linuxes un dispositivo ODROID compatible y una tarjetaMicro SD. En este momento, el XU3, XU4, HC1 y HC2son compatibles. Admitirá más dispositivos tanpronto como disponga del hardware de desarrollopara compilar y probar, así que, si estás leyendo esteartículo varios meses después de su publicación,consulta el sitio web de NEMS, ya que es posible quetu placa ya sea compatible.

Descarga la última versión de NEMS Linuxdesde https://nemslinux.com y “grábala” con tuherramienta favorita. Yo suelo utilizar Etcher dehttps://etcher.io/ pero puedes usar la herramientaque más te guste. eMMC puede funcionar si tienes elgestor de arranque actualizado, pero aún no estáocialmente soportado. En caso de duda, utiliza unatarjeta SD UHS-I o superior. Recomiendo 16 GB o más,pero podría funcionar con una de 8 GB si es lo únicoque tiene a mano. Siempre puedes usar NEMSMigrator para cambiar a una tarjeta más grande en elfuturo.

Al arrancar tu servidor NEMS Linux, el sistema dearchivos se redimensionará automáticamente a lacapacidad de tu tarjeta SD. Puedes conrmar queNEMS está funcionando introduciendohttps://nems.local/ en tu navegador web. Si laresolución de nombres no funciona, prueba con ladirección IP de tu dispositivo NEMS, la cual puedesencontrar en la tabla DHCP de tu router, o en un TVconectado al puerto HDMI de tu dispositivo. Tengopensado introducir soporte para la pantallaCloudshell 2 en una futura actualización.

Figura 3: Detalles de NEMS que muestra un TVconectado

Initialization

En términos generales, la única vez que realmentetendrá que tocar el terminal de Linux en un servidorNEMS es durante el proceso de inicialización. Estatarea mágica congura de forma automática todo tuservidor en solo unos segundos. Genera certicadosautormados para que cada usuario de NEMS Linuxtenga un certicado único, te permita congurar tuzona horaria, crea tu usuario administrador deNagios, tu cuenta de Linux, etc. Para inicializar tuservidor NEMS Linux, conéctate a tu servidor a travésde SSH en el Puerto 22 predeterminado usando lassiguientes credenciales

Username: nemsadmin

Password: nemsadmin

Una vez conectado, escribe:

$ sudo nems­init

Se te pedirá que introduzcas nuevamente lacontraseña. Sigue las indicaciones. Todo locomplicado se vuelve simple

Figura 4 – Inicialización de NEMS

Page 33: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

¡Felicidades! Tu servidor NEMS Linux ahora estáonline y listo para monitorizar tus recursos de red.

Conectarse a tu servidor NEMS

Ahora que tu servidor NEMS Linux está funcionando,puedes acceder a todo su conjunto de funciones através de tu navegador web. Simplemente dirígete ahttps: //nems.local/ que debería funcionar en lamayoría de las redes, pero si lo necesitas, tambiénpuedes usar la dirección IP de tu servidor NEMS.

Congurar las noticaciones por correoelectrónico

Lo primero que querrás hacer en tu nuevo servidorNEMS Linux es congurar tus parámetros SMTP. Estopermitirá que tu servidor NEMS te envíe un correoelectrónico si se detecta algún problema.

Accede a NEMS System Settings Tool (SST) de NEMSdesde el menú de Conguración de tu panel deNEMS. Esta herramienta elimina la necesidad de usarel archivo tradicional Nagios resource.cfg paracongurar tus parámetros de correo electrónico. Unade las cosas buenas que tiene NEMS Linux es que enrealidad no tengo que entrar en detalles sobre cómohacer esto. Es tan intuitivo que no necesitaexplicación. Así que simplemente proporcionaré unacaptura de pantalla en la Figura 5.

Figura 5: Congurar los parámetros del SMTP en Nagioses fácil con NEMS System Settings Tool

Congurar tu servidor SMTP en NEMS es tansimple como congurar un cliente de correo.

Consejo: si está utilizando Gmail como proveedor deSMTP, asegúrate de revisar la documentación deNEMS que se encuentraen https://docs.nemslinux.com/usage/nagios-gmail-

smtp para llevar a cabo los pasos adicionalesnecesarios.

Una vez que estés convencido de haber ingresadocorrectamente la conguración de SMTP, procede aGuardar toda la conguración y luego vuelve aconectarte a través de SSH para probar laconguración de su correo electrónico con elsiguiente comando ([email protected] por la dirección decorreo electrónico de un destinatario real):

$ sudo nems­mailtest [email protected]

Este comando simplemente verica tu conguracióndel correo enviando una noticación de prueba. Sihay algún problema, aparecerá en pantalla y podrásrealizar los cambios necesarios en la conguración dela cuenta en NEMS SST.

Nota: NEMS actualmente requiere que tu servidorSMTP admita la autenticación TLS. En contra de micriterio, pero en línea con las peticiones de losusuarios, se añadirá una opción en una futura versiónque permita la autenticación insegura si fueranecesario, como podría ser el caso de un relé interno.

El paso nal de las noticaciones por correoelectrónico

El último paso para congurar tus noticaciones porcorreo electrónico es decirle a NEMS dónde deseasque se envíen estos avisos. Para hacer esto, abreNEMS Congurator (NConf) en “Conguration”, y en elmenú de navegación de la izquierda, presiona “Show“junto a “Contacts”. Verás que el procedimiento deInicialización de NEMS ya añadió tu usuario a NConf.En mi caso es robbief. Presiona el ícono del lápiz(Modicar) para editar tu contacto.

Figura 6 – Cambiando la dirección de correo electrónicodel administrador

En Email Address, cambia el valor por tu dirección decorreo electrónico real. Asegúrate de que la dirección

Page 34: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

de correo electrónico del destinatario no sea lamisma que la utilizada para la conguración de SMTPen NEMS SST. De lo contrario, es posible que noreciba las noticaciones, ya que el servidor receptor loverá como el remitente y ocultará las noticacionesde tu bandeja de entrada.

Una vez que hayas cambiado la dirección de correoelectrónico, desplázate hacia abajo y presione“Submit” para guardar los cambios. Ten en cuentaque tu información de contacto no estará disponiblehasta que no se genere la conguración de Nagios.

Generar Nagios Cong: Haz que tus cambioscobren vida

Para hacer que los cambios tengan efecto, presiona elenlace “Generate Nagios Cong” en el panel denavegación de la izquierda. Deberías ver 0 errores. Sive errores, presione “Syntax Check “ y revisa dóndehay errores. NConf es muy bueno para mostrardónde está el error, de modo que puedes volveratrás, repararlo e intentarlo de nuevo.

Figura 7: Generando la conguración de Nagios conNEMS Congurator

Si todo está comprobado, presiona “Deploy” y tudirección de correo electrónico de contacto deadministrador se activará al instante en Nagios.

Aprender más

Me gustaría animarte a que visites el Foro deDocumentación y Comunidad de NEMS paraaprender más sobre cómo congurar y usar tu nuevoservidor NEMS Linux. Asegúrate de acompañarmenuevamente en la edición del próximo mes deODROID Magazine ya que llevaremos a cabo nuestroprimer ejercicio: Congurar NEMS Linux paramonitorizar un servidor local de Linux. NEMS tiene unforo de comunidad muy activo. Lo suelo visitar conbastante frecuencia para proporcionar soportegratuito a los usuarios. También ofrezco soportecomercial personalizado para aquellos que necesitanun mayor nivel de soporte.

Me gustaría extender mi agradecimiento a mad_ady ymeveric de la comunidad de ODROID por ayudarmeen estos primeros días, ya que tenía pensadoexportar NEMS Linux a la plataforma ODROID. Porsupuesto, esta versión no sería posible sin el grantrabajo que ha hecho Meveric en la imagen de DebianStretch, que alimenta NEMS Linux para ODROID-XU3/XU4/HC1/HC2. NEMS Linux es gratuito paradescargarse y usarse con total libertad. Su códigofuente está disponible en GitHub, y la imagen listapara usarse la puedes descargar para ODROIDen https://nemslinux.com.

Sobre el Autor

Robbie Ferguson es el presentador de Category5Technology TV y autor de NEMS Linux. Su programade televisión lo puedes encontraren https://category5.tv y su bloges https://baldnerd.com.

Page 35: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Conceptos Básicos de BASH: Introducción a BASH – Parte 5 October 1, 2018 By Erik Koennecke Linux

Nuestra aventura con la programación continúa conmás tests, declaraciones if, entradas y funciones;También haremos cálculos desde dentro de BASH.Primero, vamos a echar s un vistazo a la manipulacióndel nombre de archivo, ya que parece ser una de lascosas más comunes que son necesarias en los scriptsde principiantes. A modo bonicación por sobrevivir aesta gran cantidad de teoría, dispondremos de otroejemplo de programación BASH en forma de juego.

Nombre base

Los primeros scripts que la gente suele escribir sonpara gestionar y manipular archivos. Tener que hacersimples tareas una y otra vez, como las conversiones,se vuelve aburrido muy rápido. Es natural que inclusolas personas reacias a los scripts intenten automatizaresta cuestión tardo o temprano. Normalmente, estoimplica guardar el resultado con el mismo nombre dearchivo pero con una extensión diferente, por

ejemplo, convertir le001.png en le001.jpg luego,le002, le003 y así sucesivamente.

¿Y en qué nos puede ayudar BASH?

Si abres el manual de bash, con man bash, en algúnlugar de las casi 6000 líneas del manual, similar a las35 partes de la serie BASH que estás leyendo en estemomento, encontrarás una sección sobre “Sustituciónde parámetros”. Te voy a evitar tener que desplazartepor todo esto, existe un truco muy útil para manejarlargas páginas del manual:

$ man ­P "less ­p 'Parameter Expansion'" bash

Esto salta directamente a la sección que estásbuscando, si recuerdas las palabras clave adecuadas.Vamos a resumir un poco nuestros hallazgos, ya quela página del manual es bastante más árida que miartículo y es tan concisa que tienes que leerla variasveces para lograr sacar algo en claro. La variableescrita por costumbre $foo es una abreviatura, la

Page 36: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

versión completa es $foo, que también es unaversión corta, de $ foo: operators. ¿Qué signicaesto? Veamos algunos de estos supuestos y luegoseguiremos con algunos ejemplos. Se pueden colocardos operadores dentro de las llaves, # y %. Se puedenutilizar como caracteres individuales o en pareja. Lascombinaciones posibles son:

Para recortar el sujo más corto dese el nal: $variable%patrón

Para recortar el sujo más largo desde el nal: $variable %% patrón

Para recortar el prejo más corto desde el principio:$variable#patrón

Para recortar el prejo más largo desde el principio:$variable##patrón

La diferencia entre “más corto” y “más largo” solo seaplica si está utilizando un comodín Shell * en tupatrón, para algo como jpg, son idénticos. Ahoranecesitamos algunos ejemplos para entender cómofunciona esto. Como mejor se aprende es haciendocosas, puedes experimentar con el comando echo yvarias variables shell. Si quieres continuar con elejemplo, crea una ruta /tmp/odroid con mkdir -p/tmp/odroid, seguido de /tmp/odroid/photos.zippara crear un archivo vacío para te experimento. Noes necesario seguir línea por línea, aunque para tuexperimento, es mejor tener algo que puedasmanejar con facilidad. Aquí tienes los resultados:

Si tenemos la variable

foo="/tmp/odroid/photos.zip"

(No olvide las comillas para asegurarte de que puedesgestionar espacios y otros caracteres especialescomplejos) Puedes usar

foo=/tmp/odroid/photos.zip”; echo “$foo%/*” paramostrar la ruta /tmp/odroid. Este es un método fácilpara obtener el correspondiente nombre de directoriode un archivo.

foo=/tmp/odroid/photos.zip”; echo “$foo##*/”genera photos.zip, el nombre base del archivo.

foo=photos.zip”; le=”$foo%%.*” proporciona photos,y foo=photos.zip”; echo “$foo#*/” proporciona zip.

Otra aplicación útil de los paréntesis es la expansiónde los mismos. Por ejemplo, si deseas hacer unarchivo de copia de seguridad de algo, pero eresdemasiado vago para escribir la ruta completa y elnombre de archivo del origen y del destino: cp/path/to/your/le.doc,.bak se amplia a cp/path/to/your/le.doc /path/to/your/le.doc.bak yhace un archivo de copia de seguridad de tudocumento en el mismo directorio. $#fooproporciona el número de caracteres de la variable.foo=4-letter-word; echo $#foo is 13.

Declaraciones if y tests

Para ver en detalle las declaraciones if y tests,recurriremos a un script de ejemplo con todos losbloques básicos que pueden aparecer, tal y como semuestra a continuación:

#!/bin/bash #Start of every BASH script

# Basic if statement # Comment, script purpose

if [ $1 ­gt 9 ] #test condition and if

statement

then

echo $1, that's unusual for a lucky

number. # if statement true

date # if statement true

fi

Pwd #always executed

then

date

else

pwd

...

El fragmento anterior podría ser parte de un script deeste tipo. También hay if – elif – else o la abreviaturade la sentencia ‘else if’, sentencias de casos, o laopción de múltiples tests con las condiciones AND uOR con los operadores && para AND y || para OR,aunque esto está fuera del alcance de este artículo.Los corchetes, [], en la declaración if anterior son unareferencia al comando test. Aquí también se puedenusar todos los operadores que test permita. Localizala página de manual sobre test para ver todos losoperadores posibles; Algunos de los más comunes seenumeran a continuación.

! EXPRESSION – La EXPRESSION es falsa.

-n STRING – La longitud de STRING es mayor que cero.

Page 37: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

-z STRING – La longitud de STRING es cero (= estávacío).

STRING1 = STRING2 – STRING1 es igual a STRING2

STRING1 != STRING2 – STRING1 no es igual a STRING2

INTEGER1 -eq INTEGER2 – INTEGER1 esnuméricamente igual a INTEGER2

INTEGER1 -gt INTEGER2 – INTEGER1 es numéricamentemayor que INTEGER2

INTEGER1 -lt INTEGER2 – INTEGER1 es numéricamentemenor que INTEGER2

-d FILE – FILE eexiste y es un directorio.

-e FILE – FILE existe.

-r FILE – FILE existe y el permiso de lectura estáconcedido.

-s FILE – FILE existe y su tamaño es mayor que cero (=no está vacío).

-w FILE – FILE existe y el permiso de escritura estaconcedido.

-x FILE – FILE existe y el permiso de ejecución estaconcedido.

Entrada, mas variables

Para la entrada BASH, si quieres tener un scriptinteractivo, puede usar ‘read’ para leer la variabledesde la entrada del usuario. Simple script deejemplo, greeting.sh:

echo Who are you?

read name

echo It's nice to meet you, $name.

Puesto que las comillas tienes un signicado especialen BASH, Éste logra escaparse a través de la barrainvertida. read -p y read -sp se pueden usar parasolicitar y guardar silencio, lo que signica no repetirla entrada escrita:

read ­p 'Username: ' user

read ­sp 'Password: ' pass

Almacena el nombre de usuario en $user y lacontraseña en $pass, sin mostrarlo. Si el usuariointroduce varias palabras cuando se le solicite, readvarx vary varz almacenaría tres palabras en las tresvariables diferentes. Si son más de tres palabras, laúltima variable almacena la entrada restante. Aquítienes algunas variables especiales que puedes usaren tus scripts:

$0 – El nombre del script Bash.

$1 – $9 – Los primeros 9 argumentos del script Bash.

$# – Número de argumentos pasados al script Bash.

$@ – Todos los argumentos ofrecidos al script Bash.

$? – El estado de salida del proceso ejecutadorecientemente.

$$ – El ID de proceso del script actual.

$USER – El nombre de usuario del usuario que ejecutael script.

$HOSTNAME – El hostname de la máquina en la que seejecuta el script.

$SECONDS – El número de segundos desde que seinició el script.

$RANDOM – Devuelve un número aleatorio diferentecada vez que se hace referencia.

$LINENO – Devuelve el número de la línea actual en elscript Bash.

Estos deberían ser bastante simples, con $0 necesitanalgo más de detalle: con esto, puedes hacer que tuscript actúe de manera diferente según el nombreque utilices, por ejemplo, comprimir y descomprimirarchivos. Hay disponible una lista completa devariables predenidas que puedes usar si escribes‘env’ en la línea de comando.

Con esto, ahora existen 3 métodos para pasar datos aun script BASH, y cuál de ellos es el mejor métododepende de la situación:

Argumentos de línea de comando, como ourscript.shfoo bar baz proporciona $1=foo, $2=bar and $3=baz.

Leer la entrada durante la ejecución del script, véaseantes.

Datos que han sido redirigidos al script mediante stdin.Esto es más para programadores experimentados,básicamente, es lo mismo que canalizar los resultadosde otro script o función hacia nuestro script con ‘|’.

Usamos comillas a veces sin explicar para qué sirven.Como BASH usa un espacio para separar loselementos, device = Odroid XU4; echo $device emiteun mensaje de error que indica que no se puedeencontrar ‘XU4’, porque el contenido de la variable essolo ‘Odroid’ y BASH intenta ejecutar ‘XU4’. Si quieresuna variable con espacios, necesitas usar comillas. Eltexto entre comillas indica a BASH que los contenidos

Page 38: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

deben considerarse como un solo elemento. Puedeusar comillas simples ‘ o dobles “. Dependiendo de loque quiera hacer, cualquiera de las dos esimportante:

Las comillas simples procesa literalmente todos loscaracteres. echo ‘I am $USER’ devuelve I soy $USER.

Las comillas dobles te permitirán realizar sustituciones(es decir, incluir variables que son valoradas). echo “Iam $USER” devuelve yo soy odroid.

También puede usar la sustitución de comandos paratener una variable rellena con la valoración de loscomandos – foo=$(ls/etc | wc -l); echo Hay entradas$foo en /etc. Muestra cuántas entradas deconguración hay en tu directorio /etc.

Si deseas tener variables disponibles para otrosscripts, debes exportarlas. export foo hace que $fooesté disponible para los siguientes scripts, pero sicambian $foo, no tendrá ningún impacto en el scriptde exportación. Piensa en ello como cuando hacesuna copia y la distribuyes.

Cálculos

Vamos a tratar los cálculos en BASH brevemente.Bastante es saber que $ ((…)) evalúa el término entrecorchetes dobles. De modo que, si quieres saberrápidamente cuántos segundos tiene un año, escribe:

$ echo $((60*60*24*365))

Esto debería devolver 31536000. Sin embargo, solo sepermiten valores enteros. Esto es así para la entradade datos y el resultado – BASH calcula el resultadofraccionado a la baja. echo $ ((4/5)) da 0, y solo echo $((5/5)) le dará 1 como resultado.

Aplicación práctica de BASH

Otro juego como recompensa por sobrevivir a todoslos aspectos teóricos de BASH, en torno a 350 líneasde scirpt BASH tiene el juego 2048. Puede jugarlo conlas teclas de cursor, el enlace al script lo tienes en lasreferencias. Descárgalo con wget.

Esta ha sido una extensa y magníca información, enla siguiente parte nos tomares un respiro en relacióna la teoría y analizaremos algunas aplicaciones delínea de comandos interesantes y unos cuantosscripts BASH útiles. También un poco más (¡solo unpoco!) de programación con bucles y funciones.

Referencias

http://linuxg.net/curly-brackets-expansion-in-bash-with-5-practical-examples/https://raw.githubusercontent.com/mydzor/bash2048/master/bash2048.sh

Page 39: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Driver de Video GBM October 1, 2018 By @AreaScout Juegos, ODROID-XU4, Tutoriales

Esta es una guía para instalar los drivers de espaciode usuario para activar GBM y compilar emuladoresde juegos retro. En primer lugar, mostraremos el usode la librería de espacio de usuario que activa MaliGBM. Veremos qué tal funciona y para qué se puedeusar. Utilizaremos la pantalla ODROID-VU5A paramostrar algunos ejemplos.

Instalaremos una imagen mínima de Ubuntu 18.04para XU4 y prepararemos el sistema para usar eldriver Mali GBM. Como resultado, PPSSPP podrá

ejecutarse para emular perfectamente los juegos sinningún tipo de problema. El video que muestra GoW –Chains of Olympus en ODROID-XU4 lo puedesencontrar en https://youtu.be/QegJlwkZk.

Instalar la imagen

Descarga la imagen: ubuntu-18.04-4.14-minimal-odroid-xu4-20180531.img.xzdesde https://odroid.in/ubuntu_18.04lts/. Extrae y

Page 40: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

escribe la imagen en el soporte de arranque,utilizando la guía de la wiki de Hardkernel.

Arranca el ODROID-XU4 usando el soporte dearranque y usa las credenciales de inicio de sesión:

Nombre de Usuario: root Contraseña: odroid

Actualiza el software del sistema usando loscomandos:

$ apt update && apt full­upgrade ­y

Actualiza el software del sistema usando loscomandos:

$ apt­get install mali­x11 libx11­dev libsm­

dev libxext­dev git cmake mercurial libudev­

dev libdrm­dev zlib1g­dev pkg­config

libasound2­dev alsa­utils htop bc ifupdown2

net­tools libssl1.0­dev mlocate bluez

libfreetype6­dev libgbm­dev

Agrega el usuario odroid y añade el ID del usuario alos grupos:

$ adduser odroid usermod ­aG

Sudo,adm,audio,operator,input,video,tty,staff,

games,users, plugdev,netdev,bluetooth,disk

odroid

Inicia sesión con el usuario recientemente creado:

$ su ­ odroid

Activa el prompt de color:

$ sed ­i '1iforce_color_prompt=yes' ~/.bashrc

$ su odroid

Cambia el driver de pantalla mali-x11 por el queactiva GBM. Normalmente, esto es relativamente fácilde hacer simplemente actualizando eglplatform.h,que es multiplataforma (es decir, fbdev x11 y GBM).Sin embargo, necesitamos también actualizar otrascabeceras

$ cd /usr/include/EGL

$ sudo rm eglplatform.h

$ sudo wget

https://www.khronos.org/registry/EGL/api/EGL/e

glplatform.h

$ cd /usr/include/GLES2

$ sudo rm *

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES2/gl2platform.h

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES2/gl2.h

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES2/gl2ext.h

$ cd /usr/include/GLES3

$ sudo rm *

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES3/gl3.h

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES3/gl31.h

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES3/gl32.h

$ sudo wget

https://www.khronos.org/registry/OpenGL/api/GL

ES3/gl3platform.h

Ahora consigue el nuevo driver binario:

$ cd ~

$ wget http://deb.odroid.in/bigmali.tar

$ tar xf bigmali.tar libmali.so

$ sudo mv libmali.so /usr/lib/arm­linux­

gnueabihf/mali­egl/.

Añade un enlace simbólico que falta:

$ sudo ln ­s /usr/lib/arm­linux­

gnueabihf/mali­egl/libmali.so

/usr/lib/arm­linux­gnueabihf/libGLESv1_CM.so.1

Agrega un nuevo directorio, abre el editor vi con elarchivo /usr/local/lib/pkgcong/gbm.pc:

$ sudo mkdir /usr/local/lib/pkgconfig

$ sudo vi /usr/local/lib/pkgconfig/gbm.pc

Añade la siguiente sección en el nuevo archivo:

prefix=/usr/local

exec_prefix=$prefix

includedir=$prefix/include

libdir=$exec_prefix/lib

Name: libgbm

Description: A small gbm implementation

Version: 19.0.0

Page 41: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Cflags: ­I$includedir

Libs: ­L$libdir ­lgbm

Guarda y cierra vi. Añade enlaces simbólicos paralibgbm:

$ cd /usr/local/lib/

$ sudo ln ­s /usr/lib/arm­linux­

gnueabihf/mali­egl/libmali.so libgbm.so

$ sudo ln ­s libgbm.so libgbm.so.19

$ sudo ln ­s libgbm.so.19 libgbm.so.19.0.0

$ sudo ldconfig

Coge gbm.h y borra el de mesa:

$ cd /usr/include

$ sudo rm gbm.h

$ sudo wget ­O gbm.h

https://pastebin.com/raw/5QUd011t

Descarga SDL2, compílalo e instálalo:

$ cd ~

$ hg clone http://hg.libsdl.org/SDL SDL2

$ cd SDL2

$ ./configure ­­disable­video­opengl ­­enable­

video­kmsdrm

Una vez nalizada la conguración, deberías ver estalínea:

Video drivers : dummy x11(dynamic)

kmsdrm(dynamic) opengl_es1 opengl_es2 vulkan

Ahora tenemos que editar SDL_cong.h para abrirpermanentemente nuestro libgbm.so.19 en lugar delibgbm.so.1 de Mesa. Compílalo e instálalo:

$ sed ­i ­e 's/libgbm.so.1/libgbm.so.19/g'

include/SDL_config.h

$ make ­j7

$ sudo make install

Una vez completada la compilación podemos hacerpruebas:

$ cd test $ ./congure $ make -j7 $ ./testgles2

Deberías ver un cubo giratorio, espera unos segundosy salte con la tecla ESC. Si estás utilizando VU5A,observarás algo similar a esto lo cual indica que esdemasiado lento:

INFO: 56.89 frames per second

Deberías alcanzar los 60 fps, sino tendremosproblemas con los emuladores. Si intentan mantenersolo 60 fps y no lo consiguen, entonces es querealmente se ralentizarán mucho las cosas. Podremosseguir observando los videos de introducción de losjuegos PPSSPP.

Compilando el Kernel para >60fps en VU5A

Tenemos que parchear el kernel para conseguir másde 56 fps de procesamiento. Hasta que se publiquenlos cambios necesarios en el kernel principal,tendremos que hacerlo por nuestra cuenta.

El reloj de píxeles y, probablemente, algunos valoresde sincronización H o V de la conguración HDMI PHYno son los correctos para la pantalla VU5A. Losdetalles los puedes encontrar enhttps://goo.gl/CVJYS6. Hardkernel tomó el máscercano, pero lo eligieron para estar por debajo de los60 fps. Para la emulación es mejor elegir el que estépor encima de los 60 fps, de modo que al naltendremos una velocidad de fotogramas de 64 fps.

Asegúrate de tener suciente espacio en elalmacenamiento del sistema y luego coge la fuentedel kernel. Seleccionaremos la conguración de HDMIPHI del siguiente reloj de píxeles más alto, en realidadlo que hay dentro de esta conguración HDMI PHY esdesconocido para el público. Hemos preguntado avarios desarrolladores, pero nadie ha sabido darmeuna respuesta, solo que en el kernel 3.10 hay unpequeño código para cambiar esta conguración de32 bytes. Así que solo se conocen unos cuantos bytes,aunque no cambian la velocidad de refresco.

$ git clone

https://github.com/hardkernel/linux.git

$ cd linux

$ wget ­O VU5A.patch

https://pastebin.com/raw/aWEYArWL

$ patch ­p1 < VU5A.patch

$ make odroidxu4_defconfig

$ make ­j7

$ sudo cp arch/arm/boot/zImage /media/boot/.

$ sudo cp arch/arm/boot/dts/exynos5422­

odroidxu4.dtb /media/boot/.

$ sudo make modules_install

Page 42: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Reinicia y testea el valor de fps nuevamente:

$ cd SDL2/test

$ ./testgles2

Ahora deberías ver algo como esto:

INFO: 64.01 frames per second

Ahora compilaremos PPSSPP y luego RetroArch con elback-end GBMS KMSDRM, inclusive libretro

Compilando PPSSPP

PPSSPP es un emulador de PSP para Android.

Coge el código fuente y aplica un parche necesario:

$ cd ~

$ git clone ­­recursive

https://github.com/hrydgard/ppsspp.git

FFmpeg debe compilarse antes de compilar el binarioPPSSPP. Los binarios pre-compilados son todos parapuntos otantes débiles y necesitamos hardfp:

$ ./linux_armhf.sh

$ cd ..

Antes de que empecemos a compilar, debemosconvertir nuestra copia de/usr/include/GLES2/gl2ext.h en una especíca delproveedor deshabilitando el uso deGL_EXT_buer_storage. Se crea un archivo de copiade seguridad gl2ext.h.back. Nuestra librería Mali noincluye/exporta esa función, así que no podemosdenirla.

$ sudo sed ­i.bak '/^#ifndef

GL_EXT_buffer_storage$/,/^$/d'

/usr/include/GLES2/gl2ext.h

Es posible que quieras congurar el sistema para usarsolo 4 núcleos en FFmpeg con el n de realizarpequeños ajustes y experimentar. He observado queFFmpeg con subprocesamiento no funciona muy biencuando se eligen todos los núcleos con HMP(cambiando las tareas más exigentes de LITTLE CPU aBIG CPU). Para esto, puede editar el archivoCore/HW/MediaEngine.cpp en la línea número 475, ymodicarla para usar solo 4 núcleos (mejor cambiarde 4 LITTLE a 4 BIG en lugar de usar los 8 núcleos).

No obstante, esto ha sido analizado en Moonlight conarchivos de video 1080p de juegos por streaming. Losarchivos de video PPSSPP no son tan grandes, demodo que, tal vez no requieran tanta CPU, así quepuede afectar muy poco o prácticamente nada:

av_dict_set(&opt, "threads", "4", 0);

Ahora, necesitamos generar el Makele.

$ cmake ­DUSING_EGL=OFF ­DUSING_GLES2=ON ­

DUSE_FFMPEG=YES ­DUSE_SYSTEM_FFMPEG=NO.

Empieza a compilar el binario:

$ make ­j7

Si estás utilizando VU5A, ahora contarás con lafunción de pantalla táctil en el menú y tambiénpodrás activar “los controles táctiles en pantalla” siquieres. Puedes ver un video enhttps://youtu.be/QegJlwkZk?t=374. Ahora puedesmarcar tu PPSSPP emulada con una única regióngenerando la correspondiente conguración regional.En mi caso, utilicé de_AT:

$ sudo locale­gen de_AT.UTF­8

$ sudo update­locale LANG=de_AT.UTF­8

Algunos juegos pueden usarla para el idioma dentrodel juego. La descarga https://goo.gl/BhHLxmcontiene mi conguración para GoW, incluidosalgunos reemplazos de texturas para Star Wars, TheClone Wars y Star Wars, y The Force Unleashed. Estosjuegos son jugables.

Page 43: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

El directorio de conguración de PPSSPP deberíaverse así:

odroid@odroid:~$ tree ­d .config/ppsspp/

.config/ppsspp/

PSP

PPSSPP_STATE

SAVEDATA

ULES01284SAVE00

ULES01376SYSDATA

SYSTEM

CACHE

TEXTURES

ULES00981

ULES01284

10 directories

Compilar y congurar RetroArch

Puedes ver un video de esto enhttps://youtu.be/6Ewgov7_TXM. Además deRetroArch, necesitamos un pequeño parche que nosevita tener el menú con sólo un fondo negro:

$ git clone

https://github.com/libretro/RetroArch.git

$ cd RetroArch

$ wget ­O retro.patch

https://pastebin.com/raw/1SCeb8EG

$ patch ­p1 < retro.patch

$ ./configure ­­enable­opengles3 ­­enable­

opengles ­­enable­neon ­­enable­floathard ­­

enable­freetype

$ make ­j7

$ sudo make install

$ retroarch

Aplica algunas conguraciones útiles. Simplemente esuna sugerencia para que congures RetroArch, unavez instalado ya no tendrás que seguir este tutorial.Actualiza los recursos (iconos, imágenes de fondo yesas cosas). Puedes encontrar la informaciónnecesaria en los siguientes menús:

MainMenu ­> Online Updater ­> Update Assets

Te sugerimos que también actualices estos paquetes:

Core Info Files, Joypad Profiles, Database,

GLSL Shaders

Además, puedes usar Core Updater para conseguiralgunos emuladores. A continuación, activa laConguración avanzada:

Settings ­> User Interface ­> Show Advanced

Settings ­> ON

Activa Threaded Video, notarás que mejorarábastante la emulación:

Settings ­> Video ­> Threaded Video ­> ON

Activa el contador de FPS, es útil ver lo rápido que seejecuta la emulación, especialmente cuando estáscongurando cosas:

Settings ­> Onscreen Display ­> Onscreen

Notifications ­> Display Framerate ­> ON

Settings ­> Onscreen Display ­> Onscreen

Notifications ­> Show frame count on FPS

Display ­> OFF

Settings ­> Driver ­> Audio Driver ­>

alsathread

y si está utilizando VU5A:

Settings ­> Onscreen Display ­> Onscreen

Notifications ­> Notification size ­> 18

Settings ­> Onscreen Display ­> Onscreen

Notifications ­> Notification X position ­>

0.010

Settings ­> Onscreen Display ­> Onscreen

Notifications ­> Notification Y position ­>

0.010

Page 44: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Si ya tienes juegos instalados en tu ODROID-XU4,búscalos utilizando Import Content -> Scan Directoryy selecciona la carpeta donde almacenas tus juegospara que RetroArch los escanee. Aparecerán en laparte derecha del menú después de un tiempo.

Compilar y congura Versatile CommodoreEmulator

Puedes ver un video de esto en:https://youtu.be/ItkppnXWd9U

Primero instalaremos Cice libretro y luego mamelibretro.

Instalar los prerrequisitos:

$ sudo apt­get install bison

Descarga el código fuente y aplica el parche paramáquinas VIC-II Commodore si quieres. Estoeliminará los margenes de los modelos de máquinaC64 y C128, los juegos se ven mejor sin él. Este es unmodo rápido de hacerlo. Una mejor forma seríaañadirlo a la conguración de libretro.

Si un juego sobrepasa los márgenes, no funcionará yel sistema probablemente se comporte de forma

indebida, aunque son pocos los juegos los que seacercan a los márgenes.

$ git clone https://github.com/libretro/vice­

libretro.git

$ cd vice­libretro

$ wget ­O noborder.patch

https://pastebin.com/raw/VwtSDj50

$ patch ­p1 < noborder.patch

Empieza a compilar una máquina Commodore. Lostipos de máquina válidos son:

x128, x64, x64sc, x64dtv, x64scpu, xplus4,

xvic, xcbm5x0, xcbm2, xpet

Debes añadir la variable EMUTYPE seguida del tipo demáquina que quieres compilar. Si no agregas estavariable, entonces la x64 (C64) será el tipo demáquina por defecto.

$ make EMUTYPE=x64 ­f Makefile.libretro ­j7

Si deseas compilar más de un tipo de máquina, noolvides ejecutar el comando clean sobre el proyecto,de lo contrario el núcleo no funcionará:

$ make EMUTYPE=x64 ­f Makefile.libretro ­j7

clean

Conguración de Retroarch

Copia el binario en la carpeta cores del RetroArch:

$ cp vice_x64_libretro.so

~/.config/retroarch/cores/.

Inicia RetroArch y selecciona el núcleo vice – inicia elnúcleo sin juego o con él. Presiona el botón Guía en tumando o F1 en el teclado y desplázate hacia abajohasta las Opciones, entra y desactivaDriveTrueEmulaton-> OFF. Te llevará algo de tiempocargar un juego y congurar Controller0Type en eljoystick.

También puede habilitar una relación de aspecto de16:10. Es un buen término medio entre 4: 3 y 16: 9.

Settings ­> Video ­> Aspect Ratio ­> 16:10

Con el botón de Inicio puedes activar la conguraciónGUI nuklear (el botón Select debe pulsarse una vezpara activar el raton) desde allí puede elegir el Joyport

Page 45: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

C64, cpu de la máquina, tipo de sid y mucho más. Elteclado en pantalla se activa con el botón x (diseño deXbox)

Compilar y congurar Reicast Core – un emuladorde Dreamcast

El video lo pueden encontraren https://youtu.be/j0jEUcQx-vM. Descarga la fuentey aplica un parche como de costumbre:

$ cd ~

$ git clone

https://github.com/libretro/reicast­

emulator.git

$ wget ­O xu4.patch

https://pastebin.com/raw/pfVjnVs3

$ patch ­p1 < xu4.patch

$ platform=odroid ARCH=arm make ­j7

$ strip reicast_libretro.so

$ cp reicast_libretro.so

~/.config/retroarch/cores/.

Primero necesitas alguna bios para NAOMI yDreamcast. Unos buenos enlaces para conseguirlas yusarlasson https://goo.gl/a5JbMT y https://docs.libretro.com/library/reicast/. Si deseas conocer la suma decomprobación md5 del archivo bios de NAOMI, puedeconsultar el archivo de información:

/home/odroid/.config/retroarch/cores/reicast_l

ibretro.info

Dentro de un juego, abre el menú RetroArch y dirígetea las opciones básicas. Encuentra la siguienteconguración y cámbiala a los siguientes valores, queson los más importantes para lograr una velocidaddecente:

reicast_framerate = "normal"

reicast_enable_rttb = "enabled"

reicast_threaded_rendering = "enabled"

Para comentarios, preguntas y sugerencias, visita elpost original enhttps://forum.odroid.com/viewtopic.php?f=98&t=32173.

Page 46: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Campamento de Programación – Parte 6: Generar Sonido desdeel Altavoz del ODROID-GO October 1, 2018 By Justin Lee ODROID-GO, Mecaniqueo, Tutoriales

Vamos a aprender cómo usar la salida DAC como ungenerador de tonos. La librería odroid_go.h y suinstancia GO tienen una instancia Speaker para usarel altavoz con facilidad. Por lo tanto, puedes jugar unpoco con GO.Speaker. Algunas de las funciones deGO.Speaker son:

setVolume(): para ajustar el nivel de volumen. Elparámetro dado puede ser de 0 a 11 (silencio).

playMusic(): para reproducir música que está escritaen números enteros de 8 bits. El parámetro dado esuna frecuencia de muestreo correcta para reproducirmúsica.

beep(): para reproducir un simple pitido.

tone(): para reproducir un simple pitido con losparámetros de frecuencia y duración en milisegundos.Puedes omitir el argumento de duración.

Vamos a escribir el código que reproduce un sonidocuando se presiona un botón. Usaremos los botones

A, B e Inicio y haremos que estos botonesreproduzcan un sonido que sea diferente entre sí.Para obtener información sobre cómo se utilizan losbotones, consulta el ejemplo de los Botones. Tambiénvamos a mostrar en la pantalla LCD qué botón se hapresionado.

Para conocer cómo usar la pantalla LCD, consulta elejemplo de Hello World. Podemos escribir el códigofuente tal y como se muestra a continuación. Inicia laplaca llamando a la función GO.begin () y coloca elcódigo dentro de la función loop () que se activacuando se presiona el botón wasPressed().

#include

void setup()

// put your setup code here, to run once:

GO.begin();

GO.lcd.printf("ODROID­GO speaker test:

Page 47: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

");

GO.Speaker.setVolume(8);

GO.Speaker.playMusic(m5stack_startup_music,

25000);

void loop()

// put your main code here, to run repeatedly:

if(GO.BtnA.wasPressed())

GO.lcd.printf("wasPressed: A

");

GO.Speaker.beep();

if(GO.BtnB.wasPressed())

GO.lcd.printf("wasPressed: B

");

GO.Speaker.tone(3000, 200);

if(GO.BtnStart.wasPressed())

GO.lcd.printf("wasPressed: Start

");

GO.Speaker.playMusic(m5stack_startup_music,

25000);

GO.update();

Presiona CTRL-U para compilar y cargar el esquema, ypresiona el boton A, B o Inicio para reproducir unsonido.

Ejemplo completo

El ejemplo completo lo tienes disponible haciendo clicen el menú Files → Examples → ODROID-GO →Speaker para importar y presiona CTRL-U paracompilar/cargar, como se muestra en la Figura 1.

Figura 1 – Accediendo al ejemplo completo

Para comentarios, preguntas y sugerencias, visita elartículo originalen https://wiki.odroid.com/odroid_go/arduino/06_speaker.

Page 48: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Conociendo un ODROIDian: David Knight October 1, 2018 By Rob Roy Conociendo un ODROIDian

Por favor háblanos un poco sobre ti. Vivo en Newcastle,Reino Unido, trabajando como optometrista en elsector de la cirugía refractiva. Mi trabajo diarioconsiste en lidiar con pacientes que se han sometidoa una cirugía ocular por láser o de cataratas. Fui muyaplicado e introvertido en mi juventud, siempre teniala cabeza en los libros. Era bastante bueno enmatemáticas, ciencias y ajedrez. En la década de los80, la informática era todavía una asignatura bastantenovedosa y por aquel entonces me interesaba más labiología. Recuerdo haber trabajado en una fábrica devidriado de gafas durante un verano y poco despuésdecidí licenciarme en Optometría. Después detrabajar en sector privado durante una década,necesitaba un nuevo desafío. Fue entonces cuandome pase a la cirugía refractiva y no me he arrepentidopara nada. Actualmente, cuando no estoy trabajando,formando o educando, estoy nalizando un título atiempo parcial de Informática y TI. ¡La programaciónes mi pasatiempo y “mi” tiempo!

Page 49: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

Figura 1 – David Knight

Estoy felizmente casado y tengo cuatro hijos. Miesposa es entrenadora de tness, así que no tengoexcusa para mantenerme en forma. Tres de mis hijoshan terminado la educación y el más joven aún estáen la escuela primaria.

¿Cómo empezaste con los ordenadores? Mi primerordenador fue el ZX Spectrum 48K. ¡Recuerdo haberjugado al Manic Miner cuando tenía 6 años! Como nopodíamos permitirnos juegos, recuerdo haber escritoalgunos programas BÁSICOS que encontré enrevistas, pero realmente no progresé mucho más.Todavía tengo mi Spectrum aunque,lamentablemente, el teclado ha sucumbido al pasodel tiempo y ya no funciona. Creo que ahí surgió mipasión por la informática, ya que recuerdo que queríaaprender a programar. En la universidad, fui el únicoestudiante no informático que se atrevió a entrar enel laboratorio de Unix (¡aunque admito que fueprincipalmente para jugar a MUDs)!

Después de muchas demoras en 2009, empecé ainteresarme supercialmente por Linux, aprendiendoBash en el proceso. Quería crear una distribución

Linux para personas con discapacidades visuales yme involucré en el proyecto Vinux, que modicabauna distribución de Ubuntu para hacerla másaccesible a los usuarios con discapacidades visuales,que aún sigue vigente. Para aquel entonces, habíaaprendido un poco de Python, pero realmente queríafamiliarizarme con C y C++. Como ejercicio, decidíempezar exportar Passage al portátil GCW Zero. ¡Fuesin duda un ejercicio lleno de frustración! Después demucho tiempo perdido, logré compilarlo y aúnrecuerdo la emoción de ver cómo se ejecutaba eljuego en mi sistema. ¡Estaba enganchado!(https://boards.dingoonity.org/gcw-releases/passage/)

Figura 2 – La maravillosa familia de David.

Desde entonces, creo que he exportado alrededor de30 emuladores a consolas portátiles, disfrutando conlos desafíos que cada proyecto me suponía y, porsupuesto, aprendiendo durante todo el proceso.Disfruto especialmente con el desafío de optimizar elcódigo para que pueda ejecutarse sin problemas ensistemas más lentos. Dedico demasiado tiempo amejorar el rendimiento o me obsesiono con laspequeñas funciones de las que nadie se percata

Page 50: Juegos Linus en ODROID: Nostalgia por los Juegos …...Juegos Linus en ODROID: Nostalgia por los Juegos Parte 1 – Juegos a los que Siempre Vuelvo October 1, 2018 Quisiera hablar

excepto yo, no me gusta el código ineciente ni usarmás potencia de la necesaria. También disfrutotrabajando en la interfaz de usuario para que loscontroles sean intuitivos y tengan sentido.

¿Qué te atrajo de la plataforma ODROID? Estababuscando un proyecto de electrónica introductoriofácil y divertido para montarlo con mi hijo Alexanderdurante las vacaciones de verano. Tenía que ser fácilde construir sin la necesidad de soldar componentes.Después de ver multitud de proyectos de RaspberryPi, descubrí el ODROID-GO. Realmente disfrutóconstruyendo el kit, y sus juegos favoritos eran Pac-man y Frogger. Me sorprendió la cantidad de potenciade procesamiento disponible en el ESP32 y locómodos que eran los controles. El único problemaera que no existía un emulador de Spectrum.

¿Cómo usas tus ODROIDs? Nuestro ODROID-GO pasa lamayor parte de su tiempo en mi maletín del trabajo(por los largos viajes en tren) o conectado a miordenador cuando estamos programando con él.Realmente disfrutamos ajustando la conguración yviendo cómo afecta al rendimiento de losemuladores. Hace poco he desarrollado una versiónde muy bajo consumo que llegar a funcionar durante19 horas.

¿Cuál es tu ODROID favorito y por qué? En estemomento solo tengo mi ODROID-GO. Me atraen losdispositivos portátiles ecientes de bajo consumo yme encanta el ESP32, ¡tiene un montón de potencia yusa muy poca energía! Realmente disfruté leyendo laGuía de programación y aprendiendo del ricoconjunto de características que hay disponibles paralos desarrolladores.

¿Qué innovaciones te gustaría ver en los futurosproductos Hardkernel? Como dispositivo portátil, loideal es que el ODROID-GO tuviera un conector paraauriculares (estoy mirando tu Apple). Por supuesto, elESP32 tiene capacidad para Bluetooth, así que quizás

los auriculares inalámbricos sean una posibilidad enel futuro. Además, actualmente el volumen de sonidobaja al reducir la profundidad de bits de las muestrasde sonido, produciendo un sonido de mala calidad abajo volumen. Sería genial tener un potenciómetrocon quizás, algún tipo de botón o rueda quepermitiese controlar el volumen. De forma similar, elbrillo de la pantalla podría controlarse de formaautónoma por un LDR.

¿Qué aciones e intereses tienes aparte de losordenadores? Aparte de disfrutar con los juegos retro,no me considero realmente un jugador. Cuando nopaso tiempo con mi trabajo y mi familia, disfrutocorriendo, montando en bicicleta, cantando en uncoro y haciendo malabares.

¿Qué consejo le darías a alguien que quiera aprendermás sobre programación? La razón por la que meadentré en la programación fue porque necesitabaentender cómo funcionan los ordenadores y prontome di cuenta de las innumerables posibilidades queofrecía. Como principiante, desearía que alguien mehubiera relagado “How to Think Like a ComputerScientist”. Es una muy buena introducción a laprogramación de los ordenadores. Cuando aprendes,es importante conseguir pequeñas victorias; Scratches una forma estupenda de enseñar los fundamentosy mantener el interés, especialmente con los niñosmás pequeños. Empieza con lo divertido, pequeñosproyectos con simples desafíos que resolver. StreetFighter 2 con gatos? ¡Sí, lo hicimos con Scratch!

Enlaces

Sitio web del proyectoVinux http://www.vinux.org.uk/about.html Miprimera migracióncompilada https://boards.dingoonity.org/gcw-releases/passage/ Mis sitios Github yBitBucket https://github.com/DavidKnight247,https://bitbucket.org/DavidKnight247