GameBox Using Arduino

Individual Project

Synopsis:

Surfing across the internet, as I am usually found to be, I came across an article to develop your own Retro Gamebox, by APC Magazine (But I have modified the design a bit, to suit to my requirements). Well, it shouldn’t be difficult to guess, what might have happened next? I went scavenging for the parts, and then spent the next day assembling and running the Gamebox. Well and then there were a lot of days of playing on that console.

Although implementing this project itself wasn’t challenging, what was interesting was to understand the interface between the Arduino and the Television both from a hardware and software end. And the excitement increased manifolds as this was my first project on working with graphics on an embedded platform.

Note: None of the games were designed by me.

Video: Demo of the Gamebox

Technical Description:

The components used in this Retro Gamebox are as follows:

  • Four-way digital switch or 2 Four-way potentiometers
  • Push Switch
  • RCA Port and Cable for video and mono audio
  • Arduino UNO R3
  • Television capable of RCA interface and running NTSC/PAL
  • Male and Female Connecting cables

The circuit diagram for connecting these components is as shown:

Retro Gamebox Circuit Diagram1

Fig: This is the updated circuit diagram for my design

Although the APC Magazine mentions using an arcade joystick which is essentially a combination of four digital switches which provide direction and movement control. But I am currently using four way potentiometer switches instead. (The kind of arcade joystick mentioned on APC magazine was not available in local markets, and I was willing to experiment with these). These work exactly in the same way as the arcade joystick, and provide the possibility of gameplay where variable speed may be required (But some tweaking would be required). The center position of these potentiometer is kept below the threshold level, so that the Arduino does not pick up false signals. Although two switches are required, one for up and left, and the second for right and down. (And trust me the gameplay doesn’t get affected a lot)

Note: The two potentiometric switches could be replaced by a single one, using analog input pins of Arduino and tweaking input control section of the code. I shall upload the schematics and the updated code library for the same. The two extreme values of the analog input could act as the two opposite direction digital inputs.

Coming to the analog video and audio hardware. The Arduino essentially generates the analog video data and the synchronization pulses on its D9 and D7 pins, which are then combined into a single composite signal via resistors and finally connected to an RCA port. The audio is generated by the Arduino using 8-bit PWM pulses on its D11 pin and are passed on to another RCA port.

These signals from the RCA port can be connected to any TV running NTSC. I had an NTSC running television, but for those having PAL based television you will have to connect the D12 pin of the Arduino to ground.

This is how my final system looked like:

This is the Final Designed Project

Fig: This is the final designed project

The games and the software required to run the device were built for the Nootropic Design Hackvision board, but work well with this system. While most of the software which pertained to taking inputs from the switches was fairly simple and easy to implement for anyone with an intermediate experience on Arduino, the parts that caught my interest were the games and the TVout Library of Arduino that connected this system to the Television.

I haven’t worked on building games (But this is something, that I am willing to try my hand at, when an opportunity arrives), I tried doing a thorough study of the TVout Library and am writing some details of the same here.

The library is built up of functions that are bundled up into intuitive categories. A short description of these functional categories is as follows:

  1. Setup Functions
    • These functions are responsible for sending the output on the screens at specified resolution and also to set the number of times, time and the line to output the data
  2. Flow Control Functions
    • These are essentially two functions that provide delay in units of ms or frames
  3. Accessor Functions
    • This is a set of three functions that usually access data related to resolution and the number of characters that can fit on a line
  4. Basic Graphics Functions
    • These are a set of functions that let you draw graphics on screen. Pixel draw, basic shapes, lines, and bitmaps can be outputted on the screen using these functions
  5. Text Handling Functions
    • These functions provide you with print functionality for characters, string. Also it helps you set preselected font style or custom fonts and the cursor position
  6. Audio Handling Functions
    • These functions help you set audio tones by setting the frequency and duration of the tone

Note: The code and other details for this project are available on the APC Magazine page for this project.

If you have any questions regarding the hardware or the implementation please do feel free to contact me via the form below.

Innovative Approach to Location Based Services

Team Members:

Malhar Chaudhari, Sarvesh Patkar, Virag Doshi, Moumita Dey

Synopsis:

Innovative Approach to Location based services and Traffic Management System, is an alternative to the Global Positioning System (GPS), which provides navigation services as well as traffic regulation, which in turn would prove to be a massive help to the traffic controlling authorities. This project was designed keeping in mind the shortcomings of GPS, and by incorporating some additional features, such as, positioning and navigation using offline maps, and vehicle tracking, makes it a multipurpose standalone device.

Video : Project Demo

Video: On Field Demo

Some of the limitations of GPS that have been explored in this project are:

  • The first limitation with GPS is the process of locating the satellites, receiving the data and achieving a position fix, which can take several minutes. This delay is problematic for many critical applications, especially during driving if there is a break in link due to poor signal. Our project uses the durable on ground RF beacons which gives highly reliable service and faster speed of response.
  • Another problem with GPS is that the receiver needs a clear view of the sky to successfully receive signals from the satellites. Thus the GPS would fail in navigating in cities having large skyscrapers. This is not the case with the RF beacons used in this project which can have a strong signal at distances of tens of feet’s with obstacles between the receiver and beacon.
  • Civilian GPS signal is limited by low accuracy in identifying position. This limited accuracy can be a problem in navigating in urban areas. Our project can be used in such areas requiring high accuracy and can give current location within 10 -15 feet accuracy.

The project also has an emergency service feature which routes the driver to the nearest hospital and also sends an emergency SMS with the vehicle’s location details to the paramedics. This is a feature currently not available integrated with vehicular navigation system. This device has been designed with the aim of making implementation of various additional services easier.

Technical Description:

 

RF Positioning System-Top Level Block Diagram

