ECE497 Project LCD Tetris Game

Revision as of 02:42, 20 November 2013 by Alvareap (Talk | contribs) (Work Breakdown)

Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: Alex Alvarez

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  10/100

(Inline Comment)

Executive Summary

This project builds upon the Qt Tetrix example code, adding fuctionallity and gameplay to this Tetris-like game.

Features I have added/modified:

1. Added correct Tetris-style keymaps (Z,X,C, Down Arrow, Shift, P), and block colors

2. Added hold block functionality from pressing shift.

3. Added correct level progression criteria.

Features looking to add:

1. Tetris Theme.

2. Animations when line clear and Tetrises occur.

3. Ghost Block (?)


If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.

Installation Instructions

This project requires Qt to build and Qt Embedded to build the Beagle as a target.

  • See Qt's Webpage for details on Qt install. (Or sudo apt-get install qtcreator)
  • Include your github path as a link like this to the read-only git site:
  • Be sure your is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
  • Include a Makefile for you code.
  • Include any additional packages installed via opkg.
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.


Here is where you brag about what your project can do.

Include a YouTube demo.

Theory of Operation

Qt is a C++ development framework specializing in allowing for quick GUI development.

Qt applications need a Qt server to be running in order to function properly. Luckily, any application can function as a Qt server, so a single application can be standalone, on a device that has Qt libraries properly setup. Similarly, other multiple applications can connect to the same server, receive input, and send output.

A positive for embedded programming is that Qt applications can write directly to the frame buffer, so no other graphical utilities have to be running in order to display an application properly. Therefore less overhead is necessary as you wouldn't need to run gnome, xfce, or a similar graphical interface.

Qt runs on many platforms, though the main design flow is based around setting a a host environment on which you can cross-compile applications for a target. This target must be able to run Qt libraries, which also need to be cross compiled. With this setup, one can deploy the application from the host to the target, and run the application natively on the target.

Work Breakdown

List the major tasks in your project and who did what.

-Implement Tetris Game, in my case I used the Tetrix Sample from Qt and added functionality to it.

  Setup the BBB to properly run Qt Aplications
  -Setup cross compiler on host for BBB linux distribution.
  -Cross compile the Qt libraries for the BBB on Host
  -Cross compile the Qt app
  -Deploy libraries and application on host

Future Work

Multiplayer Game mode that displays a small version of other people's games in a small frame on the side.


Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.

thumb‎ Embedded Linux Class by Mark A. Yoder