Skip to main content

Me and my Legway

Originally published April 18 2006

(This was originally published here in January 2006) Two years ago Steve Hassenplug created a two-wheeled self-balancing robot using the Lego Mindstorms Robotics Invention System 2 and a pair of special sensors manufactured by HiTechnic. It was the same Lego Mindstorms that I had purchased that previous Christmas. Unfortunately when I finally found out about Steve's work it was nearly a year later, and a key component of his Legway, the HiTechnic EPOD Sensor, was no longer being made. Jump forward to November 2005, and I find out that HiTechnic is again building and selling the sensors, so I immediately ordered two for myself.

While waiting for the sensors to arrive, I started to look at the other bits needed to build the Legway. Two years is an eternity in computing. Key software and support systems had evolved since the original Legway was produced. Elements of the Legway that had changed and needed to be updated were:
  • I used the Linux environment on my Gateway to build and use the BrickOS software. When I attempted to put the software environment together I noticed the original tool chain used gcc 2.95. When I went looking for more up-to-date tools, I only found them for Linux. I followed Matthias Ehmann's directions for installing and building the BrickOS build environment under Linux. Let me emphasize that you use exactly what is called for in the directions. I tried gcc 3.4.5 with matching binutils. Using gcc 4.0.2 to build the gcc 3.4.5-based cross-compiler generated an ICE under 4.0.2. Gcc 3.4.3 successful builds as a cross-compiler under gcc 4.0.2.
  • The Lego Mindstorms I/R tower. The tower originally connected to a personal computer via to a nine-pin RS232 serial port. The system I used to program my RCX 1.0 brick was a Gateway notebook that did not have any serial ports. Instead, the Gateway has four USB 2.0 ports (eight connected to the dock), so I used a Dynex USB-to-RS232 adapter to communicate with the tower. This worked out very well under Linux, as the device showed up as /dev/ttyUSB0.
  • The original legway.c program from Steve's site was written for an earlier version of BrickOS. One change in particular has to be made to the code for it to compile and work properly with the current BrickOS: replace sys_time with long sys_time = get_system_up_time();
Everything was built and operated under Linux. Once I downloaded the firmware and then the compiled legway.c program, it 'stood up' and ran like a champ.


Legway lying on its side exposing the HiTechnic sensors. You can see them above each wheel.



Legway up and dancing around the desktop. The sensors are the gray blocks at the bottom with the wires coming out of their tops.



The RS232 tower connected to the Dynex USB adapter. I picked mine up at a local Best Buy.

Comments

Popular posts from this blog

cat-in-a-box channels greta garbo

So I'm sitting at my computer, when I start to notice a racket in back. I ignore it for a while until I hear a load "thump!", as if something had been dropped on the floor, followed by a lot of loud rattling. I turn around and see Lucy in the box just having a grand old time, rolling around and rattling that box a good one. I grab the GX1 and snap a few shots before she notices me and the camera, then leaps out and back into her chair (which used to be my chair before she decided it was her chair).

Just like caring for Katie my black Lab taught me about dogs, caring for Lucy is teaching me about cats. She finds me fascinating, as I do her. And she expresses great affection and love toward me without coaxing. I try to return the affection and love, but she is a cat, and she takes a bat at me on occasion, although I think that's just her being playful. She always has her claws in when she does that.

She sits next to me during the evening in her chair while I sit in mi…

vm networking problem fixed

Over the weekend I upgraded to Windows 8.1, then discovered that networking for the virtual machines wouldn't work. Then I tried something incredibly simple and fixed the problem.

Checking the system I noticed that three VMware Windows services weren't running; VMnetDHCP, VMUSBArbService, and VMwareNatService. VMware Player allows you to install, remove, or fix an existing installation. I chose to try fixing the installation, and that fixed the problem. The services were re-installed/restarted, and the virtual machines had networking again.

Once network connectivity was established there was exactly one updated file for Ubuntu 13.10, a data file. This underscores how solid and finished the release was this time. Every other version of every other Linux installation I've ever dealt with has always been succeeded by boatloads of updates after the initial installation. But not this time.

Everything is working properly on my notebook. All's right with the world.

first night for the gingersnaps

The first night has passed and the two have managed to survive, in spite of what their tiny hearts might have thought when first arriving. Greebo, the larger of the two, has been in hiding the entire time so far. Ponder has spent the time zipping in and out of hiding spots, checking things out, and learning just how comfortable pillows are for resting your head.

During the night I felt the tiny body of Ponder hitting the bed as he leaped up on the side, and then climbed to the top to run around on top of me. At least once he play-attacked my fingers. He might be small but his claws are still quite sharp.

When I got up in the morning the bowl of cat kitten food was fairly well depleted. It's been refilled and fresh water put in the big dish on the floor. I'm assuming that both Greebo and Ponder are feeding and drinking. I have seen Greebo under the furniture peeking out at me when I went looking for him. I'm leaving him alone while he continues to adjust.

So far the guys h…