Introduction: A MULTI FUNCTIONAL ARDUINO ROBOT

About: Voice Of Technology·Wednesday, 22 April 2020· Welcome to our page ,here you all get some exciting engineering project video clips and if you follow the link to the YouTube you will get the total tutorials of…

This is a very unique project all over the youtube may be here also, we have made a simple DIY robot who can walk, dance and even can kick a ball into the goal post. The robot body is made by cutting cardboard, and a microcontroller which is very famous and user friendly i.e Arduino is used to giving the brain. Arduino controls the 4 servo motors attached with the robot as its legs according to the specified angle and timings provided in the code so that it can perform the activity of walking, dancing and kicking respectively in a sequential manner. we tried to make a cute, simple and attractive with full of uniqueness so that our Robo enthusiastic individuals can enjoy this project and make it present in various field .we also replace the Arduino with raspberry pie in the coming videos in youtube also will share here.Please try to make it just follow as mentioned,if face any problem reach us via what's ap , comment in youtube we will contact you all to help.Thank you

**our previous channel name changed to " VOICE OF TECHNOLOGY"

Step 1: COMPONENTS:

1:-arduino uno(Maker And Hacker Arduino Uno R3 Compatible Development Board With ATmega328P-PU and CH340G)
2:-servo motor(4piece)(KTC CONS Labs 5x Pieces SG90 Micro Servo Motor 9G RC Robot Helicopter Airplane Boat Controls)

3:-jumper wires(REES52 Jumper Wire - 10 Male to Male + 10 Female to Female + 10 Male to Female)

4:-breadboard mini(KTC CONS Labs Nickel Plated 840 Points Bread Board or Solderless Piecesb Circuit Test Board, White)

5:-9v battery or power bank(Intex IT-PBB 2000 MAH Power Bank (Black))

Step 2: Fix This Robot

see this pic..
4servo motor are used in this project..

so servo motor fix is important in this project.. see this pic..and follow how to connect this 4 servo motors.

Step 3: Uploading Code

here is the code...this code is only for funny dance...
you can also download below....walking biped code and cicking a ball code..

copy the code and paste to arduino.....then compile and upload..

#include

#include

#include #define N_SERVOS 4

#define EEPROM_TRIM false //Activate for calibration

#define TRIM_RR 18

#define TRIM_RL 18

#define TRIM_YR 26

#define TRIM_YL 18

#define PIN_RR 3

#define PIN_RL 2

#define PIN_YR 4

#define PIN_YL 5

