Fallentines new Controller!

Well Zenta has his controller, which is pretty fancy, but also pretty big.

So heres my new controller.


Full details here.

The controller uses the Roving Networks RN-24, and the basic atom Pro 40 as the brains.
It has two thumb sticks with center buttons. Similar to zenta’s controller except mine don’t have center pots. I’m ok with that though.
My controller only has 1 speed slide pot, where zenta’s has two. But besides that, i think they are similar in capabilities.

Let me know what you guys think of it, like or dislike, i want honest opinions.
I’ll upload the programming code when i’m done.
If you guys have any questions please feel free to ask. This thing took over a week to make so i’m gonna show it off. If you guys want any specifics on it, let me know.

The thumb sticks are a little goofy, in that they hit the min and max levels, 0 and 1023 rather early in their movements. I’m not sure if that’s the fault of my limiting resistor just the way the thumb stick is.
Will probably fix this issue when i eventually make a version 2 of the controller.

It’ll eventually get an IR transmitter and work as a TV remote, just for the hell of it. And it’ll get a little speaker eventually too.

Also let me know if you guys have any suggestions. I’m always interested in new ideas and feedback.

More pictures. First without flash, second with flash. On the second picture, the last digit on the first row, isn’t problematic, the LCD was in the middle of a refresh, it refreshes rather rapidly since i’m continuously feeding it information.

The numbers are
LX ______Move/ARM____RX
LY_____Speed 00-10____RY

Looks like you are having some fun :slight_smile:

My guess with those thumb sticks that at best they may be as good as the things in a PS2 controller, which I often find is not very sensitive. That is a reason why the gimbals in the DIY remotes (from RC controllers are nice), but they do eat up a lot of space. You used a Bap40 :slight_smile:. I think Zenta will be Jealous as you have those extra IO lines. He probably would have added more Sliders or Pots, but ran out of IO pins :laughing: I also would actual like one or two more controls. For example in the Hex, it would be nice to have both Joysticks to be self centering, and have one slider for Body Height, Maybe another for Leg Lift Height, Maybe another for speed adjustments(Gear box). If I had them maybe other joystick/Slider for adjusting the Pan/Tilt while it is walking…

Zenta and Mine now use XBees to communicate. I believe he still has his setup that he can use the RC as well. With the XBees we can switch which robot we are controlling, by pressing a button and then scrolling through a list. The list is built by issuing an XBee Node Discovery command and then I cache away the results in the BAPs EEPROM.

As for capabilities, since the time they were built, some of us have added some additional switches, which we use to control the remote. (We use all 16 buttons of the keypad for controlling the robot, so I have 2 buttons that I use to switch which mode I am in, plus an Enter key to accept the new data and an ESC key to abort, which is not overly used.

Some of the other modes in the code is to calibrate the remote. In this mode you move all of the joysticks and sliders to their extremes and then with the self centering joysticks, let it go back to center. With this it calculates some scaling and offsetting values, such that 128 is the center, 0 min, 255 max…

If you are interested in any of this code, I think the reasonably current code is up on the thread: lynxmotion.net/viewtopic.php … &start=360

Again it looks like you are having some fun, which is the important things, It will be interesting to see it in action.

Kurt

The Roving networks BT adapters i’m using can connect to a preprogrammed mac address, or it can sniff out and connect automatically.

Mine use the connect command, which is simply, go into command mode, send the connect command, then exit command mode. So if i have 6 bluetooth uart adapters powered, i can connect to a specific one ignoring the others.

Or i can connect to a PC’s bluetooth dongle.

I’ll be using a more sensitive stick when i make a version 2 of the controller. V2 will have more precision cuts.

This current controller may receive a PSP style sliding thumb stick. Or two, on the underside of the controller. Can use a small PIC or Atom nano to add additional analog lines. Zenta could probably do that too.

Just have the pic/nano receive the analog data then transmit it over to the main MCU using a normal PIO port.

pot1 var word
pot2 var word
pot3 var word
pot4 var word

main
ADIN p0,pot1
ADIN p1,pot2
ADIN p2,pot3
ADIN p3,pot4

serout p4,i19200,[dec pot1\4,dec pot2\4,dec pot3\4,dec pot4\4]
pause 10
goto main

Then on the main MCU receive the 16 decimals of data. separated into sets of 4.

serin p10,i19200,[dec4 pot1,dec4 pot2,dec4 pot3,dec4 pot4]

The separation is so if a pot is 0 it transmits as 0000, if a pot is 512 (center) it’s 0512
That’s why the screen in the second picture has the numbers with an extra 0.
The slider, lower center, is just /100, so 1023 (max) displays 10, where 100-199 = 1. This is the speed multiplier for the rover.

I believe the nano 18 has 6 A/D channels. I think the nano 28 has 11.
I’ve said it before, the Nanos make fantastic support MCUs. IE secondary MCUs.