MechArm 270 Pi- Learning Curve

Some entry-level robots come with an easy-to-use programming interface that allows a user to start making motion sequences right out of the box. It would be remiss of me to say that was my experience with the Mecharm 270 Pi. The robot has some nice features, but it doesn’t have an intuitive slider or drag UI that a beginner could use to quickly program a motion sequence.

My Mecharm 270 Pi came with an Ubuntu OS version 18.04 (desktop pictured above). I was unable to get any form of ROS interface to work with that system, and finally switched to Ubuntu 20.04. This requires a re-burn of the the Pi microSD card.

On the Ubuntu 20.04 update, I could get an RVIZ panel opened using ROS2. There is a basic slider control which will move the robot, though I found it unpredictable.

After experimenting for a while trying to program using the ROS2 interface, I gave up and went back to the myBlockly option which comes pre-installed. It does allow you to program simple motion sequences using “Set Angle” and “Sleep” function blocks, but if there’s a way to program acceleration / deceleration or a “wait” command, I was unable to find it.

myBlockly has logical commands which allow for use of IO and peripherals, but my goal was just smooth & repeatable motion before going any further. I did eventually learn how to use the positioning control to automatically send joint values to the command blocks, which made general positioning easier, but the process requires several keystrokes for each new position and takes a while to get used to.

With the Elephant Robotics gripper installed on the MechArm, I wanted to program a short sequence of the robot playing a xylophone. It seemed like a simple task which didn’t require fine motion. Unfortunately, the gripper doesn’t close all the way, and the gripper force is very weak. It wouldn’t hold a small wooden xylophone mallet steady, even during slow motions. I printed off a simple square grip, in the hopes that it would increase the stability of grip on the mallet, but it didn’t work very well. This is the result of several hours of work:

LInk to video on YouTube: Mecharm 270 Pi – Learning Curve

During this experimentation, I wanted to try using Python to control the robot instead of myBlockly. My favorite lighter IDE is Thonny, which can be downloaded at Thonny.org

I installed Thonny on the Pi desktop. If you haven’t programmed in a Python environment before, there are many resources to help you get started at Python.org



One frustration of the myBlockly app- while it will show you the python equivalent of your myBlockly commands (just click the Python tab), there isn’t an easy way to copy the python code.

Insofar as I could tell, it would copy one time, then something got messed up in the clipboard and it wouldn’t copy again. Not sure if this is an Ubuntu thing, or a myBlockly thing, but it was annoying.

Trying to play to the Mecharm 270’s strengths, I decided to try a simple sequence with a toy the gripper would be able to pick up without difficulty. This sequence was done using Thonny to run the robot:

Link to video on Youtube: Mecharm 270 Pi Grommit Grab

In the next blog, the xylophone playing improves…

Product Links

Elephant Robotics MechArm270 Pi

MechArm 270 Gripper

Mecharm 270 Robot Stage

SAMSUNG PRO Plus microSD Card

To get started with your Mecharm 270 Pi, you’ll need a keyboard, mouse, and monitor to plug in.

This is a great package deal for all 3:
https://amzn.to/4eSRZaJ

Separately:

compact USB keyboard
https://amzn.to/3We57jx

Basic ergonomic USB mouse
https://amzn.to/4bF5hF9

Good quality HDMI monitor
https://amzn.to/3LiNMQ4

DON’T FORGET THE MONITOR CABLE!
The Mecharm 270 Pi monitor port is a micro-HDMI. With an HDMI monitor, you’ll need an HDMI to micro-HDMI cable:
https://amzn.to/3WdGYcK

I use an ergonomic mouse pad which reduces the strain on your wrist:
Ergonomic Mouse Pad with Wrist Support
https://amzn.to/4eXRAnn


Printing Supplies:

Green Printer Filament:
Gizmo Dorks 3mm ABS Green

Black Printer Filament:
Gizmo Dorks 3mm ABS Black

Blue Printer Filament:
Gizmo Dorks 3mm ABS Blue

Brown Printer Filament:
Gizmo Dorks 3mm ABS Brown

Clear Printer Filament:
Gizmo Dorks 3mm ABS Clear

