Sometimes a user on forums, this time on RC-Groups, is asking for something that makes my brain tickle. This was one of those occasions.
Hi All, looking for some inspiration about how to achieve something with my DS-16. I want to have a "snap" flight mode that is activated by a logical switch. It should come on when both elevator and rudder sticks are pushed beyond 90%. This is easy enough - just use an AND condition. However, I want the snap condition to stay active until BOTH rudder and elevator are returned to below 90%. This is where it is all breaking as the AND condition disables the condition as soon as either control returns below 90%. So really, I want an AND to enter the condition, but then it to decide when to exit the condition with an OR. Maybe could use the spare trims TR5, TR6 or a MULTI but I cannot get my brain around how to get it doing what I want.
So, let’s get investigating…
Fuzzy Logic + Jeti = ?
Definition of Fuzzy logic is basically that the value is not necessarily 0 or 1, it can be something in between. And yes, Jeti can do that.
The issue is.. yes, what?
Let’s have look from the simple end:
- Push elevator-stick over 90% and use that as a switch. Easy.
- Push rudder-stick over 90% and use that as a switch. Easy.
- Create a logical switch, being active when both of the above is active. Easy.
Now, the issue that collides with the user’s needs is that if either elevator or rudder is lowered under the 90% the logic switch goes inactive. We need to define somehow that BOTH the elevator and rudder needs to be under 90% before logical switch is deactivated.
In fact simple. We’ll use fuzzy logic, we have to determine that a switch can be something else than simply ON or OFF.
Note: I’m using a Mode 2 radio, your switch numbering (P2/P3)may be different!
First, make a logical switch, name it as “Snap1” with the function “if rudder stick is over 90% positive or negative”. This translates to “P3 less than -90% proportional, centralized and reversed” OR “P3 less than -90% proportional and centralized”. Note that the first is reversed!
Control 1 is reversed:
Control 2 is not:
You can verify correct settings by moving rudder over 90% to left or right, logical switch “Snap1” is active.
Ok, that was Snap 1. We need more. Make another logical switch, name it “Snap2”. This needs to be active “If elevator stick is over 90% positive or negative”. This translates to “P2 less than -90% proportional, centralized and reversed” OR “P2 less than -90% proportional and centralized”. Note that the first is again reversed!
Control 1 is again reversed:
Control 2 is not:
Alright. now we have the physical sticks done. Let’s get fuzzy! What we need is a logical switch “Snap3” of “Both sticks over 90% negative or positive in any combination”. If we would use that statement alone it would be easy, it would be “Snap1 OR Snap2”. But, user requested that this function should be disabled when BOTH stick have been lowered to less than 90%. So, instead of OR we will use MULTI with statement “Snap1 centralized and proportional, over 0% MULTI Snap2 centralized and proportional over 0%”. Both controls are centralized and proportional.
Now you can test this. Move your rudder all the way to either direction, you’ll see the value change from X to 0, same should happen if you move your elevator all the way up or down. If you move BOTH stick to over 90% at the same time you’ll notice this logical switch goes to ON instead of 0 or OFF.
This is not enough. If you are using this function to control something and need a simple ON-OFF switch for that we need to create one more logical switch, this is finally the one named “Snap”.
Make a new locigal switch with only function of “Snap3 centralized and proportional, value over 0%”. This switch is active only when our fuzzy switch is truly ON and not when it’s state is OFF or ZERO.
This last logical switch is the one you can use for whatever the need was.
There you have it. Fuzzy Logic + Jeti = True Love :)