PROJECT
Sudeep Hegde | AUTHOR | ACTIVE |
Adrian P Isaac | COORDINATOR | ACTIVE |
This project will be executed in three stages, developing three subsystems:
The goal is to synchronize these subsystems to a central computer using a computer vision system to recognize facial expressions and mimic them with mechanical actuators for fluidic movement. Additional features like neck movement with voice detection and silicone skin can be added later.
Human-Like Motion:
Sensory Perception:
Emotional Expression:
Speech and Language Understanding:
Energy Efficiency:
Robustness and Durability:
Realistic Appearance:
Component | Estimated Price | Reference Link |
---|---|---|
6x SG90 Micro Servos | 600 INR | Link |
M2 and M3 Screw Kits (Approx 50 pcs) | 500 INR | A vendor from SP Road |
Arduino UNO | 500 INR | OM Electronics SP Road |
16-Channel Servo Driver | 2000 INR (Highly subject to changes) | Link |
5V Power Supply | Mostly available in MARVEL | Link |
Female DC Power Jack | 100 INR | SP Road |
2-Axis Joystick | 415 INR | OM Electronics SP Road |
Potentiometer | 50 INR | OM Electronics SP Road |
Push-to-Make Switch | 90 INR | OM Electronics SP Road |
10 k Resistor | 100 INR | OM Electronics SP Road |
White PLA | 900 INR | WOL 3D Richmond Road |
Jumper Wires (Entire Set) | 500 INR | OM Electronics SP Road |
TOTAL | 5755 INR |
Component | Estimated Price | Reference Link |
---|---|---|
7x MG90s Micro Servo | 1645 INR | Link |
2x MG996R Servo | 1000 INR | Link |
8x M2 Servo Ball-links | No cost estimation Available | |
4x M2 Short Pushrod Connectors | No cost estimation Available | |
Arduino UNO | 500 INR | OM Electronics SP Road |
16-Channel Servo Driver | 2000 INR (Highly subject to changes) | Link |
Potentiometer | 50 INR | OM Electronics SP Road |
5V Power Supply | Mostly available in MARVEL | Link |
TOTAL | 5195 INR |
// X-axis joystick pin: A1
// Y-axis joystick pin: A0
// Trim potentiometer pin: A2
// Button pin: 2
#include
#include
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#define SERVOMIN 140 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX 520 // this is the 'maximum' pulse length count (out of 4096)
uint8_t servonum = 0;
int xval;
int yval;
int lexpulse;
int rexpulse;
int leypulse;
int reypulse;
int uplidpulse;
int lolidpulse;
int trimval;
const int analogInPin = A0;
int sensorValue = 0;
int outputValue = 0;
int switchval = 0;
void setup() {
Serial.begin(9600);
Serial.println("8 channel Servo test!");
pinMode(analogInPin, INPUT);
pinMode(2, INPUT);
pwm.begin();
pwm.setPWMFreq(60); // Analog servos run at ~60 Hz updates
delay(10);
}
// you can use this function if you'd like to set the pulse length in seconds
// e.g. setServoPulse(0, 0.001) is a ~1 millisecond pulse width. its not precise!
void setServoPulse(uint8_t