Random header image... Refresh for more!

Victory At Last!

So, I finally got a new paddle cage put together.  While the old one was all stylish and minimalist, this one looks like it’s built out of Legos.  Real Legos, too, not those lame Technic beams.

Features include gearing to hopefully reduce the impact of the motor overrun, a button pressing motor (Not yet active), and flexible support arm for the angled knob.

I wrote a test program that will repeatedly rotate it like crazy and hopefully shake out the bugs.  Here’s video of it in action.

Of course, what kind of test would it be if it didn’t end in catastrophic structural failure?  Unfortunately, the camera was not rolling for the chaos, but I assure you it was about as spectacular as it could be given what it is.  Anyway, I did record the aftermath.

The flaw is fairly obvious in the first video, there’s some tall connector blocks on the spinner that kept knocking against the gear bar.  Eventually one of them caught and didn’t knock loose, but the motor spun the 360 anyway.  It kinda popped loose for a bit, then shuddered, before eventually collapsing.  I’ve since fixed the problem1 and had it run for upwards of ten minutes without issue.

It feels good to have some forward progress.

For those curious, the paddle in the cage is one of the Indy 500 Driving Paddles with a free 360 degree range of motion.  That’s how it was able to spin all it wanted without running into the range limitation that’s in a normal paddle.

  1. I was going to fix it before even running it the first time, but I wanted to see if it would cause a catastrophic structural failure… []

February 27, 2010   No Comments

Still building…

I’ve managed to get a centered spinner arm built and a new cage that can handle a button presser motor.  I still have to figure out how to get the spinner arm positioned so that it can fit on the knob correctly.  Atari Paddle knobs are at a slight angle, and Legos are not at a slight angle, so that’s going to be a problem.

February 26, 2010   No Comments

Stopping Power

I’ve been able to write an NXC application that will turn the motor a certain number of degrees, then stop instantly.  No waggle.  Trouble is that the number of degrees it goes doesn’t seem to be directly connected to the number of degrees I tell it to go.  It’s always a little bit more.  For instance, I tell it to go 10 degrees and it goes 23.  I tell it to go 360 degrees and it goes 420.

But, it seems to be consistent.  It seems to overrun by the same amount each time you tell it to go a certain distance.  That means that I should be able to compensate for it.  However, if a ten degree turn causes a 13 degree overrun, that really sucks.  I don’t know that there’s going to be a way to compensate for that, given that most of my movements will need to be less than 10 degrees.

Maybe it’s time to learn a little something about gears, too…

February 26, 2010   No Comments

Well… That didn’t work.

So, I thought, “Hey, there’s a firmware upgrade for the NXT, maybe that will help.”

So, I installed the firmware update.

So, now the motor doesn’t move at all.


February 26, 2010   No Comments


See, here’s the problem.  It moves the distance I’m expecting very fast, a full 360 degrees in half a second, then it wastes another half second waggling to a stop.  And it’s always wasting about half a second.  It can do 90 degrees in about .2 seconds, then it loses another .5 seconds coming to a stop.  The movements I need for games are going to be less than 90 degrees most of the time, too, so the problem gets worse.

You absolutely cannot be losing half a second with every move and still expect to be able to play a game well, especially a game like Kaboom!

Because everything’s better in slow-motion, here’s what it looks like at 1/10th the speed:

It’s like it’s doing a binary search for the correct point.  If I could get rid of the waggle, I’d probably have something useful.

February 26, 2010   No Comments

“Takes Directions”: Needs Improvement

So, I hacked the new movement logic into the old Pong processing code.

After an initial lack of movement due to a flipped bit in the Busy property, the robot started turning when it was told to turn.

When it needed to move the paddle down, it rotated counter clockwise.

When it needed to move the paddle up, it rotated counter clockwise.

I think you can get a sense of the problem.

It was a bit frightening to experience, actually.  It would turn the paddle a little to the left.  Then a little more.  Eventually, it would turn so far that the paddle dropped off the bottom of the screen, causing it to launch into recovery mode.  Recovery mode is where it does a fast clockwise turn to get the paddle back into the visible playfield.  Unfortunately, when the command “Fast Clockwise Turn” gets translated into “Fast Counter-Clockwise Turn”, things can go very bad, very fast.  After the first command did not recover the paddle, it issued another command.  Then another.  Then another.  It quickly hit the counterclockwise extreme of the paddle’s rotational range, where it was again told to continue in the same direction.  Then again.  Then again.

Immovable Object (Paddle Potentiometer) + Irresistable Force (Insane Mindstorms Motor) == Flying Lego Parts.

Even when it wasn’t attempting to self destruct, the force it exerted and the noise it made while spinning seems a bit excessive.

I think it might be perfect…

At any rate, I think it tried to calibrate the movement, based on the segment calibration technique I described earlier, but I can’t tell if it worked because of its slight homicidal streak.  Gotta get working on that.

February 26, 2010   No Comments

Tip of the Day.

When attempting to test out a robot creation, it really helps to turn on the robotic creation first.

February 26, 2010   No Comments

Perhaps I Don’t Understand…

The checkbox says “Wait for Completion”.  I would think that means that it would wait for completion before proceeding.  So why is it immediately continuing and sending me the “Done” signal?  The motor acts different if I have the box checked or not, so I know it’s doing something.  I’m just not sure what it’s doing.

I think it’s using a different definition of completion than I am.

February 25, 2010   No Comments

Um. Yeah. Whatever.

I’m sure this made sense to me at some point.

February 25, 2010   No Comments

Pong Non Sufficit

Pong is not enough.

The Atari Robot is bored.  Pong is undeniably a classic game, but it’s classic in the same way Shakespeare is.  Everyone looks at it and praises it, but they really want nothing to do with it because it’s so old and dull.  Back and forth, back and forth.  For hours.  Even to lose a game takes twenty minutes sometimes.  And it’s not really pushing anything to the limit.

The Atari Robot wanted more out of life.

At first, it talked at great length about a kitten object that it had fallen in love with and wanted to search the world for.  For a time, this plan was compelling, however, my apartment is strictly full of non-kitten objects, and acquiring a kitten-object for this endeavor would not have been wise.

Atari Robot was sad.

It looked around at other famous robots.  There’s the robots that build cars, but there’s no romance or excitement in that.  Then it found what it wanted to be.  One of the most well known uses of robots in the world today is in bomb disposal.  Excitement and adventure, becoming a bomb disposal robot would be sure to make all the female Atari Robots fall for him.  However, my apartment is strictly full of non-explosive objects, and acquiring an explosive object for this endeavor would not have been wise.

Atari Robot was sad.

Then I realized that there was a way for Atari Robot to live its dream and keep all my fingers and not get arrested.  I have a bomb disposal simulator that Atari Robot could use.  Atari Robot could join the Bucket Brigade to stop the Mad Bomber!

Atari Robot was happy.

February 25, 2010   No Comments