News

Weekly summary ending 2018-01-24

Hey, friends! It’s good to be back. I thought some sunshine would chase my winter blues away, but it looks like what I really need is more robots. Here is what we worked on in the last week, where we are heading next, and how you can join us.

I reviewed Jin’s work on belt tension. He did a great job!

After that, I found I’d set my expectations too high. A shaft collar in the Tuning Fork was slipping. For more on what those words mean, see our youtube channel history. Here’s me opening the wrist to extract the shaft collar.

I found an M2 nut had stripped inside the shaft collar. The shaft collar slipping means power is not transmitted from the motor to the wrist. Attaching a gear to a tube has proven to be a real challenge for us. How would you do it?

Because I wear many hats here, sometimes I have to sit down and make our robots for customers. I make them in batches to save time.

Get it today: Our remix of DaGHizmo’s design. The Thingiverse license for DaGHizmo’s model says “attribution, non-commercial, share-alike”. In the comments on the file we asked and received an exemption permit from DaGHizmo to sell the remix. We’ve also shared our remix for everyone.

Our future Makelangelos will use this design. The older model had a semi-transparent model made of laser cut acrylic parts that were glued together. The glue would break in shipping and just one more reason why I avoid all glue in our robots. This newer model ships much better. Bonus, it holds markers and pens of more sizes than the old model. Right now the color of the parts is random but I believe we are moving towards yellow.

On closer examination I was wrong! The hole through the part shaped like a top hat is a little bit off, which presses the ring shaped piece to one side and binds the arms against the brim of the hat. Maybe someone out there can design a better plotter.

Next

Currently Jin and I are working in two different, parallel directions.

Jin is actively making progress with the gearbox. Today was his third iteration and he spent several hours testing speeds and accelerations to build a motion profile. That motion profile can be used in simulations to program the robot.

I am finishing Makelangelos for paying customers. I’d say half my time is spent in quality control on each machine. I call my nephew to come work assembling robots but he doesn’t check his phone. Too much Fortnite League. If you’re in Vancouver BC and want a couple hours on the weekend putting things together then contact us.

I’ve also been trying to sell a vending machine to make room for a CNC mill/lathe combo. Aluminum parts and faster plastic production would be a huge win for us.

How you can join us

Get the latest Sixi Master Assembly for Fusion360 on Patreon
OR
Buy anything in our store and mention ‘The Fusion link’ in the notes field to get a link by email.

You can use this file to build your own copy of the robot arm.  Put that 3D printer you bought to use – Make it your own! Share your creation with others!  That’s what open source is about.  If you build one we would love to share it with others.  I am actively seeking talent… show me what you got.

As always, follow our daily progress on our Instagram or see our older stuff on Youtube.

Lastly, thank you for your likes, subscribes, comments, and purchases. You keep the lights on and the mood high so we can keep working on awesome things for you.

Tutorials

Send Instagram Videos to Youtube with Raspberry Pi and Bash

Making Instagram videos is quick and easy.  Making Youtube videos is a laborious editing process that sucks the sunlight out of my soul.  People kept asking me if I have a Youtube channel and I was embarrassed to admit that yes, sort of, but no, not really.  I needed a way to send my Instagram videos to Youtube… a way to make the rock that kills the first bird bounce and kill the second bird!  With a bit of Bash scripting I was able to get my Raspberry Pi to automatically do this for me.  Read on for all the deets.

I used to use Zapier but they got dumb.  First they wanted to charge me to add extra steps to my one and only zap, then they said they couldn’t work ANYWAYS because Instagram tightened the data access rules.  I’m a big fan of IFTT but they can’t do it, either.  So!  Hand-rolled it is.

The pieces someone else made

I already had a Raspberry Pi 3 (?) set up to take timelapse pictures of my Prusa 3D prints.  I figure it’s idle most of the time, why not make it work a little harder?  Firstly I logged in and updated all the underlying framework.

sudo apt-get update
sudo apt-get upgrade
mkdir ig2yt
cd ig2yt

Then I installed https://github.com/rarcega/instagram-scraper to grab my instagram content.

sudo apt-get install python3
sudo apt-get install python3-venv
python3 -m venv env
/env/bin/python -m pip install instagram-scraper

and tested the instagram-scraper

/env/bin/instagram-scraper yourTargetChannel -u yourIGName -p yourIGPassword -t video

Next I installed https://github.com/tokland/youtube-upload by following the instructions in their readme.

wget https://github.com/tokland/youtube-upload/archive/master.zip
unzip master.zip
cd youtube-upload-master
sudo python setup.py install
cd ..
rm -rf youtube-upload-master

There were also a number of steps (in their readme) to install the .youtube-upload-credentials.json file to /home/pi/.  The file will contain your specific Youtube upload credentials and should remain secret.

That which binds them in darkness

Finally I was ready to test a bash script that would glue these other pieces together.  What you see here is the end result of an afternoon’s work.  It doesn’t show the testing steps along the way, most of which were later removed for brevity.  Test first!  Don’t blow up your following with a crazy upload machine.

#!/bin/bash

# the folder where mp4s will be stored
DESTINATION=imakerobots
PASSWORD=yourPasswordHere
MYACCOUNT=yourAccountNameHere
TARGETACCOUNT=nameItHere

