Software para jugar juegos de Buzz "manualmente"

¡Tengo 2 Playstation Buzz! Controladores USB, para que puedan participar 8 personas en paralelo. También sé que estos zumbadores se pueden conectar a la PC.

Caso de uso: Estoy haciendo capacitaciones para todo tipo de cosas (Wireshark, Depuración, ...) Después de una lección, me gustaría realizar una prueba con los participantes. Los participantes pueden ganar pequeñas cosas, por ejemplo, dulces. En el pasado, hacía todo manualmente, pero a veces surgían discusiones sobre quién era el primero en dar la respuesta. Dado que todos los entrenamientos son técnicos profundos, pensé que usar los zumbadores sería un buen truco.

Ahora estoy buscando un software que

  • se ejecuta en Windows 7 x64 y Windows 10
  • reconoce todos los controladores (admite al menos 2)
  • permite al moderador iniciar una pregunta (preparar los zumbadores)
  • averigua la primera persona que pulsa el zumbador
  • reproducir un sonido cuando se presionó el primer zumbador
  • detiene la pregunta (pone los zumbadores en espera)
  • resalta el zumbador de la persona que presionó primero (luz roja)

Eso ya es todo. No necesito el apoyo de los 4 botones restantes, ya que la respuesta a la pregunta la manejaré yo.

Conozco Buzzmania , pero eso ya está demasiado automatizado y no quiero generar preguntas por adelantado. No pude hacer que You don't know JackBuzz funcione.

Respuestas (1)

Vaya, no pensé que sería tan fácil. Puse todo en funcionamiento en 45 minutos con el paquete BuzzIO Nuget para .NET.

Aquí hay una aplicación mínima sin ningún tipo de diseño orientado a objetos.

using System;
using System.Collections.Generic;
using System.Linq;
using BuzzIO;

namespace BuzzExample
{
    class Program
    {
        private static IEnumerable<IBuzzHandsetDevice> _handsets;

        static void Main()
        {
            _handsets = new BuzzHandsetFinder().FindHandsets();
            foreach (var handset in _handsets)
            {
                handset.SetLights(true, true, true, true);
                handset.ButtonChanged += HandsetOnButtonChanged;
            }

            Console.WriteLine("Press Enter to end");
            Console.ReadLine();
        }

        private static void HandsetOnButtonChanged(object sender, BuzzButtonChangedEventArgs args)
        {
            for (int i = 0; i < args.Buttons.Length; i++)
            {
                Console.Write($"{i}: ");
                if (!args.Buttons[i].Any) Console.Write("None");
                if (args.Buttons[i].Blue) Console.Write("Blue ");
                if (args.Buttons[i].Green) Console.Write("Green ");
                if (args.Buttons[i].Yellow) Console.Write("Yellow ");
                if (args.Buttons[i].Orange) Console.Write("Orange ");
                if (args.Buttons[i].Red) Console.Write("Buzzer ");
                Console.WriteLine();
            }
            Console.WriteLine();

            var lights = new bool[4];
            for (int i = 0; i < args.Buttons.Length; i++)
            {
                lights[i] = args.Buttons[i].Any;
            }
            _handsets.First().SetLights(lights[0], lights[1], lights[2], lights[3]);
        }
    }
}

Sugerencia para Windows 10: el controlador puede instalarse como "controlador de juego compatible con HID". En este caso, es posible que la biblioteca no encuentre los controladores conectados. Para solucionarlo, vaya al administrador de dispositivos y cambie el controlador a "dispositivo compatible con HID". El mío tiene ID de proveedor (VID) 054C para Sony y ID de producto (PID) 1000.

Para el sonido del zumbador usé Audacity y generé el siguiente sonido

  • generador de tonos 2
  • forma de onda: diente de sierra
  • frecuencia: 300 a 200 Hz
  • amplitud: 0,8 a 0,8
  • interpolación: lineal
  • duración: 0,2 segundos

Para reproducir sonido, puede usar un recurso incrustado y un SoundPlayer:

 // Playing sound from embedded resource
 Stream buzzerStream = Resource.buzz;
 buzzPlayer = new SoundPlayer(buzzerStream);
 ...
 buzzPlayer.Play();