I've been asked to put some of the resources I use for my projects all in one place. Here are a few of my favorite things. I regularly try to do video demos of my projects, and so for that take a look at my
youtube channel. Also, you can look at sites like
hackaday for ideas, or even your local
Buffalo Lab makerspace.
Arduino:
The
main Arduino site itself is obvious, but I also like
Sparkfun and
Adafruit as both sources of ideas and for things like
shields. If you are going to use the
USB Shield or the
Mega ADK board, the
Circuits@Home site is very useful as well. Also, don't forget about the "examples" that are available within the Arduino IDE itself.
If you are planning to skip the Arduino IDE and "sketch" system completely and build code like your forefathers, you need to understand the underlying
chipset and have a
working toolchain. It is very instructive to write a simple C program, have it be compiled to assembly, and to try to discern what that code does. You get extra points if you grok
relocatable code and understand what a linker does. When you finally have object code to upload to the device, you need to choose how to do that last step. Fortunately, the Arduino hardware has a built in method of flashing the firmware via the USB port. You can get an
AVR programmer if you want to be hard core, or you have a board that doesn't have the secondary bootloader.
When I'm doing electronic design work, I usually pull parts from places like
Jameco and
Digikey. there are others, but between these two you can find almost anything.
Random tip: Always be aware of what
voltage logic you're using. For example, most Arduino boards are 5v, which means they output 5v as a "1" and they have a fairly high voltage threshold for inputs to be considered a "1" (I think something like 2.7v). If you're trying to interface with a device that is based on 3.3v logic or even lower, you can get odd results or even damage your devices. There are ways to do level shifting using options as simple as a
voltage divider.
There are some standard ways to do things like
light an LED from an output pin or
"debounce" a switch that is attached to an input. Understand how these simple circuits work.
Android:
The
developer site is a great resource, as is all of the free code on
Github (including
my stuff). If you need help, a google search usually turns something up on
stack overflow.
Hope that helps some. Let me know if I missed anything useful.