# instagram-scraper looks in $DESTINATION to see what videos you've got
# and only grabs newer videos. youtube-upload uploads indiscriminately.
# we need the list of old videos so we don't upload old stuff again.
# get the list of files already in $DESTINATION
shopt -s nullglob
fileList=($DESTINATION/*.mp4)
#echo $fileList

# grab the 10 newest instagram videos
env/bin/instagram_scraper $TARGETACCOUNT -u $MYACCOUNT -p $PASSWORD -t video --maximum 10 --template {datetime} --latest

# upload each new video to youtube
for filename in $DESTINATION/*.mp4; do
if [[ ! "${fileList[@]}" =~ "${filename}" ]]; then
#echo $filename is new
filename2="${filename##*/}"
filename3="${filename2%.*}"
youtube-upload --title "$filename3" "$filename" --privacy="private"
fi;
done

# delete all but the 3 newest files so we don't fill the drive.
ls $DESTINATION -1tr | head -n -3 | xargs -d '\n' rm -f --

Final Thoughts

  • I didn’t setup youtube-upload in env because I’m a python newb.  I can barely ask “where it the toilet” in parseltongue.
  • I did setup this script to run as a cron job once an hour, every hour.
  • videos will be private so they don’t smash your subscriber’s data plan.  I had them originally set to unlisted but youtube still told everyone!  Many ugly emojis were received.
  • videos will be titled in youtube with the date and time of their original publication.
  • if you make the mistake of publishing a few of them and then pulling older instagrams and publishing those in a second wave your videos will be all out of sequence.  “Ha, ha,” says Youtube, “No fix for you!”
  • hese scripts don’t email me if the process worked, failed, or what have you.  They could be way more robust.
  • Special thanks to the helpful people in IRC freenode channel #bash and #python for helping with the many (many) different versions of python.

As always please let me know if I missed a step, if this was helpful to you, and so on.

3D Printing Projects

3D printable pipe connection adapter

Recently a good friend asked me to make an adapter to connect the air hose from his vacuum to the air hose on his new scroll saw.  Both were, obviously different sizes.  3D printing to the rescue!

Shortly after he went home happy, I was thinking it would be great to have a tool that solves this problem forever.  Thingiverse has an option to make customizable, parametric designs.  So I whipped out SCAD modelling program and in about an hour crafted this tool that is free for everyone.

https://www.thingiverse.com/thing:3184173

You can change the diameter of the two hose ends, how far the hose ends sink into the adapter, and the thickness of the walls.  There is a small lip inside the shape to keep the hose from moving too far into the adapter.

In the first two weeks it has been remixed ten times already.  Fantastic!  If you find it useful, please tag me online or join my Patreon.

Robot Arm

Sixi Robot Arm update

I’m finally making progress on a new model.  Starting from the hand and testing as I go. 

I made a vault-like lock for a jewelry box and in it I used brass tubes as spacers and bushings.  It was so good I had to try and use bushings in my next design.  They’re suddenly everywhere!  Also all my parts that fit over a bushing have an extra large hole and a separately printed shaft collar.  That way the time to fix a part is low because only the collar needs reprinting.

It’s novemeber 12 today and I should (fingers crossed) have sensors reading the angles of the two axies by the end of the day.  Shortly after that I’ll be bending belts around a 90 degree angle (which I’ve never seen any DIYer do before in-person).

The tail end of this robot is going to need 4 gearboxes to get enough power so I’ve been bugging @Paul Gould about his excellent work, and I hope to print a few of his designs.  The lifting power of the elbow and the shoulder will probably be linear actuators.

Right!  That’s enough of that for now.

Makelangelo News

Makelangelo Software v7.17.0

Today I’m pleased to release Makelangelo Software v.7.17.0, the open source control program for our Makelangelo drawing robot.  This new version can now generate spirographs and read Scratch sketches.  Read on for all the details.

Minor improvements

First, some little details.  I’ve added a Help menu that contains the About tab and a link directly to the forums.

Makelangelo Spirographs

Generate Art > Spirograph will open the spirograph dialog and immediately generate the first spirograph.

By default the generator creates hypotrochoid drawings.  A hypotrochoid drawing is made by rolling a circle inside a ring, while keeping your pen at the same spot in the circle at all times.

Selecting epitrochoid will put the circle on the outside fo the ring.

The Major radius (R) value is the size of the ring.

The Minor radius (r) value is the size of the circle rolling around the ring.

The Scale (p) value is the distance from the center of the circle to the fixed point that the pen will follow.

The Sample (quality) increases the number of lines used to draw the shape.  More samples means smoother line.

Makelangelo Scratch Support

Scratch, from MIT, is the Minecraft of computer programming.  Each block does a different thing and blocks can only be combined in certain ways.

Supported scratch commands

The scratch program above, when run (by clicking the green flag icon, generates a kind of spirograph.  (Total coincidence.)

Scratch programs can be downloaded from the website to your computer

And then uploaded to the Makelangelo software.  Remember to change the file type to SB2

File > Open > Type = SB2

You should then immediately see the sketch drawn in the main view.

The extra lines are Makelangelos’s drawing of the pen holder

All scratch programs supported by Makelangelo Software v.7.17.0 must begin with a “When flag clicked” block.

Makelangelo Scratch (Scratchelangelo?) supports:

  • Move
  • Pen up/down
  • Turn and point in direction
  • Change x/y
  • Set x/y
  • Creating variables
  • Set variable to a number
  • Change variable by [operation]
  • Repeat [operation]
  • Hide, show, wait, and clear are ignored by Makelangelo and convenient for Scratch testing.
  • All other Scratch commands will probably cause an obscure error message.

There is no hard limit to the length of a sketch, the number of variables, or the complexity of a sketch.

As always, you can discuss these improvements in the forums.  We’d love to see what you make!