Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 TonyBot

Arduino App Inventor

TonyBot Showcase

📝 Overview

This project presents TonyBot, a two-wheeled mobile robot based on Arduino, controllable via Bluetooth through an Android app. The robot is designed to move in multiple directions thanks to two DC motors and offers a simple and intuitive interface for remote control.

TonyBot features multiple modes, including manual driving, line following, and a dance mode, where the robot performs random pre-programmed movements to music. Additionally, it includes a fun interactive game mode, allowing users to actively play with the robot through the app interface.


🛠️ Hardware Components

The core of TonyBot is built from the following accessible electronics and materials:

  • Microcontroller: Arduino Nano paired with an Arduino Nano Expansion Shield.
  • Motor Control: TB8833 DC Motor Driver.
  • Power Supply: Powered by a 9V battery and a 4x AA battery pack, controlled via a power switch.
  • Actuators: Two SG90 Micro Servo Motors to control the arms and two DC Gear Motors for mobility.
  • Sensors:
    • TCRT5000 Optical Sensor for tracking lines.
    • HC-SR04 Ultrasonic Distance Sensor for avoiding obstacles.
  • Output:
    • MAX7219 8x8 LED Dot Matrix Module.
    • KY-006 Buzzer.
  • Communication: JDY-31 Bluetooth Module.
  • Structure: Built using a 3D-printed structure, a car chassis plate, plastic parts for arms, a caster wheel, two main wheels, and a mini breadboard.

Circuit Schema
Circuit Wiring Diagram


🚀 Features & Operating Modes

TonyBot includes functionalities controlled seamlessly from the Android App:

  • 🎮 Manual Driving (Remote Control): Directly steer the robot using an intuitive interface. It moves in multiple directions powered by two DC motors.
  • 📱 Accelerometer Mode: Control TonyBot's direction and speed simply by tilting your smartphone.
  • 〰️ Line Following: Utilizing a line sensor, TonyBot can autonomously follow a black line on a white background, dynamically modulating its speed based on real-time sensor input.
  • 💃 Dance Mode: Watch TonyBot perform pre-programmed random movements synchronized to music.
  • 🧩 Interactive Game Mode: The robot displays random shapes (square, triangle, diamond, heart) on its LED matrix. The user must guess the shape via the app. Get it wrong? TonyBot shows a sad face. Get 4 right? It plays a joyful sound and shows a smiling face!
  • 🛑 Obstacle Detection: Built-in ultrasonic sensor allows for environmental awareness.

📱 App & Connectivity

The companion mobile application provides a streamlined interface for all robot operations:

  • Home Page: Features a "BT" button to search for and connect to available Bluetooth devices.
  • Connection Status: The Bluetooth icon will remove its "X" upon successful connection, making the list of functional modes visible.
  • Navigation: A "Home" button allows the user to return to the main screen at any time.
  • Game Controls: A "Restart" button is available in Game Mode to easily reset the shape-guessing game.

📂 Repository Structure

TonyBot/
├── arduino/
│   └── TonyBot.ino                 # The core Arduino firmware
├── app/
│   └── app.aia                     # The MIT App Inventor project source
├── docs/
│   ├── images/                     # Schematics, robot photos, app screenshots
│   └── videos/                     # Demo videos of various operating modes
└── README.md                       # Project documentation

📸 Examples

Demonstration videos for each mode are located in the docs/videos/ directory:

  • mode_line_follower.mp4
  • mode_game.mp4
  • mode_accelerometer.mp4
  • mode_remote_control.mp4

Line Follower Demo

About

Arduino-powered two-wheeled mobile robot controlled via an Android Bluetooth app. Features manual steering, line following, dance sequences, and an LED shape-matching game.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages