[ale] semi [OT] running a robot with linux

Jim Lynch ale_nospam at fayettedigital.com
Fri Jan 21 13:39:49 EST 2011


On 01/21/2011 12:25 PM, Ron Frazier wrote:
> Charles,
>
> I had to have some reason for putting this message on this list.
> Besides, since I'm planning to learn C++ anyway, I thought I'd make it
> do double duty.
>
> OK, think mars rover, but here on Earth.  Something that can go out into
> the desert on it's own and collect environmental data or do
> reconnaissance for the military,etc., follow a course, and return home.
> Something that has built in networking capability (OK, maybe in the
> desert but with 3g wireless, or possibly via satellite).  Something that
> has enough storage to capture and store photos or videos along with
> sensor readings.  Something where the program won't fit into a 16K ROM
> chip.  Yes, power and weight are critical, but an android phone,
> particularly with the screen off, isn't particularly heavy nor power
> hungry.
>
> Now, I do understand that you wouldn't necessarily want to put a 2000 HP
> engine in a Chevette, so power has its place.  I'm sitting here looking
> at an automated battery charger which has some kind of microcontroller
> in it, which probably cost $1.  So, a computer would be overkill.
> However, I am fascinated by the idea of more capable, more powerful
> robots.
>
> Maybe I'll see you at their meeting.  I think they're discussing 3d
> printing.  If you like, you can write me off list and we can discuss
> circuit design ideas.  Many years ago, I got an EET degree.  I haven't
> had a chance to try any of that out in terms of Robotics.  I do have a
> prototype board for a Propeller 8 core microcontroller from
> http://www.parallax.com/ .  Haven't had a chance to do anything with it
> yet.
>
> Sincerely,
>
> Ron
>
> On Fri, 2011-01-21 at 11:32 -0500, Charles Shapiro wrote:
>> Gee whiz, I'd think a lotta processor power is overkill for most
>> 'bots.  My 3d printer is capable of quite complex behaviors on a
>> couple of Arduino ( http://www.arduino.cc/ ) boards loaded with simple
>> software in ROM.   The trouble with those kewl speedy processors is
>> that they tend to want more power and support circuitry.  If all
>> you're doing with that stuff is processing more LOC (Lines of Code),
>> what's the point of inviting all that extra design and debugging pain
>> into it?   Especially if you're talking a moving robot, power and
>> weight become critical, yes?
>>
>> I've also been thinking about robots recently, 'specially now I've got
>> a device that'll make, like, motor mounts in any shape I want. But I'm
>> leaning toward simple software and interesting hardware 'stead of
>> something as relatively heavy as linux / C++. Seems like a simple fast
>> scheduler and some routines are all you really need here, 'stead of
>> all that multi-user control, file system interface, cron(8) and other
>> hoo-hah.  Heck, if it were 20 years ago I'd be talking FORTH.  Maybe
>> that's still a good way to go.
>>
>> Hey, I'm thinkin' about making my first visit to AHRC this month.
>> Maybe we can argue about this there?
>>
>> -- CHS
>>
>>
>> On Fri, Jan 21, 2011 at 10:49 AM, Ron Frazier
>> <atllinuxenthinfo at c3energy.com>  wrote:
>>> One of my interests, other than Linux, is robotics (actual moving
>>> machines, not computer bots).  I sometimes visit the Atlanta Hobby Robot
>>> Club ( http://botlanta.org/ ).  My ultimate goal is to build a moving
>>> robot which is run with a Linux based platform for a brain, and probably
>>> programmed in C++, which I'm starting to learn.  I think it would be
>>> really cool to run a robot using an Android phone or tablet, or possibly
>>> one of those little embedded computers.  However, I think the embedded
>>> computer market is behind because a phone or tablet has much more
>>> computer power, memory, built in screen, wireless, network interface,
>>> usb, etc.  I specifically want to use C++, rather than C, where
>>> functions exist to do a task in both languages.  Lots of embedded
>>> computers can be programmed in C, but not C++.  I also want the robot to
>>> be able to do more complex tasks than just following a line, etc.
>>> That's why I'm leaning toward a more sophisticated controller.  I'd
>>> appreciate any pointers toward resources for this type of project.
>>>
>>> Sincerely,
>>>
>>> Ron
>
I've been using the Teensy++( http://www.pjrc.com/store/teensypp.html ) 
for a project.   At $24 it's reasonable to try and if it doesn't work, 
you haven't wasted much money.  I've cut a PC board with the Teensy++ 
and the WIZ812MJ Ethernet module 
(http://www.saelig.com/product/ETH042.htm, $19.50) to give me a ethernet 
connected device with 130K of flash (program) memory, 8K of RAM and 4K 
of EEPROM.  Believe me you can do a lot with that much memory.  It uses 
the Arduino development package and is extremely easy to use.  The 
Arduino development platform is by far the most user friendly one I've 
come across.  It's easy to run on Linux since the IDE is written in Java.

It uses the avr-gcc compiler which isn't 100% C++ but it has a lot of 
the features.  Here's some sample code from one of the libraries.

class Matrix
{
   private:
     uint8_t _pinData;
     uint8_t _pinClock;
     uint8_t _pinLoad;

There's a lot of software written for the Arduino platform that is 
tailored to interfacing to the outside world.  Since you are an EET, 
you'll not have any problem building the electronics to interface to 
most anything.

The Teensy++ has 46 I/O pings 8 10 bit A/D channels, 9 PWD outputs  a 
UART, an I2C and an SPI port.

For instance there are motor control libraries, servo libraries, 
ethernet libraries, A/D and D/A libraries, etc.

Besides, it's fun to watch an led blink and know you're the one that 
made it happen.  :)

Jim.


More information about the Ale mailing list