General Background:
For the last couple of years I have enjoyed the hobby of Combat Robots. You may be familiar with Battle Bots but the ones I compete with are much smaller robots. There are a number of weight classes but I focus on the 150 gram and the 1 pound classes.
My 150 gram robot has a unique method of attacking an opponent. The bot contains a spinning horizontal weapon mounted at the back of the bot on an extended tail. Most bots attack front-on with a weapon mounted on the front. They also place most of their armor at the front of the bot. When attacked from the front the objective of my bot is to quickly rotate, swinging the tail mounted spinning weapon into the side of their bot. The side usually has less armor and better access to damage their wheels.
The Project:
Build a way to detect the proximity of an opponent’s bot and initiate an attack sequence.
Currently the attack initiation process is manual. When I see an opponent’s bot is within range of my bot's weapon I move a joy stick on my RC controller to initiate an attack sequence. Internal to the bot is an Arduino Nano that receives the attack signal and begins the following sequence,
- Ramp up power to the wheel motors in opposite directions to rotate the bot.
- Increase the weapon RPM to maximum from the normal idle speed.
- Delay for 0.5 second then stop bot rotation, return weapon to idle and return control back to the RC controller.
Constraints:
The bot can only be 150 grams in weight and there is very little space available inside the bot. Obviously, as much of this weight as possible is put into either the weapon or the armor. Anything additional added to the bots weight to detect another bot will most likely will be subtracted from these areas. The bot is currently about 1 gram under weight.
Since this is a combat robot it being as rugged as possible is important. Any sensors will need to stand up to much abuse and potentially fail in a way that will not cause the overall bot to fail.
Needs to be electronic noise resistant. There are brush wheel motors and electronic speed controllers (ESC), brushless weapon motor and ESC, RC receiver and an Arduino Nano all creating electronic noise in the bot not to mention the opponent’s bot near by.
Some options considered:
Ultra Sonic Pros: fairly electronically noise resistant, and good distance detection.
Cons: heavy, narrow vision, not very rugged.
Infra Red Pros: fairly electronically noise resistant, and may be accurate enough for distance detection, moderately rugged.
Cons: heavy, it has too narrow of a vision would require multiple units, opponent,s bots are various materials and colors making erratic Infra Red detection.
Capacitance Induction Pros: Rugged, light weight, could be configured for wide vision, even the sides of the bot.
Cons: not very electronically noise resistant, distance detection questionable
Until recently I had totally ruled out proximity detection due to Infra Red and Ultra Sonic's weight and fragility were non starters. I have started to investigate Capacitance with the hope that foil mounted to the inside of the plastic bot body and connected to the Arduino using capacitance touch software might work. But so far the range of detection is too short using just the voltages of the Arduino. But adding additional components to increase the voltage will add to the weight. There may be other ways to do capacitive sensing that increase sensitivity without adding weight.
My hope is that someone here will have an out of the box idea I haven't thought of.
@ruplicator How about a microwave detector like a
- RCWL-0516 radar motion detector
I think this may work if the detector was placed behind the plastic shell of the bot? I've not tried it so this is just a suggestion for you to mull over.
@byron @ruplicator I have used one of those, and the range is about 10 ft. It is also very non-selective. I doubt it would be useful.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@byron Thanks, I must admit I haven't thought about radar. After looking at the specifications sheets for the RCWL-0516 it looks like only works on doppler. This would be good for detecting motion but not for distance. In this application I would like to know when the opponent's bot is within about a half an inch of my bot so it could activate the attack sequence close enough that the tail of my bot can hit it but before thier bot hits mine.
Do you know if there is a simular module that works to measure distance?
@zander Yes, I may be looking for something that doesn't exists. The doppler effect module did spark my interest into there may be a module out there simular to the one suggested but uses a pulse radar effect rather than doppler.
I appreciate comment.
@ruplicator I have a small collection I picked up over the years on AliExpress. Sadly, my health has not allowed me to experiment with them.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.