16.4: Implementation

Fabrication:

The mechanical parts of the hand are almost exclusively 3D printed with the Bambu Labs printers in TIW. Every linkage from every finger is printed in one go on the Bambu Labs printer. Some parts like the shell-style palm enclosure and the forearm enclosure were printed on the Raised3D FDM printers. The parts printed on Raise3D benefited from the higher-precision printing that Raise provided. Another benefit of the Raise3D printed parts is the ease of removal of the support structures on those parts. 


Figure 1: Initial Failed Print of the Finger Linkages. Print failed due to temperature gradient on the print bed, causing one linkage to peel off the bed.


There were 2 failures during the fabrication of the Robotic Arm, namely, during the printing of the finger linkage and forearm enclosure. Both failures were due to uneven build plate heating on the 3D printers. We also had to drill a hole in the linear actuator mount because the power line passthrough slot was accidentally removed during CAD revision.


Figure 2: Missing Linear Actuator Power Passthrough

Figure 3: Acrylic Top Plate Snapped in Half


There are a small number of laser-cut acrylic parts that protect moving pieces while still displaying the inner workings of the hand. Aside from protection, the acrylic plate on the palm also serves as the top plane for which the slider joints can move along without popping out of the palm clamshell. The initial laser-cut palm cover also broke during the test fit. The base for the palm clamshell had some holes that the Raise3D printer did not print to an accurate size, so we had to use larger screws to attach the acrylic plate and top frame of the palm clamshell. Because of this issue, the holes on the laser-cut top plate had to be manually enlarged, and during this, we accidentally snapped the top plate in half. This did not cause any issues when it came to final assembly.

Electronics and Circuitry:

In terms of electronics, we use a two-axis joystick that we obtained from the RMD bins connected to a Seeedunio Xiao SAMD21 microcontroller as an input. The Xiao takes input voltages adjusted with relative resistance from the joystick's Y-axis. This signal is then analyzed and outputted through a digital pin as a PWM signal to the L298N H-bridge motor controller to control the DC linear actuator. All of these electronics are powered by a single 11.1V LiPo battery.

The wiring of these electronic components is shown below.

Figure 4: Circuit Testing.  The initial circuit testing was done outside of the enclosure


Final wiring is mostly similar to the wiring as shown in the figure above:

  • Power delivery circuit
    • LiPo battery provides 11.1V to the L298N H-bridge motor controller through an XT60 connector
    • Both the joystick and Seeeduino Xiao microcontroller are powered directly by the 5V output from the L298N
      • The 5V power leads are soldered in parallel to share the voltage
    • All ground leads are shared from the H-bridge
  • Logic circuit
    • 3 pins are utilized on the Seeeduino Xiao to communicate with the H-bridge.
      • PWM signal in3
      • PWM signal in4
      • Signal reversal pin
    • 1 analog pin from the Seeeduino Xiao is used to receive the voltage input signal from the Y-axis on the joystick
  • Motor Control
    • The linear actuator is driven by the H-bridge
      • out3
      • out4


Figure 5: Initial Mechanism Testing w/o Logic Controller: Testing mechanism and compliance without a logic controller or H-bridge

Software Development:

The software loaded onto the Xiao runs a continuous loop that takes an input voltage value in the Y axis. This voltage signal is read as an int value between 0 and 1023. The range of voltages is split into two ranges based on where the steady state voltage signal is at and for our case it was around 580. Therefore, the lower signal that we set was from 0 to 470 and the upper signal was set from 700 to 1023.

Our code defined the H-bridge parameters to either send voltage from out3 or out4 to the linear actuator that dictates the direction of the linear translation of the linear actuator.  Before sending out a signal, the voltage integer value was mapped from 0 to 255 to achieve a digital PWM signal and then it is sent to the H-bridge to run the actuator at a proportional rate as the value read from the joystick. We attached our code below.


Figure 6: Arduino Code for Robotic Hand


Figure 7: Functioning Prototype Fully Assembled