Red Printer Filament:
Gizmo Dorks 3mm ABS Red

3D Printer

We highly recommend the Flashforge line of 3D printers for printing your robotic EOAT and staging parts:


FLASHFORGE 3D Printer Guider II Large Size Intelligent Industrial Grade 3D Printer

FLASHFORGE Guider IIS 3D Printer Auto Leveling with High Temperature Nozzle

FLASHFORGE Adventurer 5M Pro 3D Printer with 1 Click Auto Printing System

FLASHFORGE Adventurer 5M 3D Printer with Fully Auto Leveling

FLASHFORGE 3D Printer Adventurer Series with Auto Leveling with Quick Removable Nozzle

Disclaimer: As a participant in the Amazon Affiliate program, we earn a small commission if you make a purchase through one of these links, at no additional cost to you.

Elephant Robotics MechArm 270 Pi: Get it to Move with myBlockly

There is a good ending to this story, but it took a while to get there.

For the video of these instructions, you can scroll down to the end of this post.

If you’ve purchased a Mecharm 270 Pi, or are thinking about it, read on for my experience. Spoiler Alert: it’s a great compact robot with high-end servo motion, but the initial set-up using manufacturer’s instructions can be a bit confusing.

The Pi edition of this robot has a Raspberry Pi 4 built in to the base. The Raspberry Pi 4 is basically a small computer running a Linux operating system.

To get started with your Mecharm 270 Pi, you’ll need a keyboard, mouse, and monitor to plug in.

This is a great package deal for all 3:
HDMI monitor + USB keyboard & mouse

Separately:
compact USB keyboard

Basic ergonomic USB mouse

I use an ergonomic mouse pad which reduces the strain on your wrist:
Ergonomic Mouse Pad with Wrist Support

Good quality HDMI monitor

DON’T FORGET THE MONITOR CABLE!
The Mecharm 270 Pi monitor port is a micro-HDMI. With an HDMI monitor, you’ll need an HDMI to micro-HDMI cable

Connect them like this:

When power is switched on, the Pi boots up and the monitor displays this screen:

My Mecharm 270 Pi shipped in April 2024. Older or newer vintages may not behave in exactly the same way but this is what I did to be able to move the arm using the pre-installed “myBlockly” app:

Click on the myBlockly icon on the desktop

The first time I opened the app, it was defaulted to Mandarin. Change it by clicking on the blue dropdown menu, select the gear icon (bottom of dropdown) to open the Settings window:

In the window that opens, click on the dropdown arrow of the top box:

Choose “English” to change the app from Mandarin to English. Click the green box to close the window. It will default to English now each time the app is opened.

To connect to the Mecharm, the blue initialization block needs to be set to Mecharm, /dev/ttyAMAO, and 1000000 using the blue dropdown arrows.

Once that is set up, you can add motion blocks. Select “MDI Control” on the left menu. It will open a selection of blockly commands. Click once on the one which starts, “Set Angle J1):

A Set Angle command block will be added to the programming screen.

It’s a good idea to start small; Check functionality by setting Angle J1 to something between 24 – 50 degrees, and setting the speed somewhere between 25 – 75. Clicking on the number box next to each joint number will display a slider which you can use, or you can enter the number using your keyboard.

CAUTION: The next action will cause the Mecharm to move if everything is set up correctly. On the first try, I made sure there was 3 ft of clear space all the way around the robot, so an unexpected motion wouldn’t cause a collision.

Click on the green Run button at the top right corner of the app screen.

If the robot moved, congratulations! (If it did not, there may be a communication issue; start by checking port and baud settings. Upcoming posts will go into re-installing the Pi system image, which I needed to do to get the ROS2 environment working)

Now you can experiment with myBlockly to create a short program. Call the Sleep function, located in the Time tab on the left hand menu, to introduce delays. I have found that a delay is needed between motions, or the robot skips motions; it moves from one motion to the next before the first motion is completed, and skips the next instruction.

Here is a simple movement sequence using different joint angles and a speed of 80%.

The .json file is available on RoboFiesta LLC’s Github here

Choose the Python tab to see what the code looks like in Python:

