Posts tagged first

Learning a Graphical Programming Language

LabVIEW main program for FRC robot

LabVIEW robot

Back in my youth, I was known for my study of programming languages. I’ve lost count, but I’m sure I knew a few dozen different languages from ADA to Z++. I learned LISP to support AI grad students and to program my own Emacs functions. I learned SNOBOL before there was Perl. APL was probably the strangest. Writing a cross compiler to develop parallel processing code on a Sun workstation was the most challenging.

Now I’m learning LabVIEW, a graphic programming language built to process data flows. The “code” executes from left to right with program structure and “visual instrument” modules wired together. Input wires are on the left of objects; output wires are on the right. Code such as a while loop does not execute until all of the input data is available, and does not exit until all of the output has been sent.

I haven’t been productive yet, but the clock is ticking. I have to mentor my high school robotics team on how to design and write code asap. Our robot ships on Feb. 23rd. Yes, FedEx shows up to transport the robot (still needs a name!) to a holding facility until our regional competition on March 11th. Everyone has the same length build season, regardless of when their regional event is held.

KickerBot Design

First design of soccer ball kicking robot

KickerBot v1

Here is my partially complete robot designed to kick a small ball using rubber bands as the energy source, powered by a rear mounted winch. At our Saturday FRC team meeting, we watched a video of a ball kicking mechanism. I believed it used a rack and pinion device to cock the leg back which then, lacking a lock and trigger device, kicked automatically. I don’t have the lego pieces for rack and pinion (sigh), but a winch should work, using a rubber band to return the winch to the start position.

This is my first design from scratch. I had built the ShooterBot which uses a front mounted piston to shoot small balls out of a magazine rack. The magazine is a plastic piece designed to require a certain amount of force to release the ball through the front hole. The arm of the “piston” is actually stationary, the motor/servo moves the entire ball magazine across the length of the piston arm. I’m sure there is a better technial name for that.

This guy has a “leg” hanging just below the front edge of the NXT brick. As the winch pulls back on the leg, rubber bands (not shown) are stretched. As the leg rotates up, the cocking mechanism (not built yet) will eventually lose grip of the leg and the bands will shoot the leg forward. A different band will then pull the cocking mechanism back into place as the winch unwinds.

This design is currently top heavy and unstable; the frame needs more work. But I didn’t want to build anything else until I got the cocking mechanism completed. But I might move on to building something else now that I see that I can use a motor as a simple winch. I’m more (much more) of an idea guy than a mechanical engineer. I also have a terrible time finishing projects. Hmmm.

Robotics

Last month I volunteered to mentor students in the FIRST robotics club at Eleanor Roosevelt HS in Greenbelt. I know nothing about robotics, which they will soon discover, but I hope to learn fast and contribute some this year and more next year.

I would also like to help younger kids in grades 4-8; they have a program built around the LEGO Mindstorms NXT though I don’t know if any of the local schools have an active program. So I picked up a NXT kit as my xmas gift to the family.

Eva and I have built the first couple of easy robots, and I’ve played with a playstation remote control and some of the sensors. We’re looking forward to chasing the kittens around the house.