Work continues

No pictures, just code, code, code.

Lat weekend, I put in about 48 hours of C coding in for work, and found some lucidity. Continuing on this tradition, I pushed forward on Wheatley.

1) I reconfigured my notions of how to do some of the tasks.

2) I found a library called easy transfer that makes things a little easier. Though I am using it inefficiently, I still have enough resource to get the job done.

3) implemented an exponential rolling average on the A/D converters.

So presently, I am grabbing 4 channels of A/D conversion, smoothing it, pumping it into a bunch of INTs and Easy Transfer sends them across with a checksum.  I transfer across on a timer interrupt, and run the receiver as fast as it will go. I then I take the values and jam them into servo settings.

The inefficiency is in the fact that I have a heartbeat which is 4 bytes, 9 servo values which only need 10 bits, but use 16 each. This is a waste of  6-3/4 bytes, but I can afford the bandwidth.

I am also relying on floats for my rolling average, and will continue to do so for my inverse trig functions.

I also have an Arduino Nano, and a small 5V 3.A amp switcher I plan to use for the power for the servos. I will be building a small power distribution board, and should have servos running soon in a system that more directly resembles the final form.
woot

Progress 8/3/2012

Ok,

Wrote parameter function in Inventor that allows me to put in eye direction and magnitude, face direction and magnitude, and move the joints an appropriate amount.

This is important because the eye or face is only meant to pan or tilt a certain amount off center. If I move the face pan servo 20 degrees and the face tilt servo 20 degrees, it is actually facing 45 degrees with more than the allowed amount of overall tilt.

if I input instead:Face tilt 20, Face rotation 45, and take the sine of the face rotation and multiply it by the amount of tilt I get the actual amount of pan required. Similarly, if I use cos for the tilt servo, I get its value.

worked out a holder for the Raspberry Pi, but it is looking increasingly crowded in there. still need a small micro, speakers, amp and battery. The battery will likely be several small batteries tucked in wherever they will go.

going to try to make a reasonable model which is a compilation of all the major component’s movements within the model’s interior volume. Still not sure how yet.

 

Here I stepped the major moving parts through their rotations and made a single part.

And going, and going, and going

8/1/12 8:37 pm

UGH

Major cad work, still not close to cranking out real parts.

  • Rectified pan tilt roll servos for face
  • Made the eyebrows more real
  • Tried an idea for the eyebrows, no luck
  • Receeded face inward 0.040 to clear things, still no luck
  • The eyebrows look like they will be cable drive at this point
  • Next to work on is improving eye pan and tilt servos

UGH ^ UGH

Well,

Time to step back.
Errors were made.
I “pinned” the axis in a place that caused no hindrance and designed a few parts. Today I started in on a new assembly, one to verify motion, and found a lot of interference.

To move the interferences, I need to move hardware.
To move the hardware, I may have to remove the raspberry pi.
If I move the raspberry pi, I likely have to remove it.
If I remove it, I will have to change the software…

As I said, UGH.

Update:
Moving serovs around, being more diligent. May work out ok.

Update 8/1/2012
Being more diligent, things looking better, things still awkward. Moving towards shared axis. I.E. I am looking at having two servos push and pull on opposite sides of a gimbal. If they push and pull in equal but opposite directions, one axis stays stable while the other remains stable. add an equal and identical offset to both, and the second axis moves.

Primarily, I am thinking of doing this for the face’s tilt and rotate. If I were to support the face from the back, and not the bottom of the sphere, I would lose a lot of contigulus space, but the axis with then be a little simpler.

 

Pure Data

It looks like:

  • Pure data handles audio and serial, therefore it should work.
  • Pure data and its dependencies will have to be worked through to get it running on a Raspberry Pi.
  • It will probably be unpleasant.

Progress

This morning was all about the blog. Since it is primarily my photography blog, Wheatley will be featured in black and white. I don’t like some of the images, but I will reprocess later perhaps.

 

 

Wheatley thoughts include

  • making the side and rear gingerbread as removable panels
  • where to put the speakers
  • how to sprue for production
  • making it bigger to save money by using servos I own.