And that’s it for the get-your-mecharm-to-move-for-the-first-time blog.

Here’s the video summarizing these instructions:

Next up, I get very frustrated trying to get the ROS2 environment running on my Mecharm….

Product Links

Elephant Robotics MechArm270 Pi

MechArm 270 Gripper

Mecharm 270 Robot Stage


Printing Supplies:

Green Printer Filament:
Gizmo Dorks 3mm ABS Green

Black Printer Filament:
Gizmo Dorks 3mm ABS Black

Blue Printer Filament:
Gizmo Dorks 3mm ABS Blue
https://amzn.to/3VzdsOj

Brown Printer Filament:
Gizmo Dorks 3mm ABS Brown

Clear Printer Filament:
Gizmo Dorks 3mm ABS Clear
https://amzn.to/3RjaATi

Red Printer Filament:
Gizmo Dorks 3mm ABS Red

3D Printer

We highly recommend the Flashforge line of 3D printers for printing your robotic EOAT and staging parts:


FLASHFORGE 3D Printer Guider II Large Size Intelligent Industrial Grade 3D Printer

FLASHFORGE Guider IIS 3D Printer Auto Leveling with High Temperature Nozzle

FLASHFORGE Adventurer 5M Pro 3D Printer with 1 Click Auto Printing System

FLASHFORGE Adventurer 5M 3D Printer with Fully Auto Leveling

FLASHFORGE 3D Printer Adventurer Series with Auto Leveling with Quick Removable Nozzle

Disclaimer: As a participant in the Amazon Affiliate program, we earn a small commission if you make a purchase through one of these links, at no additional cost to you.

The Elephant in the Room

Such an obvious title…

Late last year I started looking for a sub-$1000 6-axis robot I could use in my videos & tutorials. I wanted something that had better / smoother motion than the low-cost educational models that are all over the internet, but it’s difficult to evaluate performance from a online videos (usually from the vendors themselves). Almost due to this lack of information, I started focusing on a desktop model from a company called Elephant Robotics.

Truth be told, the few online reviews I could find did not seem promising. There were 2 on Amazon, which appear to have been removed when I looked for them later. From what I recall they highlighted “bad to program” and “bad instructions” as key features of the unit. Undaunted, and perhaps a little foolishly, I made the purchase.

Elephant Robotics MechArm 270 Pi

I also purchased the optional gripper for the unit:

MechArm 270 Gripper

It had about a month’s lead time, so, about 4 weeks later, a box arrived. Here’s the quick unboxing video:

Out of the box, it seemed well made and finished. I didn’t purchase the optional adaptor base, but quickly designed a simple printable adaptor base that allowed me to fix the robot to a 150mm square optical board.

You can purchase your own 150mm board on Amazon here: https://amzn.to/3RRqg0q

I’ve uploaded the adaptor STL file to RoboFiesta LLC’s Github repository:

https://github.com/robofiestaLLC/Mecharm/blob/main/elephantbase.stl

Now that the robot is set up securely on a stable platform, all that’s left to do is power it on and start programming… right..?

And that’s a whole other blog. More than one, actually…

Disclaimer: As a participant in the Amazon Affiliate program, we earn a small commission if you make a purchase through one of the links on this page, at no additional cost to you.

Mecademic Meca 500 Diode Soldering Practice

Having a soldering iron, a few build-a-breadboard kits, and a precision robot, it was only a matter of time before I made a robotic soldering video.

In another video- Mecademic Meca 500 Diode Loading Demo – we saw how the Meca 500 had the precision and agility to pick ‘n’ place diodes with delicate, easily-bent legs. The key to placement, I found, was inserting a “shimmy” during the -Z motion; the EOAT essentially “shivers” to ensure the diode legs don’t hang up on the edges of the breadboard ports. Details & code available in my post, “Mecademic Diode Load

I had intended to print a custom EOAT to grip the soldering iron, but had an extra-long print running at the time ( base adapter for our new Elephant Robot ); I ended up using a utility EOAT with through holes for zipties to securely attach the iron.

To determine TCP (tool center point), I measured EOAT length to center of iron for Z (35.55mm), and centerline of EOAT to tip of iron for X (96.0mm).

