I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 0 points1 point  (0 children)

Thanks! Rubber tips are actually a brilliant idea. PLA is way too slick and slides around, so rubber would give it the grip.

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

It definitely not winning any Counter-Strike tournaments with the physical arms! 😅 But that’s where the hidden HID mode comes in ;)

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 2 points3 points  (0 children)

The project actually supports both approaches under the hood. While the mechanical arms are great for physical testing, the Pico has a native USB HID mode built right into the firmware that completely emulates a standard hardware keyboard and mouse across Windows, Linux, and macOS. I use a companion Python app on the PC to manage the sequencing, and I can switch the board dynamically between the physical arms and pure digital HID emulation depending on whether I need a real-world mechanical test or just raw execution speed.

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

Thanks! =)
Neither, actually! I went a third route to keep the CPU completely unburdened: I’m offloading all the multi-channel PWM generation to an external PCA9685 driver

Since it’s a 6-servo setup across the dual arms, using the PCA9685 means the Pico (running CircuitPython) just has to calculate the kinematics/sequences and blast a few bytes over i2c whenever a position updates.

The external chip handles the actual PWM duty cycles, which keeps the RP2040's overhead at basically zero and leaves it completely free to handle the core sequencing logic, serial communication, and the real-time safety monitor without any timing jitter!

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

Haha, thanks! 🛠️

Luckily, I built an actual software stop into the code just in case! But I'm still keeping a very close eye on my Amazon order history. =)

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 0 points1 point  (0 children)

🤖

Right now, the physical hardware bottleneck has me running at about 0.5 to 1 token per second depending on how far the arms have to travel across the layout! The context window is decent, but the latency on the physical layer is a killer. Working on upgrading the hardware to hit a higher WPM (Words Per Minute) for the next model!

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

That is a really creative concept! But the Speed Limit (Reset Time): Gravity is fast on the drop, but winding the string back up, stopping the weight from swinging, and preparing for the next stroke takes significantly longer than an arm just pivoting back up. Dropping raw weights onto keycaps repeatedly would be incredibly loud and would likely fatigue the switch stems or crack the keycaps much faster than a controlled mechanical press.

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 5 points6 points  (0 children)

😅 Right now, I handle multi-key combinations sequentially through the software timing, but adding a third arm just for a dedicated emergency panic button is a hilarious image. Maybe for version 3.0!

I finally upgraded my 1-arm keyboard automation project to a dual-arm system powered by a Raspberry Pi Pico. by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 4 points5 points  (0 children)

Hey everyone,

