Monday, November 27, 2017

mac -> arduino -> pi -> perfboard -> regulators -> servos

This is a continuation of the small electronics / microcontroller project mentioned earlier in

But I've shifted gears and instead of a gantry-like ASRS, I was thinking of trying to make a robot arm.


As usual, I will use a lot of what i have on-hand, and so instead of fancy aluminum t-channel structural members, I'll use 2x4s that I'll rip into thin slabs.

I figured it'd need to rotate.  I didn't have any lazy susan bearings, so i stuck some casters on a board.  It could be smoother.
Arms will get mounted to it using pieces of melamine (left over from the concrete casting) 

and bolts (reclaimed from a bench swing that got crushed by a fallen tree).

I made sprockets or gears - we'll see how i use them - with timing belt and plywood cut with a holesaw:

these got glued in various places:


Here an Arduino is connected to several servos.
  • Power for smaller servos (5v) comes from a USB charger cable i cut into.
  • Power for largers servos (7v) comes from the battery i used on the airboat.
  • Power for the arduino comes from the pi via USB (out of picture to the right).

Ultimately, however, i don't want that hodgepodge of power sources, so I'll use another old ATX power supply from a defunct computer (these can supply 12, 5, 3.3, and -12v).  That doesn't give me 7v, so i will use a buck converter to change the 12 to 7 thusly:

Those 3 regulators (small green boxes left of center in the drawing) are less than $2 each - i got a 6-pack from amzn -  and then connected them to some perfboard which i'll eventually connect to the power supply using screw terminals.  Here it is semi-finished:
The board has common all tied together, and separate power for 3 7v servos and 2 5v servos, headers for 5 servo connectors, and single header pins for the control signal (white wire) which will go to the arduino.

 Here's what it'll kind of look like:
you can see

  • the ATX powering the pi (i attached a micro usb to one of the 5v lines)
  • the pi powering the arduino via the blue usb wire
  • the the ATX sending 12v to the breadboard (from a yellow wire connected to a red alligator clip to red wire to the breadboard's rail)
  • the breadboard sending 3 yellow wires to the 3 little regulators (blue lights on) which step it down to 7.25v
  • the regulators connecting to the homemade board for power/control of 5 servos (base rotor, "shoulder", "elbow", "wrist pitch", and "wrist yaw").


At the moment it's pretty trivial.  An unsophisticated arduino program to read basic 2 byte commands from the serial connection and control the servos. (although there are two different types of servo, requiring different pulse widths, so that needed some attention), and an even less sophisticated python program to make sending to the arduino easier.

Code here:

As before, I'm connecting to the pi via ssh over wifi, and recently added a vnc session so i can do the arduino stuff directly on the pi's UI.  The pi remains untethered except to power.


Underwhelming - so far my home-made belts for the sprockets don't work, so although i can turn the servos, I haven't gotten them to actually move the structure.  Rather than nice loop belts, i might be able to directly attach (e.g. via staple or screws or something) the end of a belt to the sprockets -- they don't turn in full rotations anyway, so it's not like i really need a true loop.  Maybe that extra strength will help.

No comments:

Post a Comment