3
\$\begingroup\$

Recently I've started playing a lot with 3D printers, Adrunio, Pandaboards and Kinect's SDK. I'm starting to have more and more passion for this sort of devices and I think it's about to turn into a pretty absorbing hobby.

Now - I'm a software engineer (mostly C/C++ and low-level background) with a couple years of experience. I know a thing or two about how computer hardware work, but the last time I was exposed to lower-lever / more primitive electronic components was in college in my Circuits classes.

I know how important it is in programming/mathematics to be aware of a couple of important concepts that are not very obvious for newcomers and without a good guide (Mentor, book, etc.) its fairly difficult to even come across them (for example concepts introduced by Alexander Stepanov's - Elements of Programming) but also I do not want to go too much into details; I already have a profession that I enjoy a lot.

So here is my question: Could you please recommend a book or any online materials (tutorials, video, etc..) that would introduce me to surface-level understanding of electronics needed to build hobby projects that involve micro-controllers, possibly some sensors, some mechanic parts that I can try out different algorithms on?

Ideally I would like to get to the level of understanding where I will know where to look next if I want to build say a small device that automatically waters my front-yard basing on the weather conditions or turn the heat on.

\$\endgroup\$
  • 2
    \$\begingroup\$ As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. \$\endgroup\$ – The Photon Feb 12 '13 at 4:13
  • 5
    \$\begingroup\$ The book "The Art of Electronics" is now rather old BUT provides an excellent overview of most things electronic, with enough detail and real world examples and advice to be useful. \$\endgroup\$ – Russell McMahon Feb 12 '13 at 4:23
  • \$\begingroup\$ I see your point about how "surface level" and "important" might solicit debate, but I still think that this level of subjectivity won't hurt. \$\endgroup\$ – Karim Agha Feb 12 '13 at 4:23
  • \$\begingroup\$ See the second question in the FAQ list: Basic Electronics Book. \$\endgroup\$ – Phil Frost Feb 12 '13 at 12:49
2
\$\begingroup\$

My answer is simply a reflection of my experience, so you may find it lacking in objectivity. Take it for what it's worth, but I would like to add my $0.02.

I haven't really found a good course or textbook on tinkering and learning how to approach hobby projects. To be honest, you don't really need any formal education to adopt the hacker/maker/tinkerer mindset. The way it works for me is I first choose a project I want to work on. I completely ignore all constraints (within reason). For example, the fact that I don't know a programming language, a specific technique, have certain parts, or have relevant prior experience are usually not my primary considerations. Choosing something interesting and useful is what works for me, because I am encouraged to learn and adapt to any situation in order to reach my objective. A huge part of the experience for me is learning something new. You already have a great advantage with your solid comp. sci. background.

From my admittedly limited experience so far, blogs, tutorials, and videos specific to what you are looking to do are best. For example, suppose you follow my path and ignore all reasonable constraints, and decide to build a device to water your yard. The first thing I would do is decompose what I need to build functionally. So I need something to understand temperature data and actuate the mechanical system, something mechanical to control the flow of water, something to detect temperatures, etc.

Then I would just go to Google, and type in any question I have. Something as simple as "how does a microcontroller work" will deliver superb results to you when you search for a way to control your project. You use these searches as stepping stones, and one thing leads to the next. Say you need to choose a temperature sensor, then you simply search for temperature sensors. You will find a lot of different kinds, but several which are very common and well documented - so go for those.

Again, my approach isn't as systematic and formal as what you may be expecting. Learning how to hack a device together takes a lot of passion, patience, and willingness to learn a lot of new things. Once you work on a few projects, you will realize that a huge percentage of your technical skills will become highly transferable.

So my last few tips would be:

  1. Google is your friend, use it!
  2. Read blogs (they are a superb resource, in fact, make your own to document and share your work).
  3. Ask questions (places like here), but try to figure stuff out on your own first.

Search -> Read -> Ask (if necessary)

Again, it depends on what you're going for. If you're just doing stuff for fun, then I recommend my approach (works well for me). If you're doing some serious stuff, then ignore everything I said in this answer as I don't feel I am fit to give you credible advice.

\$\endgroup\$
2
\$\begingroup\$

This is a very good starting point: http://learn.sparkfun.com/tutorials. Try their beginning embedded electronics series.

These days, most if not all hobby projects are going to be in the digital domain so you really only need to worry about basic analog stuff (eg using a resistor to limit current to a LED, driving high current loads with a transistor etc.).

The Sparkfun tutorials (or others like Adafruit or Arduino) are usually highly practical and application focussed and that is a great way to pick up what you need to know as you go. So, for example, you could work through their examples or use them as reference for a specific project.

If you want more detail, I'd recommend https://6002x.mitx.mit.edu/.

\$\endgroup\$
0
\$\begingroup\$

Have a look at http://www.nand2tetris.org/ , these guys are describing a lot of what you want to learn. (Not all of it, but I think the approach is well worth mentioning)

Searching the net is a fine way to learn stuff, but I would say (as a software guy who is also EE) that you should avoid any site featuring Arduinos or PICs as the level of understanding is so low as to damage your understanding* or lead you to bad habits - a bit like getting your medical advice from watching ER rather than read a medical textbook. Books are good, Forrest M Mims III (great name, great guy) has written some friendly books on the subject, but there's plenty of others. Electronic Systems by M W Brimicombe was my A-level textbook and (IMHO) approaches the subject from a good direction, treating complex things as "black boxes" where you only know the stuff you need to know about them (how they behave, what you use them for), rather than confound you with the physics of PN junctions on page 2.

* = Flame away, I bet no professional EEs will disagree with the summary.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.