Internet of Things-Project 1
Internet of Things-Project 1
THINGS-PROJECT
GROUP NAME- TECKICKS
PROJECT TITLE – HAND GESTURE CONTROL CAR
No. OF MEMBERS
•S090 – ASHISH MOHITE S079 - AAYUSH JHA
•S084 – KRUTIK KOLI S077- SANTOSH JAISWAL
•S114 - SAMIR SHAIKH S079 - KHAN TAUKEER
•S098 – ASHUTOSH PRAJAPATI S073 – DHRUV DAGLA
•S080 – SONU JHA S088 – GANESH MISHRA
PROJECT DESCRIPTION
Hand gesture control cars are typically powered by rechargeable batteries and can be controlled
over short distances. They can be used for a variety of applications, including entertainment,
education, and research. For example, hand gesture control cars can be used in classrooms to
teach students about robotics, programming, and the principles of motion and control. They can
also be used in research to study human-robot interactions and to develop new control
algorithms and sensing technologies.
Overall, hand gesture control cars are an exciting and innovative technology that have the
potential to revolutionize the way we interact with robots and other devices. As research in this
field continues to advance, we can expect to see even more sophisticated and versatile hand
gesture control cars in the future
HARDWARE COMPONENETS
The Hardware Components are divided into Two Parts :
1) Transmitter Components
Arduino Nano
nrf24l01+ module
nrf adapter
MPU6050 module
7-12 V DC battery (In our case lipo 2s battery)
Breadboard
Double sided tape
Jumper wires
HARDWARE COMPONENETS
2) Reciever Components:
4WD car kit (It has 4 TT DC gear motors with wheels)
Arduino Nano
nrf24l01+ module
nrf adapter
L298N driver module
7-12 V DC battery (for car we will use lipo 3s battery)
Breadboard
Double sided tape
Jumper wires
SYSTEM ARCHITECTURE-
TRANSMITTER
SYSTEM ARCHITECTURE-
RECIEVER
RECIEVER CODE EXPLANATION
The code initializes the pins for the right and left motor, sets up the radio communication using
nRF24L01 module and starts listening for packets. Once a packet is received, it reads the data from the
packet and maps the x-axis and y-axis values to motor speed. The motor speed is calculated based on
the formula rightMotorSpeed = abs(mappedYValue) - mappedXValue for the right motor and
leftMotorSpeed = abs(mappedYValue) + mappedXValue for the left motor. The direction of the motor is
set based on the value of the y-axis. If the value is negative, the motor direction is set to reverse.
The motor speed is constrained to the range of 0 to 255 using the constrain function. The rotateMotor
function sets the direction and speed of the motors using the pins and analogWrite function. Finally, the
code checks for signal timeout and stops the motor if the signal is lost.
This code provides a basic framework for implementing a hand gesture control car. The code can be
modified and expanded to add additional features and functionality to the car
TRANSMITTER CODE
EXPLANATION
The setup function initializes both the MPU6050 sensor and the nRF24L01 transceiver module. The
MPU6050 sensor is initialized using the MPU6050_6Axis_MotionApps20.h library, which provides
functions to read data from the sensor, including quaternion data, gravity data, and yaw/pitch/roll
data. The nRF24L01 transceiver module is initialized using the RF24.h library, which provides
functions to set up the module and transmit data.
The loop function reads data from the MPU6050 sensor using the dmpGetCurrentFIFOPacket
function and stores it in a buffer. The quaternion, gravity, and yaw/pitch/roll data is then extracted
from the buffer using the dmpGetQuaternion, dmpGetGravity, and dmpGetYawPitchRoll functions,
respectively. This data is then transmitted via RF communication using the write function of the RF24
library.
The code also includes some debugging code that can be uncommented to print information to the
serial monitor. This includes information about the initialization of the MPU6050 sensor and the
status of the RF communication.
THANK YOU