Hi, I want to build a system that I can controll from the Android platform.
I already have the Arduino Duemilanove and I am waiting on my HTC Desire phone.
I understand that I need a bluetooth device to make this possible. Is there any device that can make this possible? I do not need to transfer my arduino program using bluetooth, only send and receive signals to the Arduino so that I can controll someting and get a status report back that the thing has has been done or the status of the thing.
So, what bluetooth device do I get?
I would be greatfull if you would help a noobie out a bit
I am curious, though, of your describing yourself as a "noobie"; is the knowledge of using the Arduino the only thing you lack?
Because I am assuming you have linux sysadmin knowledge (you may need to root your phone for this application - maybe just for debugging), java software development skills (and knowledge of the Android OS SDK), serial comms skills, C/C++ dev skills (inasmuch for the Arduino programming), etc.
If you are lacking in any one of those areas (ok, maybe the linux sysadmin piece can slide), you are going to find yourself overwhelmed VERY QUICKLY (and you may brick an expensive phone to boot! You never know...).
You might want to clarify where your skillset lies; if you just lack knowledge of microcontroller and electronics interface skills, that's one thing - but if you are more "noobie" than that, you may be biting off more than you can chew, so to speak...
Because I am assuming you have linux sysadmin knowledge (you may need to root your phone for this application - maybe just for debugging), java software development skills (and knowledge of the Android OS SDK), serial comms skills, C/C++ dev skills (inasmuch for the Arduino programming), etc.
I have an HTC Dream and you don't need to root the phone to start creating applications. Just head over to http://developer.android.com/ and download the SDK, read the tutorials and get started developping on Android.
I have an HTC Dream and you don't need to root the phone to start creating applications. Just head over to http://developer.android.com/ and download the SDK, read the tutorials and get started developping on Android.
I know this - I own a G1.
What I was trying to convey is that he isn't trying to create a standard application (which is complex enough to create, for anything beyond "hello world"), he is wanting to do serial comms over bluetooth - I am not even certain whether bluetooth access is supported in the SDK currently (I know host USB isn't, I was trying to find a solution to that - in fact, I couldn't find any solution, even as a slave, for USB access in the SDK - there was barely enough access to the microphone, and even that has problems that make audio-style apps like in the iphone nearly impossible, from what I can gather).
I am not saying any of this is "impossible"; it is just that the OP stated they were a "noobie", but wanted to jump into building an application combining two different machines and development environments, and throw serial comms over the top. That's ok, provided you have the skills and experience to tackle it (and you'll probably still be pulling your hair out); but with the description of "noobie", I was just curious what kind of "noobie" they were?
Maybe they are a professional Java developer on the Android SDK, and have developed bluetooth interfaces to PCs, and they just lack Arduino experience? They'll probably do ok if they can get their heads around the hardware interface end on the Arduino (which they can probably figure out). But if they are a real noobie with very little software, hardware, etc experience - they are likely getting in over their head.
I am fully aware that this is well over my head. But it is a great way to learn.
Say I start out with lighting up a led over bluetooth from my computer. Then I will read up on the Android SDK.
As far as I can tell Android has now released a bluetooth API:
And, there is a project that already does this. The problem is that is uses an old "homemade" bluetooth API because it was written before the Android team released their bluetooth API. This project is open source so I was hoping I could learn alot from reading that as well. http://www.amarino-toolkit.net/
What do you think? Is it possible for someone with limited programming experience, but ok knowledge about linux? Taking small steps?
What do you think? Is it possible for someone with limited programming experience, but ok knowledge about linux? Taking small steps?
Well, small steps and planning are certain the best ways to approach a project like this, if your programming experience is limited. That bluetooth API looks like it might open up some interesting possibilities for the Android platform; I am certainly going to have to look into it deeper myself. Personally, if I were in your position, these would be the general steps I would take (and each step should be broken down into further sub-steps, of course):
Experiment and play around with the blink example. Understand the hows and whys of the circuit (very basic, I know). Perhaps also add a switch to control the blinking or something, to learn how to read switches properly.
Play with reading and writing serial data to/from the Arduino, over the USB serial connection, using the console. Eventually use the knowledge to control the LED blinking, or read the status of the switch.
Play around with Java on your PC; implement some simple console programs. Then implement serial communications, following up with communications with the Arduino; control the blinking/read the switch using your Java coding skills.
Once you are at this point, then it would be time to start to "sever the cord"; you could at this point move to developing on Android with your phone, or you could get a bluetooth adaptor for your PC (and whatever you need for the Arduino, like a bluesmirf modem), and continue development on the PC, migrating to Android when you have mastered the bluetooth communication.
Once you have a simple Android app running and sending/receiving bluetooth commands/data to/from the Arduino, then begin to fancy up the application with GUI elements and such.
As long as your aware that the project isn't simple (which you are), and are willing to stick to it, despite having to take a large number of small steps, you will get there eventually - you seem to have an idea and a plan of some sort; take it slow, don't get frustrated, and don't take shortcuts if you can help it. If you have problems, post here or on another forum (ie, on an Android SDK forum for those questions, of course).
Above all - have fun! Good luck with your project!