- Paperback: 474 pages
- Publisher: Maker Media, Inc; 1 edition (February 17, 2014)
- Language: English
- ISBN-10: 1449355781
- ISBN-13: 978-1449355784
- Product Dimensions: 7.5 x 1 x 9.2 inches
- Shipping Weight: 1.8 pounds (View shipping rates and policies)
- Average Customer Review: 4.5 out of 5 stars See all reviews (73 customer reviews)
Amazon Best Sellers Rank:
#100,189 in Books (See Top 100 in Books)
- #7 in Books > Engineering & Transportation > Engineering > Electrical & Electronics > Electronics > Sensors
- #15 in Books > Engineering & Transportation > Engineering > Electrical & Electronics > Circuits > Integrated
- #17 in Books > Engineering & Transportation > Engineering > Electrical & Electronics > Electronics > Semiconductors
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
AVR Programming: Learning to Write Software for Hardware 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
From the Publisher
|Make: Getting Started with Arduino 3rd edition||Make: Arduino Bots and Gadgets||Making Things Talk, Second Edition||Make: AVR Programming||Maker Media Getting Started with Arduino Kit|
|Sensors used||Switch, photoresistor, temperature, humidity||Switch, ultrasonic distance||Switch, flex resistor, force-sensing resistor, photoresistor, accelerometer, phototransistor, gas sensor, voltage monitor, infrared distance sensor, ultrasonic distance, GPS, digital compass, webcam, RFID, temperature||Switch, capacitive, photoresistor, piezo, temperature||Switch, photoresistor|
|Programming languages used||Arduino, Processing||Arduino, Processing, Java, Python||Arduino, Processing, PHP||C, Python||Arduino|
|Other highlights||Designed for beginners||Teaches how to reuse and repurpose materials for building robots||X10, MIDI, XBee, web programming||Lasers, audio/music output, radio transmission, interrupts, servo motors, stepper motors, EEPROM storage||Designed for beginners|
Unlock the full range of power and speed of Atmel's chips
About the Author
Elliot is a Ph.D. in Economics, a former government statistician, and a lifelong electronics hacker. He was among the founding members of HacDC, Washington DC's hackerspace, and served as president and vice president for three years. He now lives in Munich, Germany, where he works for an embedded hardware development firm that has, to date, exactly one employee (and CEO). This book came out of his experiences teaching AVR programming workshops at HacDC.
If you are a seller for this product, would you like to suggest updates through seller support?
Top customer reviews
But many of the projects I've conceived require only one or two I/O ports, and even though Arduino boards are comparatively cheap, it still seems a waste to leave 30 bucks worth of hardware inside a project that does little more than rotate a servo or blink a light in response to an input. I get things made, and then I am loathe to take them apart even though I need the board for another project.
A couple of years ago I decided that what I really wanted was to get "much closer to the metal" by breadboarding the projects to test, then wiring them up permanently on perfboard, or as "dead bugs" powered by drycell batteries. Most of the basic Atmel/AVR chips are around a buck and most of my projects don't need more than five bucks worth of other components, so if I could wire and program AVRs directly, avoiding the cost of the Arduino board, I could make up projects that I could maintain permanently, or give away with little remorse about the price of the parts.
In my early attempts I bought a USBtinyISPkit from LadyAda and made a start following her tutorials at ADAFRUIT. Ms. Fried and her team do a great job, but I didn't have a lot of free time to hunt down internet resources to help me develop the projects I had in mind. I wanted a nice reference book that would hold my hand through the process of setting up AVRs and modifying my Arduino projects, showing me the tool kit all in one place without the need to fumble around on the 'net for answers to basic questions. The books on the market at the time were aimed at engineers, above my knowledge level and beyond my need. I put the project on hold.
But when this book was announced, it seemed to be exactly what I was looking for. I ordered it right away and then waited impatiently for spring break so I could dive into it.
I am not disappointed. This book is a great guide. I quickly was able to blink a simple "hello world". I followed Mr. William's instructions to use my Arduino as a programmer. Then I repeated the process using my AdaFruit programmer.
Though I already had some experience with Arduino, Basic Stamp, and Picaxe microcontrollers, I don't think any of that experience was necessary for me to get rolling with the AVR using this book as a guide.
As a school teacher, I frequently try to put myself in the place of may students and while AVR programming is a bit above the grade level I teach, I am fairly confident that any motivated beginner able to pass algebra could dive straight into AVR programming following this guide. Mr. Williams does not assume a lot of previous knowledge, but on the other hand, he also doesn't insult the intelligence of more advanced experimenters. If you have programming and electronics experience, but haven't messed with microcontrollers, I think you will still find this book useful.
Moreover, if you are interested in learning to program but become bored with the sorts of projects you find in a straight ahead programming text, you may find that the blinky light, buzzy beeper, and whirring motor sorts of projects in this book are a bit more engaging than the manipulation of text strings and conversion of temperature tasks that live on screen alone.
I have along way to go to become a true master of microcontrollers, and a complex work life frequently causes me to put aside my hobby projects for weeks at a time. But so far, this book is proving to be an outstanding guide to AVR programming.
For someone like myself with no microcontroller experience, some general electronics knowledge and lots of programming experience, this book hit the spot. A couple of pointers:
- I got the USBTiny programmer from Sparkfun, which works fine with ATmega168's. Just jumper the corresponding pins.
- I started with the Arduino IDE, which works as mentioned in the book, but requires some fiddling with boards.txt to get USBTiny to work with atmega's. In the end it all turned out to be more trouble than it's worth. How it builds and flashes is pretty involved and far from transparent. Better to go with WinAVR as mentioned in the book, and just edit your code with good old Emacs. The Arduino IDE gets all wrapped around the axle if you're messing with different processor speeds and baud rates. I never got the USART working right at anything but 9600 baud at 1MHz using the Arduino IDE. It's much easier to just edit the Makefiles, which are very well documented. Also, if you're messing with different AVR chips, you'll want to go this route: the ATTiny chips don't have a USART and the USART.c program doesn't compile for them. You just remove that from the Makefile for ATTiny projects and you're good-to-go. I have no idea what the other reviewer was talking about with WinAVR not working when the Arduino IDE was previously installed on a Windows PC - that was exactly my setup and it worked right away, subject to the following nit:
- the avrdude argument -p should be "m168" not "m168p" as stated.
- I ran through most of the examples to get going - they pretty much worked as expected.
- When I started messing with the ADC, I realized how slow the internal one was and went for a separate chip. The MCP3004 works a lot faster and is fairly easy (and instructive) to interface via SPI. Again, the book does a great job at explaining SPI, and that knowledge translated well.
- Another point to note is that some of the projects don't work right if you're connected to the programmer. Rather than plugging and unplugging all the jumpers each time, I attached the programmer to a breadboard with a ZIF socket, and had a separate breadboard and ZIF socket for running, and just shuttled the chip between the two.
- Sometimes the book only shows a photo of the breadboard and not the actual wiring diagram. If you have to pick one, the wiring diagram is more clear IMO.
I started this about 3-4 weeks ago from ground zero and have gotten through almost the entire book. At this point I feel very confident about working with AVR MCU's going forward.
I like it because it provides a positive primer while not going to such detail that some theoretical person can read it nodding their head all the time.
As a Primer, I would award this 5 stars but as a shelf resource I would give this 3.5 (hence the 4 start rating. I have noticed that the wording is not well edited and thus you have to re-read and fact check certain paragraphs. The code relies on you knowing and understanding libraries well. If you do not, get ready for some homework (which lets face it, you are programming an AVR, you HAVE TO KNOW libraries. You will also be required to understand AVR register programming such as the book does not teach well. Reference datasheets for the chip you are using. Ex: [search for the Atmel 328P COMPLETE datasheet (not the summary) on google] Also,...The book is consistently inconsistent. The author even notes in a few places that this is done on purpose to force a reader into studying outside material. Google comes in handy here and it is not a deal breaker. Again, Elliot is pushing you to use the internet instead of spoon feeding you literally everything. If you have determination and staying power and know how to work through these types of books and speedbumps found there-in, then go get it. If you are looking for a primer that will introduce you to the lingo and various use subjects, go get it. If you expect this to be a single source reference, think again!
Most recent customer reviews
english with a ton of example programs in C.