#define INTERVALTIME 10.0 Oscillator servo[N_SERVOS]; void drunk (int tempo);void kickLeft(int tempo);void kickRight(int tempo);void pasitos(int steps, int tempo);void run(int steps, int T=500);void walk(int steps, int T=1000);void backyard(int steps, int T=3000);void moonWalkLeft(int steps, int T=1000);void moonWalkRight(int steps, int T=1000);void crusaito(int steps, int T=1000);void swing(int steps, int T=1000);void upDown(int steps, int tempo);void flapping(int steps, int T=1000); void setup(){ Serial.begin(19200); servo[0].attach(PIN_RR); servo[1].attach(PIN_RL); servo[2].attach(PIN_YR); servo[3].attach(PIN_YL); int trim; if(EEPROM_TRIM){ for(int x=0;x<4;x++){ trim=EEPROM.read(x); if(trim>128)trim=trim-256; Serial.print("TRIM "); Serial.print(x); Serial.print(" en "); Serial.println(trim); servo[x].SetTrim(trim); } } else{ servo[0].SetTrim(TRIM_RR); servo[1].SetTrim(TRIM_RL); servo[2].SetTrim(TRIM_YR); servo[3].SetTrim(TRIM_YL); } for(int i=0;i<4;i++) servo[i].SetPosition(90); } // TEMPO: 97 BPMint t=620;double pause=0; void loop() { pasitos(8,t*2); crusaito(1,t); patada(t); delay(t); twist(2,t); twist(3,t/2); upDown(1,t*2); patada(t*2); drunk(t*2); flapping(1,t*2); walk(2,t); walk(1,t*2); backyard(2,t); patada(t*2); flapping(1,t*2); patada(t*2); twist(8,t/2); moonWalkLeft(2,t); crusaito(1,t*2); for(int i=0; i<2 ;i++){ lateral_fuerte(0,t); lateral_fuerte(1,t); upDown(1,t*2); } saludo(1,t*2); saludo(1,t); delay(t); swing(3,t); for(int i=0;i<4;i++) servo[i].SetPosition(90); delay(t); lateral_fuerte(0,t); lateral_fuerte(1,t); lateral_fuerte(0,t/2); lateral_fuerte(1,t/2); lateral_fuerte(0,t/2); delay(t/2); lateral_fuerte(0,t); lateral_fuerte(1,t); lateral_fuerte(0,t/2); lateral_fuerte(1,t/2); delay(t); pasitos(1,t*2); pasitos(1,t); delay(t/2); pasitos(1,t*2); pasitos(1,t); delay(t/2); crusaito(2,t); crusaito(1,t*2); crusaito(2,t); crusaito(1,t*2); crusaito(2,t); crusaito(1,t*2); upDown(2,t); crusaito(1,t*2); for(int i=0;i<4;i++) servo[i].SetPosition(90); delay(t/2); pasitos(2,t*2); pasitos(2,t); flapping(1,t*2); upDown(2,t); upDown(1,t*2); for (int i=0; i<4; i++){ pasitos(1,t); delay(t); } reverencia1(1,t*4); reverencia2(1,t*4); upDown(1,t); run(2,t/2); patada(t*2); lateral_fuerte(0,t); lateral_fuerte(1,t); upDown(2,t); lateral_fuerte(0,t); lateral_fuerte(1,t); upDown(2,t); pasitos(4,t); lateral_fuerte(0,t); lateral_fuerte(1,t); upDown(2,t); patada(t*2); pasitos(2,t); patada(t*2); pasitos(2,t); swing(2,t*2); pasitos(4,t); for (int i=0; i<4; i++){ lateral_fuerte(0,t); lateral_fuerte(1,t); lateral_fuerte(0,t/2); lateral_fuerte(1,t/2); lateral_fuerte(0,t/2); delay(t/2); } pasitos(6,t); delay(t); pasitos(1,t); delay(t/2); pasitos(3,t); delay(t/2); swing(4,t); twist(2,t/2); delay(t/2); twist(2,t/2); delay(t/2); drunk(t*2); drunk(t/2); drunk(t*2); delay(t/2); walk(1,t); backyard(1,t); servo[0].SetPosition(110); servo[1].SetPosition(130); delay(t); crusaito(3,t); crusaito(1,2*t); upDown(1,t*2); upDown(2,t/2); kickLeft(t/2); kickRight(t/2); moonWalkLeft(1,t*2); moonWalkLeft(2,t); moonWalkRight(1,t*2); moonWalkRight(2,t); walk(4,t); backyard(4,t); lateral_fuerte(0,t); lateral_fuerte(0,t); lateral_fuerte(1,t); lateral_fuerte(1,t); walk(2,t); backyard(2,t); pasitos(6,t*2); swing(1,t); upDown(1,t); delay(t); upDown(6,t); delay(t); for (int i=0;i<4;i++){ lateral_fuerte(0,t); lateral_fuerte(1,t); } delay(t); for (int i=0;i<7;i++){ pasitos(2,t); swing(2,t); } pasitos(1,t); crusaito(1,t*2); upDown(1,t); delay(2000); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////FUNCIONES DE CONTROL////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void oscillate(int A[N_SERVOS], int O[N_SERVOS], int T, double phase_diff[N_SERVOS]){ for (int i=0; i<4; i++) { servo[i].SetO(O[i]); servo[i].SetA(A[i]); servo[i].SetT(T); servo[i].SetPh(phase_diff[i]); } double ref=millis(); for (double x=ref; x

//////////////////////////////////////////////////////////////////////////////////////////////////////////////PASOS DE BAILE////////////////////////////////////////////////////////////////////////////////////////////////////////////// void pasitos(int steps, int tempo){ int move1[4] = {90,120,60,60}; int move2[4] = {90,90,90,90}; int move3[4] = {60,90,120,120}; int move4[4] = {90,90,90,90}; for(int i=0; i