top of page

Raspberry Pi Console Project.

Raspberry Pi Console Overview

I wanted to reflect all three elected constraints somehow with my personal project. The case being a retro games console represents the reflect constraint, as it reflects the history of games console units. The kinect constraint is reflected in the Buzz Controllers and the tactile input they provide. Finally, the revolution constraint, is reflected by having the software run on what I would argue is a revolutionary piece of technology in computer evolution, the Raspberry Pi.

This is my personal project that I created for the Hackspace module of my MSc in Creative Computing.

​

I came up with the concept of making a quiz for a Raspberry Pi controlled by Buzz Controllers, using ideation techniques taught in the sessions, which I later evolved using the same techniques and decided to evolve the project into a custom built games console unit.

 

I created every aspect of the project myself, as I wanted to push myself as far outside of my comfort zone that I could to see for myself what I am capable of if I put my mind to it.

62. Console unit with buzz controllers c

Disclaimer:

As this project has been learning as I go, there may be issues I am unaware of, inherent in the code or with the commands being used. Use at own risk.

For a more in-depth look at the Raspberry Pi Console, please click the documentation button below to download the documentation created for this and the Social Sandbox VR. Click the manual button below to download the manual for the Raspberry Pi Console (also included as part of the documentation) separately if needed. If these links do not work, please contact me.

Console unit created using a re-purposed retro console unit. Powered with a Raspberry Pi 2 and controlled with PlayStation 2 Buzz Controllers.

Project Description

This is a console unit powered by Raspberry Pi.

Made for MSc Hackspace

Release: 2019

Final Prototype Video:

Final Prototype Video.

Final Prototype video created by Georgina Hill.

Raspberry Pi Console Designs:

In order to come up with concepts, I utilized the ideation techniques introduced in the module sessions. This resulted in my coming up with 3 initial concepts, from which I narrowed down to the one that would be my personal project for this module. I used the elected constraints as an initial start point and generated ideas that could reflect these. Once I had the ideas, I then fitted technology to each concept, that I felt would best work with my vision for each concept, regardless of whether I had any experience or knowledge of the processes involved. I ran the concepts past the module leader, which helped me narrow the concepts down to two ideas, which both used technology that I have never worked with or even used before. 

 

Only two of the initial concepts were storyboarded as the third seemed a lot harder to tie into the constraints as the other two. The first concept was an Augmented Reality (AR) application to help people that struggle with social situations determine emotions by scanning expressions. This concept, I felt, would be too close to my comfort zone and, as I would like to push myself and expand my skills with this personal project, so it was ultimately abandoned as a project concept to pursue. The second concept, which was not storyboarded, was to create something using a Leap Motion. My concept idea was to try to create an input tool using the Motion sensors and hand gestures, however as this seemed pretty similar to VR to me, which could arguably be viewed as my comfort zone, this concept was abandoned before the design stage. The third and final concept (but second storyboarded) was to connect PlayStation 2 Buzz Controllers to a Raspberry Pi and create a game that runs on the pi, but that can be controlled and interacted with using the Buzz Controllers. This third concept was ultimately the concept that I chose to become my personal project for this module of my MSc, which was approved of by the module leader.

​

As I knew nothing about Rasberry Pi, Linux, Python, or anything related to how I could create the concept that I envisioned, I had to do a lot of research into these areas to learn as much as I could as I went, so that I could create something that adequately represented my project concept. Due to my own misunderstanding, I thought the project had to be completed by the end of the Hackspace session on 07th November 2019, but this was actually the start, so I created and tested the quiz in the session, but also ideated ways I could evolve my project to push myself further and to expand on the pointer given by the module leader to see if I could add a UI to the application or other games with the controllers, in order to fully utilize the (to me) unexpected extra time for the project. As a result of this ideation, I decided to see if I could evolve this project into my own custom-built games console unit with various game modes which utilize the Buzz Controllers and hopefully also be completely controllable by them, should time permit.

​

As the most vital component for getting the Buzz Controllers able to function with the Raspberry Pi, the Buzz Controller Library that I created was the most necessary aspect of the whole project to get functioning correctly.

Unfortunately, the tutorial that I followed for the Library and base of the quiz was created with different versions of the Pi and Python than I did. This meant I ran into a lot of errors that I needed to figure out and fix for myself, which set my progress back as my lack of experience hindered my ability to work these out as quickly as I would have otherwise liked. Once I’d got this working, I later realized that it would need to be updated yet again in order to run with the GUI. This is because of the GUI running with a different version again of Python, which, due to my own lack of experience in this field of computing, I did not notice until late in the project development.

