User:Jake Gallagher/enes100/projects

Project Preference

 * 1 MakerBot PLA Material Characterization (Implement)
 * 2 Hockey Table
 * 3 Shaker Table (Implement)

Problem Statement
''In one or two sentences, describe the project that your group will be working on. Identify what CDIO phase (Conceive, Design, Implement, or Operate) your group will complete in this project cycle.''

Project Plan
My groups project plan for the next four weeks is to get a camera to follow an object and make a tutorial for future classes so they can easily learn how to implement that into their project.

Week 1 Narrative
This week I made a canvas discussion for my group members so that we can talk to each other when we are not in the class. I have also edited the discussion page and entered in the tasks that we need to complete for this project. I have started to research the different kinds of programs and devices we will want to use, figuring out the pros and cons of each. I am leaning towards the raspberry pie because it will be best with video and there is plenty of information about them on the internet. Also because raspberry pie will be able to put on robots and other things. Mattlab will limit our project to just the computer from what I understand. Arduino would be very convenient but it does not take video as well as the raspberry pie.

Week 2 Narrative
This week I have had to teach myself many things about code/programming that I have no understanding of. This project is the type of projects that electrical engineers do in their final years of college. I have spent many hours on youtube and on different websites trying to learn how to code. I became very overwhelmed and went to professor Forrester to get a better understanding for the programs that I will need to be using for this project. Professor Forrester said that each of us need to try different programs and see what works the best. After researching the different programs I have chosen "OpenCV" because that is what most people online use, so their is more information for me to learn how to use this program for the object tracking. Also, from my understanding the OpenCV program is an advanced program which means it will work well with Raspberry Pi. I have also watched videos where OpenCV works well with Arduino, that is another reason for choosing this program. There are parts that I have yet to learn still and will need more help from Professor Forrester. I have watched many tutorials but I have found one that really broke everything down for me that I could understand having no knowledge of coding/programing. So far I have downloaded OpenCV and Microsoft Visual C++ onto my home computer. I have spent many hours learning how to link the two together. I am still learning how they are linked together. I put the code I found from the tutorial into the Microsoft Viewer and everything seems to be right except that it cannot find a file that it needs. I am not sure if that is because of the computer I am using or if it is directing the program to something that I typed in wrong. I also do not have an external camera, I think this might be another part of the problem. I have changed the "0" to "1" which is suppose to change a webcam from external to internal. This may or may not have something to do with the problem, that is what I will be working on next week. I can only run so many tests because I do not know anything about codes, and that is the project. I have not come across a way of object tracking where advanced codes/programming are not involved.

This is where I keep my research for all the links. https://docs.google.com/document/d/1F6nNZIltGKX4jCOh3M_flEMjeRUBjTVcc7tn747H7uY/edit I have been to each of these pages many times and watched all the videos a couple times as well. This page is what helped me decide what program I wanted to use because it shows the weaknesses and strengths of each program and also shows the variety of OpenCV.

Week 3 Narrative
This week we have seen the most physical accomplishments due to the help of Mr. Edelen. This week I started out having a broken code on OpenCV with Microsoft Visual Viewer. After class on Monday I went to talk to Mr. Forrester about the code to see if he could help me figure out what was wrong with it. He told me that I am trying to do things that would take me a lot of time to learn about. He suggested that I work on a program called Processing. He also showed me the blob detection code but left me there to learn how to download it and find out how it works. After visiting with Mr. Forrester I went onto the internet and downloaded processing. I began this assignment not even knowing what 64 or 32 bit meant. From there I learned that I had a 64 bit Microsoft operating system. I downloaded the latest version of Processing, Processing 2.2. After downloading Processing I downloaded the blob detection code but did not know how to put it into the libraries so that I could use it. That is when I went to Mr. Edelen with my group to figure out what the problem was. After visiting with Mr. Edelen we still were not sure what the problem was until later that day when Mr. Edelen figured out that Processing 2.2 had a bug in it. He lead us to download 2.1 which still did not work with the blob detection on my laptop. I was receiving an error that said, "The requested resolution of 160x120, 15/1 fps is not supported by the selected capture device." So I emailed the person that created the code and he responded saying that it was not an issue with the code, it was an issue with my camera. Mr. Edelen then found a code that would show what resolution would work for the blob detection depending on what kind of camera a computer has. This was the breakthrough that made everything work. Both Peter and I could finally use the blob detection on our own computers. Mr. Edelen taught us the basics about code and how it works. He then went on to show me how to put a point in the middle of the box that surrounded the blob. This is where things became very confusing for me. I am currently trying to replicate the point in the middle of the box, while also looking at how other people do velocity lines to see where the object will be. I have also put in all the information into the Tutorial page that I have gathered for the project thus far.

Week 4 Narrative
This week my task was to create a tutorial for downloading Processing 2.1 for future users. I started out this task by asking Mr. Forester what program he used for his tutorials on the Engineering page. He suggested cam studio, so I downloaded cam studio onto my home computer. After I downloaded the program I found out that it downloaded 5 other programs with it. Turns out all these programs were virus' and I immediately uninstalled all of them before something went wrong. I had to find a new starting point, so I went to Google and typed in "screen recording software." I was not sure what program was going to give me virus' so I went to youtube. I knew that if a program had a virus the comments underneath the video would most likely let me know before downloading. I got lucky and found the program that I used for the tutorial on the first video. The name of the software I used was called "Microsoft Expression Encoder 4." This was very convenient because there were a couple videos with tutorials on how to use this program. Unfortunately, they did not explain the problems that I was experiencing with the program. The first problem I had to overcome was how to get my voice to play on the videos I was recording. Every video I recorded would show what I was doing on my screen but would not record the sound. I played around with the settings until I figured out that I needed to turn one of the mics off and another on. My next problem was with the encoding part. After each video it would ask to encode the video, except it would never show the video after it was encoded. I played around with the setting but nothing seemed to be working. I then went into my files on my computer and found where all the videos were being saved. I went to my youtube channel and uploaded the file without encoding it in the other program. Again, it was not showing the proper video but it was at least uploading and playing the sound. I went into the settings and changed the frame rate from 15 to 5. This was the solution to all my problems. Once I found out that it was working I began making tutorial videos on downloading Processing until I was satisfied that I included all the necessary information.

This is the tutorial I created for downloading Processing 2.1 http://www.youtube.com/watch?v=9bVXOAmWJf8

Other than the tutorial itself I tried to clean up the Object Tracking Tutorial page and make it look as professional as possible. I included headings and used a code that made the code for the blob detection all one neat code without any distributions. I put the tutorial at the bottom of the page because all the information on the tutorial page was in chronological order. Although, I was unsure if this was the best place for future students.

This week Peter and I were trying to get a point to show up in the middle of the box. We figured out where to put the code for the point, and we saw the point show up on the corner of each box, but we could not figure out how to get the point to be in the middle of the box. If I continue on this project this will be the next step to figure out.