Saturday, April 25, 2009

Maya To Moco Sneak Peak

A sneak peak at a set of Maya Tools that can control servo and stepper motors. It uses the Arduino platform as a bridge between Maya and the Motors. I will be releasing the tools on the openMoco website soon.

Friday, April 24, 2009

openMoco Icons

click to enlarge

Just a quick update on some maya to moco related stuff. I'm very close to releasing something. I've been spending a bit of time on user interfaces of late. Here are some icons I've been working on. They start as 3D models in maya. Then I render them out in vector format for Adobe Illustrator.

Something tells me that I will have to go and "macify" them to make them more pretty. I'm a sucker for slick glossy graphics. But I always go full circle and make them simple again in the end :)

Saturday, April 11, 2009

Python + Arduino + Motor Shield + Stepper Motor (Part 1)

This is my first successful attempt at sending a number (higher than 255) from Python to Arduino using Serial Communication. Currently it sends 3 bytes per execution.

The 1st byte for packet identification, and the 2nd and 3rd byte makes up the Base10 number we are sending. I've used bit-wise operators to maximize the number I can construct from 2 bytes. Currently the maximum number I can send is 65535. The code can still be optimized, and currently it does not support negative numbers but hey, I'm taking it one step at a time (pardon the pun). FYI, this exercise is part of a much larger project. You can read about it Here

Edit: After several requests I have put a revised version of the code to make this work online.

Copy and Paste the Arduino Code into a text file and save as a .pde and upload it via the Arduino IDE. Copy and Paste the Python Code into a text file and save as

To run it in python, type:
import motor [Enter]
motor.position(1,1.8,360) [Enter]
motor.position(1,1.8,0) [Enter] 
This should make a 200 steps per rev motor turn 360degrees and then return to it's original position. The only thing that you may need to change is line 20 in the python code. It depends on what COM port you will be using.

Friday, April 10, 2009

DIY Motion Control Rig

Ok, so usually I'm not in the habit of blogging my over ambitious ideas. They never usually eventuate so I like to keep them in my head. But since I started this blog, I have noticed that all of my tinkering has began to carve it's own path to the one common goal. Building my own motion control rig of coarse! So in this post I will simply layout some of my plans and direction for all of my future tinkering with motion control.
I've been wresting with the idea of affordable motion control for years. Ever since I found out that the rig I was designing an interface for costs around 100 grand to buy! I was lucky enough to get to play with and study one of these rigs when I was studying at visual effects at film school. Through some reverse engineering and a lot of late nights I was able to discover all of the formulas that make this rig's movements so dynamic! but more about that in another post. I recreated a virtual version of this rig in a 3D animation program called Maya. I wrote some software (with help) that exported the move data to a file which could later be read by the real rig's software and translated into an actual move. The software has since proven itself as a reliable industry tool used on many TVCs and several short films. Less than a year ago I discovered micro controllers and stepper motors. I quickly realized that I had the basic ingredients and experience to make my own rig with the same six degrees of movement that I had already come accustomed to at film school. So here I am, a Full Time Visual Effects Artist, Married with a 1 year old boy and enough ideas to last several lifetimes. I guess that's why they call it a hobby :)
Software Features
- Maya to Motion workflow(already exists) - Ability to program Dual Scale Moves (I have the secret formula :) - Ability to play back the move at any frame rate - Processing timeline GUI with animation curves (Here's a WIP) - Move Data Exporter (not written yet) - Move Data importer and Cache system for playback (not written yet)
Hardware Features
- Arduino (1 or many, what ever it takes) - Stepper Drivers (still researching the right one for my needs) - Stepper Motors (synced to the sync pulse of the video/film camera) - Crane on a Dolly with Pan Tilt and Roll head (adjustable nodal point) - Tracks (custom to begin with) - Basic LCD programmable interface for timelapse shoots.
So these are just some of the Ideas I have kicking around. I must stress, this is a Hobby, not a business(not yet). So I am comfortable sharing this info without commitment. You know how it is no expectations, no let downs :) It works for me! Won't you join me as I push my brain until it hurts. Right that's the last time I ramble on about myself I promise. From now on it will be practical and hopefully helpful posts from me on motion control.

Saturday, April 4, 2009

New Worm Gear Box

Diagram for input shaft quote.

Well I have finally purchased my first major part for my DIY Motion Control Rig. It's a worm gear box which will be part of the Pan Tilt Head System. The pictures I took with my phone make it look much larger the it actually is. The gearbox weighs about 1.2kg which seems fairly light compared to some of the rotary tables out there used for the same setup.

It was about $150 AUS and if it's works the way I hope, I will buy another one for a second axis. The gear box ratio is 60:1 (60 motor revs = 1 output shaft rev) to ensure I have enough resolution in my camera pans or tilts. There seems to be a bit of backlash but I will need to run some tests before I know if it's of any concern.

I still need to make an adapter shaft between the motor an the gearbox. I'm getting a quote from a local machine shop for that.

I'm thinking of going for a nema23 stepper with this setup, but still need to do a bit more research. Can't wait to try this out!

Here's a link to the transmission suppler: