Ask YC: Learning circuit/hardware; lab book?
Hello!
I've been wanting to get into hardware type projects (robots, gizmos, etc) for a while but I'm fairly ignorant of hardware. I'm a software developer by trade. I've seen books like "The Art of Electronics" and "Teach Yourself Electricity & Electronics". But what I really need is a book of project/tutorials, that upon completing them, I can honestly say I am very, very familiar with electronics.
Is there such a book?
35 comments
[ 4.5 ms ] story [ 66.8 ms ] threadEven the narrowly scoped books I found to usually be quite a bit less effective than they should be. Then again, the books I'm referring to where school books.
I wish I could help more, but I still curse the books I learned from:)
I hope this is certainly possible to answer. Theoretically, if someone reads the right books and practices in the right way, along with hefty discipline and focus, one could say they would be very, very familiar with software and systems.
You might want to think about electronics on several level and topics:
- Board Level: Op Amps, Feedback Control Systems... etc.
- Chip Level IC design: Analog IC design, Bipolar/CMOS design... etc.
- Firmware: C, Assembly language...
...each of these topics are semester/year long courses on its own. I can recommend books in each topic, but have not seen a do-it-all, teach-it-all book.
as attack said, "the topic area is more broad than you'd think."
I would buy a circuit kit, like the one for 12 year olds, and you can knock out those projects pretty quickly, but they usually come with schematics and pieces for 100 projects or so. RadioShack sells them, but when you want to buy more parts, don't go there, go to Jamco or Digikey.
Learning Chip Level IC means learning how to reduce binary functions, there are many 'tricks' to this, and from my CS classes, they didn't really care much about reducing, and the EEs always did much better when it came to binary logic then the CS students. Also Figure out transistors, the circuits kit will have some transistor projects, and do a good overview, but learn the math and (some) of the physics here, it will help you understand.
After that, find some books on microcontrollers and or microcomputers. Figure out how RAM and ROM work (not necessiarly the internals) and program some.
I've heard great things about the Arudino, but I've never used it. I started off on the PIC series, and then to Motorola 8bits and Coldfire 32Bits, both of the last two, you can program in C, so no real assembly is required.
I agree with yangyang2, as far as a do it all approach, you probably aren't going to find it..
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Compute...
http://www.sparkfun.com has a lot of cool electronics type stuff to learn with. http://www.batchpcb.com to manufacture custom circuit board designs for cheap (2.50 per/sq in). If you want to design something simple FreePCB is super easy to learn http://www.freepcb.com/
YouTube has a lot of videos on how to solder if that interests you.
For FPGAs http://www.fpga4fun.com/ and http://www.knjn.com/
Other cool hardware related sites... http://www.curiousinventor.com/ http://www.gumstix.com/ http://www.cmucam.org/ http://www.electronics123.com/
I tinkered with FPGAs in college as part of my digital logic class. I remember reading about Hugo De Garis's work with them and they sound neat.
# Introductions #
To begin with, Sparkfun[1] has a bunch of tutorials, including a great introduction to embedded electronics.[2] This encompasses much of what you'll need for basic hardware projects.
As someone with a software background, the Arduino[2] is a great platform to start playing around with hardware. It acts as something of a bridge between software and hardware hacking by allowing you to program a micro-controller in a (relatively) high level language, and abstracting away a lot of the messy hardware details. This not only lets you start getting simple things done quickly, but also allows you to easily interface with virtually any other hardware modules you can come up with so you can push the boundaries of your knowledge. By making experimentation cheap, it strongly encourages the best types of exploratory learning.
# Projects #
Beyond the project tutorials listed on Sparkfun, OpenCircuits[3] is a great resource for more project ideas. Hack a Day[4] is often a good resource for inspiration, and the venerable Make[5] seems to always have something interesting.
# Sourcing Parts #
Sparkfun[1] is a terrific online electronic components store. It is extremely hacker friendly, having been founded to serve preciecesly that group. For some items the prices may be slightly higher than at Digikey[5], but this is more than made up by the fact that they have sorted through the bewildering number of seemingly-identical components available.
If you know exactly what you need, and especially if you can't find it through Sparkfun, Digikey is your friend. They have everything. And its uncle. The site is aimed at commercial designers who know what they're doing, so navigating the site isn't easy. If you're browsing without a specific component in mind, Digikey isn't the right place, but Octopart[7] might be. Its a search engine for electronic components that checks availability and compares prices of different retailers and also has some features to organize project shopping lists.
When buying electrical components, always buy plenty extra. You will burn things out. Five times in a row. Unit costs are cheap enough that its worth having lots of spares on hand.
As others have mentioned, this is a very broad topic. If you give us more details on what it is you're looking to learn, we'll probably be able to give more useful answers.
Good luck!
[1]: http://www.sparkfun.com - Well organized, hacker friendly
[2]: http://www.sparkfun.com/commerce/hdr.php?p=tutorials#BEE
[3]: http://www.opencircuits.com
[4]: http://www.hackaday.com/
[5]: http://www.makezine.com
[6]: http://digikey.com - Huge selection. Great if you know what you want.
[7]: http://octopart.com/ - Electronic Component search engine
Get it with the development board and you can make LEDs blink, drive a LCD panel, etc. Grab a high-level book on robotics and bam! it'll quickly click how all this fits together.
It's high-level way to start, but a great way to dive into the hardware world without worrying too much about hardcore hardware stuff. (Which, as a fellow software hacker, is pretty boring! I want stuff I can code!)
http://www.arrl.org/catalog/?item=no-hb2008
By the way, The Art Of Electronics has a pretty nice lab manual that goes with it....
Do you want to learn about digital hardware - how chips and components are constructed using AND, OR and NOT gates? This will give you a pretty good idea of how hardware works, but the projects will be limited to you, a breadboard and some switches - not terribly exciting stuff.
On the other hand, if you want to learn build simple robots and such, you'll have something neat to do, but at the end you likely still won't have an idea of how a CPU works or GPS chip works.
It is possible to lack these fundamentals and become a decent designer by doing design and filling in the gaps as you go but that is the exception and not the rule. And I have only ever seen this exception happen with the help of a real-life mentor and access to some fancy lab equipment.
It should be possible to formulate the teaching of EE into a more project-oriented manner but you need to realize this would be a nontraditional approach. When I studied for my EE degree we followed a program that has been roughly constant since the 1960s, starts close to the bottom and expands in both directions at the same time. They sprinkle design in the whole time but you do not get to do full designs until junior and senior year.
So finding this book might be tricky because EE is traditionally taught in a completely different way than you would like to approach it.
One thing worth looking into would be a class at a local college taught for either local motivated/gifted HS students or for physics majors which teaches you a bunch of practical EE stuff. The class would be lab oriented. Teach you the use of test equipment, building and debugging circuits, some theory. Objective is to get you into a place where you would have some hope of being able to come up with designs and make them work without having all that "foundation" knowledge. This would help you get to the point described above as you would have your mentor and access to the equipment (at least for the duration of the class-- make the most of it!)
If you are local to Boston the Harvard Extension School used to offer two such courses-- one for digital and one for analog. I believe the courses were designed by the author of "The Art of Electronics" and in fact used that text. (I did not take them but a friend of mine did.)
Neato, you can still take those classes; poke around http://www.extension.harvard.edu/ for:
* PHYS E-123a Laboratory Electronics: Analog Circuit Design * ENSC E-123 Laboratory Electronics: Digital Circuit Design
Happy hacking!
I guess I could n ot worry about details but part of me is genuinely curious about how that stuff works. :)
I've also found the ARRL handbooks to be extremely helpful for getting RF and microwave projects to work without sinking huge amounts of cash on expensive equipment like vector network analyzers.
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Compute...
That is probably a good place to start although some background with physics and differential equations might be helpful.
But, to answer your question. You _need_ The AoE. Read it over and over and over again. Look at Forrest Mims books. Your local technical library should have some.
The most important thing (not mentioned) is your lab. Mims books basically beg you to build his circuits. At minimum, a power supply and multimeter. Consider adding an oscilloscope* and function generator. I have a lab at home, basically everything purchased off of ebay, it's great. You'll need components. These are expensive, I have several bins of components at home. Handy to have when you think of an experiment to perform. If you live in the bay area, go to weirdstuff warehouse. You could film wargames 2 in that place.
If you really don't want to invest in a lab, an alternative (might) be the software package "multisim." Multi-sim lets you hook stuff up in software, and simulate the output. I've heard this tool helps students learn circuit design. But I've never used it.
good luck
* Just learning how an oscillscope works, and how to use it will teach you more than you can imagine :)