Difference between revisions of "S17: Sphero Droid"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Motors)
(Bluetooth Module)
Line 265: Line 265:
  
 
Bluetooth module HC-05 is used to communicate between the spherical robot and mobile application. It is implemented to establish the connection between the two so that we can remotely control the robot (to send start and stop signals) and receive the data from the robot directly on the Android application. The data being sent by the robot is current GPS location, ultrasonic range sensor values, and temperature sensor values.
 
Bluetooth module HC-05 is used to communicate between the spherical robot and mobile application. It is implemented to establish the connection between the two so that we can remotely control the robot (to send start and stop signals) and receive the data from the robot directly on the Android application. The data being sent by the robot is current GPS location, ultrasonic range sensor values, and temperature sensor values.
 +
 +
<div><ul>
 +
<li style="display: inline-block;"> [[File:CmpE244_S17_SpheroDroid_HC05_module.jpg |thumb|center|250px|Bluetooth module HC-05]] </li>
 +
<li style="display: inline-block;"> [[File:CmpE244_S17_SpheroDroid_Bluetooth_HC05.JPG |thumb|center|300px|HC-05 Pin connections]] </li>
 +
</ul></div>
  
 
=== Hardware Interface ===
 
=== Hardware Interface ===

Revision as of 00:13, 25 May 2017

Grading Criteria

  • How well is Software & Hardware Design described?
  • How well can this report be used to reproduce this project?
  • Code Quality
  • Overall Report Quality:
    • Software Block Diagrams
    • Hardware Block Diagrams
      Schematic Quality
    • Quality of technical challenges and solutions adopted.

Project Title

Sphero Droid

Sphero Droid
Sphero Droid front view
Sphero Droid side view

Abstract

Robots are revolutionizing almost every industry, primarily in the sectors where human safety is at risk. In hazardous working conditions such as in the mining industry, the lack of knowledge about the geographic nature and the environmental conditions of the mine hinder the rescue operations. Autonomous robots are being employed to improve the plight of mine workers and rescue operators. The robotic vehicle can explore the inaccessible and unworkable mines and disaster-affected areas and send valuable information to the teams to assist in search and rescue operations. But traditional robots could be rendered useless if they are overturned or in terrains having staircases and ledges. Also, there is a possibility of failure of the electrical and mechanical components exposed to the harsh environmental conditions. An autonomous spherical robot is a better option since its shape offers better robustness and rigidity. The spherical robot will enclose all the components within it and will not have any wheels or legs on its exterior. This feature enables it to operate in any hazardous conditions since there will be very less chance for the components to get damaged by the surrounding environment. The spherical design allows it to easily maneuver in different types of terrain, be it stairs or corners, and have no risk of being overturned. These advantages enable the robot for many applications such as exploration and mapping of access routes, surveillance and rescue operations in uncomfortable working conditions.

Objectives & Introduction

The objective of this project is to design an autonomous spherical robot with sensors, Global Positioning System (GPS) module, Bluetooth module and other control units interfaced to the microcontroller, which navigates its way to the destination avoiding obstacles. The temperature and the route followed by the robot can be logged on the SD card. These features enable the robot for many applications such as exploration and mapping of access routes, surveillance, and rescue operations in uncomfortable working conditions.

Team Members & Responsibilities

Schedule

Week# Start Date End Date Task Status Actual Completion Date
1 3/21 3/27
  • Requirement analysis and team discussion to order parts.
  • Determine individual tasks and assigning work based on different modules in project
Done 3/29
2 3/28 4/3
  • Configure and interface the GPS module with the SJOne board
  • Configure and interface individual sensor with SJOne board
  • Interface motors with the SJOne board
  • Upload code on GitLab
Done 4/9
3 4/9 4/18
  • Designing PCB
  • Team discussions to integrate the design and work on the algorithm
  • Continue work on individual module (Sensors, motors, GPS) working with SJOne board
Done 4/21
4 4/18 4/25
  • Integrate the different modules
  • Build the sphere with bearings and enclose the components within it
Done 4/28
5 4/25 5/2
  • Test in different environments and fix bugs based on different issues
  • Team discussion on extra features that can be implemented
Done 5/7
6 5/2 5/9
  • Testing and Debugging
  • Work on extra features (if any)
  • Work on Project Report on Wiki
In Progress
7 5/9 5/20
  • Testing and Debugging
  • Project Presentation and update Wiki
