Skip to main content

Meadow.Foundation.Sensors.Hid.NesClassicController

NesClassicController
StatusStatus badge: working
Source codeGitHub
NuGet packageNuGet Gallery for Meadow.Foundation.Sensors.Hid.WiiExtensionControllers

Code Example

NesClassicController nesController;

public override Task Initialize()
{
Resolver.Log.Info("Initialize...");

var i2cBus = Device.CreateI2cBus(NesClassicController.DefaultI2cSpeed);

nesController = new NesClassicController(i2cBus: i2cBus);

//onetime update - could be used in a game loop
nesController.Update();

//check the state of a button
Resolver.Log.Info("X Button is " + (nesController.AButton.State == true ? "pressed" : "not pressed"));

//.NET events
nesController.AButton.Clicked += (s, e) => Resolver.Log.Info("A button clicked");
nesController.BButton.Clicked += (s, e) => Resolver.Log.Info("B button clicked");

nesController.StartButton.Clicked += (s, e) => Resolver.Log.Info("+ button clicked");
nesController.SelectButton.Clicked += (s, e) => Resolver.Log.Info("- button clicked");

nesController.DPad.Updated += (s, e) => Resolver.Log.Info($"DPad {e.New}");

return Task.CompletedTask;
}

public override Task Run()
{
nesController.StartUpdating(TimeSpan.FromMilliseconds(200));
return Task.CompletedTask;
}

Sample project(s) available on GitHub

Wiring Example

To wire a NesClassicController to your Meadow board, connect the following:

NesClassicControllerMeadow Pin
GNDGND
SCLD08 (SCL)
SDAD07 (SDA)
VCC3V3

Class NesClassicController

Represents a Nintendo NES Classic Mini controller

Assembly: WiiExtensionControllers.dll
View Source
Declaration
public class NesClassicController : WiiClassicControllerBase, II2cPeripheral

Inheritance: System.Object -> Meadow.Foundation.Sensors.Hid.WiiExtensionControllerBase

Implements:
Meadow.Hardware.II2cPeripheral

Properties

DPad

D-pad

View Source
Declaration
public IDigitalJoystick DPad { get; }

AButton

A Button

View Source
Declaration
public IButton AButton { get; }

BButton

B Button

View Source
Declaration
public IButton BButton { get; }

StartButton

  • Button
View Source
Declaration
public IButton StartButton { get; }

SelectButton

  • Button
View Source
Declaration
public IButton SelectButton { get; }

Methods

Update()

Get the latest sensor data from the device

View Source
Declaration
public override void Update()

Implements

  • Meadow.Hardware.II2cPeripheral