Skip to content

Commit 167b0f9

Browse files
committed
updated arcade
1 parent b148a90 commit 167b0f9

7 files changed

Lines changed: 153 additions & 81 deletions

File tree

docs/_/js/search-ui.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,14 @@
133133
document.head.appendChild(link);
134134
}
135135

136+
function highlightPageTitle (title, terms) {
137+
const positions = getTermPosition(title, terms);
138+
return buildHighlightedText(title, positions, snippetLength)
139+
}
140+
136141
function highlightSectionTitle (sectionTitle, terms) {
137142
if (sectionTitle) {
138-
const text = sectionTitle.title ?? sectionTitle.text;
143+
const text = sectionTitle.text;
139144
const positions = getTermPosition(text, terms);
140145
return buildHighlightedText(text, positions, snippetLength)
141146
}
@@ -151,7 +156,8 @@
151156
return []
152157
}
153158

154-
function highlightText (text, terms) {
159+
function highlightText (doc, terms) {
160+
const text = doc.text;
155161
const positions = getTermPosition(text, terms);
156162
return buildHighlightedText(text, positions, snippetLength)
157163
}
@@ -177,12 +183,9 @@
177183
}
178184
}
179185
return {
180-
pageTitleNodes: highlightText(doc.title, terms.title || []),
186+
pageTitleNodes: highlightPageTitle(doc.title, terms.title || []),
181187
sectionTitleNodes: highlightSectionTitle(sectionTitle, terms.title || []),
182-
pageContentNodes: highlightText(
183-
sectionTitle?.title && sectionTitle.text ? sectionTitle.text : doc.text,
184-
terms.text || []
185-
),
188+
pageContentNodes: highlightText(doc, terms.text || []),
186189
pageKeywordNodes: highlightKeyword(doc, terms.keyword || []),
187190
}
188191
}
@@ -196,12 +199,12 @@
196199
let sectionTitle;
197200
if (ids.length > 1) {
198201
const titleId = ids[1];
199-
sectionTitle = doc.titles.find(function (item) {
202+
sectionTitle = doc.titles.filter(function (item) {
200203
return String(item.id) === titleId
201-
});
204+
})[0];
202205
}
203206
const metadata = item.matchData.metadata;
204-
const highlightingResult = highlightHit(metadata, sectionTitle || doc, doc);
207+
const highlightingResult = highlightHit(metadata, sectionTitle, doc);
205208
const componentVersion = store.componentVersions[`${doc.component}/${doc.version}`];
206209
if (componentVersion !== undefined && currentComponent !== componentVersion) {
207210
const searchResultComponentHeader = document.createElement('div');

docs/atomvm/arcade.html

Lines changed: 49 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -242,13 +242,18 @@ <h1 class="page">Proyecto: Videojuego Arcade</h1>
242242
<h2 id="componentes-del-proyecto"><a class="anchor" href="#componentes-del-proyecto"></a>Componentes del Proyecto</h2>
243243
<div class="sectionbody">
244244
<div class="paragraph">
245-
<p>El proyecto consiste en usar los componentes de hardware cual estarán conectados
246-
via GPIO o Conexión Serial (ESP32) a una Raspberry PI o Computador con un videojuego creado en PICO8 (<a href="https://pico-8.fandom.com/wiki/GPIO" class="bare">https://pico-8.fandom.com/wiki/GPIO</a>) o TIC80 (<a href="https://tic80.com/play" class="bare">https://tic80.com/play</a>).
247-
Se debe crear o seleccionar un juego y habilitar controlarlo con los sensores. Además de mostrar información
248-
del juego en los displays segmentados.</p>
245+
<p>El proyecto consiste en usar los componentes de hardware que estarán conectados
246+
via GPIO o Conexión Serial (ESP32) a una Raspberry PI o Computador con un videojuego creado en PICO-8 (<a href="https://pico-8.fandom.com/wiki/GPIO" class="bare">https://pico-8.fandom.com/wiki/GPIO</a>) o TIC-80 (<a href="https://tic80.com/play" class="bare">https://tic80.com/play</a>).
247+
Se debe crear o seleccionar un juego y habilitar controlarlo con los sensores y gatillar eventos
248+
como leds u otros movimientos de los actuadores.</p>
249+
</div>
250+
<div class="paragraph">
251+
<p>Para este ejemplo se utilizará un potenciómetro y un led rgb para enviar eventos
252+
al juego y mostrar un color azul si se llega a un puntaje específico y
253+
un color rojo si se pierde una vida.</p>
249254
</div>
250255
<table class="tableblock frame-all grid-all stretch">
251-
<caption class="title">Table 1. Componentes de Arcade Posibles</caption>
256+
<caption class="title">Table 1. Componentes Electrónicos Necesarios</caption>
252257
<colgroup>
253258
<col style="width: 33.3333%;">
254259
<col style="width: 33.3333%;">
@@ -394,7 +399,18 @@ <h2 id="tic-80"><a class="anchor" href="#tic-80"></a>TIC-80</h2>
394399
</div>
395400
</div>
396401
<div class="paragraph">
397-
<p>El siguiente cartucho puede ser usado para probar</p>
402+
<p>También se puede redireccionar directamente el stdout al daemon que usaremos
403+
como puente entre la ESP32 y TIC-80.</p>
404+
</div>
405+
<div class="listingblock">
406+
<div class="title">Redireccionar stdout via pipes</div>
407+
<div class="content">
408+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ ./tic80 esp32.tic | daemon</code></pre>
409+
</div>
410+
</div>
411+
<div class="paragraph">
412+
<p>El siguiente código demuestra como utilizar la función <code>trace()</code>
413+
para enviar información a stdout desde TIC-80.</p>
398414
</div>
399415
<div class="listingblock">
400416
<div class="title">Primero Creamos un cartucho de Lua</div>
@@ -403,7 +419,7 @@ <h2 id="tic-80"><a class="anchor" href="#tic-80"></a>TIC-80</h2>
403419
</div>
404420
</div>
405421
<div class="listingblock">
406-
<div class="title">Añadimos las funciones de debugging</div>
422+
<div class="title">Demostración de Uso de trace()</div>
407423
<div class="content">
408424
<pre class="highlightjs highlight"><code class="language-lua hljs" data-lang="lua">-- title: esp32 test cart
409425
-- author: ninjas.cl
@@ -603,7 +619,7 @@ <h2 id="daemon"><a class="anchor" href="#daemon"></a>Daemon</h2>
603619
<div class="paragraph">
604620
<p>El Daemon es el encargado de comunicar el ESP32 con TIC-80. Este se ejecuta en el mismo computador
605621
al cual el ESP32 se conecta por USB y ejecuta el TIC-80. Este puede ser programado en Go o Python
606-
y debe comunicarse via serial con el ESP32 y leer el archivo <code>out.log</code> generado por TIC-80.</p>
622+
y debe comunicarse via serial con el ESP32 y leer el <code>stdout</code> generado por TIC-80.</p>
607623
</div>
608624
<div class="ulist">
609625
<ul>
@@ -624,7 +640,9 @@ <h2 id="daemon"><a class="anchor" href="#daemon"></a>Daemon</h2>
624640
<div class="sect2">
625641
<h3 id="ejemplo-de-daemon-en-go"><a class="anchor" href="#ejemplo-de-daemon-en-go"></a>Ejemplo de Daemon en Go</h3>
626642
<div class="paragraph">
627-
<p>Este ejemplo de Daemon en Go muestra cómo leer la entrada serial del ESP32, simular eventos de teclado para TIC-80, y cómo procesar comandos que representarían eventos del juego para enviar de vuelta al ESP32 (en este caso, para controlar el LED RGB).</p>
643+
<p>Este ejemplo de Daemon en Go muestra cómo leer la entrada serial del ESP32,
644+
simular eventos de teclado para TIC-80, y cómo procesar comandos que representarían
645+
eventos del juego para enviar de vuelta al ESP32 (en este caso, para controlar el LED RGB).</p>
628646
</div>
629647
<div class="listingblock">
630648
<div class="title">main.go</div>
@@ -923,7 +941,11 @@ <h3 id="ejemplo-de-daemon-en-go"><a class="anchor" href="#ejemplo-de-daemon-en-g
923941
<div class="sect2">
924942
<h3 id="programa-para-esp32-elixiratomvm"><a class="anchor" href="#programa-para-esp32-elixiratomvm"></a>Programa para ESP32 (Elixir/AtomVM)</h3>
925943
<div class="paragraph">
926-
<p>Este programa está diseñado para ejecutarse en un ESP32 utilizando AtomVM. Su función principal es leer el estado de los sensores de entrada (botones y potenciómetro) y enviar esta información por el puerto serial al Daemon en el computador. Adicionalmente, escucha el puerto serial para recibir comandos del Daemon (basados en eventos del juego TIC-80) y controlar el LED RGB.</p>
944+
<p>Este programa está diseñado para ejecutarse en un ESP32 utilizando AtomVM.
945+
Su función principal es leer el estado de los sensores de entrada (botones y potenciómetro)
946+
y enviar esta información por el puerto serial al Daemon en el computador.
947+
Adicionalmente, escucha el puerto serial para recibir comandos del Daemon
948+
(basados en eventos del juego TIC-80) y controlar el LED RGB.</p>
927949
</div>
928950
<div class="listingblock">
929951
<div class="title">AtomVM Elixir</div>
@@ -1108,15 +1130,19 @@ <h3 id="programa-para-esp32-elixiratomvm"><a class="anchor" href="#programa-para
11081130
<h2 id="ejecución"><a class="anchor" href="#ejecución"></a>Ejecución</h2>
11091131
<div class="sectionbody">
11101132
<div class="paragraph">
1111-
<p>Luego de modificar el código fuente del juego, crear el proyecto de Go y flashear el programa al ESP32, el proyecto se puede ejecutar con el comando <code>tic80 ./car_adventure.tic | sudo go run main.go</code>. Esto conecta el <code>stdout</code> del juego TIC-80 con el Daemon de Go a través de una pipe.</p>
1133+
<p>Luego de modificar el código fuente del juego, crear el proyecto de Go y
1134+
flashear el programa al ESP32, el proyecto se puede ejecutar con el comando
1135+
<code>tic80 ./car_adventure.tic | sudo go run main.go</code>. Esto conecta el <code>stdout</code> del
1136+
juego TIC-80 con el Daemon de Go a través de una pipe.</p>
11121137
</div>
11131138
</div>
11141139
</div>
11151140
<div class="sect1">
11161141
<h2 id="flujo-de-datos-y-control"><a class="anchor" href="#flujo-de-datos-y-control"></a>Flujo de Datos y Control</h2>
11171142
<div class="sectionbody">
11181143
<div class="paragraph">
1119-
<p>Para entender cómo todos los componentes interactúan, podemos seguir el flujo de datos y control a través del sistema:</p>
1144+
<p>Para entender cómo todos los componentes interactúan, podemos seguir el flujo de
1145+
datos y control a través del sistema:</p>
11201146
</div>
11211147
<div class="olist arabic">
11221148
<ol class="arabic">
@@ -1232,6 +1258,17 @@ <h2 id="demo"><a class="anchor" href="#demo"></a>Demo</h2>
12321258
</div>
12331259
</div>
12341260
</div>
1261+
<div class="sect1">
1262+
<h2 id="código-fuente"><a class="anchor" href="#código-fuente"></a>Código Fuente</h2>
1263+
<div class="sectionbody">
1264+
<div class="paragraph">
1265+
<p>Todo el código fuente puede ser visualizado en:</p>
1266+
</div>
1267+
<div class="paragraph">
1268+
<p><a href="https://github.com/ElixirCL/elixir-robotics/tree/main/modules/atomvm/examples/tic80" class="bare">https://github.com/ElixirCL/elixir-robotics/tree/main/modules/atomvm/examples/tic80</a></p>
1269+
</div>
1270+
</div>
1271+
</div>
12351272
<nav class="pagination">
12361273
<span class="prev"><a href="remote.html">Conexión Remota</a></span>
12371274
<span class="next"><a href="../colosseo/colosseo.html">Coliseo Atómico</a></span>

docs/search-index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)