Archive for the ‘Open Source software’ Category
I’ll be showing my Lissagraph II drawing machine.
Come by and say hello.
Yea,the word your trying to remember is Spirograph… its not that, but kind of like that only motorized and huge.
Otherwise, just like that. It’s resemblance to any mouse-like cartoon character is purely caused by design constraints driven by gravity.
(Scroll down below the picture to read some design details.)
The Lissagraph Construction Details
By Craig Newswanger
The X and Y cranks are driven through toothed belt drives with a 5:1 ratio. The large turntable for the paper uses a direct friction drive with a rubber drive roller attached to the stepper motor. The friction drive method was chosen for the large turntable to avoid backlash effects that would be visible in the drawings. The turntable is a disk of 1/2” MDF that was cut with a router with a long compass arm.
The drive ratio with the 1 1/2” drive and the 48” diameter disk is roughly 32:1. I carefully calibrated each motor in the software to compensate for the imprecise turntable ratio and differences in the motor drive clock crystals.
There is a single idler roller opposite the motor that supports the turntable and three hard rubber casters on the back. The 20 degree tilt on the machine insures that the turntable disk is stable and rotates freely. The friction drive roller and idler were purchased from McMaster Carr.
Gravity is very dependable! You can quote me on that!
Motors and Controllers
The drive motors for the X and Y cranks are M062-FD8103 made by Superior Electric. I purchased them from Surplus Sales of Nebraska. The larger motor driving the turntable is a Nema 34 motor. I bought that from a friend. The controllers are Mforce drives, made by Schneider Electric
I used two Micro-drives for the x and y motors and a Power-drive controller for the larger motor.
The communications to the motors is through RS-422 serial link.
I use a usb to RS -422 adapter from Digikey # 768-1044-ND
My original code for the drawing machines were created in PureData, a data-flow language usually used for audio synthesis. I then wrote new code using Processing and G4P user interface tools. The software really only sends speed commands and Go and Stop commands to the motors. While the machine is drawing the computer is idle.
Speed Ratios and Sensitivity to Initial Conditions
I have been experimenting with this sort of pattern drawing in various forms for many years. I have learned what works to make interesting patterns. People ask if I know what a pattern will look like before I run a particular setting. I have a good idea of the type of image that I will get but there are often surprises that arise from small differences in the starting conditions.
One could refine the hardware so that starting states and phases could be precisely controlled but I’m not sure that would be as fun.
I have also not been interested in pre-visualizing the results using the computer. It is more interesting to see the pattern develop gradually. Observing the machine work is captivating to most people.
Although controlled digitally, the machine can be seen as an analog computer whose output is a direct graphical plot of the algorithm on a piece of paper.
It’s been ages since I posted anything. This is mostly because I was not able to get much time in the shop over the last few months. I’ll try to keep up with the blog a bit better.
I built this stepper motor driven drawing machine based on an idea from a toy from the 1920’s. The Toy is called the “HOOT-NANNY” Yes, really, that’s it’s name.
I scaled it up to create complex guilloché patterns on paper.
Guilloché is the word used to describe intricate repetitive patterns often used in security printing and fine metal working. The machine uses three micro-step motors that are controlled by a program written in PureData. Careful control of the motor speed ratios and positioning of the pen arms results in complex patterns. Some of the best patterns are the result of setting the speeds very near but not quite on specific harmonic relationships. The pen traces a Lissajous curve and the paper rotates beneath the pen, thus tracing out the complex pattern.
The patterns take from 10 minutes to and hour to create.
Puredata is not really intended for motion control but I found it really easy to manipulate the ascii to create the strings for the motors. If I tried to do this in C or Python It would taken much longer to program. In puredata sliders and buttons are a snap. Opening two serial ports turned out to be easy as well.
Special thanks to Olympus controls in Austin.
If your interested in building robots, LED art or jewelry, midi controllers, (robotic drum sets) or anything else you might think of, you will need to learn how to use micro-controllers. There are many types and manufacturers to choose from.
Here are links to a few manufacturers:
Among these and other manufacturers there are a number of paths of entry with varied learning curves. A popular and fairly new product is the Arduino. This is an open source range of microcontroller boards and a free software development interface written in JAVA which is base on GNU C++. The hardware is based on ATMEL microcontrollers. The software works on Windows, Apple and Linux operating systems and is real easy to use.
I use mostly Microchip PIC controllers. I like the variety of devices available from 6 pin to 100 pin devices. There are many ways to program PIC controllers. I started using the free MPlab IDE to program chips using assembly language and a serial programmer. I then purchased PIC Basic Pro compiler from MicroEngineering Labs. I really like this product and have been surprised by the speed of the code that is produced. My Midi controlled drum kit is currently running on code written in PicBasic Pro. MELabs makes great programmers and prototyping boards as well.
Microchip sells compilers based on GCC (which is free). I’m not sure how this works but I believe you are paying for header files and such. Nice thing is, you can download a student version of the C compiler which, after 30 days produces less optimized code but works fine for most applications.
I am currently learning to use these C tools for the PIC 32 series of 32 bit controllers. These chips run at up to 80 megahertz. These are powerful devices! Wish me luck, I’ll report here on my progress.
All these choices have related pros and cons so you will have to make a choice and jump in with both feet.
Do NOT be afraid!
I use a version of the free and open operating system called Ubuntu Linux.
I used it for a few years on a number of laptop and desktop computers with great results.
Although it may not the operating system be for your grandma, it might be great for your nephew. On the other hand if your grandma only uses email and a browser then It might fit the bill. If you have a computer around that’s orphaned and still working, you can load Ubuntu on it and give it a spin.
If you have a fast internet connection you can download what is called an ISO file from here. You then use your favorite cd burner program to create a cd. The command in your cd burner will be something like “burn cd image” or “burn ISOimage”.
The cd you end up with is a “live” cd. This means that you can boot up the machine with the CD and test drive Ubuntu before you commit to installing it. Note that your disk will be wiped clean when you install Ubuntu so make sure you copy anything important off the machine before you install.
You can “Dual Boot” fairly easily if you partition the disk properly or add a separate disk drive for Ubuntu.
There are tons of websites with helpful how-to’s on every aspect of Ubuntu and getting all your peripherals working. I have had some trouble with WiFi in the past, but more recently support is fairly good for Wifi.
I now use a Dell Inspiron 1420 for my main laptop. After installing, I got wifi, bluetooth and the nvidia graphics working without much trouble. Auto updates occur fairly regularly and I have never had a problem after an update.
I use a variation of Ubuntu Called Ubuntu Studio that has a great selection of GPL music, sound and video applications that are configured to work well together. Click on the blue icon below to go to the Ubuntu Studio website.
Pure Data is a free graphical programming language that has shared origins with MAX/MSP (a commercial program.)
It is powerful tool for audio processiing, midi decoding and generation and open GL graphics.
You’ll want to install Pd extended.
Here are a few links:
Online book by Miller Puckette: Theory and Technique of Electronic Music
Example screenshot of code to read midi input from a Korg NanoControl.
I’ll write a post soon about my initial experiments with the Korg Nano controllers.