## 3 Results
### Controlling System
#### 3.3.2 Controller Programming  
The microcontroller is programmed using Python codes to establish the configuration of the IR remote and define the functionalities of the remote controller button for clockwise and counterclockwise turning. Furthermore, it incorporates a setup for the push button to enable the gripper to come to a stop at its maximum position. When the gripper is turned clockwise, the gripper arms move inward by a specific number of steps, while counterclockwise rotation causes the gripper arms to continuously extend until the gripper handle contacts the push button. Once the handle reaches the push button, the code ceases operation and resets the stepper motor's step count, ensuring a fresh count when the gripper moves inward again. Other parts of the code related to the motor's rotation and step-counting process are based on the input pins depicted in Figure 7. Despite the simplicity of the code, it offers user-friendly operation and can be adapted for any gripper utilizing a stepper motor and IR remote. It is important to acknowledge that while both the wiring and codes have been successfully tested, it is crucial to monitor and analyze the code and motor performance regularly, as not all stepper motors exhibit long-term reliability. The programming of the gripper necessitates careful consideration of the grasping speed to accommodate objects with diverse textures. The speed can be adjusted by manipulating the programming parameters. However, it is important to strike a balance, as excessive speed can endanger delicate objects, like eggs, while excessively slow movements restrict the gripper's functionality and user-friendliness. Additionally, speed has an impact on the required torque for effective grasping, as there is an inverse relationship between speed and motor torque. To boost the motor's torque output, a gearbox with a gear ratio of 40:1 is incorporated into the stepper motor, resulting in a substantial decrease in speed. This reduction is considered when determining the ideal speed and duration for grasping operations. The motor is programmed to operate at 60 RPM (1.5 RPM when accounting for the gearbox), enabling the gripper to complete full opening or closing motions in approximately 4-6 s. The motor speed can be adjusted within the specified limitations outlined in the motor and gearbox manual, permitting speeds of up to 400 RPM (10 RPM with the gearbox) to remain within the optimal torque range. The gripper design utilizes an open-loop control system, which can lead to overshooting movements during both the opening and closing stages. To address this concern in the rack and pinion system, mechanical stops are integrated into the open direction. In this system, a button sensor is placed within one of the mechanical stops during the opening motion. This sensor functions to stop and reset the code and motor once the object release process is completed. Insufficient programmed tightening force may result in objects slipping and falling if they are not fully grasped from all sides. The effective force applied by the gripper to the object depends solely on the thickness of the flexible element, which is determined through iterative experimentation. By identifying a range of acceptable thicknesses based on the handle's safety factor, the flexible element can flex and conform to the object's shape. Users have the option to adjust the perceived force on objects by modifying the thickness of the flexible component. The mesh design of the flexible material acts like a spring force, and the thicker it is, the greater the force it provides. The force exerted on the object remains constant throughout the grasping process, and this system effectively reduces the risk of object damage. Moreover, to prevent object slippage, the TPU material and small bumps are integrated to enhance the frictional force between the object and the grasping surface.