Project Development


For this assigment, we have to:

- (DONE) Complete the final project. Track and document the progress.

All the files created for this assigment can be found on the link bellow:


---> DOWNLOAD FILES<---



Have you answered this questions:

- what is the deadline? How much time do I have left?
--> yes
- what tasks have been completed, and what tasks remain?
--> yes
- how will I complete the remaining tasks in time?
--> yes
- what has worked?
--> yes
- what has not?
--> yes
- what questions still need to be resolved?
--> yes
- what have you learned?
--> yes




Questions to answer


a) What is the deadline? How much time do I have left?

The deadline is on monday 19 th. I've started to wort in my final project almost three weeks and a half before the deadline.

b) What tasks have been completed, and what tasks remain?

All the tasks have been completed, but what remains is to add an application to the project

c) How will I complete the remaining tasks in time?

I will program what remains as soon as I can

d) What has worked?

The communication between both boards have worked. The control of the motors has worked too.

e) what has not?

Unfotunatelly there is too much noise on the wireless communication, and as a consequence I can not control all the motors individually

f) what questions still need to be resolved?

How can I make this portable, knowing that it requires more than 3 Amperes to work?

g) what have you learned?

I have learned to manage my time and do complex projects in a short time.



Developing the project

a) Designing the hand, wrist and fingers:

The first thing I did was to design the hand and the fingers

This are the steps I did for designing the hand:

1. I sketched up first the side view of a finger with its phalanx and its joints.

2. And then, I extrude out the sketch.

3. I sketched the top view of the finger and cut the remaining parts of the solid finger


4. I applied fillet to all the sharp edges and then applied shell for getting only the shell of the finger


5. Then, I extrude out the internal part of the finger and made the vias for the fishing line

6. I created the piece that joints the hand and the fingers


7. Then, I sketched the front side of the hand and part of the thumb finger:

8. I extrude out the hand and the thumb finger and made some holes and vias for the fishing lines and for attatching the fingers:


9. I applied fillet to the sharp edges and added the holes for attatching the wrist:

10. Then, I designed the wrist.


11. I copied and paste as a new componen the finger. And then I modified its size for getting the pinky finger.


12. I copied and paste as a new componen the finger. And then I modified it a little bit for getting the thumb finger.


13. Finally, I printed all the parts




b) Designing the servo motors container:

I needed to put 16 servo motors in a very short space so I designed a double sided servo motor container

This are the steps I did for designing the servo container:

1. I started by designing a servo motor in fusion, so I took some measures from a servo, sketched it up and then did some extrudes.


2. Once I had one virtual servo, I copy and paste it, until I had 16 motors arranged so that they do not touch each other.

3. I visualized the motors and thinked on a case that could contain all the motors
4. I started to sketch the container parts, considering the cables, the heith and the vias for the fishing lines

5. Then cutted some pieces with the laser cutter for finding the kerf

6. I adjusted values in my design based on the kerf.

7.Then, I cutted all the parts of the container, and joined them all with the servo motors


8. Finally, I joined the hand with the arm and connected the servos and fingers with fishing line.




d) Designing the boards:

I needed to made three boards: two for the input device and one for distributin energy and signals to the servo motors.

This are the steps I did for designing the input device boards:

1. I made the schematic on Eagle, basically the boards consisted on an atmega328, a bunch of resistors, and an analog to digital converter.

2. Once I did the schematic, I started route a double sided board, with the atmega 328 and the analog to digital converter at the top side and an array of resistors on the bottom side.

3. Once I finished the routing, I exported the top side board with its limits and then got the board and limits separately as explained in the 13th assigment

4. then I exported the bottom side of the board with its limits, maked it a mirror and then did the same procedure for separating the limits and the board.

5. I loaded the top board on the fab modules, resize it based on the original exported file and sent it to mill.



6. I loaded the bottom board on the fab modules, resize it based on the original exported file and sent it to mill.


7. Once I had both boards, I soldered all its components.



8. Finally, I joined the paths of both boards with copper wire for sharing the GND and input signals.




On the other hand, this are the steps I did for designing the supply voltage board:

1. I made the schematic on Eagle.

2. Once I did the schematic, I started route the board by overlapping some of the components

3. Once I finished the routing, I exported the board with its limits and then got the board and limits separately as explained in the 13th assigment

