Arctic Arcade Project

by damianvandenbighelaar in Workshop > Laser Cutting

75 Views, 0 Favorites, 0 Comments

Arctic Arcade Project

20231122_121136.jpg

This is a school assignment in which the goal was to design and construct an arcade machine using a Raspberry Pi. It had to be portable, light, and if possible cheap, so we did our best to make something that met those and the more specific requirements.


Supplies

To start this project you'll need quite a few supplies. These are the following:


Screen/monitor; no larger than 10"

Raspberry Pi 4; other versions have not been tested but might work

Triplex wood; and access to a laser cutting machine

Speaker; it can also be a speaker set as long as there is 1 AUX input to control all of them

Micro SD card; to put the data for the Raspberry Pi on

HDMI to VGA adapter; for the screen, if you choose to use a different screen this might not be needed

Dualshock 3 (Playstation 3 controller); any Dualshock controller is fine as long as it has a USB cable with it.

Paint; any colour you want

USB-C charger; as power supply for the Raspberry Pi

Extention cord; at least 2 outlets to provide power for the screen and Raspberry Pi

Access to a laser cutting machine; as long as it is capable of cutting wood of the thickness of the wood you use it should be fine


Specific supplies that we used:

1x Packard Bell VT700 Monitor - bought from second hand store

1x Cellevia Power AC/DC-CL-DT12/3 - one of our project members personal one

2x Visaton Inbouw Speaker - https://www.bol.com/nl/nl/p/visaton-vs-fr7-4/9200000050197356/?bltgh=sn08y4UNsU8zb7wqQHBOrA.uW5-7upuAfryC-Nnu0NLzA_0_14.18.ProductTitle

2x Esperanza PC Controller - https://www.bol.com/nl/nl/p/esperanza-pc-controller-warrior/9200000055963182/?bltgh=urX3VKkljlmYQUS10ahOqg.vKzOeymdo8BU8TI1vWtGUg_0_8.12.ProductTitle

1x VGA to HDMI - https://www.bol.com/nl/nl/p/hdmi-kabels-hdmi-naar-vga-adapter-hdmi-male-to-vga-female-full-hd-1080p/9300000018781552/?bltgh=lY9SuQUn-pInCQnLuIVFdA.gLOzVFbjPzGOjpwbjkZPtQ_0_10.11.ProductTitle

1x Raspberry Pi 4 - from school but you can buy one from various places online

1x Arduino Uno - from school but you can buy one from various places online

1x Extention cord with 3 outlets - from one of our project members

1x dark blue paint bucket - from school

~2 meter2 triplex wood - from school


Laser Cutting

IMG20240201115944.jpg

We used a laser cutting machine to cut the panels to shape, this machine uses .DXF files as instructions for cutting. All of our files are attached to this step, there is some pairs in there but they are all in seperate files.

Use every file only once, however you can combine some of them to cut them out of the same plate of wood.

Since I cannot explain how to operate every laser cutting machine out there I will have to assume that you already know how to operate the one you have access to or are able to get instructions on how to operate the machine from someone who is experienced with the machine you have access to.

Setup the Raspberry Pi

The raspberry pi does not come with games on it, or the software to run old console/arcade games so you'll have to install those yourself. luckily one of my project members has written out this explanation on how to do it:

"You take a micro sd card and format it to be used by the raspberry pi and install Retorpie with Etcher IO to flash the card. you insert it into the Raspberry and let it install then you take a USB stick with a file named "retropie" with a copy of the roms and insert it into the Raspberry. after which it will copy the info on it"

ROMS = the game(s) files

Sound Sensitive LED Strip

For adding extra flair to the Arcade machine, a programable LED strip that is controlled by an Arduino Uno. for this we decided a sound sensor would be best to react to the sounds of the games of the arcade and a code to let the Arduino control the LED strip.

the code is written as followed.


#include <Adafruit_NeoPixel.h>


// Define pin connections

const int soundSensorPin = 2; // Digital pin for the sound sensor

const int ledPin = 6;         // Digital pin for the LED strip

