IoT Final Project iCar - Sang-Ly/IoT-Final-Project GitHub Wiki

Video

https://www.youtube.com/watch?v=zg8SglUInyY&feature=youtu.be

Sources Code Sang Ly (5)

https://github.com/Sang-Ly/IoT-Final-Project/tree/master/Sources%20Code

Sang Ly (5) -- Wiki

https://github.com/Sang-Ly/IoT-Final-Project/wiki/IoT-Final-Project-iCar

Gulnoza Khakimova (3) Wiki

https://github.com/Gnkhakimova/CS5590-IoT/wiki/Final-Project

Murali Krishna Sai Chukka (2) Wiki

https://github.com/chkrish9/CS5590-IoT-Project/wiki/Project

University of Missouri – Kansas City SEE 5590/490

iCar

IOT / ROBOTICS FINAL PROJECT REPORT

Team 3: MURALI KRISHNA SAI CHUKKA (2) GULNOZA KHAKIMOVA (3) SANG MINH LY (5)

TABLE OF CONTENT

  1. Abstract
  2. Introduction
  3. Literature Review / Background Study
  4. Methodology
  5. Circuit Diagram
  6. Results and Evaluation
  7. Project Review and Screens
  8. Conclusion and Future Work
  9. References

 

Abstract

For the final project in our IoT class we, team 3, created iCar which is a remote-control car with an additional feature that allow auto piloting. When auto pilot mode is turned on, the car will drive without user assistance. iCar also uses several of its built-in features to avoid any obstacles in front. The main built-in feature to avoid crashing of iCar is the Sonar Sensor. Sonar sensor allow iCar to detect any objects in its path by sending multiple signal wave outward in the direction the sensor is pointing toward. Any objects that the signal meet, the signal will radiate back and iCar will act accordingly to avoid the obstacles. Another built-in feature of iCar is the Bluetooth Sensor. The Bluetooth Sensor allow the user to control iCar remotely using a mobile phone. On the mobile application there are auto pilot, stop, move forward, move backward, turn left, turn right and they’re indicated with arrow images.  

Introduction

For the final project we, team 3, created a remote-control car with an additionally auto piloting feature. The mobile car can be control on a mobile phone using an application. The mobile phone is the main controller of the car. The application has features that allow moving the car forward, backward, turn left, turn right, stop the car and even put the car on auto piloting mode. When the mobile car auto pilot mode is turned on; the main objection detection feature begins to send signal to locate if any objects blocking its path. If there are objects blocking the path the car, the car will act accordingly to move away from the object. The car will determine whether to turn left or right to avoid the objects.

 

Literature Review / Background Study

As a team, our background study mainly came from our IoT class, however, we also had some knowledge of the hardware and software components – some of which we used for this project – from doing it ourselves outside of class and from other courses. In class, we had demo giving to us by our teacher and we practiced using several of the hardware and software components – some are similar to what we used on our final project – for our in-class project (ICP). Practicing on the components for our in-class project helped us understand and how to use Arduino, coding in Arduino, and understand several of the sensor on what they do, how they work, and how to send and receive data. Therefore, it was an easy process to transition what we learned from using several of the old sensors to learning how some of the new sensors work.  

Methodology

The method our team took to complete this final project were to start from the bottom and build our way up. First, we tested if our motor were working properly, then we started to assemble the components together. We started with the wheels and motors – attaching them to a cardboard which layout our foundation for other components to be put on top. We then move on to attaching the Arduino mega and motor shield in the center of the cardboard – which will be used to control our motors and sensors. Afterward, we attached all other components – Servo, Sonar Sensor, Bluetooth, and battery – on the cardboard. Once we managed to stabilize our components, we begin coding in Arduino. We setup a set of codes that will allow our car to auto pilot itself without any user interfering. Next, we used MIT App Inventor to create our mobile application – which is used to control our car. Lastly, we program our Arduino to interact with our mobile application and act upon when buttons are pressed on the mobile application.  

Circuit Diagram

This circuit diagram shows how we connect our motors, Sonar Sensors, Servo and battery to our motor driver shield. This circuit diagram shows how we connect our Bluetooth Sensor to our Arduino mega. This is our MIT App Inventor for our remote control.  

Results and Evaluation

The results for iCar – our final project – was a success. We manage to incorporate what we had learned and created a self-driving car that will detect if any obstacles are in front of the vehicle and move away from the objects. How the auto pilot works is the vehicle will drive forward until our Sonar Sensor receive data that says there is an object in front and is close to our car – we set the distance of how far the object needs to be for our car to determine to avoid it. When the car come close to the object, the motors on the car will break and the Servo will turn which allow our Sonar Sensor to send and receive signal – signals are used to detect the distance of our vehicle to the object nearby. From there our car will determine to turn left or right depends on which ever path is clear, if no path is clear to travel our car will move backward until there is a clear opening. We also used MIT App Inventor to create our remote controller. Our mobile device is our controller we can control the car to move forward, backward, turn left, turn right, stop and even put the car into auto pilot. As a team, our evaluation on our final project were a good starting point for future development. As technology advances, cars in the future will be driven without user assistance.
 

Project Review and Screenshot

As a team we review the final product of our project and we were pleased with the result but was not satisfy. The reason is we wanted to incorporate more elements to our iCar, but with the shortages of components and time management we were unable to do so. Therefore, we did our best with what we had, and we believe our final project result are still good.

Video Demo:

www.youtube.com/watch?v=zg8SglUInyY&feature=youtu.be

Sources Code Sang Ly (5):

https://github.com/Sang-Ly/IoT-Final-Project/tree/master/Sources%20Code Sang Ly (5) -- Wiki https://github.com/Sang-Ly/IoT-Final-Project/wiki/IoT-Final-Project-iCar Gulnoza Khakimova (3) Wiki https://github.com/Gnkhakimova/CS5590-IoT/wiki/Final-Project Murali Krishna Sai Chukka (2) Wiki

Conclusion and Future Work

The conclusion for our final project iCar – we were able to make the vehicle to drive by itself without any user assistance. We also create a remote controller using our mobile phone to control the car. We were able to control it to move forward, backward, turn left, turn right, and set auto pilot as well. With this project we created we lay the foundation for future work on vehicle being operated and self-driven without a driver. Some future work include detecting human, animal, and any objects that may cause damage to the vehicle, so the car can avoid them, mounting a camera and motion detector on the vehicle – this allow drivers to view and be notify when someone approach their car, install a GPS system which shows the car’s location – an example: your car drive you to work and auto pilot back home and you want to be notify if your car made and how long it took. There are more future components that can be added in the car to provide greater user friend experience for all ages.  

References

As a team our main references came from both online video tutorial and previous in class project demo. We used references from the previous ICP to create our MIT App Inventor, circuit diagram for our sensors and Bluetooth. Reference to building our car www.youtube.com/watch?v=1n_KjpMfVT0