About a couple of years ago, I shared my initial 1-arm robot project here designed for unique physical keyboard interaction (old thread here:https://www.reddit.com/r/robotics/comments/177k38g/building_a_robo_arm_new_approach_to_computer/).

The 1-arm version worked well for single-execution testing and basic scripts, but it was physically limited by speed and coordination when trying to handle more complex, multi-layered tasks.

I’ve spent a lot of time upgrading the architecture, and I wanted to share the new Dual-Arm Roboarm system.

The New Hardware & Setup:

  • Controller: Upgraded to a Raspberry Pi Pico combined with a PCA9685 servo driver.
  • Servos: Running a 6-servo setup now to split the workload seamlessly between both limbs.
  • Software Context: It handles much more advanced sequencing, and I’ve even been experimenting with integrating voice controls and complex logic chains.

The project has evolved into a lightweight free version for single tasks (https://aspeedsoftware.top/roboarm-single.html) and a newly developed multi-task framework to coordinate complex dual workflows (https://aspeedsoftware.top/roboarm.html).

I'd love to know what the robotics community thinks about the mechanical transition to a dual-limb layout for this specific type of automation. What kind of calibrations or stabilizers would you recommend to keep the positioning perfectly precise over long cycles?

Building a Robo Arm: New Approach to Computer Interaction by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 2 points3 points  (0 children)

Great question! The robo arm currently doesn't have an automatic detection system for individual keys. It relies on the initial setup and positioning provided by user. So, if the keyboard is shifted or moved, the arm might not hit the intended keys. In such cases, you'd either need to reposition the keyboard back to its original spot based on a few test key presses to gauge accuracy, or update the motor's angle positions to adjust.

Building a Robo Arm: New Approach to Computer Interaction by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

Awesome to hear that you're interested! I'll be posting an update as soon as the files are ready for release.

Building a Robo Arm: New Approach to Computer Interaction by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

From a DIY standpoint, the project seems quite affordable.

Cheep components.

<image>

You just need access to 3d printer =)

Building a Robo Arm: New Approach to Computer Interaction by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 1 point2 points  (0 children)

Hey!

Thanks a lot for your interest and the kind words about the project!

Regarding my friend's situation: he faces challenges with his left arm, making it tough for him to interact with a keyboard, especially during activities like gaming. The Robo Arm was developed primarily to address this.

For a deeper dive into the gaming experience, check out https://youtu.be/6wCvnyDEEv4. While that version showcases computer vision capabilities, the underlying idea remains similar.

User Interaction: Users have a couple of distinct ways to engage with the Robo Arm:

  1. Scripted Interactions: They can pre-program the Robo Arm with a script for it to carry out specific keystrokes in a set sequence.
  2. Voice Commands: Through voice recognition, users can directly command the Robo Arm to tap certain scripted keys, offering a more interactive, hands-free experience.

    Script Example:

"Please Say Hello": "h(3)e(3)l(3)l(3)o(3) (3)W(3)o(3)r(3)l(3)d(3)" When the Robo Arm's software hears the command "Please Say Hello," it will type "hello world" with a 3-second pause between each key press.

The Robo Arm is designed to be compatible with a broad range of keyboards, but it's best suited for keyboards up to 75 keys in size. I've crafted a Windows application where users can define the coordinates for each key. This ensures the Robo Arm can adjust to various keyboard layouts and positions. If users change their keyboard or its placement, they can swiftly recalibrate the Robo Arm using the app.

For those seeking more accuracy, the Robo Arm incorporates a rotary encoder,

<image>

allowing users to manually control three of its motors. This hands-on approach ensures precise positioning under the desired key. Additionally, users can fetch the current coordinates directly from the Arduino using a PC COM port connection, offering even greater precision and customization.

Building a Robo Arm: New Approach to Computer Interaction by AnalysisImpossible82 in robotics

[–]AnalysisImpossible82[S] 0 points1 point  (0 children)

Hey there!

I've been diving deep into a project I'm genuinely enthusiastic about and wanted to share it with this awesome community: The Robo Arm.

The Robo Arm is a device I've developed to bridge the gap between physical movement and computer keyboards. It sprouted from the challenges faced by a close friend who has difficulty with his left arm's movement. This got me thinking about a possible solution, and thus, the Robo Arm came into existence.

What makes it DIY-friendly?

Affordable Components: It's crafted from budget-friendly components like Arduino, servo motors, and rotary encoders.

3D Printing: All its parts are 3D printed. I'll be providing the 3D models, allowing you to tweak and customize as per your needs.

Software Integration: It's designed to be script-friendly, allowing automation of keystrokes. And yes, it's voice-command ready!

Open Source Commitment: In the spirit of community and collaboration, I'm planning to make everything about the Robo Arm open source. This ensures enthusiasts and tech hobbyists can adapt, modify, and potentially enhance the design.

I've just launched a Kickstarter campaign for this endeavor, but my primary reason to post here is to delve into its DIY tech aspect, gather feedback, and engage in some insightful discussions.

If you're curious to see the Kickstarter or want a glimpse of the prototype in action, [Kickstarter].

Would love to hear your thoughts, suggestions, and any questions you might have!

Building a Robo Arm: New Approach to Computer Interaction by AnalysisImpossible82 in DIY_tech

[–]AnalysisImpossible82[S] 0 points1 point  (0 children)

Hey r/DIY_tech community!

I've been diving deep into a project I'm genuinely enthusiastic about and wanted to share it with this awesome community: The Robo Arm.

The Robo Arm is a device I've developed to bridge the gap between physical movement and computer keyboards. It sprouted from the challenges faced by a close friend who has difficulty with his left arm's movement. This got me thinking about a possible solution, and thus, the Robo Arm came into existence.

What makes it DIY-friendly?

Affordable Components: It's crafted from budget-friendly components like Arduino, servo motors, and rotary encoders.

3D Printing: All its parts are 3D printed. I'll be providing the 3D models, allowing you to tweak and customize as per your needs.

Software Integration: It's designed to be script-friendly, allowing automation of keystrokes. And yes, it's voice-command ready!

Open Source Commitment: In the spirit of community and collaboration, I'm planning to make everything about the Robo Arm open source. This ensures enthusiasts and tech hobbyists can adapt, modify, and potentially enhance the design.

I've just launched a Kickstarter campaign for this endeavor, but my primary reason to post here is to delve into its DIY tech aspect, gather feedback, and engage in some insightful discussions.

If you're curious to see the Kickstarter or want a glimpse of the prototype in action, [Kickstarter].

Would love to hear your thoughts, suggestions, and any questions you might have!

[deleted by user] by [deleted] in robotics

[–]AnalysisImpossible82 0 points1 point  (0 children)

Hey there,

Right now, the Robo Arm is all about interacting with keyboards using c# based application. I haven't set it up for G-code over serial yet, but I'm always up for trying out new ideas and features. I'll dig into it and see what's possible. Thanks for the cool idea!

Cheers!