Fig: Block diagram of the system

Our project uses a network of Radio Frequency based beacons to form the navigation system’s backbone architecture. The user can find the route to a particular location from his current location which is also plotted on the map. Another feature of the project is to dynamically update this route in case the user takes a wrong turn. The device is equipped with a GSM module which can be used to send an SMS to the nearest hospital in case of an emergency, either requested by the user himself, or from the feedback from the emergency vehicle sensors. This same module can be used for tracking down a device, with a simple command sent to the receiver module from the user’s phone. This feature is of particular importance to traffic authorities to also track down vehicles in case of theft. Although the device currently uses a GSM module to achieve this functionality, it can be further extended to use the backbone network consisting of RF beacons to achieve this functionality. The project is currently in prototype stage to which more features can be added.

This system is completely within the control of the concerned law and order authority which allows it to build various customizations in the system as well as have data security features.

The main components of this system are:

  1. Backbone Network Architecture of RF Beacons These beacons would provide the location ID to identify the current location. Also other real time data as required by the application and the particular traffic regulation data would be provided by them.
  2. Receiver Device: This device would be fitted in the car, and would contain a RF receiver to communicate with the beacons. It also has a LCD display to display the maps which are stored in a mass storage device (SD card). The LCD used in the display also has a touchscreen which makes interacting with the GUI easier. The device is equipped with a GSM Module to communicate with the external world.

Applications:

Towards the end of this project, we realised the true potential of this project lied more in the following type of applications:

  • Navigation in closed spaces, like campus, big malls other such spaces featuring closed spaces and tight navigation limitations, our system could present a higher resolution navigation support. Moreover the device could be replaced with a smart phone connected to an inexpensive RF receiver, which would help users in navigation. This system could be a boon to deaf-blind users.
  • Positioning, Navigation and Emergency Assistance for National Park Trails
  • Emergency Service Assistance, Positioning and Navigation for Mines
  • Positioning Services for Public Transport Buses

Kindle for the Blind

Team Members:

Malhar Chaudhari, Sarvesh Patkar, Virag Doshi, Tushar Advani, Suchitra Sundararaman, Akshay Gharge, Moumita Dey, Vinayak Joshi

Synopsis:

This project aims at building a portable, light weight and low power device that converts the large ocean of e-knowledge into Braille format. It is a revolutionary upgrade to the current electronic Braille display devices which are not portable. It has an easy to use audio user interface for basic operations, like searching from a library of E-Books. Also, it provides a comprehensive set of audio notifications for informing the user. The device is connected to a USB Mass Storage Device loaded with E-Books whose text can be converted to standard Braille format and displayed on a Refreshable Braille Display. This device will increase literature access to the visually impaired through the development of a portable, hand-held Braille E-Book Reader. Please note that the current version of the project does not have a refreshable braille display due to some fabrication limitations.

You can follow my new design EasyBraille, which uses a unique innovation, in the way characters are displayed from the device.

For more details:

Why is “kindle for the blind” a pressing need?

  • The number of Braille printed books is very less
  • Even if they are available, the Braille version is quite larger than the normal book
  • The cost of blind education is very high, due to requirement of special aids and professionals
  • Refreshable Braille Display cost around 2000-3000 USD often requiring additional computing hardware

This leads to an overall reduced literacy rate for the visually impaired and subsequent lower standards of living around the world. This project was motivated by the fact that, all categories of visually impaired people should have equal access and opportunity to education.

While designing these products it was equally necessary to keep in mind that we don’t just design another refreshable braille display, but a product that addressed majority of the issues discussed above.

Thus the most major features of this product are:

  • Capable of Independent Operation without any external hardware or human help achieved with the help of audio navigation and smart search
  • Capable of reading multiple books in widely available digital text formats stored in an external flash drive
  • Low power battery supported and portable

Hardware Description:

Top Level Block Diagram

Fig: Top Level Block Diagram

  • The device gets an external supply from a battery which passes it through a regulator circuit, the DC Distribution Box (DCDB) to provide regulated power to the various sections of the device. It takes 12V unregulated supply from a battery and gives regulated supply voltages of 3.3V and 5V to the different components in the system.
  • The e-books are loaded into a Mass Storage Device (USB Flash drive) in a .txt format. This Flash Drive is connected to the device (VDrive module which uses VNCL FTDI-Vinculum Chip) which reads the .txt files and converts the text into braille format to be displayed on the designed LED matrix to verify the working of the device. This particular section of the device is of significant importance as the reading of books from a flash drive is a very common mode of data storage and helps in increasing the portability of the machine.
  • The selection of the books within the flash drive is done using the speech recognition functionality of the HM 2007 Voice recognition IC. This feature allows the blind user to navigate a plethora of E-books using simple voice commands.
  • A given file is selected only when the user speaks the title of the given file in the mic. An audio amplifier circuit is also designed using LM386 to play multiple monotone as notifications to the user.
  • Up-Down scroll buttons are provided to scroll between the lines of a given text files.
  • The control logic unit consists of the MSP430F5659 microcontroller. This particular IC was chosen because of the large number of IO ports requirements as per the design of our system.

Software Description:

Software Flow Chart

Fig: Software Flow Chart

The software implementation of the system is based on a sequential logic. The initialization of the system includes initialization port pins and verifying operation of various sub systems. To read any E-Book, hardware interrupt has to be raised by the user, which transfers the control to the voice recognition module which then takes a user input. Based on this input, a given E-Book file is copied from the USB Mass Storage Device and converted to braille format and stored in the RAM space of the MSP. These converted characters are then sent to the LED Matrix Display.

Note: I have been unable to include the exact technical details (for eg. Implementation etc), as I don’t have the permission to release the same from some of my other team members.