Android 3-DOF Controller App - G1 Android Development

Hello guys. I've just released my app's source code as well as a short video at:
http://androidcontroller.googlecode.com/
--necessary improvements list--
on the Android side:
* service discovery so that the client and the server can find each other on the local network (it's very annoying having to manualy enter an IP address in a textfield that's why I change the source code every time and compile with the new ip )
* kalman (or some other kind of) filtering to smooth the sensor output
* improve menus/configuration/interface
* look for a marker and calibrate automaticaly
on the windows side:
* switch model you're rotating somehow (ability to load models via xaml files?)
* interact with the object (I'm already transmitting the touch screen's x/y event)
* smooth the sensor data on the windows side to take the load off the android app
* sounds
* transmit images to display on android or sounds?
I would appreciate VERY much ANY help that anybody could provide. If you are interested in contributing code please contact me and I will add you to the project members list.

Well Done !
congrats

HES A JUBEH IMPOSTER
Just kidding, awesome app btw

wow...this is pretty cool. I would love to help but due to my lack of knowledge in this. Keep up the good work!!

Great work, I'd love to see how this develops.
Starred in google code.

Everybody thanks for the encouraging remarks

re
Génial___$$$$$$$$

Draw custom buttons to the touch screen which send keyboard commands to windows, and implement gamepad support for the sensors? Then this could be used as an input device for a computer.

bjehsus said:
Draw custom buttons to the touch screen which send keyboard commands to windows, and implement gamepad support for the sensors? Then this could be used as an input device for a computer.
Click to expand...
Click to collapse
But if I do that then the touch screen becomes just another gamepad, and a bad one for that matter since touch screens have no tactile feedback (i.e. the finger is not aware of wether it has pushed the button or not). Tactile feedback could be implemented via vibration or perhaps even audio feedback with sound for button press but both those scenarios are impractical for a gaming situation where buttons are being pressed at a frantic pace.
Besides I wanna do more than just pushing buttons. Something with touching/swiping gestures etc. Transmitting data from the pc to the mobile device, or sounds? ooor.. dunno^^
I need some good ideas on what more one could do with this ^_^

I'd be more than happy to help, unfortunately the most I can do for you is clean up images and menu buttons. If you need any of that done feel free to hit me up.

woah
This is really cool. Are there any real apps available yet?

henrynhl said:
This is really cool. Are there any real apps available yet?
Click to expand...
Click to collapse
Plx define 'real' apps.

Actually this is a great idea, I'm surprised no one had thought of it yet.
Blender (open source 3d suite) supports NDOF devices nowadays - I'll see about giving this a try when I get a chance, and perhaps contribute some code (and we'd need a linux server as well, which shouldn't be too big of a deal)

Jubei said:
But if I do that then the touch screen becomes just another gamepad, and a bad one for that matter since touch screens have no tactile feedback (i.e. the finger is not aware of wether it has pushed the button or not). Tactile feedback could be implemented via vibration or perhaps even audio feedback with sound for button press but both those scenarios are impractical for a gaming situation where buttons are being pressed at a frantic pace.
Besides I wanna do more than just pushing buttons. Something with touching/swiping gestures etc. Transmitting data from the pc to the mobile device, or sounds? ooor.. dunno^^
I need some good ideas on what more one could do with this ^_^
Click to expand...
Click to collapse
I have an idea, heh...use it to control the mouse on a PC.
There are remotes that work using accelerometers and such...by tilting the remote up, it moves the mouse arrow on the screen up, left goes left, etc. Then simply have the screen react to a short tap(which would be a single click), double tap (which would be a double click), and a long press (for right click).
That is certainly something that I would use on a daily basis.

jmhecker said:
I have an idea, heh...use it to control the mouse on a PC.
Click to expand...
Click to collapse
Thanks for your feedback jmhecker! Do you mean like a wiimote? If so then unfortunately that's not possible with the HTC Dream unless the user performs some kind of calibration process first (because the device has no way of knowing where the monitor is). So first some sort of calibration would be necessary, which could be done by placing a marker/qr code on the monitor then pointing the camera OR just pointing the device to the middle of the screen and pressing a button (which is what i"m doing now to calibrate).
Jubei

