Introduction: Pass the Butter Robot
In this project, we're going to do the butter robot on Rick and Morty. There will be no camera and sound feature in the robot. You can watch the video in the link below.
- Arduino UNO
- Arduino Motor Driver Shield
- Zumo Chassis Kit
- 6V Reducer Micro DC Motor (2 pieces)
- 7.4 V Lipo Battery 850 mAh 25C
- HC-05 or HC-06 Bluetooth Module
- SG-90 Mini Servo Motor
- Jumper Cables
- Paper Clip (1 piece)
- 3D Parts
Step 1: Printer Parts
- In this project we will use Arduino electronic card and 3D printer technology. First, we will print out 3D parts.
- You can access the 3D parts from the GitHub link.
The task of the parts are as follow.
- chassis : It is the main body of the robot.
- lowerbody : The piece that will help move the robot's head. The servo motor will be fixed to this part.
- upperbody : It is the part between chassis and lowerbody.
- hinge : This part makes the body open up and close.
Printing Duration (Printer Model : MakerBot Replicator2)
- Printing Duration of Parts in Figure_1 : 5h 13m. (If you set the print settings as shown in Figure_3.)
- Printing Duration of Parts in Figure_2 : 5h 56m. (If you set the print settings as shown in Figure_3.)
- NOTE: The printing time depends on the printer model.
Step 2: Solder and Servo Hack
- DC motors are located inside the Zumo chassis.
- Jumper cables are soldered to DC motors.
- A few changes shoudl be made on the servo, which will make the robot head move, before it is atteched to the lowerbody part. The purpose of this change is to run the servo motor smoother.
- You can use the link below.
- Servo motor is fixed to lowerbody part as shown Figure_4.
- Lowerbody and upperbody parts are fixed eachother with screw as shown Figure_5.
Step 3: Motor and Driver Shield Connection
- Arduino Motor Driver Shield is fixed to the Arduino Uno as shown in Figure_6.
- The DC motor on the right side is fixed to the M3 port of the motor driver.
- The DC motor on the left side is fixed to the M4 port of the motor driver.
Step 4: Bluetooth Module Connection
- The RX and TX pins are soldered to pins 2 and 3 of the Arduino board, respectively.
- VCC and GND pins are soldered to Arduino board's 5V and GND pins respectively.
Step 5: Connection of the Servo Motor to the Motor Driver
- The servo motor is fixed to the M1 port of the motor driver.
- The Arduino UNO is placed on the chassis.
Step 6: Battery Assembly
- The Zumo Kit's battery holder is modified as shown figure. Then the lipo battery is attached to this modified holder with double-sided tape.
- If the red pin of the lipo battery soldered to the Arduino's Vin pin and black pin to the GND pin, the Arduino Uno is powered. If you wish, you can add a small switch to the circuit. You can make a small hole in the chassis part for this.
Step 7: Making Head and Arms
- The head and arms of the robot are glued to the neccesary spots.
- The robot's head is glued onto the lowerbody part.
- The hinge is mounted as shown in figure.
Step 8: Final
- Finally, the robot should look like as shown in figure.
- You can use the link below for 3d print parts and assembly.
Step 9: Arduino Programming (Add Motor Shield Library)
- Before entering codes, we need to add some libraries to the Arduino IDE program.
- Firstly you must add "AFMotor.h" library to be able control the motors. For this you should follow the steps below.
- The ZIP file named ”Adafruit Motor Shield Library” is download from the GitHub link.
- Click on “Sketch > Include Library > Add .ZIP Library on the Arduino IDE. Select the downloaded Adafruit Motor Shield Library and click the Open button. In this way, the library named AFMotor.h is added to the project.
- However, for the bluetooth connection you must add "SoftwareSerial.h" library.
Step 10: Code Description-1
- in the section before void setup;
Objects belonging to pin numbers to which the motors and the bluetooth sensor are connected are created. (mySerial, motor1, motor2, motor3)
Step 11: Code Description-2
- in the section void setup;
Serial communication begins.
Step 12: Code Description-3
- in the section void loop;
In the section marked red, check whether the data is received from the bluetooth module. Incoming data is sent to the c variable.
For example, if the incoming data is “F”, the motors are moved in the forward direction.
- After the voidloop section, subprograms are created. The turning speed and turning side of the motors are set in the subprograms.
“Forward”, “Back”, “Left”, “Right” and “Stop” are the names of subprograms.