Fine-tuning the smooth motion necessary for the delicate job of soldering is a joy with the Meca 500’s ability to jog in extremely small increments; I practiced on both of the following boards, using the 10 LED board for the video:

10 LEDs Soldering Practice Board

Electronic Piano Soldering Kit

As mentioned before, I love this soldering iron kit; it’s great value for money as well:

WEP 927-IV Soldering Station

I re-ran the motion sequence several times during filming with the iron off, to make sure the soldering tip wasn’t impacting the diode legs with too much force. I kept the blending value at 0 for the fine motion, as speed wasn’t the goal. The move / safe motion between diode legs is a little exaggerated, so it was more visible in the video.

The cold iron practice has a 1 second dwell at each diode leg. For the segment where I actually solder, I increased the dwell to 2 seconds per leg to make sure a good melt & solder joint was possible.

Here’s the code for both 1 sec and 2 sec dwell soldering sequences:

Here’s the link to the video on Youtube: RoboFiesta Mecademic Meca 500 Diode Soldering Practice

Disclaimer: As a participant in the Amazon Affiliate program, we earn a small commission if you make a purchase through one of the links in this post, at no additional cost to you.

Why Not Teach a Robot to Play a Kalimba

Especially a robot with the exceptional precision & control of the Mecademic 500.

This was just a short trial run, me basically playing around to see if:

  1. It was possible to create a robotic motion which played or “plucked” the tines to produce a tone similar to what is made when a human finger plays the keys, and
  2. The movement of the robot with “safe” position between tines / keys would allow for reasonable pace / rhythm in a short practice tune.

The first kalimba I tried is a nice basic unit with lovely tone, it’s been a lot of fun as an introduction to the instrument.

You can check it out on Amazon here: 17 Key Kalimba

I found that, though not a problem for humans, the tines required a bit too much force for the robot end effector. The 1.5mm aluminum probe tip kept bending after a few keystrokes.

A little searching online found another type of kalimba, this one with a specialized key design that required a lighter touch. It also came in more than 1 variety, with different numbers of tines.

This kalimba is more polished / professional; I purchased one from Amazon with 2 day delivery: MOOZICA 36 Keys Chromatic Kalimba

There wasn’t a ready-made .stp file or any CAD available for the kalimba, so I improvised in AutoCad Fusion to make a basic stage layout:

The tines are smaller and more rounded than the first kalimba, which made precision end effector placement & motion critical to tone. Just moving the EOAT vertically in a short rapid motion didn’t work; there needed to be a diagonal component, effectively “sliding” the probe tip off of the tine in a particular manner.

The robot motion was a sequence of move-to positions with some speed changes and delays to produce the timing of the tune. The move-to-safe motion is larger than it really needs to be, but I was concerned about clearances as I moved the blending values higher for smoother / more rapid motion. This is the code I programmed for the short video sequence:

I am working on a better CAD model of a kalimba, with the tines placed accurately. The whole stage could then be imported into a simulator like RoboDK to teach songs or melodies quickly. I did this one by eye, experimenting with different positions & motions to produce the best tones.

You can watch the YouTube video here: Mecademic Meca 500 Kalimba Concert 1

Product Links:

17 Key Kalimba
36 Key Kalimba

Robot stage

Optical Plate Flat Aluminum Honeycomb Breadboard: https://amzn.to/4aKMuYR

3D Printer

We highly recommend the Flashforge line of 3D printers for printing your robotic EOAT and staging parts:
FLASHFORGE 3D Printer Guider II Large Size Intelligent Industrial Grade 3D Printer https://amzn.to/3VKaGGA

FLASHFORGE Guider IIS 3D Printer Auto Leveling with High Temperature Nozzle https://amzn.to/3xpxJMF

FLASHFORGE Adventurer 5M Pro 3D Printer with 1 Click Auto Printing System https://amzn.to/3TQxYYz

FLASHFORGE Adventurer 5M 3D Printer with Fully Auto Leveling
https://amzn.to/3TMprpS

FLASHFORGE 3D Printer Adventurer Series with Auto Leveling with Quick Removable Nozzle https://amzn.to/3PSmeDO