​

As mentioned above, in order to come up with a direction for the evolution, I decided to take on board the feedback that I received during the Hackspace session on 7th November 2019, which was to add a GUI to the quiz. I decided that I would create the GUI pieces myself to learn more about that area of computing, and that I would also look into the possibility of adding in sounds as well as a potential addition should I have time.

I also wanted to make more than one type of quiz and see if there were any other game modes that I could come up with to explore the functionality of the Buzz Controllers, and to add a case for the Pi so that it wasn’t just a circuit board and wires. The idea for the evolution that I settled on, which best fit the aforementioned criteria in my opinion, was to turn the Raspberry Pi and Buzz Controllers into my own custom built games console unit, which I would not have had the confidence to consider previously, had the quiz base creation not gone so well in the Hackspace session.

Creating the Raspberry Pi Console Case:

As part of my personal development process, I first plan out any key-stage, such as the case designs, with storyboards with notes for how the Human-Computer Interaction (HCI) will fit into the project where the diagram may be too ambiguous on its own when looking back later. Something that I needed to keep in mind when designing the case was how all the components fitted together, and so I drew a diagram for reference purposes when designing the case concepts.

​

As part of the evolution towards a custom games console, and as an aesthetic decision that would also protect the Raspberry Pi, a case was always going to become an eventuality. I had two ideas for the case, both hinging on re-purposing another object in order to enhance the device aesthetic, so I chose the design that I felt would better lend itself to the project constraints and enable the project to continue evolving throughout the development process. I decided that the best idea for the case that I’d had would be to physically alter and re-purpose an old retro games console unit myself to turn into the case for my project. I believe that this case design idea as a recycled retro games console unit is a reflection of the history of games consoles and portrays the constraint of reflect or reflection in a very artistic, abstract way in my opinion.

​

The last time that I did any sort of hands-on craft work comparable to creating this case was over a decade ago when completing my GCSE qualifications. As such, I was lacking in a lot of self-confidence for creating the case.

I decided to get advice from my peers about how to approach the modification of the retro games console unit in order to fit the Raspberry Pi, and was recommended to use a lighter and a craft knife and to hot-knife the plastic to cut the unit to shape and size, which was the approach I decided to take.

​

I was very proud of the result of my craft work, especially since it was another area in which I lack any sort of real knowledge or expertise, being especially prideful of how well the holes for the HDMI and power cables match up between the case and the Raspberry Pi. However, I’m not so happy with the lack of space underneath the lid, as otherwise I could have created my own functionality for the joystick and buttons to go alongside the Buzz Controllers, however as it is, they will just need to stay aesthetic due to the space constraints.

Creating the Raspberry Pi Console GUI:

As it was suggested by the module leader, Lee Scott, to add a GUI to the quiz, I decided that I would take this on-board and try to implement this to the best of my abilities. To start, I did some research to see how this could be done, so I researched what kind of images the Raspberry Pi Linux operating system would support and found that I would have to create the GUI in single-frame .gif format.

​

I then needed to find out how I could implement the GUI into my project, but unfortunately a lot of the tutorials I found were out of date, so I created the GUI code myself following the examples and documentation of a python 3 library called Guizero, which was the only Python library that I could find that had adequate (in my own opinion) documentation and could also purportedly work with Cython and Raspberry Pi Linux Operating systems, and that was also simultaneously simple enough for me to teach myself within the time frame for this project.

​

For the GUI to be viable to work with the quiz and existing Buzz Controller library that I have made, the GUI needed to be able to have some level of dynamic interaction. To clarify in more simple terms, the UI will need to update and respond in “real-time” rather than being an animation on a loop, for example. This meant I needed to spend a lot of time experimenting with the library to work out the limitations and strengths of it to best use to create the GUI as I envisioned. Unfortunately, whilst all the UI testing went to plan, I ran into a lot of errors when trying to integrate the quiz to the GUI application. This is because I accidentally coded the Buzz Controller library in an outdated python, using outdated assemblies which means that the whole library requires re-writing.

​

In terms of the actual GUI implementation, to start, I drew out a reference frame for a screen size (as seen in the image gallery above) so that my UI element drawings could be as consistent in size and dimensions as I possibly could get them. I then duplicated the reference frame and drew out the GUI elements inside, before scanning them into the computer. I then used Paint and image conversion software in order to convert the drawings into the format I needed (.gif), before uploading them to the Raspberry Pi to be used by the GUI scripts.

© 2019 by Georgina Hill

© 2019 252uk Studios

Logo.png
bottom of page