Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions Projects/3D/Finger_Starter/fingerStarter.md

This file was deleted.

45 changes: 45 additions & 0 deletions Projects/Finger_Starter/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Finger Starter

"This is going to be interesting!!
We are going to assemble a finger to a small servo for testing it with an Arduino board. The servo I used on the pictures is a digital HK15298 but you can use also a cheap analog MG995 or even cheaper if you find and if the size specifications are the same.
The Arduino board used here is a Arduino Uno. It is best to add an external power supply because even if these servos are small they draw too much current which will or might reboot your board.
At the end of this tuto, there is also a picture that illustrate how to simply connect your servo to the board.
REMEMBER: this connection set up can only power a single servo with low Amps drawing, if your board resets itself, or if the servo jitters, it means your servo is to high power consumption for the power pin. You will need an external power supply."


## Parts Needed
- 1 x Servo (HK15298, MG995, or similar)
- 1 x Arduino Uno (or similar)
- 1 x Finger Starter Kit (or similar)


- [YouTube: Finger Assembly Tutorial](https://www.youtube.com/watch?v=0t2uhAyf2-c)

- [Test Your Finger Sensor](https://inmoov.fr/test-your-finger-sensor/)
- [Finger Starter](https://inmoov.fr/finger-starter/)
- [YouTube: Finger Starter Demo](https://www.youtube.com/watch?v=y1LIKOaPQ1E)

- [YouTube: Servo Connection Guide](https://www.youtube.com/watch?v=UZnay5oXk4g)

## Instructions

1. Assemble the finger using the Finger Starter Kit. Follow the [Finger Assembly Tutorial](https://www.youtube.com/watch?v=0t2uhAyf2-c) for detailed instructions.

2. Connect the servo to the Arduino Uno:
- Connect the servo's power wire (usually red) to the 5V pin on the Arduino.
- Connect the servo's ground wire (usually black or brown) to a GND pin on the Arduino.
- Connect the servo's signal wire (usually yellow, orange, or white) to a PWM-capable digital pin on the Arduino (e.g., pin 9).
- If using an external power supply, connect the servo's power wire to the positive terminal of the power supply and the ground wire to the negative terminal. Ensure that the ground of the power supply is connected to the ground of the Arduino.

3. Setup the Servo Motor

- 3.1 Setup the Servo Motor Library in the Arduino IDE:
- Open the Arduino IDE on your computer.
- Go to `File` > `Examples` > `Servo` > `Knob`. This example code will allow you to control the servo using a potentiometer.
- Modify the code if necessary to match the pin you connected the servo signal wire to.

- 3.2 Set the motor to the initial position:
Run the code located at [`ServoMotorSetup/Set_Servo_Position.ino`](ServoMotorSetup/Set_Servo_Position.ino) in your Arduino IDE to set the servo to its initial position. Upload the sketch to your Arduino board and verify that the servo moves to the desired starting angle.

- 3.2 Upload the Test Code:
- Run the code located at [`ServoMotorSetup/Finger_Starter.ino`](ServoMotorSetup/Finger_Starter.ino) in your Arduino IDE to test the servo's movement. Upload the sketch to your Arduino board and observe the servo's behavior.
49 changes: 49 additions & 0 deletions Projects/Finger_Starter/ServoMotorSetup/Finger Starter.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include<Servo.h>
#include<SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); //Rx, Tx

Servo myServo;

int ServoPos=0;

void setup()
{
mySerial.begin(9600); //Set Baudrate of bluetooth to 9600
myServo.attach(3); //Connect Servo to Pin 3
myServo.write(ServoPos);
}

void loop()
{
int data,i;
if(mySerial.available())
{
data = mySerial.parseInt();
if(data == 0)
{
if(ServoPos == 90)
{
for(i=90; i>=0; i--)
{
myServo.write(i);
delay(10);
}
ServoPos = 0;
}
}

else if(data == 1)
{
if(ServoPos == 0)
{
for(i=0; i<=90; i++)
{
myServo.write(i);
delay(10);
}
ServoPos = 90;
}
}
}
}
49 changes: 49 additions & 0 deletions Projects/Finger_Starter/ServoMotorSetup/Finger_Starter.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include<Servo.h>
#include<SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); //Rx, Tx

Servo myServo;

int ServoPos=0;

void setup()
{
mySerial.begin(9600); //Set Baudrate of bluetooth to 9600
myServo.attach(3); //Connect Servo to Pin 3
myServo.write(ServoPos);
}

void loop()
{
int data,i;
if(mySerial.available())
{
data = mySerial.parseInt();
if(data == 0)
{
if(ServoPos == 90)
{
for(i=90; i>=0; i--)
{
myServo.write(i);
delay(10);
}
ServoPos = 0;
}
}

else if(data == 1)
{
if(ServoPos == 0)
{
for(i=0; i<=90; i++)
{
myServo.write(i);
delay(10);
}
ServoPos = 90;
}
}
}
}
13 changes: 13 additions & 0 deletions Projects/Finger_Starter/ServoMotorSetup/Servo Angle Set.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include<Servo.h>

Servo myServo;

void setup()
{
myServo.attach(3); //Connect Servo to Pin 3
}

void loop()
{
myServo.write(0); //Set Servo Position to 0
}
13 changes: 13 additions & 0 deletions Projects/Finger_Starter/ServoMotorSetup/Set_Servo_Position.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include<Servo.h>

Servo myServo;

void setup()
{
myServo.attach(3); //Connect Servo to Pin 3
}

void loop()
{
myServo.write(0); //Set Servo Position to 0
}
Loading