Disclaimer: As a participant in the Amazon Affiliate program, we earn a small commission if you make a purchase through one of these links, at no additional cost to you.

Loadcell Project

Load cell test rig with Calt load cell, Arduino and Mecademic Meca 500

When you need to weigh things, repeatedly..

A rainy weekend, a load cell, a robot, and a raspberry pi all got together… ok, this is a small project that is part of a larger project that I’m doing in stages. And, keen eyes will have spotted that the unit in the image above is of the Arduino flavor, as opposed to Raspberry. For more on that, read on.

Initial Setup

I’m a big fan of the Raspberry Pi, and have several Pi4s that have proven very useful and adaptable, so a Raspberry Pi4 was the natural first choice for this project.

I’ve run the Mecademic interface through a Pi before as well, and the robot would be a part of the loadcell demo. I broke out the Pi with display and GPIO board, and went to work.

The issue I couldn’t get past when using the Raspberry Pi4 is well known in HX711 circles, it has to do with the timing of amplifier and the sequence of Pi operations; the Pi isn’t really set up for this type of measurements. Even with many measurements for tare & an extensive warm-up time, the values would drift, reset, and drift again; it wouldn’t settle down. There is a better explanation on this Github Readme by tatobari: https://github.com/tatobari/hx711py/

I eventually set aside the Pi4 and started looking at Arduino-type microcontrollers, more on that in the next section.

The load cell is a Calt DYMH-103 wired through an HX711 amplifier.

A note about the amplifier- the HX711 is low-cost and readily available, but, if you’re going to incorporate one into a project, do yourself a favor and get a decent soldering iron (if you don’t already have one). I started out using a time-worn old iron I’ve had for years, and damaged 2 amplifier boards before finally ordering a new soldering iron (WEP 927-IV, available here on Amazon). Wow, what a difference that made- I’m really happy with it.

Arduino

I’ve played around with Arduinos in the past, they’ve been around for years, but it’s been a while. I ordered a basic Arduino platform starter kit with the processor and some fun extras I will try out in future: Elegoo Uno R3

The Arduino connects to the laptop through a USB cable. The programming interface is a simple IDE which can be downloaded from this website: https://www.arduino.cc/

The code I used was from https://randomnerdtutorials.com/arduino-load-cell-hx711/

Printed Parts

I printed 2 parts for this testing- a new EOAT to hold a 1.5mm aluminum probe tip, and a retainer to fasten the load cell to the optical board.

Testing

Once the test rig & code were finished, I programmed a brief 5 run sequence for the Mecademic which would place the probe tip at the same position (within a few microns) each cycle. This isn’t a perfect load cell test, but for my hobby purposes works pretty well for the goal of exerting the same amount of force for each run.

You can watch the Youtube video of the test here.

The load cell isn’t an expensive one, and I was using a kitchen scale to get the known weight (of a bunch of washers taped together) for tare; not exactly high-tech. Even so, for a just-for-fun hobby-type setup, the measured repeatability of the loadcell in this example is actually better than I thought it would be:

Product Links:

This loadcell setup was made with components available on Amazon:
Elegoo Uno Arduino Starter Kit
WEP 927 IV Soldering Station Kit
HX711 Loadcell Amplifiers
CALT DYMH-103 Mini Load Cell

Robot stage

Optical Plate Flat Aluminum Honeycomb Breadboard: https://amzn.to/4aKMuYR

3D Printer

We highly recommend the Flashforge line of 3D printers for printing your robotic EOAT and staging parts:
FLASHFORGE 3D Printer Guider II Large Size Intelligent Industrial Grade 3D Printer https://amzn.to/3VKaGGA

FLASHFORGE Guider IIS 3D Printer Auto Leveling with High Temperature Nozzle https://amzn.to/3xpxJMF

FLASHFORGE Adventurer 5M Pro 3D Printer with 1 Click Auto Printing System https://amzn.to/3TQxYYz

FLASHFORGE Adventurer 5M 3D Printer with Fully Auto Leveling
https://amzn.to/3TMprpS

FLASHFORGE 3D Printer Adventurer Series with Auto Leveling with Quick Removable Nozzle https://amzn.to/3PSmeDO

