Challenger-Smartbot

This (as of yet un-wired, and un-programmed) bot will be a 2 processor design (hopefully, a real "Smartbot").

In front is a Uno32 running Arduino C/C++ I am planning on using to process the PING))) sensor (and maybe add more sensors).

In the rear is a Max32 (both are Digilent boards) running StickOS, a combined OS capable of file storage and it runs a very capable version of Basic. I plan on using it to connect to the L293 motor driver and in back of that is initially a 6 AA cell rechargeable power source. (I am not sure that will provide enough power for "decent" run times.)

Fortunately all lines are 3.3V and there is plenty of room for program storage.

I call it a Challenger-Smartbot as it will be a real challenge to ME to see if I can make this bot behave "better" than the other bots I have built (some vary in shape, but all have very similar, and somewhat boring code, be it C/C++ or Basic).

Serial connection and protocol between boards, or just some data lines?

There is breadboard room beneath the rear processor for some sort of (maybe a Wixel) com. system to the PC. There will definitely be a 38Khz IR sensor for yet more remote operation, to be triggered somehow. So many ideas, so many decisions!

Navigate around via ultrasound, hopefully a lot more...

  • Actuators / output devices: 2 geared motors, L293
  • Control method: Autonomous and remote, multiple remote sources
  • CPU: Max32, Uno32
  • Operating system: Arduino, C/C++, StickOS-Basic
  • Power source: 6 AA rechageable cells
  • Programming language: C/C++, StickOS-Basic
  • Sensors / input devices: Ping))) Ultra Sound, more to add later
  • Target environment: indoor flat surfaces

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/challenger-smartbot

For the motors you are running.

I would use a L9110S motor driver. It has a lot less of a voltage drop then a L293 does.  They can be had off ebay and other sellers for $3-$4US. I have a lite-weight library you can use to interface with it as well or you can fine code from others also.

 

Thanks jscottb.

It was nice to meet you in chat and thanks for that suggestion. I will certainly look into it before I start wiring things up.

I am also looking for help (from ANYBODY) about the architecture to use on a robot with 2 processors. What should be dedicated to what and are a few data lines or a serial interface better for interfacing the two processors?

ANY and ALL information will be greatly appreciated!!!

For communication between the two…
I would use an i2c or softserial link between the two. Use what works best on the Chipkits.

Sorry for the double post.
Delete

Update: BIG changes…

I totally removed the front Uno32 processor board and reverted the Max32 back to being a big (512k memory) Arduino from the StickOS and the Basic it used to run (the conversion wasn’t that hard). It is a simpler, better bot now.

My AI routines are greatly improving.

Putting the PING))) sensor “head” on a servo made a huge difference in capability (now to look around you just turn the sensor, rather than the entire bot).

The bot is a lighter now and the L293 and 6 AA cells produce really good run times. (I prefer to “pulse” the motors and let the bot go forward bit by bit, the gears seem to have no trouble with it and the bot uses less power that way.)

There is LOTS of room to add more stuff, and I think the Max32 can handle anything I throw at it. I am also really feeling comfortable with the C/C++ like language (“sketches”) the Arduino uses and I feel I can do anything I used to be able to do in Basic (and actually a lot more)! Thank you Arduino!

Robot AI.

My bots AI is slowly, but greatly improving over time (I am happy to say) and the bot now never gets “stuck” (unless you put it in a box)! You can let it “explore” a room until the batteries finally die. (I want to set up some minimal hardware so the robot shuts down everything and just sits there and beeps when the battery goes down to a minimal level.)

I am currently only using about 17.5 k out of 512 k so my next plan is to do a minimal amount of “route mapping”. The idea is if you put the robot down in the same position and orientation it could reproduce the path it took before,

Whole room mapping comes later and if you read the data back stored in the bot you should get a pretty good picture of a (small) room, at least as to how the PING))) sensor on the robot saw it.

Walking robots are definitely on my future list and present there own unique sets of joys and problems. I can’t wait to try one!

So cool!

I set my bot down in my bathroom (it is very complex, and very clean) and went on to write a small letter. Say 5-10 minutes later I go to look for the bot and it is headed out into the hallway!!! Good girl! (I think of all my bots as being “female”.)

(Because of physical disability, primarily age, I live in a “nursing home” and have to deal with my bots “wanting” to go into other residents rooms.

I find my bathroom to be a very complex and PRIVATE place to test my bots “navigation” capabilities.

My basic (Arduino C/C++ language) robot code is open source, but right now I prefer (for now) to keep my AI routines private. (Can a single piece of code be both open source AND private? Anyone know the legal details???)