Arduino Cookbook (英語) ペーパーバック – 2011/3/29
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
Create your own toys, remote controllers, alarms, detectors, robots, and many other projects with the Arduino device. This simple microcontroller board lets artists and designers build a variety of amazing objects and prototypes that interact with the physical world. With this cookbook you can dive right in and experiment with more than a hundred tips and techniques, no matter what your skill level is. The recipes in this book provide solutions for most common problems and questions Arduino users have, including everything from programming fundamentals to working with sensors, motors, lights, and sound, or communicating over wired and wireless networks. You'll find the examples and advice you need to begin, expand, and enhance your projects right away. * Get to know the Arduino development environment * Understand the core elements of the Arduino programming language * Use common output devices for light, motion, and sound * Interact with almost any device that has a remote control * Learn techniques for handling time delays and time measurement * Use simple ways to transfer digital information from sensors to the Arduino device * Create complex projects that incorporate shields and external modules * Use and modify existing Arduino libraries, and learn how to create your own
Michael Margolis is a technologist in the field of real time computing with expertise in developing and delivering hardware and software for interacting with the environment. He has over 30 years of experience in a wide range of relevant technologies, working with Sony, Microsoft, Lucent/Bell Labs, and most recently as Chief Technical Officer with Avaya.
Amazon.com で最も参考になったカスタマーレビュー (beta) （「Early Reviewer Program」のレビューが含まれている場合があります）
Two kinds of skills are required (or developed) to build projects that use Arduino. One is working with electronics - gathering components, assembling them, and connecting them to the Arduino. The other is simple programming in C. If you have these skills but no experience with Arduino and want a quick start, this book will really help.
Someone with little or no experience in these areas may be able to figure it out from Chapter 1 in particular, and reading the rest carefully. Absolute beginners may find it easier to start with an absolute beginners book. If you buy this book and find it is too deep, keep it, you can always get a simpler book, then come back when you're ready.
The book is not a complete introduction to programming or electronics. The author chose to go broad to introduce his audience to a wide range of possibilities, rather than go very deep on any of them, but there is enough info to make it work, and references to go deeper.
CHANGES FROM ARDUINO COOKBOOK FIRST EDITION
The second edition has been updated to the Arduino 1.0 release. It is expanded to 724 pages, 62 more pages, and a few dollars less. Comparing the books side-by-side, the table of contents were nearly identical. The page numbers are different, owing to expanded text in the second edition, and a few new sections:
Sending Messages Using Low-Cost Tranceivers
Communicating with Bluetooth Devices
Updating Third-Party Libraries for Arduino 1.0
Uploading Sketches Using a Programmer
Replacing the Arduino Bootloader
Reprogram the Uno to Emulate a Native USB Device
...and an Appendix: Migrating to Arduino 1.0, which describes the changes you need to make to older code to work with Arduino 1.0.
If you have the first edition, you may not need to get the second edition. You can download the new source code from the publisher's Web site; you can google "Arduino Software Release Notes" for a list of changes, some of which will require minor changes to your code. The author says that a few newer hardware devices have replaced the ones described in the first edition, but less than one year passed between these two editions, so it would not be a lot. The change to Arduino 1.0 should not require changes to circuits.
The book has 18 chapters containing a total of 204 topics or "Recipes" structured as a Problem, a Solution, Discussion, and See Also sections. Most problems are things people would really want to do: pieces of a project. Solutions consist of C code and libraries, and electronic components. Discussion might be troubleshooting, variations, or more information. See Also provides references for more information - in the book, and URLs for Web-based information or libraries.
The average "recipe" is 3.1 pages long; some are longer than others.
Chapter 1 discusses the software development environment (which is supported for Windows, Mac, and Linux, but comes from Arduino) and very basic information about the board. In introduces simple programming and wiring by way of the common "blinking light" example. In 21 pages, the goal is to get something running quickly more than learning how it all works.
Two chapters explain a bit about C: types of variables and manipulations; mathematical operations for numeric types.
Programs must have input and/or output to be useful. Since this is what makes your solution come alive, this is the bulk of the book, and the most interesting part.
Chapter 4 introduces serial communications - exchanging information with a computer which is connected to the Arduino via USB. This can be used for I/O to a connected computer, as well as debugging your program by sending status messages at various points in the processing.
Chapter 5 discusses digital and analog input and output at a very basic level - controlling output to pins, and reading input from the pins. This is the foundation for all I/O that follows.
A strength of Arduino is the vast array of devices that work without a lot of extra circuitry. Chapter 6 discusses detecting light (or dark), movement, acceleration, vibration, distance, sound, temperature, location, direction, and interface to a computer mouse or a game controller. Chapter 7 discusses visual output using LEDs alone or in a matrix, 7-segment displays, and meters.
Chapter 8 discusses producing movement, vibration, or controlling external devices with relays and solenoids. Chapter 9 shows you how to make sounds - as tones, melodies, playing recordings, controlling a MIDI synthesizer, and making a simple audio synthesizer.
Chapter 10 presents uses of InfraRed devices (your home stereo, your camera, etc) as well as detecting and acting upon InfraRed signals from remotes you already have. Chapter 11 tells you how to use LCD displays available for Arduino to display text, or how to display text on the TV.
Chapter 12 deals with dates and times - make Arduino aware of passing time, or to work as an alarm clock.
Chapter 13 presents I2C and SPI, standards used for exchanging information between a variety of digital devices. Learn to use a standard and you'll find it can be used with other devices. For example, if you want to use a Wii Nunchuck controller to control your Arduino applications, you will need to learn about I2C. You can also use I2C to talk to external memory added to Arduino, get temperature for an external digital temperature measuring device, or display 4 numbers on 7-segment displays using only two wires.
Chapter 14 is about wireless communication. Chapter 15 discusses using an Ethernet shield to Internet-enable your Arduino application.
Chapter 16 discusses the creation and use of code libraries. Chapter 17 dives deeper into the subject of prgramming, especially in handling memory. Chapter 18 is all about using the controller chip hardware in ways not (yet) supported by libraries.
Nine appendices give basic information on building with electronics, troubleshooting, digital and analog I/O pins, and character sets. For those who have code written prior to the release of Arduino 1.0, an appendix is there to help you migrate.
The source code can be downloaded from the publisher's Web site; the URL is on page xv.
You should seriously consider the PDF version of the book, because all of the many links are live, and the PDF is on your computer as handy reference. You can always print pages as needed for reference while building. O'Reilly currently has a good deal for upgrading to a new PDF edition.
The book serves as an introduction to the broadest range of Arduino capabilities of any book I have seen. With a little experience, the book will get you going quickly by demonstrating a working example that may be enough for your purposes. For me, this book is indispensable for Arduino work.
I say "seems" only because I'm a professional programmer, and so I don't know if the book really provides a sufficient primer for someone that has never in their life written a program. I only skimmed the first few chapters looking mostly for any functions, operators and libraries that were Arduino-specific.
I am, however, a complete novice when it comes to Arduino hardware, and I only have a light background in electronics generally. In fact, I'd ordered this book at the same time that I'd ordered my first Arduino board.
For me, the book was quite useful and met my expectations: As a so-called "cookbook", I really didn't expect much in the way of theory or depth. I was only looking for practical projects that would familiarize me with the Arduino and related electronics.
I had given the Arduino Cookbook a quick read while waiting on my Uno's delivery (sadly it was not ordered under my Amazon Prime account). A few days later I sat down with the Arduino itself, some electronics components (a breadboard, a multiline LCD, a couple of stepper motors, some buttons, switches, plus a lot of LEDs, resistors, capacitors and leads), and of course the Cookbook. I was able to get quite a few projects working in the first couple of hours.
All that being said, I do grant that my prior programming and general computer experience made the process a LOT easier.
This may not be the best book for people with absolutely zero programming and electronics knowledge. Then again, leaping into an intersection of those subjects isn't going to be easy regardless of the book. To those people I recommend shopping around for a good beginner's guide to programming as well as a beginner's guide to electronics (in addition to this book). There's no need to spend like crazy: Buy used. The programming and electronics concepts as related to the Arduino are older than me (in computer terms I'm ancient), and so even an older text can give you a solid background.
In all, I'd say that buying this book was money well spent for me. If you're tight on cash and low on knowledge, you might be better off with programming and electronics books for the general theory, and web-based Arduino examples for the practice.
What's that mean for you? TONS of information packed into 700 pages! I didn't realize it is a college textbook when I ordered it. Since my wife also gave me an Arduino, and I'm a college student, this is perfect for me, especially since I need to be able to mentor my son in this area and will have to answer many questions that I don't know. More importantly, he's going to want to know how to take his basic circuits to more advanced levels, and this gives us what we need to do that without getting bogged down in academia.
Also, the source code for the sketches (Arduino source code) is available for download at the O'Reilly site. The URL is in the book.
My only wish is for a section devoted to the Mega. Maybe the next version.
The Arduino caught my eye one day while browsing the web so I got an Arduino Uno.
First I read some of the basic Arduino books like "Getting Started with Arduino", "Programming Arduino: Getting Started with Sketches" and others. I made the LEDs blink, endlessly rotated a servo or two. Cool, now what?
I got a copy of "Arduino Cookbook" and a whole new world opened up for me.
I'm not sure where the other books are, probably on a bookshelf at home somewhere. But I always know where my dog-eared, highlighted copy of the Cookbook is. For every project I start to research it has become the first go-to source.
My first two-wheeled robot with ultrasonic sensors to avoid obstacles morphed into a roving IR transmitter/receiver (causing my lovely bride no small amount of angst when the TV would suddenly and without apparent reason to change channels or seemingly turn itself off and on). Now there are two Arduino Unos that communicate over simple RF transmitters/receivers. I send commands from my laptop to the attached Uno connected through a serial port and that Uno sends those commands via a 433mHz transmitter to the mobile Uno which acquires the move commands with its RF receiver and moves accordingly.
Buy it, read it, browse through it and keep it close at hand. The Cookbook is the initial go-to for each project and a great source of thought stimulation for what kinds of things are possible.
His explanations of the code and hardware setups are the best I've seen.
For example, take the latter chapters on timers and interrupts. I had downloaded the 400-500 page Atmel datasheets and spent many hours unsuccessfully trying to understand how to use these features -- to no success. Margolis gives us a clear overview of their operation and explains the essential aspects of using them, with practical code examples that you can copy for your projects. He tells us what we need to know to get the job done, explaining every essential fact, and omits obfuscating details, of which there are many.
In contrast, the datasheets covers them down to gate and register levels, about 50-60 pages of detail, without any helpful advice on what-is/what-isn't important and nothing about how it all comes together in the big picture of a working code example. I've never read a description of timers and interrupts for any CPU that was as clear, helpful, complete and to the point as what he provides.
It's actually a pleasure to read ALL his chapters. In over 600 pages there's no wasted motion or missing ingredients. The number of topics/projects is shocking -- that one person could master it all and write so clearly and completely about them.
Every chapter works both as a reference for the topic at hand and has useful, fully workable, code and circuit layout examples. I'm not going to list the 18 chapter titles here as they are available elsewhere. Each topic is fully developed and receives the same evenhanded and consistent coverage. He starts with the simplest working example, then adds to it to build a more useful project. Like Einstein said of Physics, "be as simple as possible, but no simpler."
The Arduino Cookbook -- complete and jam-packed with goodies you will find helpful and inspiring as it is -- is not the first book you should get.
There are a handful of basic, getting-started Arduino books on Amazon. These, in my opinion, are super for showing you pictures and lots of diagrams to build the specific projects that are included. But they fail as references and really do not explain what the code is doing in a helpful way. If you want to go beyond, you're often left to your own devices. But these ARE very helpful in helping you install the Arduino software, connecting to the board itself, and coding, downloading and running the code on the board.
The Arduino Cookbook covers these start-up topics briefly, but his momentum is to move on to more compelling topics and to projects that YOU can create -- with the additional and necessary info and examples you need to have.
You also should have some c/c++ programming experience. The "Arduino language" is c++ with some additional elements and simplifications (in libraries and macros) and some features not needed for a microprocessor. You can download plenty of c/c++ documentation -- you will need it.
Since reviews seem to demand a CONS section, I'll add that he should have included a few pages about the Atmel microprocessors. For example, the types and amounts of memory is not in the book. (Although he does give us code that displays the amount of available RAM.) This is a trivial complaint! The answer is the ATmega382 has 32KB of flash (where your program is downloaded to and runs from), 1KB of EEPROM (the "hard drive," to semi-permanently store data even when powered off), and 2KB of RAM (for variables, stack, and any data that changes while the program runs). The Arduino MEGA2560 has 256KB, 4KB, and 8KB, respectively. I also wish that he gave us a fuller description of the pins and their many uses. Otherwise -- perfecto!
"The Arduino Cookbook" is THE best Arduino book. Get it if you have the slightest notion of building any project that's more than just a literal copy of something from another books.