Skip to content

Commit 160d272

Browse files
committed
added test cart
1 parent ccaea4a commit 160d272

4 files changed

Lines changed: 352 additions & 96 deletions

File tree

docs/esp32/project-arcade.html

Lines changed: 177 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ <h1 class="page">Proyecto: Videojuego Arcade</h1>
240240
</div>
241241
</div>
242242
<div class="sect1">
243-
<h2 id="proyecto"><a class="anchor" href="#proyecto"></a>Proyecto</h2>
243+
<h2 id="componentes-del-proyecto"><a class="anchor" href="#componentes-del-proyecto"></a>Componentes del Proyecto</h2>
244244
<div class="sectionbody">
245245
<div class="paragraph">
246246
<p>El proyecto consiste en usar los componentes de hardware cual estarán conectados
@@ -290,22 +290,79 @@ <h2 id="proyecto"><a class="anchor" href="#proyecto"></a>Proyecto</h2>
290290
</tr>
291291
</tbody>
292292
</table>
293+
<div class="paragraph">
294+
<p>También se puede obtar por un Kit de componentes básicos como</p>
295+
</div>
296+
<div class="paragraph">
297+
<p><a href="https://mcielectronics.cl/shop/product/kit-basico-de-inicio-de-componentes-electronicos-para-esp32-esp-32s/" class="bare">https://mcielectronics.cl/shop/product/kit-basico-de-inicio-de-componentes-electronicos-para-esp32-esp-32s/</a></p>
298+
</div>
299+
<div class="paragraph">
300+
<p>Componentes del Kit</p>
301+
</div>
293302
<div class="ulist">
294303
<ul>
295304
<li>
296-
<p>Documentación de Pico-8: <a href="https://www.lexaloffle.com/dl/docs/pico-8_manual.html#GPIO" class="bare">https://www.lexaloffle.com/dl/docs/pico-8_manual.html#GPIO</a></p>
305+
<p>1 placa de desarrollo ESP32</p>
306+
</li>
307+
<li>
308+
<p>1 x OLED de 0,96 pulgadas</p>
309+
</li>
310+
<li>
311+
<p>1X Protoboard 830pts</p>
312+
</li>
313+
<li>
314+
<p>1 X módulo para evitar obstáculos</p>
315+
</li>
316+
<li>
317+
<p>1 módulo de fotorresistencia</p>
318+
</li>
319+
<li>
320+
<p>1 X Módulo de temperatura y humedad DHT11</p>
321+
</li>
322+
<li>
323+
<p>1 sensor de movimiento PIR de 2/2″</p>
297324
</li>
298325
<li>
299-
<p>Serial de Pico-8: <a href="https://pico-8.fandom.com/wiki/Serial" class="bare">https://pico-8.fandom.com/wiki/Serial</a> y <a href="http://pico8wiki.com/index.php?title=Serial" class="bare">http://pico8wiki.com/index.php?title=Serial</a></p>
326+
<p>1 potenciómetro X (10K)</p>
300327
</li>
301328
<li>
302-
<p>WiringPI: <a href="https://github.com/WiringPi/WiringPi" class="bare">https://github.com/WiringPi/WiringPi</a></p>
329+
<p>1 cable micro USB</p>
303330
</li>
304331
<li>
305-
<p>PigPio (WiringPI Alternativa): <a href="https://github.com/joan2937/pigpio" class="bare">https://github.com/joan2937/pigpio</a></p>
332+
<p>30X resistencias (220R/1K/10K)</p>
306333
</li>
307334
<li>
308-
<p>Keybd Event (Activa teclas desde código en Go): <a href="https://github.com/micmonay/keybd_event" class="bare">https://github.com/micmonay/keybd_event</a></p>
335+
<p>1 zumbador pasivo</p>
336+
</li>
337+
<li>
338+
<p>1 X zumbador activo</p>
339+
</li>
340+
<li>
341+
<p>1 Módulo de relé de doble canal de 5V</p>
342+
</li>
343+
<li>
344+
<p>6X interruptores de botón</p>
345+
</li>
346+
<li>
347+
<p>10 x Cable DuPont</p>
348+
</li>
349+
<li>
350+
<p>10 x cable DuPont de pulgadas</p>
351+
</li>
352+
<li>
353+
<p>10 x Cable DuPont</p>
354+
</li>
355+
<li>
356+
<p>5 x LED rojo</p>
357+
</li>
358+
<li>
359+
<p>5 x LED amarillo</p>
360+
</li>
361+
<li>
362+
<p>5 x LED verde</p>
363+
</li>
364+
<li>
365+
<p>2 LEDs RGB</p>
309366
</li>
310367
</ul>
311368
</div>
@@ -325,60 +382,144 @@ <h2 id="tic-80"><a class="anchor" href="#tic-80"></a>TIC-80</h2>
325382
<p>Se crea un projecto en ESP32 que lea todos los sensores</p>
326383
</li>
327384
<li>
328-
<p>Se comunica via serial a un demonio creado en un lenguaje de programación como Elixir, Go o Python</p>
385+
<p>Se comunica via serial a un demonio creado en un lenguaje de programación como Go o Python</p>
329386
</li>
330387
<li>
331388
<p>Este demonio gatilla eventos de teclado para simular presión de botones dentro de TIC-80.</p>
332389
</li>
333390
<li>
334-
<p>TIC-80 escribe en memoria ciertos datos como el Score actual.</p>
391+
<p>TIC-80 escribe en un archivo de texto serial el Score actual.</p>
335392
</li>
336393
<li>
337-
<p>El demonio lee el archivo del juego y parsea la memoria para mostrar los datos en el display segmentado.</p>
338-
<div class="ulist">
339-
<ul>
340-
<li>
341-
<p><a href="https://github.com/nesbox/TIC-80/wiki/RAM#persistent-memory" class="bare">https://github.com/nesbox/TIC-80/wiki/RAM#persistent-memory</a></p>
342-
</li>
343-
<li>
344-
<p><a href="https://github.com/nesbox/TIC-80/wiki/poke" class="bare">https://github.com/nesbox/TIC-80/wiki/poke</a></p>
345-
</li>
346-
</ul>
347-
</div>
394+
<p>El demonio lee el archivo y lo parsea para mostrar los datos en el display segmentado.</p>
348395
</li>
349396
</ol>
350397
</div>
398+
<div class="paragraph">
399+
<p>Para poder ejecutar el juego y obtener los registros del log se puede ejecutar el siguiente comando:</p>
400+
</div>
401+
<div class="listingblock">
402+
<div class="title">Comando para obtener los logs de un juego en TIC80</div>
403+
<div class="content">
404+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ ./tic80 esp32.tic &gt; out.log &amp;</code></pre>
405+
</div>
406+
</div>
407+
<div class="paragraph">
408+
<p>El siguiente cartucho puede ser usado para probar</p>
409+
</div>
410+
<div class="listingblock">
411+
<div class="title">Primero Creamos un cartucho de Lua</div>
412+
<div class="content">
413+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">&gt; new lua</code></pre>
414+
</div>
415+
</div>
416+
<div class="listingblock">
417+
<div class="title">Añadimos las funciones de debugging</div>
418+
<div class="content">
419+
<pre class="highlightjs highlight"><code class="language-lua hljs" data-lang="lua">-- title: esp32 test cart
420+
-- author: ninjas.cl
421+
-- desc: A test cart for input/output to esp32
422+
-- site: elixircl.github.io/elixir-robotics
423+
-- license: BSD License
424+
-- version: 0.1
425+
-- script: lua
426+
427+
t=0
428+
x=96
429+
y=24
430+
431+
function TIC()
432+
cls(13)
433+
434+
if btn(0) then y=y-1 end
435+
if btn(1) then y=y+1 end
436+
if btn(2) then x=x-1 end
437+
if btn(3) then x=x+1 end
438+
439+
if btn(4) then
440+
print("Player 1: A", 90, 100)
441+
end
442+
443+
if btn(5) then
444+
print("Player 1: B", 90, 100)
445+
end
446+
447+
if btn(6) then
448+
print("Player1: X", 90, 100)
449+
end
450+
451+
if btn(7) then
452+
print("Player1: Y", 90, 100)
453+
end
454+
455+
spr(1+t%60//30*2,x,y,14,3,0,0,2,2)
456+
print("ESP32 TEST",84,84)
457+
t=t+1
458+
459+
if t &gt; 999 then
460+
t = 0
461+
end
462+
463+
print(t, 0, 0)
464+
465+
trace("stdout=time:"..t)
466+
end
467+
468+
-- &lt;TILES&gt;
469+
-- 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc
470+
-- 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c
471+
-- 003:eccccccccc888888caaaaaaaca888888cacccccccacccccccacc0ccccacc0ccc
472+
-- 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c
473+
-- 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
474+
-- 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
475+
-- 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
476+
-- 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
477+
-- &lt;/TILES&gt;
478+
479+
-- &lt;WAVES&gt;
480+
-- 000:00000000ffffffff00000000ffffffff
481+
-- 001:0123456789abcdeffedcba9876543210
482+
-- 002:0123456789abcdef0123456789abcdef
483+
-- &lt;/WAVES&gt;
484+
485+
-- &lt;SFX&gt;
486+
-- 000:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304000000000
487+
-- &lt;/SFX&gt;
488+
489+
-- &lt;PALETTE&gt;
490+
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
491+
-- &lt;/PALETTE&gt;
492+
493+
-- &lt;TRACKS&gt;
494+
-- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
495+
-- &lt;/TRACKS&gt;</code></pre>
496+
</div>
497+
</div>
351498
</div>
352499
</div>
353500
<div class="sect1">
354-
<h2 id="pico-8"><a class="anchor" href="#pico-8"></a>PICO-8</h2>
501+
<h2 id="daemon"><a class="anchor" href="#daemon"></a>Daemon</h2>
355502
<div class="sectionbody">
356503
<div class="paragraph">
357-
<p>PICO-8 tiene acceso a GPIO (Aunque solo para ciertas versiones de Raspberry PI) y lectura y escritura serial.
358-
Aunque la lectura serial está limitada a GPIO, la escritura puede ser redireccionada a un archivo.txt.
359-
Por lo que se puede seguir con el mismo flujo de TIC-80 solo cambiando el archivo de destino y su formato.</p>
504+
<p>El Daemon es el encargado de comunicar el ESP32 con TIC-80. Este se ejecuta en el mismo computador
505+
al cual el ESP32 se conecta por USB y ejecuta el TIC-80. Este puede ser programado en Go o Python
506+
y debe comunicarse via serial con el ESP32 y leer el archivo <code>out.log</code> generado por TIC-80.</p>
360507
</div>
361-
<div class="olist arabic">
362-
<ol class="arabic">
363-
<li>
364-
<p>Se crea un projecto en ESP32 que lea todos los sensores</p>
365-
</li>
508+
<div class="ulist">
509+
<ul>
366510
<li>
367-
<p>Se comunica via serial a un demonio creado en un lenguaje de programación como Elixir, Go o Python</p>
511+
<p>Biblioteca de Keyboard para Python: <a href="https://github.com/boppreh/keyboard" class="bare">https://github.com/boppreh/keyboard</a></p>
368512
</li>
369513
<li>
370-
<p>Este demonio gatilla eventos de teclado para simular presión de botones dentro de PICO-8.</p>
514+
<p>Biblioteca de Comunicación Serial para Python: <a href="https://pyserial.readthedocs.io/en/latest/index.html" class="bare">https://pyserial.readthedocs.io/en/latest/index.html</a></p>
371515
</li>
372516
<li>
373-
<p>PICO-8 escribe en un archivo de texto serial el Score actual.</p>
517+
<p>Biblioteca de Keyboard para Go: <a href="https://github.com/micmonay/keybd_event" class="bare">https://github.com/micmonay/keybd_event</a></p>
374518
</li>
375519
<li>
376-
<p>El demonio lee el archivo y lo parsea para mostrar los datos en el display segmentado.</p>
520+
<p>Biblioteca de Comunicación Serial para Go: <a href="https://github.com/bugst/go-serial" class="bare">https://github.com/bugst/go-serial</a></p>
377521
</li>
378-
</ol>
379-
</div>
380-
<div class="paragraph">
381-
<p>Ejemplo de Juego: <a href="https://www.lexaloffle.com/bbs/?pid=131499#p" class="bare">https://www.lexaloffle.com/bbs/?pid=131499#p</a></p>
522+
</ul>
382523
</div>
383524
</div>
384525
</div>

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)