Week #2 – RUP Team Roles / First steps with the controller firmware

RUP Team Roles

Our Team only consists of two member, so our Roles will intersect at some points.

However, according to the RUP Terminology, we have taken on the following roles:

Team MemberRoles
Simon KönigProject Manager
Requirements Specifier
Implementer
Tool Specialist
Manuel PirochProject Manager
Requirements Specifier
Designer
Test Designer
Tool Specialist
Implementer

You can find links to our project management and GitHub projects on the right side of this blog page.

First steps with the controller firmware

This week we started testing the individual components of the cube by uploading simple sketches to the Arduino that interfaced the Individual components.
“Sketches” are what the Arduino IDE calls a project you can compile and write to the hardware. it can consist of multiple .ino source files.

After the LEDs, Bluetooth Module and Gyro worked flawlessly we started combining the functions to see how they would work together to get a seamless implementation.

The following sketch controls the color of the LEDs on the cube by numbers sent via a Bluetooth terminal:

/*
   Find the outgoing HC06 COM port in the Bluetooth settings
   connect to the port using putty
   tap 1 and 0 into the console to test LEDs
*/

#include <FastLED.h>
#include <SoftwareSerial.h>

#define LED_PIN    9
#define NUM_LEDS   6
#define BRIGHTNESS 8
#define LED_TYPE   WS2812B
#define COLOR_ORDER GRB

SoftwareSerial BT(5, 6); // RX, TX
int ledpin = 13; // LED on D13 will show blink on / off
int BluetoothData; // the data sent from computer
CRGB leds[NUM_LEDS];

void setup()
{
  FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  FastLED.setBrightness(  BRIGHTNESS );

  BT.begin(57600);
  BT.println("Bluetooth On please press 1 or 0 blink LED ..");
  pinMode(ledpin, OUTPUT);
}

void loop()
{
  // main loop
  if (BT.available())
  {
    BluetoothData = BT.read();
    CRGB color = CRGB::Black;
    
    switch (BluetoothData)
    {
      case '1':
      color = CRGB::White;
      break;
      case '2':
      color = CRGB::Red;
      break;
      case '3':
      color = CRGB::Green;
      break;
      case '4':
      color = CRGB::Blue;
      break;
    }

    for ( int i = 0; i < NUM_LEDS; i++) {
        leds[i] = color;
      }
      FastLED.show();
    delay(100);// prepare for next data ...
  }
}

We will now continue to extend the firmware to enable two-way communication between the cube and the computer.
This will then serve as our data link for the gyro sensor data and possible player interactions within the game.

4 thoughts on “Week #2 – RUP Team Roles / First steps with the controller firmware

  1. Hello guys,

    your blog seems very interesting. We especially like your integration of the code examples in your blog post, but you are missing any information about your team structure and roles. In our opinion you should have given detailed information about the used architecture.
    We think the applied technology is adequate for its purpose, but can you name your used programming languages and models?

    Best regards,
    Arerrac-Team

    1. Thank you for your feedback!
      Our next post will be about our project structure and technology stack so it will cover all of those topics.

      Kind regards,
      Manu

  2. Hello GyroGame Team,

    after reading your blog entry we have to say, we are amazed by your project. Showing code examples in this early stage is rather interesting.

    But as already stated in the question before, we would love to hear more about the role distribution as well as the team structure you are planning to enforce.

    Besides, we do ask ourselves if connecting the GyroGame to a backend, for high scores and similar statistics is planned for the future?

    We are eagerly awaiting a response and are looking forward to further updates.

    Stay cool. Stay organized.
    — Your Fridgify Team

Comments are closed.