RC Receiver channel output to Arduino to manipulate signal

Hello I am somewhat experienced with the Arduino, But cant seem to find a code that I can altar to my liking, and was wondering if anyone knows of one or that can help me out here. So below I have a diagram of what I want to do.
I have a remote control car that I want to put ABS on it yeah I know ABS on a rc car sounds crazy but my RC car goes 65 mph and my brakes are always skidding and putting ABS would prevent this, so with that being said I want to take the output from 1 channel of the RC Receiver and have the Arduino control the servo from that channel. So the Arduino would control the servo at a given value, (when i apply the brake.) and make a pulse effect “ABS”. But I want to ignore other values and let them pass by to the servo(when im apply throttle) throttle and braking are controlled by the same servo I hope this all makes sense and someone can help thanks for reading

Normally the receiver will send a stream of pulses (one every 20ms) to the servo. The width of the pulses indicates the position the servo arm should adopt.

Your Arduino will need to intercept and determine the width of the pulse (which it can do easily enough) and then output pulses (at 20ms intervals) of whatever width you want (again, fairly easy to do).

However I wonder if a servo can work with sufficient sensitivity and rapidity to work in the way you propose?

How many brake applications do you propose in one second?

Also I wonder if there is enough energy in the R/C cars wheels to prevent them locking up even with a short brake application. The parts are much smaller than a full sized car but the physics is the same size.

...R

Thanks for the info!!!
Im sure the servo can handle the sensitivity and rapidity as it is a hobby grade hi torque servo thats made just for rc cars. I can make ALMOST a 1 degree djustment maybe a little bit more adjustments with my throttle trim so sensitivity shouldnt be a problem.
and the brake application that i was shooting for 1 second is 2, so 2 per sec .No more than 15 degree on the servo for each brake application.
I see what your saying about if it would work or not. My only worry is that the car is so light that there isnt enough weight at the back wheels for enough traction BUT i think it will still work because of how abs works to slow down your vehicle

Hi,

Lots of transmitters even budget ones have an ABS Function built in, check if yours does.

If your model uses servos for brakes I think they might be too slow to implement a useful ABS function, a better approach would be to use your transmitter 'end point adjustments' to reduce the braking power so that you cannot lock up.

If your convinced that your servos are fast enough then that there are a few projects I have published which provide active control of RC Cars, this being one example -

or this with the addition of a few lines of code to reduce the braking power as each light is activated

These are better approaches because they activley sense what is happening to the car before deciding how much to intervene in the signal.

Duane B

rcarduino.blogspot.com

DuaneB:
Lots of transmitters even budget ones have an ABS Function built in, check if yours does.

I haven’t bought an RC system for a few decades but really, antilock braking is built into transmitters now? That’s astonishing. I would have thought it was next to impossible to make work consistently at the model, and I can’t imagine how it would work at the transmitter - unless the ABS you’re thinking of is something different to what the term means to me.

Back to Tmz1313’s question: do your brakes apply to two wheels, or four? Are you prepared to put speed sensors on all four wheels? I worked with an RC traction control system (also quite a few decades ago) but that was a lot easier than ABS.

Brake are only on the back rear wheels but my plan was to not put any sensors on it I was gonna have the arduino make the servo pulse at a predetermined angle. Where it would only give out pulses if I press the brake all the way down I wanted to make it where I can still press the brake and not have it pulse but only pulse when I press all the way down I guess you wouldn't call this ABS but it uses the same consept of pumping the brakes as the ABS but without the traction sensor so I can it assist braking system lol

What you have described is exactly what a lot of transmitters have built in, its not very effective as there is no intelligence just a dumb pumping without any consideration of what is actually happening to the car.

If you really want to implement this with arduino, its easy but also quite ineffective.

What car are you using ?

Duane B

rcarduino.blogspot.com

Thinking about this some more, it seems pointless trying to improve braking if there are no front wheel brakes. On full sized cars the front wheels do almost all of the braking. You will never be able to slow quickly with rear wheel brakes even with an excellent ABS system.The more the car decelerates the less downforce there is on the rear wheels.

Rather than ABS maybe it would help if you could arrange things so most of the movement of the brake control just moves the brakes between barely on and locked so that you can apply the brakes more sensitively.

Or maybe you could have a system that releases the brake the instant before a wheel stops rotating (which is really what ABS does) but that would need some form of motion detection at the wheel. There was a discussion about this in another Topic in the last month or two.

…R

Tmz1313:
Brake are only on the back rear wheels but my plan was to not put any sensors on it I was gonna have the arduino make the servo pulse at a predetermined angle. Where it would only give out pulses if I press the brake all the way down I wanted to make it where I can still press the brake and not have it pulse but only pulse when I press all the way down I guess you wouldn't call this ABS but it uses the same consept of pumping the brakes as the ABS but without the traction sensor so I can it assist braking system lol

