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.

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?