Pages: [1]   Go Down
Author Topic: ArduinoBotics  (Read 490 times)
0 Members and 1 Guest are viewing this topic.
Beaverton, OR
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

One thing I am working on now is a 5DOF robot leg that will be controlled by an Arduino. I've built the leg, but am making a few changes today, and have the Arduino connected to the servos.

I'm creating a new library based on the work of mellis' servo library. I haven't decided whether to keep this as a servo specific library or see if I can generalize it into a PWM library that can be used for other things like fading LEDs, etc. The code is coming together excellently, thanks to mellis' work on the servo library. I can specify servo angles in a range of -90 to +90 degrees or 0 to 180 degrees now.

What I am envisioning is having each leg, and sensors related directly to the leg, controlled and processed by a single Arduino. There would be a master controller connected to the Arduino Legs via I2C. This would allow each leg to be "smart" on its own and process its own sensor data, as well as react within reasonable parameters. Sensors attached to each leg could include an accelerometer, presure sensor at the foot, and maybe an ultrasonic ranger to tell how close the end of the leg is to potential obstacles. There could potentially even be a compass attached to each Arduino that would provide the orientation of the leg, or even each hip joint (there are two).

Version 1.0 of this leg doesn't have any sensors.

Is there any other interest in this sort of thing?

8-Dale
Logged

Rome (Italy)
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This is the first post for me. I'm approching Arduino for an amateur robotics usage too.
My multiusage, multiboard, multi processor "Rino" robot uses Arduino for a Sensor Board that advise Navigation Board on obstacles and target found in the unknown environment.

I'll post some documentation soon.

I'm glad to be here!
Logged

Rome (Italy)
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

As promised here I am. This is one picture of my robot using Arduino diecimila as a sensor board:
http://guiott.com/dsNavCon33/ArduRino.jpg

other pictures showing the home made "shield" for Arduino still not populated:
http://www.guiott.com/dsNavCon33/SensorBoard/Overall.jpg
http://www.guiott.com/dsNavCon33/SensorBoard/OverallTop.jpg
http://www.guiott.com/dsNavCon33/SensorBoard/Sensors1.jpg

ciao
Guido
Logged

Beaverton, OR
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@guiott:

Nice layout - another octagonal form robot. smiley My W.A.L.T.E.R. is also an octagonal form robot. smiley Right now, I am just more interested in this new leg design, and seeing what it might be able to do.  I have another small robot I've been working on, so I may attach two of these legs and a back support of some kind and see what happens. smiley I may make it a full tri-pod too.

I'll have some 3D CAD modules done soon.

8-Dale
Logged

Beaverton, OR
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Here is a status report.

I curently have my Arduino connected to 5 servos that make up a 5DOF (degree of freedom, a single joint) of a new robot leg I've been tinkering with.

I am also ready to make my SoftwarePWM stuff into a library and have hacked the Makefile to build a library outside of the Arduino IDE. I can successfully build the library.  However, for some reason the build is not finding my .h file for the library, which is in the hardware/libraries/<libname> dir. This is using the Makefile because building within the IDE does not work at present and generates errors I don't see, but perhaps should see, using the Makefile.

The new library can PWM any pin now, just as the original servo libray it is based on could.  I've modified the write() routine to accept an angle range from -90 to +90 degrees and have added a write180() routine that works for a range of 0 to 180 degrees. I've also added, but have not yet tested, error checking in all routines where range checks are done. Each routine has separate error code(s) as appropriate. I've also reformatted the code to be what I hope is much more readable.  Servos can also be directly pulsed using the pulse() routine.

This library is based directly on the current Servo library. I will be offering the changes back to the original author if he is interested, as soon as I am happy with the code and can make a full release. I still have a couple bugs to work out in routines that read back data for the user.

I am planning to purchase an Axon controller board that is made by Society of Robotics and uses the Atmega640. I would very much like to see the Arduino environment ported to this board and think it would be a great extension for the Arduino development environment.  With up to 16 ADCs and up to 4 UARTs, I think the Axon would be great with the Arduino environment. This could help bring the Arduino environment fully into the Robotics and Process Control areas. I am hoping to help with this port as soon as I learn a bit more about how things are build for the Arduino.

Remember, the Arduino is not just the board (hardware), but also the IDE (software) used to develop for it.

8-Dale
Logged

Pages: [1]   Go Up
Jump to: