Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.6.0 #40

Merged
merged 1 commit into from
Dec 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Release 1.6.0
  • Loading branch information
adrianstevens committed Dec 7, 2023
commit 49952caf1fe88afbd08253831f7b86a4f4f8b840
Binary file modified Design/banner.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Design/juego-samples.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Design/juego-store.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Juego.Samples_Screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 32 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@

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](https://developer.wildernesslabs.co/Meadow/Getting_Started/) which will get your development environment up and running and validate that you can build and deploy.

## Contents
* [Purchasing or Building](#purchasing-or-building)
* [Getting Started](#getting-started)
* [Hardware Specifications](#hardware-specifications)
* [Building Locally](#building-locally)
* [Additional Samples](#additional-samples)
* [Juego Hack Kit Version](#juego-hack-kit-version)
* [Support](#support)

## Purchasing or Building

Expand All @@ -24,7 +29,7 @@ Open-source, Meadow-powered, multigame handheld console with DPads, speakers and
</tr>
<tr>
<td>
You can get a Juego board from the <strong>Wilderness Labs store</strong> very soon.
You can get a Juego board from the <strong><a href="https://store.wildernesslabs.co/collections/frontpage/products/juego">Wilderness Labs store</a></strong>.
</td>
<td>
You can also build a simpler Juego using a monocolor display and push buttons.
Expand All @@ -34,7 +39,19 @@ Open-source, Meadow-powered, multigame handheld console with DPads, speakers and

## Getting Started

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

Do you have a brand new Juego and you just wanna play some games? Check out the [Juego.Samples repo](https://github.com/WildernessLabs/Juego.Samples) with some games you can play out of the box:

[![Screenshot of the Juego.Samples repo readme showing several games that can be played.](Design/juego-samples.png)](https://github.com/WildernessLabs/Juego.Samples)

#### 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](https://developer.wildernesslabs.co/Meadow/Getting_Started/) 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](https://www.nuget.org/packages/Meadow.Juego) that instantiates and encapsulates the onboard hardware into a `Juego` class.

1. Add the ProjectLab Nuget package your project:
- `dotnet add package Meadow.Juego`, or
Expand Down Expand Up @@ -131,19 +148,14 @@ public class MeadowApp : App<F7CoreComputeV2>

You can find the schematics and other design files in the [Hardware folder](Source/Hardware).

## Building locally

When using the develop branch, you'll need to clone additional Meadow repos:
## Additional Samples

- [Meadow.Core](https://github.com/WildernessLabs/Meadow.Core)
- [Meadow.Units](https://github.com/WildernessLabs/Meadow.Units)
- [Meadow.Contracts](https://github.com/WildernessLabs/Meadow.Contracts)
- [Meadow.Foundation](https://github.com/WildernessLabs/Meadow.Foundation)
- [Meadow.Logging](https://github.com/WildernessLabs/Meadow.Logging)

Be sure to clone all these repos including `Juego` at the same folder level and set all repos to the `develop` branch.

Also, make sure you are running the latest version of Meadow OS on your Juego v2 board.
1. **[Setup your Meadow Build Environment](http://developer.wildernesslabs.co/Meadow/Getting_Started/Deploying_Meadow/)** - 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](Source/Juego_Demo/)** - Deploy the Juego demonstration app to see the built in peripherals at work.
3. **[Check out the Juego.Samples repo](https://github.com/WildernessLabs/Juego.Samples)** - We recommend cloning the [Juego.Samples](https://github.com/WildernessLabs/Juego.Samples) repo. There you'll find a bunch of awesome samples that you can run right out-of-the box!
<a href="https://github.com/WildernessLabs/Juego.Samples">
<img src="Design/juego-samples.png" alt="juego, iot, project, samples" style="margin-top:10px;margin-bottom:10px" />
</a>

## Juego Hack Kit Version

Expand Down Expand Up @@ -180,3 +192,8 @@ Includes five games:
</tr>
</table>

## Support

Having trouble building/running these projects?
* File an [issue](https://github.com/WildernessLabs/Meadow.Desktop.Samples/issues) with a repro case to investigate, and/or
* Join our [public Slack](http://slackinvite.wildernesslabs.co/), where we have an awesome community helping, sharing and building amazing things using Meadow.
10 changes: 5 additions & 5 deletions Source/Juego/Juego.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@
<None Include="icon.png" Pack="true" PackagePath="" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Meadow.F7" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Audio.MicroAudio" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Displays.TftSpi" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.ICs.IOExpanders.Mcp23xxx" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Sensors.Motion.Bmi270" Version="1.5.0" />
<PackageReference Include="Meadow.F7" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Audio.MicroAudio" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Displays.TftSpi" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.ICs.IOExpanders.Mcp23xxx" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Sensors.Motion.Bmi270" Version="1.6.0" />
</ItemGroup>
</Project>
6 changes: 5 additions & 1 deletion Source/Juego_Demo/MeadowApp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,11 @@ public async override Task Run()
Resolver.Log.Info("Run...");

displayController?.Update();
juego.MotionSensor?.StartUpdating(TimeSpan.FromMilliseconds(250));

if (juego.MotionSensor is { })
{
juego.MotionSensor.StartUpdating(TimeSpan.FromMilliseconds(250));
}

await audioLeft.PlaySystemSound(SystemSoundEffect.PowerUp);
await audioRight.PlayGameSound(GameSoundEffect.LevelComplete);
Expand Down
10 changes: 5 additions & 5 deletions Source/Juego_Prototype/Games/FrogIt/FrogItGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public FrogItGame(int cellSize = 8, int width = 128)

public void Reset()
{
gameStart = DateTime.Now;
gameStart = DateTime.UtcNow;
ResetFrog();
Lives = 3;

Expand All @@ -84,14 +84,14 @@ void ResetFrog()

double lastTime;
int count = 0;
Stopwatch sw = new Stopwatch();
readonly Stopwatch sw = new Stopwatch();
public void Update()
{
if(count == 0)
if (count == 0)
{
sw.Start();
}
else if(count == 100)
else if (count == 100)
{
sw.Stop();
Resolver.Log.Info($"100 frames took {sw.Elapsed}");
Expand All @@ -101,7 +101,7 @@ public void Update()
count++;

lastTime = GameTime;
GameTime = (DateTime.Now - gameStart).TotalSeconds;
GameTime = (DateTime.UtcNow - gameStart).TotalSeconds;

switch (lastInput)
{
Expand Down
6 changes: 3 additions & 3 deletions Source/Juego_Prototype/Games/Lander/LanderGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
Dead
}

LanderState landerState;

Check warning on line 15 in Source/Juego_Prototype/Games/Lander/LanderGame.cs

View workflow job for this annotation

GitHub Actions / build

The field 'LanderGame.landerState' is assigned but its value is never used

public double GameTime { get; private set; }
public double TimeDelta => GameTime - lastTime;
Expand Down Expand Up @@ -46,7 +46,7 @@

public void Reset()
{
gameStart = DateTime.Now;
gameStart = DateTime.UtcNow;

Lives = 3;

Expand All @@ -70,9 +70,9 @@
public void Update()
{
lastTime = GameTime;
GameTime = (DateTime.Now - gameStart).TotalSeconds;
GameTime = (DateTime.UtcNow - gameStart).TotalSeconds;

switch(lastInput)
switch (lastInput)
{
case UserInput.Up:

Expand Down
2 changes: 1 addition & 1 deletion Source/Juego_Prototype/Games/Snake/SnakeGame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public partial class SnakeGame : IGame

public bool PlaySound { get; private set; }

Random rand = new Random((int)DateTime.Now.Ticks);
readonly Random rand = new Random((int)DateTime.UtcNow.Ticks);

enum CellType : byte
{
Expand Down
12 changes: 6 additions & 6 deletions Source/Juego_Prototype/Juego_Prototype.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
<EmbeddedResource Include="menu.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Meadow.F7" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Displays.TextDisplayMenu" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Displays.Sh1106" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Displays.Ssd130x" Version="1.5.0" />
<PackageReference Include="Meadow.Foundation.Displays.TftSpi" Version="1.5.0" />
<PackageReference Include="Meadow.F7" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Displays.TextDisplayMenu" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Displays.Sh1106" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Displays.Ssd130x" Version="1.6.0" />
<PackageReference Include="Meadow.Foundation.Displays.TftSpi" Version="1.6.0" />
</ItemGroup>
<ItemGroup>
<None Update="meadow.config.yaml">
Expand Down
Loading