Journal99 jan
From Simreal
January 1999
Thu, 14 Jan 99
Happy New Year! Or, well, happy halfway through the first month of the new year. This journal entry marks three years that the Boris project has touched... not three full years, of course, but an ampressive chunk none the less.
I called-in the parts from Shane last week, and since they asked for my address yesterday I assume they may arrive sometime next week. I will personally be in Roswell, Georgia next week (starting this Saturday) so I hope to cast my hopeful eye upon their gleaming surfaces when I get back on the 22nd.
At the same time as I was giving up on Shane for completion of the parts, one of my regular readers (Hi Rick!) volunteered to manufacture the remaining pieces for me... I'm hoping to know more about the schedule and possibilties from Rick's shop when I get back, too. Also I hope that I will be able to set up my own shop by then -- there are a few palettes of junk in the way right now that the Robot Group is trying to get rid of.
While I continue to wait for my mechanical pipelines to unclog (they've been constipated for months now, and it's still damn frustrating) I need to order the final boards for the brains. Just a little more fiddling to do...
What has kept my mind so busy these last few weeks is the problem of robot software. I can program the Atmel stuff in assembly, of course, with a few fuzzy logic functions in a library and all that. But that seems to be doing it the hard way. I could also get a C compiler for Atmel, but to be honest after working with C++ so long C doesn't fit in my brain like it used to. Anyway, the Atmel C compiler (whose brand shall remain nameless) is godawful expensive... I suppose there may be free ones too, but really... C and Basic aren't designed for hardware programming. They have features I don't need or want, and are missing other features I would really like.
So I decided to do things the really, really, really hard way and design a new language specifically for microcontrollers managing external hardware... "Fuzbol."
Fuzbol is roughly object oriented, and it is aimed straight at the needs of controlling robots (I hope). It knows about interrupt vectors and memory mapped I/O ports. You can define an object that represents a hardware peripheral and interact with that object... and the hardware will follow along. You can also define your own objects, including single inheritence... for example, an LCD object as a child off of a UART object.
The name Fuzbol is inspired from the built-in fuzzy logic abilities. Some of the fuzzy support systems I've seen only let you define one system... inputs, fuzzification rules, and outputs. In Fuzbol, fuzzy values are a data type with supporting functions which make it very easy to define multiple fuzzy rule systems and their actions.
Fuzbol is a clean-sheet language; though I've written a previous language for use on PCs for a similar purpose, the technology in that one is wholly owned by the contractee and actually quite a bit different than in Fuzbol. I'm learning the archane and gothic horrors of Lex and Yacc (by way of a truly nice Compiler Generator IDE called Parser Generator).
I have the syntax worked out with the Lex and Yacc programs to manage it (though it will surely change some as I massage everything into shape). I am now working on symbol table management (including scoping), and once that is done I will write the node tree management for the intermediate representation. Then... code generation. I haven't decided between an interpreter or compiling straight to assembly...which can then be assembled to machine code by Atmel's fine systems.
I have a new goal, too -- March 13 sees the start of an Art Show (or something) called "South by Southwest" here in Austin, and the Robot Group is participating. I intend to have Boris functioning at some level by then -- parts willing.
Anyway, as we enter 1999 and prepare for the collapse of civilization at the Millenium (hah!), I want to thank you for reading. And remember, you can never have too many giant killer robots when the rioting hordes attack your home to steal your food stores.
Thu, 28 Jan 99
Note that the Boris Journal is not Y2K compatible; when the date roles over to Jan 00 I'm sure I'll lose many readers in the confusion.
Spent a week in Georgia on business -- after living in the Northwest for so long, the winter weather in the south (here in Texas, out in Georgia) is just amazing. It has been like spring for ages here, with just the occasional cold snap. Of course, the random tornados are also a bit odd...
My machined parts are totally on track for March 13 -- I'll have enough pieces on hand by the weekend to start doing mechanical work again. I need to spend an afternoon finalizing the electronics and get that order in, but it should be easy. I'm thinking of skimping on pressure sensors this release and operate with only the joint angle sensors... it'll save me some hundreds of dollars.
The only tough part now is the software! And that's what I'm good at! I've trimmed my plans for Fuzbol back a bit, but I hope to have it mostly functional in a few weeks. It's tight, but the ball is rolling -- stay tuned!