Disclaimer: As a participant in the Amazon Affiliate program, we earn a small commission if you make a purchase through one of these links, at no additional cost to you.

The Hurling Video

Playing around with TCP settings on the Mecademic one day, and this morphed into the thought that it would be fun to have a robotic sporting match to showcase this very useful function.

Basketball was out (couldn’t figure out how to dribble the ball repeatably), and soccer didn’t seem practical given the lack of legs in the participants. Irish Hurling came to mind while contemplating ice hockey (the hurley and the hockey stick have vaguely similar shapes).

Ok, so we have the sport identified, now what about props… The first time I watched a hurling match, I was sure the hurleys must have a scoop-type feature to keep the sliotar in place as the players raced up and down the field. The face of the hurley is in fact NOT concave, it’s the skill of the hurlers (camogie-ers?) and the slightly raised stitching on the sliotar that keeps it in place. It’s as if the players have their own TCP functions to keep the center point firmly in the middle of the flattened end of the hurley!

Here’s a great YouTube video from GAA MAN with players demonstrating their hurling skills: https://youtu.be/44Gi2IarBiI

Amazingly enough, miniature hurleys and sliotars aren’t for sale on Amazon or Etsy (and I did a lot of searching). Looking at some online images, I designed a model hurley in AutoDesk 360 that at least keeps the shape, if not proportions, of the real thing. Here’s a great intro to AutoDesk Fusion 360 if you’re not already a user: AutoDesk Fusion 360

I ended up printing the hurleys both ways; in the video, the Mecademic’s hurley is flat while Neds and the xArm’s have one flat, and one concave side.

Autodesk 360 image of printable hurley, ~ 6" overall length

2 printed hurleys on the model playing field

The hurley strapping is electrical tape.

OK, now for the sliotar… I spent an inordinate amount of time trying to stitch a tiny canvas ball, but the material shredded in places. Next, I cut up an old pair of leather gloves and tried sewing a leather one using a tiny baseball pattern. It turned out more square than spherical:

Result of attempt to sew tiny leather sliotar

Ned actually liked this one best; it didn’t roll at all, so was easier to hold on the hurley.

The final sliotar was a design based on some historical sliotar images on the National Museum of Ireland’s website. They were made of cow or horse hair. A ball made of coarse twine seemed about as close as I was going to get; once the glue set, it was hard and rolled reasonably well.

Coarse twine sliotar

The goal was cobbled together using twine and mesh netting on a wooden frame.

Programming the winning goal motion on the Mecademic was a challenge; suffice to say, acceleration settings were key. Once the proper settings were found, though, Mike made the goal in ~ 75% of the shots. Here’s the final program used in the video:

You can watch the Robofiesta hurling video here.

Robot Valentine

View the video on Youtube

two hearts (with convenient easy-grip handles)

Ned has a new friend! The HiWonder Xarm is a fun little educational robot which you can buy assembled or in a kit. We thought it would be fun to see if the Xarm is repeatable enough to perform in a video alongside our Niryo Ned. It did very well for the price; at one stage, I needed to reteach some points that “wandered” for some reason but other than that it’s a great little robot. Note, the Xarm is really more of a 5-axis than 6-axis robot; the 6th axis is the gripper jaws, which does limit some of the positioning but Ned was able to work around this.

For props, I designed a simple heart shape with a grip and printed it on our FlashForge Creator Pro. Resized for the smaller heart, repeat. Slicing done on Simplify3d.

In any setup where pre-stage is the locating method, it’s important to know where your robots & parts are. I used a couple of plastic grids which are inexpensive and reusable; they’re sold as quilting accessories.

Using a grid for repeatable prestaging

We repeated the exchanging-of-valentines action over two dozen times; occasionally it didn’t work out (there was some variability where Ned put down the small heart, and occasionally the pencil stuck in his gripper jaws), but overall I was really happy with the sequence. The video featured on RoboFiesta’s Youtube channel was shot on a Samsung Galaxy S21 Ultra 5G, which has awesome media production capabilities. Edited on Adobe’s Premier Pro.

Will you be my robot valentine?