New Terminal Interface and Autonomous code

I have been working on an all-around beginner’s type code that should require very little re-compiling for a general robot.
As yet, it is version 0.36 and thus incomplete, but I think it is promising.
It will feature the following:

  • Terminal-based end-user interaction
  • Driver (end-user) can program various aspects of its’ behavior through the terminal.
  • Autonomous programming will be simplified through action commands via the terminal.
  • PWM outputs and Relays can be designated for motors like ARM1 and DriveLeft
  • Those same designations can have terminal-customized actions mapped to either buttons on any joystick or the two axis.
  • Locations for things like CameraTilt and EncoderClock will also be available through the Terminal. (i.e. setting which pwm is for driving, which digin etc…)
  • Configuration can be backed up and restored via the terminal.
  • All supported devices (camera, encoders, gyros) will have configuration screens in the terminal, which save their data.
  • Three drive modes will be available: Tank, Car, Exponential tank, and single-joy, each can be set to any joystick axis. :ahh:
  • Differing version conflicts will be detected (simple byte set in eeprom) and the user will be prompted with choices :smiley:
  • Corruption detection in version 4! (if ever coded, that it)
  • Self-Program hack can be enabled to any digio port, also non-terminating loop crash implements (for those who want a kill switch that’s not on the bot :p)

Of course, only very little of this is evident in the current build, but it should run (meaning it compiles)
Anyone wishing to see the (not) fabulous code, please e-mail me (I’m not on chiefdelphi enough to read PMs often) at tsaukpaetra-at-cox.net

What do you think? Am I going off on some incredibly complex project that noone will ever run or think about?

See my (rudimentary) website at http://tsaukpaetra.com !!!
Attached is a snapshot (today) of the current build (with .o files and everything, sorry!) if you want to take a peek.

TerminalInterface0_36.zip (331 KB)


TerminalInterface0_36.zip (331 KB)

I think its a great piece of software for rookie teams… Great work! :wink:

Often the challenge of hardware is a little intense for rookie programmers, especially if they have no one who’s knowlidgeable on their team to help them get started.

-q

I totally agree. That is a great idea.

Well… I’m not a programmer so I didn’t really understand parts of it, but from what I did understand it sounds pretty cool. I’ll definately check it out with the team programmers once you’ve gotten it to a “finished” state. :slight_smile:

stupid school server won’t let me see it… :frowning: but it sounds like a good idea from what i read above :slight_smile:

Thank you! :slight_smile: Basically it is robot code that will allow any general user (driver) to change specific properties of the code without the programmer needing to constantly re-compile. For example, if there were two drive wheels (left and right) the driver would tell the robot which PWMs each was on and then specify how the joysticks controlled them, (direct drive tank, single joystick, car, etc).
Also, various other peripherals will (eventually) be supported like the camera, where all that the user needs to do is specify where each data connection is (which pwms are for tilt and pan for the camera) and enable it.

Thanks! :yikes:

I’m sorry school doesn’t deem chiefdelphi appropriate, but thanks. :slight_smile:

I didn’t expect there to be replies already. This encourages me to keep working:cool:.

actually our team got chiefdelphi unblocked, but i can’d download the zip file.

Try downloading it from my home server here: ftp://tsaukpaetra.is-a-geek.net/mainlib/PROG/TI_0_36.zip

thank you :smiley:

I think veteran and rookie teams can use it as a guide as well as people like me who don’t program but are trying to/ want to learn. It will definately be used by many rookie times, but as for veteran teams it will potentially be used for quick coding for quick tests.

Good work.