Quemado High (103)

The Quemado High team (#103) is from Quemado. This year they've submitted a project titled Touch-less Computer.

Proposal
Proposal: Team: 103 School: Quemado High School Area of Science: Computer Engineering

Proposal Problem: Design and build a touchless computer.

Expected Results: We expect to build a multi-touch environment at the lowest possible cost. We also expect to learn how the Microsoft Kinect works; the programming language of the Kinect; as well as expand our knowledge of C, C++, Visual Basic, HTML, CSS, PHP, and Java. Our plan of action is to first learn the basics of the necessary languages. Once we know the basics, we will view the Kinect software and figure out how it works. Once we have a firm grip on how the Kinect works, we will design and build a program to utilize the Kinect hardware. Once we have working software, we will build a compact, easy to move computer and projection system. Once the system is built, we will build a piece of software to simulate our problem.

Interim Report
Touch-less Computer

Team: 103, School: Quemado High, Area of Science: Computer Science

Interim: Multi-touch Environment with Windows 8 and Kinect

Team 103: Justin Miller, Hank Edwards, Sam Eberle, Nicole Martin

Background/Intro

Since Microsoft released the Kinect, hackers have found ways of making it control computers. With online research, it is easy to find projects were people have used Windows XP and Windows 7 to manipulate the drivers that are embedded in the Kinect. A modification that is common is editing the tracking drivers and assigning them different identification codes so that the computer thinks the tracking cameras are actually the mouse. Then a piece of software intercepts the Kinect’s data and converts them to coordinates then sends them the computer which then uses the data to control the mouse. We want to establish a connection similar but instead of just controlling the common environment, we want to take Windows 8 and turn it into a simulating environment. This environment should be adaptable to many other simulations. In addition, we want to be able to edit variables through the Kinect with Multi-touch technology. At this time, the Kinect’s hardware limits us to only two users at once but the hardware can track both users with 48 points per user, a total of 96 total pick-up points.

Kinect Framework

Hardware:

• Electric motor • Three sections of computer mother board • Cooling fan • Two cameras • Infrared projector • Four microphones • Wolfson Stereo ADC with microphone preamp • Fairchild N-Channel PowerTrench MOSFET • NEC USB 2.3 hub controller • SAP Package Chip • Camera interface controller • Marvell SoC camera interface controller • Hynix 512Mb DDR2 SDRAM • Analog devides CMOS Rail-to-Tail Output operational amplifier • TI 8-bit, 8-channel Sampling A/D converter • Allegro low voltage stepper and single/duo motor driver • ST 8Mb NV flash memory • PrimeSense image sencor processor • TI USB audio controller • Kionix accelerometer

Software:

The Microsoft Kinect software is a very complex code structure. When Microsoft was working on the Kinect, they didn’t want to program in all the possible gestures because there are endless possible gestures. In order to get around having to program new gestures constantly, they made the Kinect software adaptable. The Kinect scans you, and figures out all the physical details about you and then saves them. The Kinect software has face reconization tools that allow users to login to xBox live by just waving at the Kinect. This software is used to identify the user and the Kinect then brings up that users database of what it has learned and uses it for you and you only. This software is one of the most advanced software networks yet. The Kinect also has unique drivers that work with each component. For example, the IR Projector has a separate driver than the two tracing cameras. The drivers are very unique because of how they work. “Hackers” have found ways of editing these drivers in Windows XP and Windows 7. Windows 8 however is a bit more complicated because it comes with the Kinect driver’s native. In addition to the native drivers, the drivers are not located in the normal driver directory either. This can result in a headache for programmers that want to use the Kinect to control the computer. A way around this is to create your own drivers but in the long run could result in more work than it’s worth.

Problem

As mentioned before, the goal is to adapt the Microsoft Kinect with Windows 8 and allow the input values the Kinect gathers, control a simulation environment. The simulation environment shall be adaptable to any simulation based in Java and work with input values from the Kinect. Once we have a working environment, we will take the San Augustin Water Crises and build a simulation so we can visually see the outcome of the bill. The San Augustin Water Crises is a proposed act that will move 54,000 acre-feet of water per year.

Hypothesis

From experience with the Multi-Touch Surface project last year, we expect many problems along the way. Some problems we expect to run into is driver error and/or failure, system lock-ups, and calibration difficulties. The simulation will be fairly accurate and be able to calculate outcomes based on global variables in a timely manner.

Materials

In order to accurately develop the environment and simulation, we need the proper software and hardware. For software, we need Visual Studio 2008, Visual Studio 2010, Visual Studio 2011 Developer Preview, Netlogo, Java Development Kit, Expressions Studio, Windows 7, and Windows 8. As for hardware, we need two working computers. The client needs at least 4gigs of RAM and 250gig HHD. The development computer needs 8gigs of ram and at least 250gig HDD. The client will have Windows 8 installed and the development computer needs Windows 7 installed on it. In addition, we need the Microsoft Kinect and the USB power adapted.

Procedure

The question is, were to start? There are many aspects of this topic that needs to be touched on before we can start working on the environment or the simulation. To begin, research was needed so that we knew what we were getting into and of course we need the platform to develop on. To start out, we downloaded Windows 8 Developer Preview and installed it onto the “client” computer. The reason for it being named, “client” is because we won’t actually be developing or hosting any platforms on this computer yet. All development will be done on a computer were we already have the software we need already installed. To begin, download Windows 8 Developer Preview from the Microsoft Development Network. Next, since your already there, download Visual Studio 2011 Developer Preview as well. The Visual Studio 2011 has the Windows 8 environment variables native in the new languages. If you don’t already have Windows 7, it is recommended you buy it. Windows 7 seems to be a little more stable with developing Windows 8 apps. If you’re a public high school student, contact your computer system administrator and ask him to apply for a Microsoft DreamSpark account. Microsoft DreamSpark gives public high school students the opportunity to get high end programming tools that would usually cost hundreds of dollars. Here you can download Visual Studio 2008 if you want. We prefer Visual Studio 2008 for certainty jobs because of how it uses recourses. Download Windows 2010 for the Internet Information Services packages. You’ll need that to host the java applet. In complete honesty, you only need Visual Studio 2010 on the development computer and Visual Studio 2011 on the client. The reason we recommend the 2008 edition is because it performs better with certain jobs. Next, it is essential to download the Kinect SDK from the DreamSpark account. This gives you all the drivers you need and tutorials. Install the Kinect SDK on the development computer. You won’t need it on the client because Windows 8 have the Kinect driver’s native. Plug in the Kinect and check out some examples the Kinect SDK came with. Once you have a stable environment, start tracking down the information you need to make the simulation you want to run. We were able to find a large list of wells in Catron County. In order to go any further, we need to get the Kinect to work under out command. As a starter, we followed a tutorial that showed us how to track our skeletal view. We completed the tutorial and during the procedures, we noticed areas were we could improve their program. We went ahead and reprogrammed the skeletal view program to the way we figured would run best. Later notes will be released on how to program the skeletal view to our specs. The reason we are not including these specs now is because we would take up at least 200 pages of how-to notes. The program became very complex once we got down to it.

Data

At this time, we have not been able to attain data that is relevant to the project. As mentioned before, we spend a large amount of time finding data about the wells in Catron County. We have yet to find data on the aquifer. Originally, we were going to include the data we found on the wells in Catron Country bellow, but after we realized that it would extend out this report by 75 pages we chose to not include it. Furthermore, we are not able to present any data that is relative to the project besides crash reports from Windows. The reason 8gig’s of RAM is recommended is because at the start, we were running Windows 7 64-bit with 4gigs or RAM. Once we started working with the Kinect and relaying information back and forth between Windows 7 and Windows 8 while logging tracking data, we found that we maxed out our memory fast. The data that was logged is irrelevant and not usable.

Conclusion

At this point, there is no conclusion that can be made. We are working hard to get the required data and will continue to work over the holiday vacation.

Resources

https://www.dreamspark.com/Products/Product.aspx?ProductId=42&wa=wsignin1.0

http://www.t3.com/features/exclusive-how-does-microsoft-xbox-kinect-work

http://msdn.microsoft.com/en-us/windows/apps/br229516

http://msdn.microsoft.com/en-us/vstudio/hh127353

http://msdn.microsoft.com/en-us/vstudio/aa718325

Interim Comments Reviews
Hello Team 103,

My name is Teri Roberts and I have been asked to review your Interim Report. My background and training are in Computer Science and Software Engineering. I work at Los Alamos National Laboratory and I have been working with the Challenge for many years in a variety of roles.

First let me say I am very impressed with the problem that you selected. It is a very aggressive goal to build a computer. I have no doubt that given enough time, you will succeed. I am concerned that you will not have enough time to finish your challenge in the few remaining months. That is OK. Just keep on working and report what you have at the end. You have already learned a lot!

Gestures as input are on the cutting edge of technology. It is common to run into problems and experience setbacks from hackers. Your project requires the use of many framework components (hardware and software) just to lay the foundation for what you hope to achieve with simulating the San Augustine Water Crisis, which is the ultimate computational problem that you want to represent. It probably is not necessary to use a touchless (gesture driven) computer to achieve your desired end result.

Perhaps half of the team could build a representative computational model of the water crisis problem in Java or Star Logo and simulate it. A resource that might help you model a water cycle can be found at http://www.ucar.edu/learn/1_1_2_4t.htm. Discussion of the water movement plans are at http://www.scribd.com/doc/52797827/Augustin-Plains-Ranch-Water-FINAL-REVSION-04-11. For your final report include a section on the water crisis model and simulation. Meanwhile, the other half of the team could keep working on building the gesture-based computer. If both efforts come together, you will have met your lofty goal and you will have a dynamite project to present.

Finally, don't forget to run a spell-checker and review the grammar in your report. I believe you mean 'crisis' instead of 'crises' and I caught a few instances of 'were' that should be 'where'.

Thank you for allowing me to review your Interim Report. Good Luck for a strong finish!

Introduction
Hello my name is Ben Turrubiates I am a Computer Science major at New Mexico Tech. I study computer science because I am interested in programming, and security. I hope to have a career in the information security field someday.

Progress
I am not completely clear on what the computational question is here. I think you need to clarify the problem. You need rethink your plan on how you are going to create the touchless computer. At the moment it seems like you are unsure of what you need. Rethink the software you are using, and the whole client-server model.

Mentors
Do you have mentors? I could not find any.

Model
There doesn't seem to be any modeling. Is there any sort of modeling?

Face to Face Evaluation
Remember you have a face-to-face evaluation later this month.

Utilize this Judges' rubric used for for the Expo judging, in April, to organize your posts.

I am impressed that you are taking on such a large project, I'm looking forward to the final product.