AhmedAzouz
Created August 17, 2021 © GPL3+

Bidex Robot Dual Arm

Bidex is a low-cost human-safe robot, capable of using AI to learn basic tasks. Certified open-source hardware | oshwa.org/sa000003.html

IntermediateFull instructions provided95
Bidex Robot Dual Arm

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
×4
MG996r servo motor
×4
Servo Motor Driver I2C Module
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Laser cutter (generic)
Laser cutter (generic)

Story

Read more

Custom parts and enclosures

gripper_jr5NAXovEn.pdf

Schematics

circute_N3q7C5cT6N.jpg

Code

Untitled file

Arduino
// ***********************************
// Bidex Kit v1.0
// By AhmedAzouz
// Note: the following code is a sample to move only 4 servos that are fixed on one arm only
// ***********************************

#include <Servo.h>

Servo MyServo,MyServo2,MyServo3,MyServo0;
char ByteReceived ;
int MyPosition,MyPosition2,MyPosition3,MyPositionG;

int runCounter = 0;
int valGripper = 30;
int valBase = 70;
int valShoulder = 25;
int valElbow = 150;
int delayT = 350;

void setup()
{
 Serial.begin(9600); 
 
 MyServo.attach(6); // base  attach
 MyServo2.attach(9); //shoulder  attach
 MyServo3.attach(10); //Elbow attach
 MyServo0.attach(11); // Gripper  attach
 
 delay(15);
 MyServo.write(valBase);   // base
 delay(30);
 MyServo2.write(valShoulder);  // shoulder
 delay(30);
 MyServo3.write(valElbow); // elbow
 delay(300);
}
 
void loop()
{    
    while (Serial.available()>0)  { 
      
    ByteReceived = Serial.read();  
    
    switch (ByteReceived) {    
      
      // ************* Elbow
      case 'a':
      MyPosition2 = MyServo2.read() + 2;   // A for move Elbow up
      MyServo2.write(MyPosition2);      
      Serial.print("Elbow");
      Serial.print("\t");
      Serial.println(MyServo2.read()); 
      delay(15);
      
      break;      case 'd':
      MyPosition2 = MyServo2.read() - 2;   // D for move Elbow down
      MyServo2.write(MyPosition2);      
      Serial.print("Elbow");
      Serial.print("\t");
      Serial.println(MyServo2.read()); 
      delay(15);
      
      break;      // ************* Shoulder
      case 'w':
      MyPosition3 = MyServo3.read() + 2;  // W for move Shoulder down
      MyServo3.write(MyPosition3);      
      Serial.print("Shoulder");
      Serial.print("\t");
      Serial.println(MyServo3.read()); 
      delay(15);
      
      break;      case 's':
      MyPosition3 = MyServo3.read() - 2;  // S for move Shoulder up
      MyServo3.write(MyPosition3);      
      Serial.print("Shoulder");
      Serial.print("\t");
      Serial.println(MyServo3.read()); 
      delay(15);
      
      break;      // ************* Gripper
      case 'o':
      MyServo0.write(30);                // O to open Gripper
      Serial.print("Gripper Open");
      Serial.print("\t");
      Serial.println(MyServo0.read()); 
      delay(15);
      
      break;      
      
      case 'c':                          // C to open Gripper
      MyServo0.write(1);
      Serial.print("Gripper Close");
      Serial.print("\t");
      Serial.println(MyServo0.read()); 
      delay(15);
      
      break;      // ************* 
       
      default:         
         Serial.println("default"); 
     break;
  }
    }
}

Credits

AhmedAzouz
10 projects • 157 followers
High qualified software engineer, Creativity and Technology have always been a big part of my life.
Contact

Comments

Please log in or sign up to comment.