4. I loaded the board on the fab modules, resize it based on the original exported file and sent it to mill.




6. Once I had the boards, I soldered all its components.



e) Mounting the flex sensors :

I needed to mount 9 flex sensors over a glove, which was not easy. Since the size of the upper side of the hand increases when the fingers are compressed, flex sensors can not be attached by both sides, they have to be attached only by one side, so that when a finger bend the sensor does not break.

So, the solution for having more than one flex sensor on a finger, is to put one flex sensor attached to the nail and one flex sensor attached to dorse of the hand, they will both overlap, but they wont break.

For attatching the sensors I used scotch tape. And once I positioned them all in the glove, I soldered them with some cables to the input board

This is how it looks:

f) Programming:

the input and output board need to comunicate to each other wirelessly, luckly I have done this before on my 15th assigment by bluetooth, so the code for configuring the modules is the same that the one used on my 15th assigment. The input board needs to send just a value to the output board and that value has to be interpreted on the output board

The code on the input board works as follows:

1. First, it initializes the software seraial library and the virtual UARTt

2. It defines the names of pins for SPI communication and initializes some general variables

3. Then, on the setup function, I initialize the virtual UART and the physical UART and define the output and input pins


4. After that on the loop function. I read the values of the internal ADC and the values of the external ADC and sends it by the the bluetooth module


5. Then, every time a sensor is bend, a number of 20 degrees adds to the value to be sent to the out put board


6. Then, it sends the resulting value to the bluetooth module


7. Finally, the function for reading values of the external ADC is defined.


On the other hand, the code on the output board works as follows:

1. First, it initializes the software serial library and the virtual UARTt

2. It defines some variables to be used

3. Then, on the setup function, It initializes the virtual UART and the physical UART and defines the output and input pins


4. After that on the loop function. It reads the values transmited by the bluetooth module

5. Then, it defines the same value of degrees for all the motors and executes the moveserv function for moving all the servos


6. Then , it defines the moveserv function, which calculates the duty cycle of the pwm signal to be sent to the servos and controls all the servos at the same time.


7. After that, the function readvscp is defined. This function reads the data comming to the virtual uart and allocates it in an array called "cadena".


8. Finally the function getnum is defined. This function looks for the numerical values stored in the array cadena.


This is the code in action:





Brief Summary

This Project consited on building a multi DOF arm, the image bellow shows all the joints on the arm, the ones that are controlled by fishing line are shown in green and the ones that were not controlled are shown in blue.



The connectiong between the threads and servos is almost the same for every joint, the image bellow shows the connection diagram for the control of a joint located on one of the fingers between the index and the pinky finger (at the left) and the connection for the control of a joint located at the thumb (right)



The connectiong between all the boards and devices is shown bellow






Bill Of Materials
Considering that this project uses a Fabduino that was made on my 8th assigmnt, the BOM would be as follows:

Electronics:
- 3 PCBs of 2X3 inches
- 2 Atmega 328p
- 2 Ceramic Resonator of 20mHz
- 2 Tactile buttons
- 16 Micro Servo SG90
- 9 Flex Sensors
- 2 meters of Multi Strand Cable
- 2 Bluetooth HC-05
- 2 Ceramic Capacitors of 1 uF
- 1 Analog to Digital Converter MCP3208
- 2 Resistors of 10K
- 14 Resistors of 100K
- 3 Resistor of 0 Ohm
- Male Pin Headers
- Female-Female Duppont Cables
- Soldering Paste

3D Printing:
- Printing Filament

Lasser Cutting:
- 1 Acrylic board of 300x600 mm

Tools:
- 1 FTDI Cable
- 1 AVR-ISP Programmer

Equipment:
- A Milling Machine
- A soldering station
- A 3D printer
- A laser cutter
- A computer

Others:
- Scotch tape
- A glove
- Fishing Line of 2.5 mm




Future Works

Since, this project was oriented to develope a robotic arm instead of a dataglove, most of the work was centered on the arm. So, in future works I will improove the glove by replacing it with a 3D printed exosqueletal hand, which probably do not use the same sensors. However, an inmediate solution for improving the glove would be to replace the cables with conductive thread, to attatch with thread the input circuit board to the glove and finally to replace the scotch tape rings with 3D printed rings.

This project is licensed under a CC-By-NC-ND (Attribution-Non Commercial-Non derivate) Creative Commons license