const int numLEDs = 30;       // Number of LEDs in the strip


// Create an instance of the Adafruit_NeoPixel class

Adafruit_NeoPixel strip = Adafruit_NeoPixel(numLEDs, ledPin, NEO_GRB + NEO_KHZ800);


void setup() {

 // Initialize serial communication for debugging

 Serial.begin(9600);


 // Set up the sound sensor pin as input

 pinMode(soundSensorPin, INPUT);


 // Initialize the LED strip

 strip.begin();

 strip.show(); // Initialize all pixels to 'off'

}


void loop() {

 // Read the sound sensor value

 int sensorValue = digitalRead(soundSensorPin);


 // Print the sensor value for debugging

 Serial.println(sensorValue);


 // If the sensor detects a sound (assuming a HIGH signal indicates a detected sound)

 if (sensorValue == HIGH) {

   // Turn on the LEDs with a certain color

   setColor(strip.Color(255, 0, 0)); // Red color

 } else {

   // Turn off the LEDs

   setColor(strip.Color(0, 0, 0)); // Off

 }


 // Add a short delay to stabilize the sensor reading

 delay(10);

}


// Function to set color of all LEDs in the strip

void setColor(uint32_t color) {

 for (int i = 0; i < numLEDs; i++) {

   strip.setPixelColor(i, color);

 }

 strip.show(); // Update the strip with the new colors

}


Pin Definitions:

The sound sensor is connected to D2, and the LED strip data pin is connected to D6.


Setup Function:

Initializes serial communication for debugging.

Sets the sound sensor pin as input.

Initializes the LED strip.


Loop Function:

Reads the digital value from the sound sensor.

Prints the sensor value to the serial monitor for debugging.

If a sound is detected (HIGH signal from the sensor), the LEDs turn red.

If no sound is detected (LOW signal), the LEDs are turned off.

The setColor function is used to set the color of all LEDs in the strip.


Additional Notes

Adjust the number of LEDs (numLEDs) to match the actual number of LEDs in your strip.

You can modify the setColor function to change colors or create different visual effects based on the sensor readings.

Ensure you have a sufficient power supply for your LED strip, especially if you have many LEDs.


Gluing the Wood

Process image 1.jpg
Process inage 2.jpg
Progress image 3.jpg

For this step all you have to do is glue the wood. We just used the wood glue available to us at school but you can use basically any glue as long as it is decently strong because this thing is rather big and needs a lot of strength.

There is tabs on the sides of the panel shapes as you might have already noticed, those tabs will simultaniously show you what plates to attach to what other plates because they only fit where they are supposed to, as well as increase the surface that you can apply glue onto a bit.

But leave the top front plate (the 'hood') for now because it will be easier to put all the components in into the construction without that plate there.

Mounting the Components

20240201_091227.jpg
20240201_091217.jpg

Once all the wood panels are glued together properly and the programs and game is installed on the Raspberry Pi you can move onto putting all the components into place.

The exact layout of the components is unimportant to the function of the machine. Though, we recommend to put the Raspberry towards the back as it is the closest it can be to the screen.

The image provided of the internals is very messy but that is to show that it really doesn't matter, you can make it as tidy or messy as you want in there, as long as everything connects it is fine.

The screen is mounted on the slanted plate on top (the 'windshield').

  • The USB-C charger goes into the Raspberry Pi USB-C port to provide power
  • The controllers get plugged into the Raspberry Pi USB ports
  • The cable of the screen goes into the extension cord together with the USB-C charger
  • Then HDMI to VGA connect the Raspberry Pi HDMI port and the screen VGA Cable
  • AUX audio jack of the speakers connect to the Raspberry Pi as well.

Testing

Before gluing the final plate it is good to test if everything works. The game, the sound, the lights, etc.

We ourselves had an issue where the screen would keep turning off when mounted in its position, we fixed that by taking it off, opening it up, and unplugging the power cable and plugging it back in properly a few times.

Once everything is working you can glue the 'hood' on and that is it finished.