University project, help needed

First time posting, nice to meet you all!

I'm Adrià, from Spain. I'm doing a degree on Computer Engineering. This year we have a subject in which we are required to build a robot using a programmable chip, some sensors and some actuators. The problem is: they haven't given us any specific robot. We're supposed to think of one ourselves, and we aren't receiving a lot of guidance.

After many iterations, we've settled on a specific idea and we've made a list of all the components we think are necessary, but we're very worried that there will be problems connecting everything and making it work, since we have no experience at all with Arduino or with building robots in general. Will we need something we've not thought of? Are the components we've chosen adequate? Many questions have arisen.

Our idea is the following:

We want to build a robot which moves on the ground. Movement will be accomplished by two wheels rotated by motors. An extra idler wheel will be added for stability. Rotation will be accomplished by moving only one of the two wheels. The robot will be able to be remotely controlled by a computer via WiFi. It'll receive instructions from the computer, which will be processed by the Arduino chip, and will carry out the appropriate actions. The robot will also have GPS to know its approximate position. This is so that we can send it coordinates from the computer and let it move towards that specific point. For that, we concluded we also need a magnetometer, to know the direction we're facing. Lastly, the robot needs to be able to avoid any obstacle it encounters when trying to move to a specific point, for that we've concluded a sonar is needed (to detect nearby objects). (Optionally, we might include a camera to have more possibilities in case we have some time left. We've included it on the component list for now, but if it gives us too many problems it can be left out)

This sheet contains the list of components we're planning to use. Take into account that we have a budget of 100€ (roughly $105). Also, all the structural parts will be given to us for free (via 3D printing), so they're not included in our component list, only the electronics are.

I know it might be a bit too much to ask, but if someone would be so kind as to let us know if we're gonna have any problem or if everything's alright with the components we've chosen, we'd be extremely grateful!

Our teacher expects us to give him the complete and immutable list of components by next Wednesday to place the order...

I don't have a lot of experience with robots but your list seems reasonable.

GPS is only accurate to around 3m. If you start from a known position, the easiest way would be to keep track of your current position based on how far each wheel has turned and the circumference of the wheels.

we are required to build a robot using a programmable chip, some sensors and some actuators.

Are you required to make it do all the things you say? Does it even have to move? Would a line or light spot follower suffice?

This for an engineering course. What you make is supposed to reflect yourselves though with lab teams that can be a complete joke. Unless it's "wheat from chaff" time, this will be a learning exercise rather than a test.

Also it is time to learn C and Arduino. Surf the Arduino site for all the informative pages through the Learning menu in the green bar at the top of every page including this forum. Start with Getting Started and the Foundations page. Do not miss the Many Things At Once sticky thread, you will probably need to know that lesson.

Hello, Adrià, from Spain. Your post leads me to believe you are not doing this project alone. Hope you are the appointed leader, someone needs to be the leader.

Your spread sheet of requirements is pretty minimal. Let's talk about motors and wheels. Someone needs to estimate the weight of your robot, including the batteries. This is what your motors will have to move. How fast and how far and how long it will move must be approximated. This information will give you a value of torque and power needed for your motors and wheel size. Next, the power used by the motor will tell you if the motor will burn up without a heat sink mounting or will self cool.

Now you can find motors to fit. How fast do you intend the robot to move? Does this match well with the motor speed and wheel size? Is gearing required to match the motor speed and robot speed?

Unless the others in the group have Arduino boards, just begin with one sub-project. Getting the robot to move the way you want with a wire to a PC. Is someone going to build a controller for the future control of the robot? If there are several people with several Arduinos, start them on projects to learn about the other devices you want to include in the robot.

No, I have never built a robot.

Paul

If you are familiar with web programming then WiFi is probably a good idea - building on existing knowledge.

However if you are not proficient at web programming then I think it would be much simpler to use something like a pair of nRF24L01+ transceivers one on the robot and one on an Arduino connected to the PC. This Simple nRF24L01+ Tutorial will give you an idea of what would be required.

...R

Thank you all for your replies!

SamIAm93: I don't have a lot of experience with robots but your list seems reasonable.

GPS is only accurate to around 3m. If you start from a known position, the easiest way would be to keep track of your current position based on how far each wheel has turned and the circumference of the wheels.

We are aware of the relatively low accuracy of GPS, but we decided to go ahead anyway because we'll try to show the actual position of the robot on Google Maps.

GoForSmoke: Are you required to make it do all the things you say? Does it even have to move? Would a line or light spot follower suffice?

This for an engineering course. What you make is supposed to reflect yourselves though with lab teams that can be a complete joke. Unless it's "wheat from chaff" time, this will be a learning exercise rather than a test.

Also it is time to learn C and Arduino. Surf the Arduino site for all the informative pages through the Learning menu in the green bar at the top of every page including this forum. Start with Getting Started and the Foundations page. Do not miss the Many Things At Once sticky thread, you will probably need to know that lesson.

All other proposed projects from the other students are of a similar caliber. We're on third year, so all the "separating what from chaff" has pretty much already been done. We're very familiar with the C language, and probably will be able to pick up Arduino without much problem, so that's not a concern. We'll definitely check out the resources you mentioned, though!

Paul_KD7HB: Hello, Adrià, from Spain. Your post leads me to believe you are not doing this project alone. Hope you are the appointed leader, someone needs to be the leader.

Your spread sheet of requirements is pretty minimal. Let's talk about motors and wheels. Someone needs to estimate the weight of your robot, including the batteries. This is what your motors will have to move. How fast and how far and how long it will move must be approximated. This information will give you a value of torque and power needed for your motors and wheel size. Next, the power used by the motor will tell you if the motor will burn up without a heat sink mounting or will self cool.

Now you can find motors to fit. How fast do you intend the robot to move? Does this match well with the motor speed and wheel size? Is gearing required to match the motor speed and robot speed?

Unless the others in the group have Arduino boards, just begin with one sub-project. Getting the robot to move the way you want with a wire to a PC. Is someone going to build a controller for the future control of the robot? If there are several people with several Arduinos, start them on projects to learn about the other devices you want to include in the robot.

No, I have never built a robot.

Paul

Indeed, I'm not alone in this, we'll be four people working on the project! The approximate weight of the components is included in the spreadsheet. We don't really care about the car's exact speed, we're fine with it moving just "not slow". We'll more carefully look into it and try to make some calculations though.. Also, we'll have three Arduinos in total, so we'll probably work on the different devices in parallel, then put them together when they're completely working individually. Finally, you mentioned that our list is pretty minimal, what do you think should be added?

Robin2: If you are familiar with web programming then WiFi is probably a good idea - building on existing knowledge.

However if you are not proficient at web programming then I think it would be much simpler to use something like a pair of nRF24L01+ transceivers one on the robot and one on an Arduino connected to the PC. This Simple nRF24L01+ Tutorial will give you an idea of what would be required.

...R

We've done some web programming, but I think it'd still take us some time to get the WiFi communication working. After some consideration, we agreed that we'll use the nRF24L01+, since it'll be easier given the fantastic tutorial you've written for it :D!

Unless you have them already, you will need chargers for the batteries.

Paul

kikones34: We're very familiar with the C language, and probably will be able to pick up Arduino without much problem, so that's not a concern. We'll definitely check out the resources you mentioned, though!

Tasking without an OS requires some not-difficult techniques and practice. You probably already know state machines, you will need that to break longer processes into short pieces. Without OS-driven pre-emption the code has to keep itself fast. For yinz it's going to be pretty easy and I hope nicely interesting.