I'd call that cadence braking rather than ABS. I don't know how effective it would be without any feedback to control the amount of wheel slip, but it could well make the vehicle easier to control than brakes which simply lock up. Don't expect it to make much difference to braking distances - the most I'd hope for would be that the model was less inclined to swap ends under braking.

It shouldn't be hard to write an Arduino sketch to 'pump the brakes' while braking is commanded by the transmitter, but the maximum frequency you could achieve will be limited by the speed of the servo and from the servos I've used will probably not be very high - if you manage to get it up to 1 Hz I'd be impressed.

Servos can do better than 1hz if only 10 degrees of movement is required.

sbright33:
Servos can do better than 1hz if only 10 degrees of movement is required.

Fair point. With only ten degrees of movement, and with no load applied, one of my old servos manages about 3Hz.

The car will go a long distance in 1/3 second (or else braking improvements would be irrelevant) and the wheel will rotate several times in that time. I would imagine that a pulse rate no slower than twice per revolution would be needed to ensure that the wheels are rotating most of the time - especially when the car is moving fastest.

...R

Robin2:
I would imagine that a pulse rate no slower than twice per revolution would be needed to ensure that the wheels are rotating most of the time - especially when the car is moving fastest.

I don't follow your reasoning. There's no way this would achieve anything like threshold braking, if that's what you're thinking. The only benefit I can see would be that you have a means to trade off lateral grip versus longitudinal grip so you have a chance to keep the model straight under braking. Just where the balance is would depend on the braking duty cycle, which I assume would be controlled by the position of the throttle/brake control on the handset.

Aside from braking logistics, the general concept is interesting to me. Besides, it seems there is a good chance that vehicular control under braking would be improved with a slight pulsing of the brakes - this should be easy to test directly with careful control of the pistol grip remote (I can wiggle my finger faster than my servos can respond :wink: ).

Off hand, I'm thinking digitalWrite(servoPin, digitalRead(receiverPin)); would give you pass through control. If I'm remembering correctly, the signal 'pulse' width tells the servo how far or to where to move. It seems you could use a timer to check the pulse width and then call either a pass through function when the signal width is less than a threshold or call an 'abs' function when the signal width is greater than a threshold...(or vice-verse depending on which end of the servo travel is braking). It occurs to me, this is a gas powered vehicular?

C2:
Off hand, I'm thinking digitalWrite(servoPin, digitalRead(receiverPin)); would give you pass through control.

I think you'd really want to decode the incoming servo signal and generate a new signal on the output, or else you'd introduce jitter in the output due to variations in your polling loop. Alternatively you could use a pin change interrupt on the input, which should then give you a more consistent latency.

That's as good a definition of ABS as I have seen.

PeterH:
trade off lateral grip versus longitudinal grip so you have a chance to keep the model straight under braking

This is an important piece of data

C2:
(I can wiggle my finger faster than my servos can respond ).

...R

Robin2:
That's as good a definition of ABS as I have seen.

PeterH:
trade off lateral grip versus longitudinal grip so you have a chance to keep the model straight under braking

Cadence braking deliberately locks and unlocks the wheels so that they spend part of their time generating braking, and part of their time generating lateral grip (and part of their time providing a little of both as the wheel spins up and down, but that would be negligible here). An anti-lock braking system aims to prevent or minimise wheel lock-up. Usually that's done by controlling the amount of wheel slip to keep it just below the level that produces maximum braking so that you end up with a good compromise between braking and lateral stability. That's completely different to what cadence braking does, even though the objectives are similar.

I don’t reckon any form of braking that actually allows the wheels to stop turning will outperform ABS. As I understand things a tyre generates maximum braking force just before it locks up and the instant it locks up the braking force drops dramatically. That’s why you need to lift your foot off the (non ABS) brake pedal - so that the lower grip is enough to get the wheel turning again.

But I remain to be convinced that any of this has any application in a model car with servo operated brakes on the rear wheels.

…R

I don't think anyone is suggesting that it will outperform ABS. As I see it, all it will do is give some stability benefits under heavy braking with massively less complexity than a full ABS system. Of course a full ABS system would make much better use of the available grip, but then if we were in a situation where braking performance was important we probably wouldn't find ourselves only braking the rear wheels.

Using the front wheels for braking in a straight line is the most important factor of all that are mentioned. Many of these theories apply to full size vehicles on paved tracks. It is much different at 1/10 scale. A dirt track is a huge difference making true ABS nearly impossible at this scale. Certainly difficult. Cadence is possibly the best we can do. There are advantages to using only the rear wheels the first is more control while turning.