Dealing with static electricity
Greetings, my fellow Dronebotters!
I'm looking for help with dealing with static electricity on the surfaces that my robot is driving on.
Are there any general guidelines on how to avoid being affected by at statically charged surface that you robot is driving on?
My setup and issue is this:
I have an autonomous car that I start and stop by pressing a momentary switch button with integrated LED.
When I start my main Python program, it goes into a waiting-loop, blinking the integrated LED, and waiting for the button to be pushed. When it's pushed, the program flow breaks out of the waiting loop, and my robot enters its main operation loop, and starts driving.
If the push button switch is pressed again while in the main operation loop, the motors of the robot are stopped. At least, that's how it's supposed to work.
But what happens is that my robot suddenly stops, telling me that the button has been pushed, although I haven't touched it. I'm certain it isn't a programming error that stops the robot - a button push is physically registered (ie. falling edge on a pin).
The surface my robot is driving on consists of foam mats, and holding my hand close to the surface, I can feel the static.
So are there any general ways to immunize the electronics of a robot against static electricity from the surface its driving on?
Any tips will be appreciated.
If the problem is truly static electricity then a very simple solution would be to connect a wire to your MCU ground circuit and let it hang down to touch the mats. The wire will discharge the static build up between the bot and the mats.
However, your problem is more likely electrical noise. If the circuit that contains your push button has too high of a resistance for a pull up (or down) then the electrical noise created by the motors my be triggering the stop. If grounding the bot to the mats doesn't fix the problem then start looking at reducing electrical motor noise.
Thanks for your answer and suggestion about motor noise.
I think the mats are related to the issue, since my robot often stopped at one particular place on the track. I tried to shift my entire track layout by moving the mats across the floor, but the robot tended to stop at the same place on the track, ruling out the issue comming from my floor below. Also, I couldn't get the robot to register a "ghost" button push while holding it in my hands during operation.
I'm using a motor with encoder, so I figure that it has motor noise reduction already built in, but if the grouding of my robot doesn't help, I'll look into the motor noise reduction.