So i had an idea for my degree thesis but i don't know ho to do it

So i've never used arduino before but i've already coded very simple stuff in C++, Java, and JavaScript.

Recently i've seen on the internet this weird sort of "escape room" game and i was wondering if it was possible to create something similar with arduino, led strips and buttons that when stepped on reacted basing on the color the platform had...

I'll put here the link of the game for reference:

-Game mode 2 : RADII on Instagram: "Here’s another way to put your dance moves to awesome use 💃✨. Cyber dancing is the new go-to activity for young Chinese people. New venues solely dedicated to it have popped up in different cities across the country. The rule is to interact with the music and lights — jump, twist, and step on the right blocks to rack up scores. Don’t you wish all dance clubs were like this? Follow us @radii_media for more trends in China. (Via 跃动格子, Xiaohongshu) #RADII #RADIImedia #activategames #sports #indooractivity #indoorsports #dance #dancing #Chinese #China #travelChina"

The game mod that i find the most interesting is the first one but i would not mind adding the possibility to execute the second one later on.

A degree in what? If you are a computer science major you probably don't want to get bogged-down in building hardware... And the software might be "too simple".

If you are an electronics engineer, it should be no problem learning to use the Arduino. (Except it looks costly and you need space).

What's your question?

You may have a look at finite state machines.

1 Like

yeah sorry, i warn you it may sound a bit confusing. I'm an Italian student and i'm studing computer science. Besically the computer science degree in Italy starts with 3 years at the end of whitch you are considered a "junior ingeneer". Then if u want to become an actual ingeneer you have to study 2 more years of major . I'm at the end of my first 3 years and to complete my studies i've to write a "mini thesis".

I think that if i make a working down scaled prototype of this it would be quite ok (maybe something the size of a launchpad but with more squares and to be played with fingers. That can be done making the player lose a life every time pressure is registered on a red square or if pressure is not registered at the end of every pattern on a green square) . Of course the software will have to be perfectly working and to make it a bit more complex i was thinking to add a little lcd screen where to output the remaining lives and the final score (i.e. +100 points for surviving at the end of every pattern).

My main question is... Is all of this feasible? or maybe something a bit more complex as a raspberry is needed. And if feasible do you have any idea how to execute it? Moreover do you have any updated book or any documentation to recommend to learn the basics of arduino and more anvanced stuff.

yeah sorry, i warn you it may sound a bit confusing. I'm an Italian student and i'm studing computer science. Besically the computer science degree in Italy starts with 3 years at the end of whitch you are considered a "junior ingeneer". Then if u want to become an actual ingeneer you have to study 2 more years of major . I'm at the end of my first 3 years and to complete my studies i've to write a "mini thesis".

I think that if i make a working down scaled prototype of this it would be quite ok (maybe something the size of a launchpad but with more squares and to be played with fingers. That can be done making the player lose a life every time pressure is registered on a red square or if pressure is not registered at the end of every pattern on a green square) . Of course the software will have to be perfectly working and to make it a bit more complex i was thinking to add a little lcd screen where to output the remaining lives and the final score (i.e. +100 points for surviving at the end of every pattern).

My main question is... Is all of this feasible? or maybe something a bit more complex as a raspberry is needed. And if feasible do you have any idea how to execute it? Moreover do you have any updated book or any documentation to recommend to learn the basics of arduino and more anvanced stuff.

16x32 inputs and outputs is a lot of IO for an Uno. I'd budget out the speeds and timing and see what it would require.

Make a finger sized model for practice... doubles as a chess board.

That project looked kind of cool, but there's zero substance.

The schematic is nearly unreadable.

The parts list dramatically underestimates the switches, leds and resistors:

The code works with only 24/64 of the LEDs? It can't deal with multiple pieces in multiple rows/columns?

#include <FastLED.h>


#define NUM_LEDS 64

#define DATA_PIN  10

 byte i=0;

CRGB leds[NUM_LEDS];
void setup()
{
 
  FastLED.addLeds<WS2812B,  DATA_PIN, RGB>(leds, NUM_LEDS);
 
  for(byte i=2;i<10;i++)
  {
  pinMode(i,  OUTPUT);
  }
  for(byte i=14;i<22;i++)
  {
  pinMode(i, INPUT);
  }
 
}

void loop()
{
   for(byte i=0;i<64;i++)
  {
  leds[i]  = CRGB::White;
  FastLED.show();
 
  }
 
  digitalWrite(2,HIGH);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
  digitalWrite(9,LOW);
 
   if(digitalRead(14)==HIGH)
  {
   i=0;
  }
   if(digitalRead(15)==HIGH)
  {
    i=1;
  }
   if(digitalRead(16)==HIGH)
  {
    i=2;
  }
  if(digitalRead(17)==HIGH)
  {
    i=3;
  }
  if(digitalRead(18)==HIGH)
  {
    i=4;
  }
  if(digitalRead(19)==HIGH)
  {
    i=5;
  }
  if(digitalRead(20)==HIGH)
  {
    i=6;
  }
  if(digitalRead(21)==HIGH)
  {
    i=7;
  }
 digitalWrite(2,LOW);
  digitalWrite(3,LOW);
  digitalWrite(4,HIGH);
  digitalWrite(5,LOW);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  digitalWrite(8,LOW);
  digitalWrite(9,LOW);
 
   if(digitalRead(14)==HIGH)
  {
   i=16;
  }
   if(digitalRead(15)==HIGH)
  {
    i=17;
  }
   if(digitalRead(16)==HIGH)
  {
    i=18;
  }
  if(digitalRead(17)==HIGH)
  {
    i=19;
  }
  if(digitalRead(18)==HIGH)
  {
    i=20;
  }
  if(digitalRead(19)==HIGH)
  {
    i=21;
  }
  if(digitalRead(20)==HIGH)
  {
    i=22;
  }
  if(digitalRead(21)==HIGH)
  {
    i=23;
  }




 
    leds[i] = CRGB::Red;
  FastLED.show();
  delay(500);
 
  leds[i]  = CRGB::Black;
  FastLED.show();
  delay(500);
   
 
 
   
  
}

Maybe some diodes would help but that Arduino page won't tell you about them.

Yes. Spend some time reading on these fora, judge by the topic whether to bother, read for a bit to see if it's a good impedance match for where you are now.

You can get started with no money and no equipment by using the wokwi simukator

The main concern is having sufficient resources on the board you pick. I don't think memory or processing speed will be of any concern, but you may need to think ahead about just how many inputs and outputs you need, and how you want to provide them.

LEDs for examlpe cloud take one output pin each, or a Neopixel strip could be 60 or more LEDs on just one output pin.

Similarly inputs like pushbuttons coukd take one input pin each, or a matrix of them could be arranged so that 36 inputs could use just 12.

Or add shift registers or multiplexing and do even better.

Build a reduced prototype with enough inputs and outputs done naively and see where you get. Then you'll be in better position to decide how to scale it.

a7

The page looked fancy. Sorry.

1 Like

Thanks all for your answer!

For the leds i was thinking to use only one led per square (in case of a downsized prototype) and making it change color basing if it was a square you could walk on (white), one you have to stay away from (red) or a goal square (green). To add difficulty the game and complexity to the project, If there are more players it could assign to each player a goal square of different color (green, blue, yellow, purple) and also make lose points if they reach the wrong goal.

Here's an implementation of a multi-touch diode matrix keyboard in Wokwi:

per Diode component (for making a matrix of switches) · Issue #349 · wokwi/wokwi-features · GitHub

Another version with change detection:

I think you will find yourself spending more time on the game design and tuning than you do on the software and hardware to implement it.

Custom diodes, nice.They should probably just add a diode component for realz.

a7

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.