[C.CC USERS] [kroc-svn-commits] [kroc] r6523 - kroc/branches/avr-mega/tvm/arduino/occam/include
Matt Jadud
jadudm at gmail.com
Tue Jun 22 14:20:19 BST 2010
Ah! Good question! I understand.
On Tue, Jun 22, 2010 at 3:38 AM, Aaron Ryan <amrphoto1 at gmail.com> wrote:
> find out if the small size of the Arduino processor or its inherent
> properties is currently prohibiting/restraing any portions/modules/libraries
> of existing Occam code, that might be related to robot control, from being
Yes, and no. We're bringing more things on-line rapidly. For example,
some work by Fred Barnes at Kent recently enabled REAL32 support on
the Arduino. This means you can use floating-point 32-bit numbers (a
"double" in C) on the Arduino using occam-pi. The assorted libraries
(eg. maths.module) don't know they work on the Arduino yet (they were
disabled in the past), but we'll fix that soon. At that point, we'll
have some nice math support baked in.
Coming up soon, we'll be looking at Dennis's work with servos and see
if we can't bake that in. (Our UAV project is motivating a lot of
excellent changes.) By "see if we can" I mean "we will," because our
UAV needs to be able to drive servos. TWI and SPI should get rolled in
soon, I hope... I just need some more hack time on it.
By the time we're done, we should have near-complete support for
anything you might want to do on the Arduino.
> implemented. I was prompted to ask by the smiles on this site:
> http://www.surveyor.com/cgi-bin/robot_journal.cgi/2007/03/29#091.
Yep. That was a port to the 60MHz version of the bot; the current
SRV-1 runs at 500MHz, and has 32MB of RAM. We have a native port, but
the problem is the firmware: getting it on the SRV-1 (the board costs
around $180, I think) requires a $300 JTAG adapter. This is cost
prohibitive for most project---but you do get a lot more speed and RAM
for a project. From the SRV-1 blog, it looks like it will soon have a
full Linux on-board... at that point, we might be able to modify our
SRV-1 port to simply be a recompilation of our Linux port. (Or,
perhaps a merging of the two.)
> It sounds like the ATmega328 is still the most supported platform for
> beginners like me...back to the grind stone. ;)
The reason we ported to the Arduino was cost and popularity. It's a
$20-30 board, and the hardware to program it is baked into most every
board. That's really hard to beat in the embedded world. And, my
guess/prediction is that the ATmega128A1 is going to be the darling of
the Arduino world soon---this device runs at 32MHz and supports DMA
(meaning up to 8MB of RAM). Hence, our ATmega1280 support (for the
Mega and ArduPilot Mega) will be very useful, looking at the
possibility of broader AVR support in the future.
I know what you mean... speed would be wonderful. But unfortunately,
we don't have an easy-to-program board that runs at 60MHz (or 600MHz,
for that matter). The Coridium ARMite PROs are close
(http://www.coridiumcorp.com/ARMduino.php), but again... it takes time
and effort to support new hardware. So, for now, we're plugging away
on the Arduino so that our OSCON "release" will be as complete as
possible.
Cheers,
Matt
PS. Looking at your original post, it seemed to have to do with robot
control... my bad. Given that we're working on a UAV right now
(http://www.rockalypse.org/blogs/flyinggator/), we're very motivated
by this question. Anything you read about there will work---for
example, the subsumption code is really just a few lines of
bog-standard occam-pi; see Jon's paper:
http://transterpreter.org/publications/pdfs/mobile-robot-control-subsumption-architecture-occam-pi.pdf).
It really is only processor speed that we have to worry about on the
Arduino... :/
More information about the users
mailing list