Git Product home page Git Product logo

juego's Introduction

Juego

Open-source, Meadow-powered, multigame handheld console with DPads, speakers and a colored display.

Are you brand new to Meadow?

If you've never deployed a Meadow app before, you'll want to check out the Getting Started Guide which will get your development environment up and running and validate that you can build and deploy.

Contents

Purchasing or Building

You can get a Juego board from the Wilderness Labs store. You can also build a simpler Juego using a monocolor display and push buttons.

Getting Started

Playing Juego

Do you have a brand new Juego and you just wanna play some games? Check out the Juego.Samples repo with some games you can play out of the box:

Screenshot of the Juego.Samples repo readme showing several games that can be played.

Are you brand new to Meadow?

If you've never deployed a Meadow app before, you'll want to check out the Getting Started Guide which will get your development environment up and running and validate that you can build and deploy.

Using the Juego Hardware in your own App

To make using the hardware even simpler, we've created a NuGet package that instantiates and encapsulates the onboard hardware into a Juego class.

  1. Add the ProjectLab Nuget package your project:

  2. Instantiate the Juego class:

public class MeadowApp : App<F7CoreComputeV2>
{
    IJuegoHardware juego;

    public override Task Initialize()
    {
        juego = Juego.Create();
        ...
  1. Access Juego's onboard peripherals.
  • To create a MicroGraphics object with Juego's Display:
    ...
    if (juego.Display is { } display)
    {
        graphics = new MicroGraphics(display)
        {
            IgnoreOutOfBoundsPixels = true,
            CurrentFont = new Font12x16()
        };
        ....
    }
    ...
  • To instantiate Juego's Select and Start buttons:
    ...
    if (juego.SelectButton is { } selectButton)
    {
        selectButton.PressStarted += (s, e) => { ... };
        selectButton.PressEnded += (s, e) => { ... };
    }

    if (juego.StartButton is { } startButton)
    {
        startButton.PressStarted += (s, e) => { ... };
        startButton.PressEnded += (s, e) => { ... };
    }
    ...
  • To use Juego's speakers:
    ...
    for (int i = 0; i < 5; i++)
    {
        await juego.LeftSpeaker.PlayTone(
            new Frequency(440), TimeSpan.FromMilliseconds(500));
        await juego.RightSpeaker.PlayTone(
            new Frequency(540), TimeSpan.FromMilliseconds(500));
    }
    ...

Hardware Specifications

ILI9341 - 240x320 RGB LED display
Magnetic Audio Transducers - A pair of High quality piezo speakers
DPads - Directional Pads on either side of the display.
Select/Start Buttons - Classical Select and Start buttons
USB-C port - Port used to build/deploy apps to Juego
Rechargable Battery Slot - To play on the go
On/Off switch - Used to turn the Juego on and off

You can find the schematics and other design files in the Hardware folder.

Additional Samples

  1. Setup your Meadow Build Environment - If you haven't deployed a Meadow app before, you'll need to setup your IDE extension(s), deploy Meadow.OS, etc.
  2. Run the Demo App - Deploy the Juego demonstration app to see the built in peripherals at work.
  3. Check out the Juego.Samples repo - We recommend cloning the Juego.Samples repo. There you'll find a bunch of awesome samples that you can run right out-of-the box!
juego, iot, project, samples

Juego Hack Kit Version

This was an early hardware project to create a Meadow handheld multi-game project designed to work with 128x64 or 320x240 single color displays (SSD1306 or SSD1309)

Includes five games:

  • FrogIt
  • Pong
  • Span4 (2-player match 4 game)
  • Snake
  • Tetraminos (inspired by Tetris)

"Image of Juego Meadow prototype hardware"

Fritzing Diagrams of Juego using a Meadow Dev Kit

Juego using a SSD1309 Display connected via SPI and Push Buttons. Juego using a SSD1309 Display connected via I2C and Push Buttons.

Support

Having trouble building/running these projects?

  • File an issue with a repro case to investigate, and/or
  • Join our public Slack, where we have an awesome community helping, sharing and building amazing things using Meadow.

juego's People

Contributors

adrianstevens avatar bryancostanich avatar ctacke avatar jorgedevs avatar lamebrain avatar patridge avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

n4ppy

juego's Issues

Hardware request: add accelerometer & vibration motor

I think this was Bryan's idea originally, if it doesn't impact the cost too heavily, it would be fun to add an accelerometer.

And if we got really fancy we could also add a vibration motor.

I also think we talked about adding a qwiic connector.

Juego PCB request: 5v and MISO support

Today my Microgpu adapter boards successfully slot into the Juego in the same pins that the LCD currently slots into. However, the Juego's PCB has two minor issues that limits its potential.

The first is that the MISO pin to the LCD pins isn't connected. While most of the GPU operations are fire and forget, having the ability to read data back from the GPU is useful (for example, the GPU telling the meadow its resolution).

Likewise, at some point I intend to build a proper circuit board with the esp32-s3 embedded in it. While the esp32-s3 should be able to be powered by the 3.3v rails, I need a 5v power source still for the display. If the Juego has a 5v pin, then I would be able to power the GPU and display all from the Juego, without an extra usb cable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.