Plan
8 5/16 5/23
  • Complete Wiki Report and Final Demo
Plan

Parts List & Cost

Qty Description Manufacturer Part Number Cost Links
1 SJ One Board [1] Preet SJ-one $80 http://www.socialledge.com/sjsu/index.php?title=SJ_One_Board
2 DC Motor RobotShop Pololu 4.5V, 80rpm Right Angle Plastic Gear Motor $4.95 http://www.robotshop.com/en/pololu-80rpm-right-angle-plastic-gear-motor.html
1 Servo Motor Fry's electronics Metal Gear Digital Servo Part No. LS-0009AF $19.99 http://www.frys.com/product/7027281
1 Motor Driver Fry's electronics Motor Driver $9.99 http://www.frys.com/product/8353697
1 GPS Logger Spark fun Electronics Venus638FLPx $59.95 https://www.sparkfun.com/products/10920
1 Bluetooth Module Amazon.com HC-05 Bluetooth $8.49 https://www.amazon.com/dp/B01G9KSAF6?psc=1
3 Ultrasonic sensor Amazon.com LV Maxsonar -EZ MB1010 $74.85 https://www.amazon.com/Maxbotix-MB1010-LV-MaxSonar-EZ1-Range-Finder/dp/B00A7YGVJI
1 Antenna GPS Embedded SMA Spark fun Electronics VTorch Datasheet $11.95 https://www.sparkfun.com/products/177
1 PCB components Amazon.com (7805, 2 pin SPDT switch, 4004 diode, LD1117, Female pin header, male pin header, USB type B female jack, DC power jack, power supply module) $72.00 https://www.amazon.com/gp/product/B01LRXIJRY/ref=oh_aui_detailpage_o03_s02?ie=UTF8&psc=1
2 Wheels Amazon.com 70 x 8mm Black Robot Wheels $12.00 https://www.amazon.com/gp/product/B00T3MQDHU/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1
2 Bearing Amazon.com 2 Pcs 22mm Outside Dia Plastic Coated Ball  $7.93 https://www.amazon.com/gp/product/B00HR5SJKE/ref=oh_aui_detailpage_o08_s01?ie=UTF8&psc=1
1 Hollow spherical ball Amazon.com Giant Chinchilla Run-About 11-1/2-Inch Exercise Ball $15.76 https://www.amazon.com/gp/product/B0006IK0LA/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1

Design and Implementation

System Block diagram

Robot interface
Within the Robot

System State Diagram

State Diagram

Hardware Design

We have four distinct hardware modules used in this project:

  • Ultrasonic Range Finders (sensors)
  • Motors
  • GPS Module
  • Bluetooth Module

Ultrasonic Range Finders

Write about the sensors used and how they are triggered and explain the below diagram.

Sensor timing diagram

Motors

  • DC Motors

The DC motors used in the project are 100 RPM low-cost single shaft straight geared motors. They are suitable for lightweight robots that do not require high power or torque.
The DC motors are connected to the wheels which are in contact with the base of the ball. The DC motors are driven by a driver module which controls the motor direction and speed.

Driver module
Control inputs of driver module
  • Servo Motors

Write about the servo motor used and its uses.

Bluetooth Module

Bluetooth module HC-05 is used to communicate between the spherical robot and mobile application. It is implemented to establish the connection between the two so that we can remotely control the robot (to send start and stop signals) and receive the data from the robot directly on the Android application. The data being sent by the robot is current GPS location, ultrasonic range sensor values, and temperature sensor values.

  • Bluetooth module HC-05
  • HC-05 Pin connections

Hardware Interface

We have four major hardware modules interfaced with a single SJOne board using different communication protocols. For simplicity sake, we have given a description of how each module is individually interfaced with the SJOne board. In reality, all these modules are connected to a single SJOne microcontroller.

Ultrasonic Range Finders

The ultrasonic range finders have been interfaced with the SJOne board using PWM. How is it triggered??

Ultrasonic range finders interfacing with SJOne board via PWM

Motors

The DC motor is connected with the SJOne board via the motor driver module using GPIO. The GPIO signals from SJOne board provide inputs to the motor driver module, which in turn drives the DC motors in forward or reverse direction or stop signal. Servo motor is interfaced with the SJOne board using PWM.

DC motor Interface with SJOne board via GPIO
Servo motors connected with SJOne board via PWM

GPS Module

GPS module communicates with SJOne board via UART communication.

Ultrasonic range finders interfacing with SJOne board via PWM