Jubei said:
Thanks for your feedback jmhecker! Do you mean like a wiimote? If so then unfortunately that's not possible with the HTC Dream unless the user performs some kind of calibration process first (because the device has no way of knowing where the monitor is). So first some sort of calibration would be necessary, which could be done by placing a marker/qr code on the monitor then pointing the camera OR just pointing the device to the middle of the screen and pressing a button (which is what i"m doing now to calibrate).
Jubei
Click to expand...
Click to collapse
Kind of like that, yes. But, not exactly.
Basically, the phone knows when it is in 'zero' position. IE: lying flat on its back.
Now, I tilt the phone (rotate) to the left a smidge, so it look like / (when looking at it if it were in front of you...what oyu see is the bottom (where the plug is) of the phone. Now, when you tilt it like that, the mouse cursor moves left. Then when you turn it like \, it moves right...tilt the phone forward, it moves down, and tilt it backwards, and it moves up.
Kind of what you have being done already with the video and the plane in it...but, rather than move the plane, move the mouse cursor.
Does that make sense?

This with remote droid...
jmhecker said:
Kind of like that, yes. But, not exactly.
Basically, the phone knows when it is in 'zero' position. IE: lying flat on its back.
Now, I tilt the phone (rotate) to the left a smidge, so it look like / (when looking at it if it were in front of you...what oyu see is the bottom (where the plug is) of the phone. Now, when you tilt it like that, the mouse cursor moves left. Then when you turn it like \, it moves right...tilt the phone forward, it moves down, and tilt it backwards, and it moves up.
Kind of what you have being done already with the video and the plane in it...but, rather than move the plane, move the mouse cursor.
Does that make sense?
Click to expand...
Click to collapse
I could see this working with RemoteDroid, or something of that nature. Make the tilt like a joystick, and the screen with a touch pad and buttons. That would make a killer game controller

jmhecker said:
Kind of what you have being done already with the video and the plane in it...but, rather than move the plane, move the mouse cursor.
Does that make sense?
Click to expand...
Click to collapse
It does yes. But i think it would require a lot of work to be usable because isometric or isotonic (speed of cursor relative to tilt angle) devices are not nearly as usable as mice. So in the end you'd spend so much hours coding just to have another mouse, whereas I think this device can be more.
it has a speaker, a display, vibration, buttons, keyboard, a trackball, sound. It has a lot of potential to be used just as a simple mouse.

Related

Multitouch on a single touch screen.

This guy made it on a nokia...
http://30dbs.blogspot.com/2009/03/experimental-multi-touch-on-nokia-5800.html
i dont think this is real multitouch- just seems to remember the first pressed location and notices when pressure is gone
its not really multitouch.
i worked on a simular project (not a game, just tried to do something like virtual multitouch)
and its just like that.
example:
you press on the left and on the right side of our screen, wm thinks you were pressing just in the middle of both sides.
like this (X is your finger, O is the position where windows mobil thinks where your finger really is)
X-----O-----X
or
X----------
-----O-----
----------X
so i think this guy just made "invisible buttons" which you click when you press und 2 of his buttons at the same time.
of course this is just speculation because i cant test it, but that would be the easiest way.
Yep I think it's how it works... But it's not a dumb idea at all, and could be used in the dev of apps
freaksey said:
you press und the left and on the right side of our screen, wm thinks you were pressing just in the middle of both sides.
Click to expand...
Click to collapse
I agree with you.
This "trick" can simulate a multitouch but only with single clicks. I'm afraid that you can't simulate gestures such as the "iPhone-like" zoom.
Marshall
lpaso said:
Yep I think it's how it works... But it's not a dumb idea at all, and could be used in the dev of apps
Click to expand...
Click to collapse
Yeah, I realize it isn’t "real" multitouch to, but I also think this could be useful for a lot of cool apps on WM.
I was making some experiments and I noticed that it is really hard, if not impossible, to make it work with 3 simultaneous pressures.
Like freaksey said, pressing in 2 different points of the screen will make the OS think we are pressing in a point in the middle. But introducing a third point will not be detected if the point is in the same line.
Here is what I mean:
X----X----X (3 points)
X---------X (2 points)
X----O----X (What the OS thinks in both situations)
So I'm afraid that we can't make applications like "piano".
Marshall
Marshall07 said:
I was making some experiments and I noticed that it is really hard, if not impossible, to make it work with 3 simultaneous pressures.
Like freaksey said, pressing in 2 different points of the screen will make the OS think we are pressing in a point in the middle. But introducing a third point will not be detected if the point is in the same line.
Here is what I mean:
X----X----X (3 points)
X---------X (2 points)
X----O----X (What the OS thinks in both situations)
So I'm afraid that we can't make applications like "piano".
Marshall
Click to expand...
Click to collapse
Indeed, not like a piano, but for tiny games (like the nokia guy made) it could be fun
lpaso said:
Indeed, not like a piano, but for tiny games (like the nokia guy made) it could be fun
Click to expand...
Click to collapse
Of course
Marshall
I reckon u could simulate multitouch for zooming. And here is how i suggest to do it (im not a programmer, so someone come use it (Y)!)
When using a transitional touch screen, a user either presses a button and then releases it (taps it), and then taps another, or drags a stylus across the screen. When a user taps, there is a space of a few milliseconds of no input between the taps, so is recognisable.
When a user drags a stylus, the change in location is continuous (i.e. the point of contact moves to an adjacent sensor), so is recognisable.
If a user were to touch 2 points, the point of contact would appear to move straight to another point (not adjacent) immediately. This would then be recognisable as 2 points of contact, rather than just 2 taps.
This would allow 2 fingered gestures, even if the system wouldn't know the exact location of the 2 points of contact.
try this... here can you see where your phone thinks your finger is.
(to go into "singlepoint mode" draw at least 1 point on your screen and then you can change into it)
just copy to phone and run it
I am not a hardware engineer by any stretch of the imagination, but I feel this is more of a software limitation than anything else.
The fact that windows mobile can take two points of pressure and use the middle of the area as the true touch point, tells me that the hardware is understanding both touch points.
I believe the issue lies in Windows for not understanding two inputs at the same time. This is the same case with Windows PC's, as multi-touch is not possible on Vista or XP, but instead is being developed specifically for Window 7. Same thing with Windows Mobile, multi-touch is being developed (on a software level) only with WM 7.
Correct me if I am wrong, but the Android powered HTC phone has similar touch screen hardware as most current HTC devices, but a developer was able to (with some changes to the OS) allow for true multi touch recognition.
You are right, viridescent_zeal.
But I already tried what you are saying and if you press 2 point "at the same time" the hardware will immediatly get the point in the middle. It will not move immediatly but it will immediatly result as the point in the middle.
I'm afraid that it is an hardware limitation. If you want to realize the behaviour you are talking about, you have to press the two points with a little delay. This will cause the immediate movement and you can make a software believe you have touched two points in the screen.
Marshall
iservealot said:
I am not a hardware engineer by any stretch of the imagination, but I feel this is more of a software limitation than anything else.
The fact that windows mobile can take two points of pressure and use the middle of the area as the true touch point, tells me that the hardware is understanding both touch points.
I believe the issue lies in Windows for not understanding two inputs at the same time. This is the same case with Windows PC's, as multi-touch is not possible on Vista or XP, but instead is being developed specifically for Window 7. Same thing with Windows Mobile, multi-touch is being developed (on a software level) only with WM 7.
Correct me if I am wrong, but the Android powered HTC phone has similar touch screen hardware as most current HTC devices, but a developer was able to (with some changes to the OS) allow for true multi touch recognition.
Click to expand...
Click to collapse
It isn't a software limitation. This is just how resistive digitisers work.
here's two artciles from the last 24 hours showing multitouch in action:
http://www.fuzemobility.com/multitouch-exists-now-without-new-hardware-or-software/
http://www.fuzemobility.com/multitouch-in-action/
it can be implemented for games in a butchered form...it's not real multitouch but virtual key presses can work for games.
Very true. Still, be able to do that is better than nothing- if done right it could simulate multi-touch gestures providing we put 1 finger down first!

Question about the sensor of touch pro

As i know that touch pro is not only can be touched on the screen but also the hard button area ( home, back, call, hang up buttons)
How can i use that feature
Which software that i need to install or how can i active it
Thank for reading my topic
What do you want exactly? Do you want to remap hardware buttons?
the hardware buttons are enabled by default. you don't have to 'activate' them.
No! My point is how can i use the sensor of hardware button ^^
Well,did you mean to use the capacitive surface of those sensors,not the buttons itself? And what exactly do you want? Please explain.
google for "G-scroll"
TomasNM said:
Well,did you mean to use the capacitive surface of those sensors,not the buttons itself? And what exactly do you want? Please explain.
Click to expand...
Click to collapse
My point is
Instead of pushing down the 4 hard buttons (call, back, home, hang off) i just need to touch it on the surface?
You can buy gscroll (mobilesrc.com), but unless you can get the 1.x series, I'd pass. The 2.x series is buggy as hell, and it seems like development has stopped. There are some free apps you can find around here as well. I'm thinking Dredscroll is one, and there was another app called Butler (I think, lol) that allowed you to use it as a launcher with gestures on the area. Gscroll lets you swipe to scroll (it's good for reading ebooks, when it's working) as well as to launch things, but it has the annoying habit of going on smoking breaks.
As I know HTC testing software,I can say,it could not be a problem to create an app of this kind,but...
- Do we have SDK for it(I didin't searched for it yet)?
- Currently I don't know,how to send keyboard hooks to the system
- I cannot prevent/disable default keyboard hooks
So that means,I am not able to solve your puzzle. Sorry.
That was my honest opinion...
I don't think he's asking about the Vibrant-Scroll Wheel, I think he's talking about the Optical Track, itself.
[As the Home, Back, Answer, & End Call buttons require you to actually PUSH them down.]
You know, the "OK/Enter" button. When you place you finger on it [NOT PRESS IT], by default, it lights up the Bottom Hardware Keys, as well as brightens the screen.
If it's not working for you, I recommend Backing up your Important Information with either SPB Backup or Microsoft MyPhone, and flashing a New ROM. There are certain Drivers that control the Optical Track. What they are, however, is beyond me.

Function keys and scroll direction

So, I'm loving the hell out of my Surface RT (64GB with black Touch cover) except for two things.
1: I use the actual function keys (F1-F12) a lot more than I need a shortcut key for the play/pause button or the Share charm. Due to the placement of the Fn button on the right side of the keyboard, it's difficult to use the keys the way I'm used to. For example, Alt+F4 is now Alt+Fn+Play/Pause, and requires two hands. If anybody can find a way to toggle the default state of the Fn key, I would be super-grateful! Ideally, I'd be able to actually remap he keys like you can on advanced USB keyboards; for example, I need the Home and End keys too, but rarely use F8-F10 so I'd like to remap those.
2: The default direction of the multitouch scroll drives me up a wall (but only if I try to drive down it). It's a pointing device, not a touchscreen, dammit! I expect it to function like a scroll wheel on a mouse, or the side-scroll on older PC touchpads, or the TrackPoint scroll on the Thinkpad, or... you get my point. Yes, I get that Apple did it first; they were dumb then, are still dumb now, and MS was very dumb to copy them. On the other hand, at least Apple lets you change it! If the direction of this scroll can be reversed (preferably without screwing up the scroll wheel of an actual mouse, if I were to connect one), that would be amazing.
I was really hoping that the included drivers would include controls for these things, the way Microsoft's normal mice and keyboards come with highly configurable drivers, or most Laptops come with fairly advanced Synaptics touchpad driver controls. If any of you have contacts at MS on or near the Surface team, tell them that we really want some drivers like those, please!
have you been able to resolve the Fn key issue?
GoodDayToDie said:
So, I'm loving the hell out of my Surface RT (64GB with black Touch cover) except for two things.
1: I use the actual function keys (F1-F12) a lot more than I need a shortcut key for the play/pause button or the Share charm. Due to the placement of the Fn button on the right side of the keyboard, it's difficult to use the keys the way I'm used to. For example, Alt+F4 is now Alt+Fn+Play/Pause, and requires two hands. If anybody can find a way to toggle the default state of the Fn key, I would be super-grateful! Ideally, I'd be able to actually remap he keys like you can on advanced USB keyboards; for example, I need the Home and End keys too, but rarely use F8-F10 so I'd like to remap those.
2: The default direction of the multitouch scroll drives me up a wall (but only if I try to drive down it). It's a pointing device, not a touchscreen, dammit! I expect it to function like a scroll wheel on a mouse, or the side-scroll on older PC touchpads, or the TrackPoint scroll on the Thinkpad, or... you get my point. Yes, I get that Apple did it first; they were dumb then, are still dumb now, and MS was very dumb to copy them. On the other hand, at least Apple lets you change it! If the direction of this scroll can be reversed (preferably without screwing up the scroll wheel of an actual mouse, if I were to connect one), that would be amazing.
I was really hoping that the included drivers would include controls for these things, the way Microsoft's normal mice and keyboards come with highly configurable drivers, or most Laptops come with fairly advanced Synaptics touchpad driver controls. If any of you have contacts at MS on or near the Surface team, tell them that we really want some drivers like those, please!
Click to expand...
Click to collapse
The Fn Key issue is a little bit annoying, anybody have a solution for it?

Type Cover can't handle mouse and keyboard simultaneously

I'm not sure if it's just my cover or not but any time I am typing something the trackpad disables itself. While this is fine when making documents, it really sucks when trying to play games on it. If I hold down wasd to move I can't look around due to the trackpad being disabled. Is there a setting or registry tweak to fix this or is this just how the type cover works?
Wow, I never even realized that it does that. I will keep an eye out and let you know if I see or hear anything to bypass it.
Hardcore73 said:
Wow, I never even realized that it does that. I will keep an eye out and let you know if I see or hear anything to bypass it.
Click to expand...
Click to collapse
Same here. If a key is being held, the trackpad stops responding until the key is lifted.
did any of u try this with a bluetooth mouse?
Using a separate mouse works fine (Bluetooth or usb). The problem comes from the built in trackpad on the typecover keyboard itself.
It's one of only two issues I have with it (the other being the infamous Fn problem)
ahh kk i dont have any worries i despise touchpads
gsmumbo said:
I'm not sure if it's just my cover or not but any time I am typing something the trackpad disables itself. While this is fine when making documents, it really sucks when trying to play games on it. If I hold down wasd to move I can't look around due to the trackpad being disabled. Is there a setting or registry tweak to fix this or is this just how the type cover works?
Click to expand...
Click to collapse
This is by design, it is to prevent your palms causing the mouse to move while typing. It is implemented in the driver, and isn't user configurable at this time.
schettj said:
This is by design, it is to prevent your palms causing the mouse to move while typing. It is implemented in the driver, and isn't user configurable at this time.
Click to expand...
Click to collapse
Makes sense. It would be nice to be able to disable that though.
I have a bluetooth mouse which I bought for the Surface(the Wedge) but it would be great to be able to play games with the type cover on quick trips instead of having to carry around the mouse.

Is a mouse-drag-lock functionality possible?

Your first reaction to this might be, why would anyone need this on a touch screen device?
This is why:
I have a muscular disease which makes my body very weak and I’m using an electrical wheelchair. On my wheelchair I have a Bluetooth module which allow me to operate the mouse pointer using the joystick on my wheelchair. I can move the mouse pointer and with a quick push to the left I do a click. Since a click is being made by quickly pushing the joystick to its side I can never click and move the pointer at the same time. Because of this I can’t use any functions or apps which requires drag and drop, like e.g. playing Wordfeud.
My dream solution would be:
A widget were I quickly and easily can turn drag-lock on and off by clicking on it. When active the first click would behave like the button is pressed down, until I make a new click which then would release it.
Questions:
Is it possible to make a function like this for Android? And if so, does anyone here have the knowledge to please make such a widget/app/service? I guess it needs to be some kind of background service so it can be active even when other apps are in the foreground.
(Hope I'm not breaking any rules by saying this, but I would even be happy to pay a small fee for your efforts if you can accept PayPal.)

Categories

Resources