Moonpreneur’s Robotics Learning Kit lets students explore, learn the world of robotics and help them learn to code. It eventually prepares students for developing the Robotics based products in the Stage 3 program of Moonpreneur.
The key features include –
Chassis
The Opaque Robot Car Chassis is lightweight and is made from an acrylic sheet that provides strength to the robot The chassis comes with dedicated holes for mounting components like Arduino UNO, MPU6050, LCD, Colour Sensor, Servo motor, and many more. Also included are four T Shape brackets used for installing motors to the chassis.
L298P Motor Shield
The L298P Motor Driver Shield is compatible with Arduino Uno and is based upon the L298P driver chip. It is powered by 2 Pin Terminal Screws.
Key Features of the Motor Shield include:
Infra-Red Sensor Module
Infrared Obstacle Avoidance IR Sensor Module has a pair of infrared transmitting and receiving tubes. When the transmitted light waves are reflected back, the reflected IR waves are received by the receiver tube. The onboard comparator circuit does the processing and the green indicator LED comes to life. The module features a 3-wire interface with VCC, GND, and an OUTPUT pin on its tail. Upon obstacle detection, the output pin gives out a digital signal. The range of the operation can be set using an onboard Potentiometer. The effective distance range is 2 cm to 80 cm.
Ultrasonic Servo Mount
Made up from ABS Plastic the bracket is used for the assembly on the servo motor.
TCRT5000L 5 Channel Tracking Module
TCRT5000L 5 Channel Tracking Sensor Module is based on the TRCT5000 infrared reflection sensor IC and is used to make line tracking smart cars. The infrared emitting diode of the TRCT5000 sensor continuously emits infrared rays.
The TCRT5000 itself works by transmitting infrared light from the LED and registering any reflected light on its phototransistor. This alters the flow of current between its emitter and collector according to the level of light it receives.
MPU-6050 3-Axis Accelerometer and Gyroscope Sensor
The MPU-6050 is a 3-axis Gyroscope, 3-axis Accelerometer, and Digital Motion Processor all in a small package. A gyroscope is a useful tool for navigation – is used to detect when a moving object has changed direction. The Accelerometer part can be used to measure the acceleration, velocity, and distance. The device also features an onboard temperature sensor.
GY-31 TCS3200 Color Sensor Module
The color sensor module is based on the TCS3200 chip; an upgraded version of the TCS230, which is a programmable color light to frequency converter, making it ideal for adding color sensing capabilities to your new project. This module can detect the color of the objects even when placed in the dark.
Tactile Switch
This is Tactile Switch KW11-3Z 5A 250V Micro Switch Round Handle 3 Pin N/O N/C. It has 3 pins N/O, N/C, and Common. The N/C and Common pin are always connected, but once the lever is pressed, the N/O and common pin get connected. Thereby allowing voltage to flow from common to N/O. It has a small space, instant motion, and small style handling.
LCD1602 Parallel LCD Display
The LCD1602 Parallel LCD Display provides a simple and cost-effective solution for adding a 16×2 Liquid Crystal Display into your project. The display is 16 characters by 2 line display has a very clear and high contrast white text upon a blue background/backlight. It works on an I2C interface thereby requiring only 2 pins to interface with the microcontroller.
ISD 1820 Speaker Module
This sound/voice recorder module is based on the ISD1820 integrated circuit, which can record multiple sounds or voice messages through the onboard microphone. The audio is stored in non-volatile memory and it has playback capability for 8 to 20 seconds.
TowerPro SG90 Continuous Rotation 360 Degree Servo Motor
It is a Digital Servo Motor that receives and processes PWM signals faster and better. It equips sophisticated internal circuitry that provides good torque, holding power, and faster updates in response to external forces. For small load applications using the metal gear, the servo motor adds on unnecessary weight, so we are using these lightweight plastic gear servo motors.
HC-SR04-Ultrasonic Range Finder
The HC-SR04-Ultrasonic Range Finder is a very popular sensor that is found in many applications where it is required to measure distance and detect objects. The module has two eye-like speakers in the front which forms the Ultrasonic transmitter and Receiver. The HC-SR04 ultrasonic sensor uses sonar to determine the distance to an object like bats or dolphins do.
BO Motor and 65MM Robot Wheel Grade B (Yellow)
BO or (Battery Operated) motor is a hobbyist grade DC motor used in small projects. It consists of a small micro metal DC motor with gears to increase torque. BO motors are generally available in a couple of variations. Right-angled and straight angled design. The motor included in this kit is straight-angled and fits well with the design.
The 65mm Robot Wheel for BO Motor (Yellow) is made up of high-quality rubber which gives maximum traction while operating. The wheel is strong and sturdy as it features a nylon reinforced plastic rim.
Ball Caster Wheel (Small)
Ball caster wheel (Small) is an omnidirectional wheel. A caster wheel (or castor) is an undriven, single, double or compound wheel that is designed to be mounted to the bottom of a robot, so as to enable that robot to be easily moved. They are commonly made of rubber, plastic, nylon, aluminum, or stainless steel. This caster wheel comes with a red cap over it. This wheel can be used as a neutral wheel for the car. The caster wheel makes the robot walk or move in a more flexible and comfortable way.
Jumper Wires ( M to F and F to F)
The male-to-female jumper cable has a 1 Pin male to the 1 Pin female header on both ends. Also, it is compatible with 2.54 mm mil spacing between pin headers. This cable is normally used for interconnecting the components of a breadboard or other prototype or test circuit, internally or with other equipment or components, without soldering. Individual Dupont Cables are fitted by inserting their “end connectors” into the slots provided in a breadboard, the header connector of a circuit board, or a piece of test equipment.
The female to female jumper cable has 1 Pin female to the 1 Pin female header on both ends. Also, it is compatible with 2.54 mm mil spacing between pin headers. This cable is normally used for interconnecting the components of a breadboard or other prototype or test circuit, internally or with other equipment or components, without soldering. Individual Dupont Cables are fitted by inserting their “end connectors” into the slots provided in a breadboard, the header connector of a circuit board, or a piece of test equipment.
2 IN 1 Flat and Philips Head Screwdriver
It is a 2 in 1 Screwdriver for DIY Robot Car. Ideal for assembling and disassembling robot cars. This flexible screwdriver includes two different types of tips to drive M2, M3, as well as M4 size screws with Philips(cross) Head as well as the flat head which can be changed. The pole is removable and reversible with an alternate tip on each end. Constructed with heavy-duty strike caps, this screwdriver can be used for prying and creating leverage wherever you need it most.
Hexagonal Mini Cross Wrench Sleeve Nut Tool
The Hexagonal Mini Cross Wrench Sleeve Nut Tool for M2/M2.5/M3/M4 is made of hard steel, lightweight, high strength, corrosion resistance. It is suitable for M2, M2.5, M3, and M4 Hex Nut for quick release as well as the fitting purpose. It can be also useful for various fittings like frames and wheel nuts.
Black Tape Matte
This is a Black Tape Matte made from vinyl. Generally, usage of this tape is electrical to cover the wires from short-circuits.
Double Sided Foam
Double Sided Foam tapes are excellent for applications where gap-filling properties, to often uneven surfaces, are required. This is used to stick the battery for the motor on top of the chassis.
Nuts, Spacers and Screws
Miscellaneous, Nuts Spacers and Screws are provided.
Here is the list:
M3X10MM Spacer
M3x15MM Spacer
M3x20MM Spacer
M3x25MM Spacer
M3x6MM Pan Head Screws
M3x6MM CSK Screws
M3x10MM CSK Screws
M3x30MM Pan Head Screws
M3 Hex Nut
M2X10MM CSK Screws
M2x20MM CSK Screws
M2 SS Hex Nut
Battery Holder with Switch
The battery holder has a switch so we can turn it on and off. It holds two 18650 sizes Li-Ion rechargeable cells
Final Outcome: Robotic Car
Obstacle Avoiding Code for the DIY Robotic Car
Find below the code for this DIY project:
int duration=0;
long distance=0;
int firstduration=0;
long firstdistance=0;
int secondduration=0;
long seconddistance=0;
#include <Servo.h>
Servo myservo;
int pos = 0;
void setup() {
pinMode(8,OUTPUT);
pinMode(7,INPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
myservo.attach(9);
Serial.begin(9600);
}
void loop()
{
digitalWrite(8, HIGH);
delayMicroseconds(10);
digitalWrite(8, LOW);
delayMicroseconds(2);
duration= pulseIn(7,HIGH);
delay(100);
distance=duration*0.034/2;
Serial.println(distance);
if(distance<=20)
{
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(300);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(350);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
myservo.write(0);
delay(500);
digitalWrite(8, HIGH);
delayMicroseconds(10);
digitalWrite(8, LOW);
delayMicroseconds(2);
firstduration= pulseIn(7,HIGH);
delay(100);
firstdistance=firstduration*0.034/2;
int first = firstdistance;
Serial.println(firstdistance);
myservo.write(90);
delay(500);
myservo.write(180);
delay(500);
digitalWrite(8, HIGH);
delayMicroseconds(10);
digitalWrite(8, LOW);
delayMicroseconds(2);
secondduration= pulseIn(7,HIGH);
delay(100);
seconddistance=secondduration*0.034/2;
int second = seconddistance;
Serial.println(seconddistance);
myservo.write(90);
delay(500);
if(first < second ) { digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, HIGH); digitalWrite(13, LOW); delay(500); } else if(first > second )
{
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(500);
}
}
else
{
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
}
}