Bluetooth module

Software Design

Implementation

Ultrasonic Range Finders

Hardware Design

Sensor timing diagram

Hardware Interface

Sensor Interfacing with SJOne board

Software Design

Flowchart for the Ultrasonic Range Finders

Implementation

Motors

Hardware Design

Hardware Interface

  • DC Motors
DC Motor Interface with SJOne board
  • Servo Motor

Software Design

Sensors logic
DC and servo motor logic

Implementation

GPS Module

Hardware Design

Venus GPS Module
Antenna for the GPS Module

The GPS module used in our project is Venus GPS logger (Venus638FLPx) by Spark fun Electronics. This module is the successor of Venus634LPx and it has a higher update rate and can be configured to operate at an update rate of 20Hz.It can be connected to the PC using a serial to USB converter and configured with the help of a GPS viewer software by SkyTraq which has a GUI and is easy to use.This is handled by the software by sending appropriate commands to the GPS logger when any option is selected by the user.

GUI of the SkyTraq GPS Viewer

By opening the correct COM port after connecting the GPS module to the PC, serial communication between the GPS module and PC can be established. The GPS logger works at a default baud rate of 9600bps but it can be configured to work at a baud rate of up to 115200bps. The changes in the configuration of the GPS module can be made permanent by writing the commands to the flash instead of the SRAM. The "Cold Start", "Warm Start" and "Hot Start" buttons on the bottom left corner of the screen define how fast a fix can be achieved by the GPS logger.

Hot Start: When a 3V battery is connected to the GPS module, it helps the GPS logger in saving information about the previous fix in its memory. This ensures that a fix is attained quickly when the system is switched on the next time. A warm start will happen if the module is switched on again before a specified amount of time, typically two hours.

Warm Start: As mentioned above if the module is switched on after about more than two hours then it will take a while for the module to attain a fix. It will take more time to attain a fix compared to the warm start, but is less than the time taken to attain a fix when the module is not fixed with a battery at all.

Cold Start: When a battery is not connected to the module at all then there is no information available about the previous fix and it would take a long time to attain a fix.

The output of the GPS module can be in NMEA format or SkyTraq Binary Message format. For sending the data from the GPS module to a controller it has to be configured to send data in the NMEA format. There are many message types in the NMEA format but for our project, the GGA type of NMEA output has been used which contains the time, position and fix related data for the GPS receiver.

The GGA message will have the following format


$GPGGA,hhmmss.sss,ddmm.mmmm,a,dddmm.m m m m,a,x,xx,x.x,x.x,M,,,,xxxx*hh<CR><LF>

                1      2       3  4     5 6 7 8 9    10   11
  


             1   UTC of position in hhmmss.sss format
             2   Latitude in ddmm.mmmm
             3   Latitude hemisphere indicator, ‘N’ = North, ‘S’ = South
             4   Longitude in dddmm.mmmm
             5   Longitude hemisphere indicator, 'E' = East, 'W' = West
             6   GPS quality indicator 
                    0: position fix unavailable 
                    1: valid position fix, SPS mode 
                    2: valid position fix, differential GPS mode 
                    3: GPS PPS Mode, fix valid 
                    4: Real Time Kinematic. System used in RTK mode with     fixed integers 
                    5: Float RTK. Satellite system used in RTK mode. Floating integers 
                    6: Estimated (dead reckoning) Mode 
                    7: Manual Input Mode 
                    8: Simulator Mode
             7   Number of satellites in use
             8   Horizontal dilution of precision
             9   mean sea level
             10  Differential reference station ID
             11  Checksum

Hardware Interface

GPS module is interfaced with the microcontroller via UART.

GPS Interfacing with SJOne board via UART

Software Design

Software Flow for the GPS

Implementation

SDCard

Hardware Design

Hardware Interface

Software Design

Implementation

Bluetooth module and Android Application

Hardware Design

Hardware Interface

Software Design

Implementation

PCB Designing

Hardware Design

PCB board
PCB Schematic
PCB board
PCB board
}

Hardware Interface

Software Design

Implementation

Testing & Technical Challenges

Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.

Include sub-sections that list out a problem and solution, such as:

My Issue #1

Discuss the issue and resolution.

Conclusion

Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?

Project Video

Upload a video of your project and post the link here.

Project Source Code

References

Acknowledgement

Any acknowledgement that you may wish to provide can be included here.

References Used

List any references used in project.

Appendix

You can list the references you used.