Thursday, April 24, 2014

Final report

Name: Michael Franck
Date: 04/13/2014
Course Title:   Applied Robotics
Number:   ETI 4880C
Schedule:  Kendall: W: 6:40PM-9:10 PM
Term:  2013-2 (Spring 2014)
Mapping Robot
The purpose
To build a mapping robot that goes through a maze and maps it out.

Function, Structure and design
The robot will move by a chassis with four wheels. The robot chassis will be powered by its on 7.4V LIPO battery. The robot movement will be controlled by the arduino. The arduino micro controller will power by an 11.1V LIPO battery. The arduino will tell the chassis where to move by the results from the ultra-sonic sensor. The robot uses three ultra sonic sensors. Two will be place on the right side of the chassis to detect if a wall on its right side and the other in the front to detect if a wall is in front of it.  The ultra-sonic sensor will keep the robot a certain distance from the walls. As the robot move, it will keep an equal distance from the side of the walls. When the robot detects a wall in front of it, it will make a left turn.  As it moves through the maze, it will record its movement. It will know that it is in or out of the maze once it detects a black line. Once it completes the maze, it will display a simple view of the routes in the maze on a LCD. From the display maze, the map can be shifted left, right, up, down, zoomed in or out from the push buttons on top of the robot. The 7th key is a zoom multiplier button when pressed, brings up a menu where to zoom multiplier can be set. The zoom multiplier is used to speed the zooming in or out.

Components
Arduino Mega 2560 micro controller
Ultra sonic sensor   x3
Line following sensor
Robot chassis with motor and encoder
Motor controller with encoder
Jumper wires
·         Male to male
·         Male to female
1K Resistors x8
Potentiometer
Graphic LCD
LIPO batteries
·         2 cell 7.4V, 4A, 25C
·         3 cell 11.1V, 1.5A, 20C
Bump sensor x2
Bread board x2
Push button (SPST) x7
Single and double sided tape

Result
Final design (for now) :
 
 
              
   
The above picture is a sample map that the robot created.
This is a video of it in action


Conclusion
This was an amazing challenge. I didn't have any hardware problems throughout this whole project, which gave me time to focus on the software. The cost for all the parts that I used on the robot may estimate to be around $200. Due to the fact I haven’t been able to make a big enough maze to show the true capabilities of my robot, for now the picture above will have to do (didn't really put much thought into building a large more complex maze  until the last minute…).




Wednesday, April 16, 2014

Mapping Robot - update 7

Progress since last milestone
I just realized that I never added a bump sensor to my robot, so i just added one and it's working as attended.


Problems/Difficulty encountered
when i added the bump sensor, the resistor i was using was a 100 ohm, which didn't work to well because the resistance was to low and it was letting most of the power go through, so i added a 1000 ohm resistor and everything was good afterwards.

Proposed progress for the next milestone
Add a second bump sensor to the front so it can cover the other half and also improve the code.

Wednesday, April 9, 2014

Mapping Robot - update 6

Progress since last milestone
I add a three new push buttons to my robot. One of the push buttons is used to zoom out of the map and another to zoom in. For the last push button, i'm using it as a menu button. So far for the menu,  the only thing I have added so far was a zoom multiplier function to speed up the zooming in and out. For example, to zoom 5 time faster or zoom 20 time faster. The reason for the zoom multiplier is that depending how long i let the robot map, the map can size can get very large and zooming in or out by 1 time ( basically shifting everything by 1 pixel at a time) can take a while.
I added a third ultra sonic sensor to the right back of the robot as well, to help keep the robot perpendicular to a wall when moving.
Here's an updated picture of my robot

Problems/Difficulty encountered
I ended up not adding the Intel Galileo due to it only having two fast ports and the rest of the ports input/ output speed is too slow to usable for my robot.

Proposed progress for the next milestone
Hopefully add some new functions to my robot or improve on existing functions.

Friday, March 21, 2014

Mapping Robot - update 5

Progress since last milestone
I've decided to take a new challenge and decided to swap out my Arduino Mega 2560 to the Intel Galileo,  which is a beef up version of the Arduino Uno, but the same pins.

Problems/Difficulty encountered
Since the Intel Gailileo requires a 5V, 3A power supply, I had to order a 5V step down regulator. I ordered the Pololu Step-Down Voltage Regulator D15V35F5S3.
This regulator takes an input voltage range of 4.5V - 24V DC and converts it to 3.3V or 5V DC with up to 3.5 amp current draw. I also ordered another LIPO battery just for the Galileo that is 11.1 V, 3.3 A.

Proposed progress for the next milestone
When the battery and regulator comes in, i"ll add the Galileo to my mapping robot.

Wednesday, March 12, 2014

Mapping Robot - update 4

Progress since last milestone
Well... I basically completed the robot Out of all my milestones, going through a maze is the last thing i need to do. All i need is a maze to show that it can go through a maze, however from the results that i have gathered just for the fact it can follow a wall and make turns, i'm confident that it can go through a maze that that can fit it and have enough room for turns. I also went further by adding four push buttons that allows the view of the map to be scrolled up, down, left or right.

Problems/Difficulty encountered
I had a issue with one of my batteries (9V alkaline) that powered my Arduino micro controller  and everything else except the motor. The problem was that my battery couldn't provide enough current to power everything (basically my LCD back light) so when i would run my robot, my ultra sonic sensors were working sometimes. So to fix this issue, I had an extra 7.4V LIPO battery, i just used that to powered my arduino and everything worked perfectly fine again.

Proposed progress for the next milestone
Hopefully i get a suitable maze to finally show that my robot can properly do as it was intended.

Wednesday, February 26, 2014

Mapping Robot - update 3

Progress since last week
  • I added two ultra sonic sensor to my robot (one facing the front of the chassis and the other facing the right of the chassis).
  • My robot can follow a wall on the right side and turn right when it see's an open path or turn left if threes a wall. 
Here is a picture of my mapping robot so far

A short video of it's operation (preset distance)

Problems/Difficulty encountered
  • I realized that my encoder outputs were faster then my Arduino micro controller could read it when I had multiple serial print statements which was basically was taking longer than the encoder was switching states. Since i removed them from the loop that i was using to count how many times the encoder change state,  the accuracy greatly improved and stayed mostly constant with 1 or 2 state changes every now and again.
Proposed progress for the coming week
  • Well since i completed my progress two weeks in advance, ill spend some time working on  future proposed progress or improving what i did so far.

Wednesday, February 19, 2014

Mapping Robot - update 2

Progress since last week

  • I got both my proximity sensors (ultra sonic and infrared) and both are working. (i'm still testing both to see which ill use for measuring distance).
  • headers for my graphic LCD (haven't soldered it on yet).
  • I can now move my chassis with the arduino micro controller using the motor controller because my jumper wires came in.
  • I can measure my distance traveled with the use of the encoders that came with the chassis.

Problems/Difficulty encountered

  • I haven't gotten the current (amps) reading that each motor is using to work yet
  • I had a problem with my LI-PO batteries because I didn't realize i had to buy an adapter to charge it it, so, I improvised and used jumper wires with alligator clips to charge it.

Proposed progress for the coming week

  • Get my robot to dodge basic obstacles

Wednesday, February 12, 2014

Mapping Robot - update 1

Update 02/12/13
Progress since last post
A little more than half of the  parts that I have ordered came.
These are the parts so far...

Rover 5 Robot Platform (4 DC motor, 4 encoder)
9V Battery Power Cable for Arduino

Mini12864 Blue Backlight Dots Graphic LCD Display Module
Dagu 4 channel motor 4 encoder control unit ( 4A Stall Current)

Analog Servo Motor w/ Arms & Wheel, 360 degrees, 4.8V

Solder-less Flexible Breadboard Jumper Cable Wires
Rover 5 Expansion Plates
             Wide                                       Narrow

I also brought some batteries for the AA batteries for the motor and 9V batteries for the arduino for testing it when it is not connected to my computer.
I got the servo motor working using the arduino micro controller servo library, now all in need is my sensor to put on top of it to see if i'm going to use it or not to move sensor depending on the results of it..


Problems/Difficulty encountered
I haven't had the chance to get the chassis moving because I didn't realized when I ordered the motor control shield, it has to be connected with female jumper wire and unfortunately i have only male to male jumper wires. I'm also waiting on my male header for my graphic LCD so i can solder it on to it, so i can conveniently add it or remove it from a bread board.

Proposed progress for the coming week
Depending on what parts come in, will determine how much work I can actually do for the next update...

Thursday, January 30, 2014

Robot proprosal

The purpose
To build a mapping robot that goes through a maze and maps it out.

Function, Structure and design
The robot will move by a chassis with four wheels. The robot chassis will be powered by its on dc power supply. The robot movement will be controlled by the arduino. The arduino micro controller will powered by a 9v battery adapter. The arduino will tell the chassis where to move by the result of the proximity sensor measurements. The robot will be using two (or one rotating) proximity sensors. One will be place on the right side of the chassis to detect if a wall on its right side and the other in the front to detect if a wall is in front of it.  The proximity sensors will keep the robot a certain distance from the walls. As the robot move, it will keep an equal distance from the side of the walls. When the robot detects a wall in front of it, it will make a right turn.  As it moves through the maze, it will record its movement. It will know that it is out of the maze once it detects a black (color may change) line. Once it completes the maze, it will display a simple view of the routes in the maze on a LCD.

Basic components
Arduino micro controller
Ultra sonic sensor or Infrared proximity sensor
Photo sensor (detecting light from the LED)
Robot chassis with motor
Jumper wires
LED’s
Resistors
LCD
Battery’s
Bump sensor
Bread board

Milestones
02/12/14 – At least one sensor demoed functioning using the microcontroller
02/19/14 - Robot platform fully assembled with electronics mounted on the platform (as well as all sensors on hand)
02/26/14 – Collision Avoidance demonstrated
03/12/14 – Sensor distance measurement working
03/19/14 - Line detection
04/02/14 – LCD display working
04/16/14 - Robot can go through the maze
04/23/14 – Mapping working
04/30/14 –Robot completed