binomed / sphero_ollie-web-bluetooth

Control a Sphero Ollie with web bluetooth
Apache License 2.0
11 stars 4 forks source link

Add controller support #2

Open DominikNovosel opened 2 years ago

DominikNovosel commented 2 years ago

As far as I'm aware, this is the only feature complete and convenient 3rd-party app capable of controlling the Ollie robot. If it's still maintained, I'd love for it to support gamepads to provide a tangible interface, preferably with tank-style controls (forward/backward and turning) to avoid having to constantly recalibrate the tail light and make it a bit more intuitive, since this is the standard on things like RC cars. Otherwise, my options are pretty much down to an uncompilable Android app with ancient Java dependencies that are constantly at war with each other or a bunch of libraries I'd have to build an app around myself, which i don't know how to do just yet. Thanks!

jefBinomed commented 2 years ago

Hi Dominik, If I understand well, you want to use the app from your computer with a gamepad?

DominikNovosel commented 2 years ago

Well...no. Most of my computers are not Bluetooth enabled, and it's much more practical to use a mobile device as an intermediary. Still, the standard Gamepad API should allow for both types of device.

jefBinomed commented 2 years ago

Hum... so you want to have a new interface for controlling the Olie which looks like what we can do with the Gamepad API? Because, I don't remember that gamepad API could work for mobile? I mean, for me gamepad API = the web app respond to an external controller device. So the phone as, it allows Bluetooth connection could interact directly with the Olie with WebBluetooth API but the phone cannot act as an external controller of itself?

I understand that you want something like this : image

a circle control interface ?

DominikNovosel commented 2 years ago

Ah, I see you misunderstood. No, I wanted to control the Ollie with a physical gamepad in a similar manner to an RC car, with the app translating gamepad input to Ollie commands.

And yes, the MDN compatibility chart indicates cross-platform support for all major browsers except Internet Explorer.

Although, I feel that it's worth mentioning that the existing on-screen joystick behaves rather dangerously by not stopping the Ollie when you let go of it, and Ollie keeps going in the direction it was pointed in.

jefBinomed commented 2 years ago

Ok, I never try to connect a phone with a gamepad. For the moment, I don't have time to code this sorry but I find the idea interesting. But if you have the time, you could do the Pull Request.

I write this to my TODO and see when I can integrate it (I'm afraid that it won't be done soon, but I'll try to do it this year :D )

DominikNovosel commented 2 years ago

Thanks! I'd love to do this myself, but, as I mentioned, I don't have the necessary know-how just yet. That being said, I'm perfectly fine with waiting for you to implement this. Quite frankly, I'm lucky that you responded and considered adding this functionality in the first place.

By the way, do you think there might be any issues with connecting a gamepad and Ollie through Bluetooth at the same time? Also, would it be possible to add a menu for customizable keybindings?