FROMO Bot

Fromo is a robot which is built using android Operating System that performs the following functions:

  • Remote Control Locomotive.
  • Face Follower.
  • Programming Mode.
  • Path Following.

Tools Used

  1. Android mobile
  2. Servo motor
  3. Bluetooth module HC-05
  4. DC motors
  5. Jumper wires
  6. Chassis for the bot
  7. Motor driver L293D
  8. Arduino UNO

RC Mode

Aim: To implement remote control movements to the bot with the remote being an android app.
Process in short:
1. An activity was built in the FROMO app which consisted of the image buttons of the respective directions.
2. In this app Bluetooth was interfaced.
3. On clicking any button of the app activity a data is send corresponding to the button to the Arduino Uno which is interfaced via Bluetooth module HC05.
4. Corresponding to the data send, the Arduino instructs the motor driver L293D to turn to the specified direction.

Face Follower:

Programming Mode:

Aim: To implement a feature in the bot which allows it to follow a face kept in front of the camera.
Process in short:
1. An activity was built in the FROMO app that has camera preview feature in it.
2. We use frame layout to design the XML code such that the whole screen previews the camera.
3. We use the face detection code to detect the face on the screen.
4. The center of the face as well as the center of the screen are evaluated.
5. If the center of the face is determined to be left of the screen center, then the bot is instructed to move left and vice versa.

Path Following:

Aim: To implement programmable path follower in the bot
Process in short:
1. An activity was built in the FROMO app which consisted of the image buttons of the respective directions along with an additional button to start the execution when the user is finished with planning the path.
2. Similar to Remote control mode, each button sends a corresponding data but instead of sending it directly to     Arduino Uno via Bluetooth module HC05, It stores the data in an array in the specific order of the input.
3. On clicking the start button, the values of the array are sent to Arduino in the specified order with a given delay.
4. The Arduino executes the given data by sending the corresponding instructions to the motor driver L293D.

Aim: To implement a feature that allows the bot to follow the path made up of different colored lines.
Process in short:
1. The screen is divided into five parts. The average pixel brightness of each part is calculated and stored in an array of size five. The part with the largest and shortest average value is found out and named say lar and sma. Their average is found out and named the divisor.
2.  The five option buttons are placed just below the five parts. Each button’s background is set to white if its average pixel value is greater than divisor and black if it’s less than divisor.
3.  Accordingly, as the painted strip is darker, it reduces the average value of the pixel block it is present in. hence, the button below the block turns black. The robot is then commanded to turn right or left depending on whether the button with darker background is present on the left or right.

Block Diagram

Team

  • Onkar (ECE)
  • Rohan Bhagwatkar (ECE)
  • Ritam Ghosh (MME)
  • Rushikesh Sangekar (ECE)

Mentors

  • Pushkar Saraf (ECE)