![]() |
||
|
Home Old News Road Trip Projects Images Hybrid Diversions Search Craft Day Miscellany |
![]() |
Well, on October 1, 2002, I became the proud owner of a Kawasaki/Puma/Unimate
200 Model robotic arm, saved from certain doom (in the dumpster) from
Northeastern University. Since then, I've been on the long and often
meandering path towards getting the arm working again.
You can see pictures of the arm and controller in various states of
deconstruction (when I got it) here.
And you can read about my latest attempts to reanimate it below... February 17, 2008 - Just before I left for San Francisco, I got the boards back from 4pcb:
They did a great job with them - I haven't found any problems. And I've started assembly:
I haven't put down the PSoC processors yet 'cause I've had problems in the past where the in-circuit programming hasn't worked - I've got another DigiKey order in for some IC sockets so I can take the chips out and program them on a prototype board if need be. I've had a little trouble soldering pins that connect to ground since there's a large ground plane on the back of the board that soaks up the heat. On the advice of my EE friends, I included thermal vias on those pins, but it's still tough to get them hot enough for the solder to flow. Any advice? By the way, soldering 0603 packages by hand with no microsope is tough! If I redid the layout, I'd bump those resistors and capacitors up to 0805's or 1206's for sure. January 24, 2008 - I sent the PCB files off to 4pcb for fabrication yesterday! They should be done in a week or so, and in my hands in early February. The only downside to ordering through them is they don't do internal routing on the PCB, so the four holes in the corners won't be included. I can always drill them by hand, though, and it was worth it considering 4pcb was 50% of the cost of the next cheapest board house. January 8, 2008 - The PCB layout is done (click for larger version):
Red traces are on the top of the board, blue on the bottom. Green pads mean it's connected to ground, and everything in black (part outlines, names, etc.) is silkscreened on to the board. Not shown is the large copper pour (which acts as a ground plane) on the bottom of the board. The board is approximately 11.5" x 4.75". I'm shopping PCB fab houses this week and will have the board made sometime soon. Progress! December 29, 2007 - The PCB layout is getting awful close to done:
This last iteration bumped up the board size a hair (since there aren't any physical constraints on the size) and added a bunch of LED indicators. Can't have homemade electronics without blinkenlights! Just 'cause it'd be fun, I'm tempted to make a nice plot of the layout with the new plotter (and I guess it might actually help finding layout issues). December 3, 2007 - After some more professional advice (thanks, Brian), I'm getting better at PADS, and I'm nearly done with the layout of the PCB:
I probably won't actually have the board made until I get a job, but it's more or less ready to go. I've also been playing some with my breadboard prototype, and started writing some control code. I'll probably call on Matt's expertise soon to finish that effort. November 1, 2007 - Thanks again are due to Jordan, this time for helping debug the I2C problem I was seeing. Turns out it was nothing directly wrong with the I2C bus, but instead an improperly set variable that made another process run way faster than intended. Instead of running my timer interrupt code once a second, it was happening about 1000 times a second, and ended up causing delays with I2C, but only some of the time. The nearly infinite configurability of the PSoC seems to be both a blessing and a curse. This definitely isn't the first time some seemingly insignificant setting in the PSoC Designer IDE has caused a difficult-to-debug problem. In any event, I'm glad it's been identified, and I'm looking forward to finishing up the layout and starting work on the control software. October 15, 2007 - Layout hit a bit of a speedbump when I got laid off from my job and didn't have access to PADS anymore. Jake and Jordan fixed me up, and I'm back at it.
I've routed all the traces, but I'm sure that I made some mistakes. I'll get a couple real EE's to look over the design before I send it off. Also slightly disconcerting are the intermittent errors I see on the I2C bus. Can't tell if it's grounding issues, noise on the wires, or something more insidious. April 30, 2007 - I'm about 99% done with the schematic for the circuit board, and I've started the layout:
After a little more layout and a review by some coworkers, I'll have someone print up some boards. Getting there! October 6, 2006 - Been playing with the PSoC recently, and made a bunch of progress. Last week, I got I2C working so I can communicate between my Mac and the processor. And then today, with the help of this article, I hooked up the encoder outputs to two D flip-flops. The flip-flops split the encoder pulses into two pulse-trains, an clockwise signal and a counterclockwise one. I fed those signals into two counters on the PSoC, so now I can get the motor position just by subtracting one from the other:
The number on the left is the "up" counter value, the middle is the "down" counter, and the right is the difference, or the position. From here, I've gotta get the motor driver chip working with the PSoC, then spin a circuit board with 6 sets of processors, decoders, and motor drivers. From there on out, it's just software... famous last words. August 31, 2006 - After much experimentation this spring, I discovered that the PIC just isn't fast enough to keep up with the motor encoders. Coworkers have recommended checking out the PSoC, which I've started to do. Definitely no Mac development environment, though. December 25, 2005 - At last! I found a discussion of (and fix for) a compiler bug that causes the invalid HEX file problem. I can now compile a C program on my Mac and load it onto the PIC. Woo! December 21, 2005 - Progress! Using updated firmware on the programmer and Jeff Post's pk2, I can now transfer HEX code onto the microcontroller (note - you need to use the -programall option, otherwise the configuration word on the PIC isn't written properly). I thought I was home free, but unfortunately not so - the C compiler I'm using, PICC Lite seems not to produce valid HEX files when it compiles C code. I'm still investigating the problem, but have figured out a way to get things going for now. More details as I figure it out. December 11, 2005 - I've been doing some work on getting a small circuit together to control each motor (there are six in the arm). My plan is to use a microcontroller PIC (from Microchip) in conjunction with a motor control chip (H-bridge) like the Allegro 3959. To get started, I bought a USB PIC programmer and demo board, thinking it'd work easily with my Mac. Turns out, almost everyone who does PIC programming does it from Windows, and the those who don't use Windows use Linux. Through the magic of the Internet, I've found some folks who're trying to get stuff running on the Mac. Very helpful has been Ben Brooking's evolving PIC development for Mac OS/X page. I've exchanged some emails with him and we're close to getting the PICKit 2 programmer working under Mac OS/X. December 30, 2003 - I found a student project that uses the Puma 500 robot arm. Also found a paper on the PUMA 560. And finally, some guys who bought an arm at an auction and got it working. April 22, 2003 - I added a servo page with new infomation from AR2. April 21, 2003 - I added some more pictures in the controller section and some new links here:
I've found some information on the web about the arm. Check it out here:
|
![]() |
||