EGM/CSCI 373: What I need to know

Student comments

A basic overview of how you would direct a computer to read and use real world data collected form instruments. Use of pre-existing examples but not explicitly related to the existing robotic challenge. A short examination of basic interaction between the real world and a computer.

A list of materials available from the school and where to find them might also be helpful. A list of relevant and helpful reading material available in the library or online and is not too explicit. A checklist of expected progress by date for the project.

Student comments

I have a good background in measuring voltage, current, and capacitance and building robots. However, using sensors is what I would like to learn the most on and how to make the connections from them to the Arduino board. Knowing how much battery power is needed would also be useful knowledge so the battery doesn't run out during competition. The speed of the robot is key in getting a respectable place in the standings.

I don't know a whole lot on the programming side of things in actually how to interpret the data given and put that data to good use inside the program. I know which sensors do what but how to put that data into an array and which ports to put the sensors into the Arduino board.

Building the robot will not be the difficult part but planning and managing what solution would be implemented will be the most difficult part from my point of view. Once the decisions are made and everyone agrees that the decisions made are the best possible then the actual building of the robot will not be an issue.

Student comments

First, I would need to have an in depth understanding of electrical signals in reference to the voltages or currents. Alternating Current (AC) and Direct Current (DC) refer to the electrical signals and voltages, which will play a significant part in the construction of the robot. Motors and sensors play a major part in the design; therefore, I must have an understanding of the various types of these electronics. Motors would be the method of the movement for the robot and the sensors would detect information about itself and its environment. Sensors are very important for the robot to measure distances in order to complete the maze.

The mechanics of the robot is very essential. I would need to know what proper parts to use in order to maintain all the parts of the robot. This will be a challenge for me, because I'm not very skilled in mechanics. But, I am willing to learn in order to overcome this minor obstacle. Microcontrollers are very important as well, because it's the brain of the robot. Basically, the microcontroller is the computer and I have a fair comprehension of how they work. I have worked with the Arduino in a previous class. Computer programming is the heart of the robot in my opinion. In order for the robot to perform, it must be programmed. Programming is where I am more familiar in this project due to previous courses taken. In order to be successful in this robotic design, the programming has to be flawless.

Student comments

The first big concern I have is if we will be given the ambient room temperature we will be testing against prior to the competition. One whole task is dependent on this so we will need this number for testing. Other parts of the actual competition itself are what would be the best ways to gather our measurements from the box. The speed of the robot itself is also a big factor in that we can get between tasks in as little time as possible. From experience using DC motors ran off of batteries I am concerned about the extent of the use that we will get out of them and what types of batteries are allowed so that we can extend the life of our robot. The dimensions of the robot are straightforward and the design of it is up to us so the only questions I might have are about the electronics involved in testing at each block.

Student comments

As Arduino seems to be the main programming language we'll be using, I'll need to learn its syntax. I have yet to take any of the Processing classes, but I have no concerns about being able to pick it up quickly.

Also, it's been many years since I've been in physics, so a quick refresher on electricity and waves will be in my future. It's been quite a while since I've dealt with the microcontrollers (if at all) and circuits as well.

In addition, I would be also using a revision control system for the first time. There is much that I feel as if I'm not certain of, but that could just be from removed. However, I believe that I should be able to catch up quickly and bring a great addition to my team.

Student comments

I believe that I need a deeper understanding of microcontroller systems - an example might be how to utilize multiple microcontrollers in an array. I feel that I need to understand more about how to utilize motors using an Ardunio or other microcontroller.

As far as languages are concerned, I believe that learning any language is somewhat easier than understanding what exactly you are doing. Unfortunately, this project gives me the feeling that I am going to be utilizing sensor libraries without understanding what I am doing or how to write my own.

Student comments

One thing I've always wanted to know more about during my time in the Mechatronics program is manufacturing processes. Provided materials and machinery may or may not be enough, but often I feel as if the end result of a project has little physical refinement. I am not expecting a production-quality chassis or anything of the like, but want to get away from Legos and trimmed pre-cut metals. I'm not sure how important this is to me, or how it could really be integrated with the class.

I also need to learn more about the way the software will be a part of the overall design. I have taken programming courses and understand it on a basic level, but would like to further realize what is going on inside the Arduino (for example). I would like to know what types of steps are necessary to go from readable code to motors turning, so I can appreciate the efforts of the computer science individuals.

Other than these, I think I will need to begin working to find out what I really am lacking in my education.

Student comments

In order to make a robot that would have a respectable chance in this competition, I would need to learn two primary things: firstly, I need to learn how to use a line reader to read and count hash marks as well as use that data to follow a path, and secondly learn how to utilize the different unusual sensors in conjunction with Arduino inputs.

For the first, I will need to learn what kind of sensor can be used for this, and how to program the Arduino to interpret those values in such a way that course correction and steering of the robot can be accomplished. For the second, I will need to learn of the kind of sensors we can afford and use, and then figure out how they interact with the Arduino's inputs and outputs so I can figure out how to interpret that into useful action.

Student comments

Assuming I was in a group with Mechatronics students as well I would focus on what I would need to learn from a coding perspective. First, I’ve never worked with Arduino boards before, so I would need to learn the Arduino coding language. I hear that this is very similar to C, and since my experience in programming started with C and C++ I feel like this shouldn’t be too difficult to figure out. Next, of course is figuring out the interfaces for each sensor that is attached to the board. I’ve not ever programmed any kind of physical sensor before, though hopefully this is fairly well defined on the board and will be easy to learn. Then I would probably need to study up on line following algorithms, and possibly refresh my understanding of circuits and electricity, since I’ve only ever taken the very basics when I had considered becoming an electrical engineering major a few years ago. Obviously as more problems cropped up in the design phase of the robot I’m sure there might be some unforeseen topics I would also need to learn.

Student comments

I worked with a team to build arobot before in EGM 180 with Dr Brucce. I learned parallax, solid works; anddealed with necessary component to build a robot. In my team, I was removed...

There are several sensors I am familiar with in this project. I need to learn about those sensor working logic and how I can apply them into my program (looks like we are going use C or Clike software which I am not good at) that’s where computer science people come into picture.

I belive that Computer science people and we, engineering will be a good team. They will deal with softwarepart while we are working with hardware part.

Student comments

The main thing which I feel like I need to learn is an overview of sensors and how to use them. Specifically I feel like I should know how the different sensors take their readings, what will assist them the most in taking efficent & accurate readings and the formats this data is returned in. Additionally I need to look into if there are multiple types of sensors for reading types of values; if there are then I will need to look into the advantages/disadvantages of each type of sensor and if there would be any advantages to running them in tandem.

A related topic which I need to learn about is the different types of wheels/propulsion, the features of each type of propulsion and how to control whatever type we settle on.

I will also need a quick refresh of arduino code and if arduino's can run C code natively or not. If they don't I will need to find an interpreter to convert C to the arduino C-like code or figure out a way to convert the code by hand.

Student comments

In order to build a robot that could make a respectable effort in the competition there are a few things I would need to learn. I would need to have a better background in programming. I have had a few classes where I was introduced to programming but I don’t believe I have enough of a programming base to program the robot. I have been introduced to a basic C language, but have done most of my programming in the LC-3. I believe this project will involve a good deal of programming, and I feel I would not be able to complete the programming aspect without further programming knowledge.

I have a fairly good background in the electrical aspects needed for this competition. I have studied how to measure voltage, current, and capacitance and feel comfortable with these aspects of the competition. I would need to have a better knowledge of how to measure all three with the same gage. I have a good knowledge of gears, but only a basic knowledge of motors and servos. I would need a better knowledge of how motors and servos work to make a good effort in the competition. If I had a better knowledge of programming and motors, I would be able to make a respectable effort in the competition.

Student comments

I will need to learn more about sensing volt/capacitance and how the other sensors work and the format of their data. I have basically no engineer/mechatronics experiences (besides playing with Legos a lot as a kid) so stuff like different kinds of motors and properties of materials would be useful. I have a rough understanding of electronics, so some detailed explanations of things like capacitors and resistors would help. In general, the hands-on things is what I'd need to learn more about to actually build a robot.

I've never used an Arduino board before, but I've used the pic24 (in csci 255). Some explanation of how it works and maybe comparisons with the pic24 (if there are others who have used the pic). Also, my programming experience is mostly in game/simulation/tools programming so I guess I'd need to learn more about programming closer to the hardware.

Student comments

I don't know much about building robots beyond what was covered in EGM 180. I have never touched an Arduino, though I have been told that the language is C-like. I feel confident I can program well enough to perform simple tasks like motor control (looping and if statements/conditionals, most likely), though I would like some primers on how to code for these tasks.

In general it seems that the voltage, capacitance and thermal sensing challenges are the easiest to determine a sensing method. I would like to see some ideas for sensing a waveform that are not hardware intensive (meaning, requiring a circuit to be built).

I know very little about what is required to actually build the chassis/body of the robot; though this is a minimal part of the challenge. My mechanical knowledge is very limited when it comes to things like gear trains.

Student comments

The key to this competition is going to be speed of the robot. In order to take right turns around boxes at high speeds, we will need a zero-turn radius design, which I have built robots with this capability before. If we have a two wheel drive system with some additional stability wheels which will have 3 degrees of freedom of motion, we can program the servos according to the size of our bot to turn a 90 degree turn every time. The biggest obstacle regarding speed and powering everything on our bot is having a good battery. 9v batteries, although small, will not be able to sustain the power needed for a full competition at high speeds. (I observed this through trial and error in EGM 180, burning through many batteries over the course of the class.) I think we will need something a little larger, perhaps something for large RC cars or maybe even small ATV's. This approach will add weight but power would no longer be an issue, so we should be able to overcome that weight. I already own an arduino board and am semi-familiar with the code it uses, so an early goal of mine is to experiment with my board in order to gain a better understanding of the code needed. Even though I think the majority of this will fall to a CSCI student, it never hurts to have additional competent members of the team.

Student comments

I feel fairly comfortable with the programming side of this project. Most of the things I'm not sure how to do are on the physical side of things. Such as exactly how you take the measurements required and how to build circuits that can test them accurately enough. I do not know how to do the line following thing but I am sure there are lots of examples for that cause everyone seems to do that.

But on the programming side there are a couple things I think may be troublesome such as configuring the processor to do multiple tasks at the same time as we probably want our measuring process to be independent of the movement. And we would also probably like some type of timeout thing in case it is taking too long or gets stuck in some type of strange loop while measuring.

But overall I feel like mostly its how to do the tests that I would not understand, and the small problems that come up in programming that will be most difficult and I will need assistance in getting through.