- You'll save an extra 5% on Books purchased from Amazon.ca, now through July 29th. No code necessary, discount applied at checkout. Here's how (restrictions apply)
Arduino + Android Projects for the Evil Genius: Control Arduino with Your Smartphone or Tablet Paperback – Dec 6 2011
|New from||Used from|
Special Offers and Product Promotions
Frequently Bought Together
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
About the Author
Dr. Simon Monk has a degree in Cybernetics and Computer Science and a PhD in Software Engineering. He spent several years as an academic before he returned to industry, co-founding the mobile software company Momote Ltd. Dr. Monk has been an active electronics hobbyist since his early teens and is a full-time writer on hobby electronics and open source hardware. He is the author of numerous electronics books, including "Programming the Raspberry Pi: Getting Started with Python; Programming Arduino: Getting Started with Sketches; 30 Arduino Projects for the Evil Genius; Arduino + Android Projects for the Evil Genius", and "Practical Electronics for Inventors", Third Edition (co-author).
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
Four ways to interface Android to Arduino
Good step-by-step instructions for building hardware
No explanation for Android app code
Three of four interface styles require a wire connection between Arduino and Android
Inadequate explanation of workings of the overall project
The projects in this book are more interesting than the predecessor, 30 Arduino Projects for the Evil Genius. Part 1 of the book has an assortment of interesting Android+Arduino projects on a variety of subjects. Part 2 is dedicated to home automation. I have the sense that the book was originally going to be dedicated to home automation, because one of the chapters in the home automation section refers to Chapter 7 as Chapter 1. For a full list of projects with a brief description, visit the book's site at [...] (change "spot" to "." and don't forget the www or it won't work).
The most valuable thing about this book is four useful interfaces that allow an Android device to control an Arduino. They are: bluetooth, wired USB, wired sound port (you don't actually hear it), and wired ethernet. Realistically, Android as a controller is best in wireless form, and only the bluetooth interface does that. A TV Remote design that requires plugging the Arduino into the Android via a USB cable is just clunky. The author could have presented Wifi and Zigbee, both of which are wireless and should work with most Android tablets and Arduinos with additional hardware; Zigbee requires an IOIO plug-in for the Android.
Another valuable idea in this book is how to add an Arduino processor to a USB host controller shield that has a prototyping area (such as SparkFun's USB Host Shield). Using it requires moving the processor to a full Arduino board temporarily to program it, but has the benefit of access to USB slave devices and low cost. This device is used in four of the projects.
All projects focus on stepwise instructions for building the hardware, including photos, and they are good as far as they go. This is handy if you cannot read schematics.
For all projects, there are three key areas of technology to learn: Arduino hardware and ancillary components; Arduino software; and Android app software. My goal is to learn how to design projects using the interface ideas, not necessarily to build these projects in particular. But the explanations of how any project works are brief, and mainly discuss how to build the Arduino hardware, not much about how it works. A little about the Arduino software is discussed. There is no explanation for Android app code at all, contrary to what the Introduction says on page xvii.
In theory, all explanations for how the project works should be found in the Theory section. In practice, essential details are scattered around various other sections, or are missing. I am experienced both in hardware and software yet struggled at times to make sense of the works as a whole. Sometimes there is an overview of how it works, but not always.
I had trouble finding instructions on using a required library for the project in Chapter 1. Instead of telling you in the part of Chapter 1 where you install the IDE, it is in Step 8. Details I am looking for are never where I expect to find them in the book, and require that you read the entire chapter to find them. But if you do read the entire chapter, it appears everything you need to know will be revealed, eventually.
When compiling one of the projects, it compiled cleanly, but then I got this puzzling error, which is not discussed in the book:
avrdude: stk500_getsync(): not in sync: resp=0x00
Whenever you get puzzling errors (of any sort), put the exact text into google, and you may find some help. This message is what you see when there is some kind of communications error between PC and Arduino - disconnected, wrong board selected, wrong comm port, etc. I eventually figured out that for whatever reason, on my system the Arduino board is COM5, whereas the book said it would be COM4 for Windows. Even more mysterious is that when I first encountered this problem - reading the first book - the book said it should be COM3, but COM4 was what worked then. I wonder why he says COM3 in the first book, but COM4 in the this one? And for that matter, why the COM port changed on me...? I think the book could have a brief troubleshooting section that includes this very common error message. I'm experienced, but not with Arduino, so this was not obvious to me.
There is a primer on Android apps as an Appendix, and it includes a sample application. Unfortunately, the Android apps used in the project chapters are not discussed at all in this appendix (or anywhere). The author says he does not explain them because Android programming is complex. That may be, but it is an essential part of these projects, and I would have preferred that he explained them at least at a basic level.
WHERE'S THE ANDROID SOURCE CODE?
The Android app source code is a bit hard to find. The author added this comment to a different review of this book:
"I would point out that as well as the APKs, all the source for the Android apps is open source and available from www spot dangerouslymad spot com - follow the downloads link and it will take you off to [...]". [Note: I changed "." to "spot" to preserve URLs.]
The download link he's referring top is not on that site, but rather at www spot duinodroid spot com, and labeled "The source code is all here". When you click it, you get to a different page labeled "THE SOURCE CODE IS HERE, YOU JUST NEED TO CLICK ON THE SOURCE TAB AND THEN BROWSE." A zip of the source code is on the Download tab, not the Source tab. Click on Download, then click on the zip file and it should download.
[UPDATE 2/15/2012: The author explains that the code IS in the source tab by way of a subversion repository (see the comment I posted to this review if you're not familiar with this form of repository!), and the zip file under Downloads is for convenience. It would be more convenient yet if this zip file was on the book's Web site with the Android source code for the book.]
Android source code quality is... well, let me quote the author from the subversion repository page: "I feel I should apologize for the Android code. Its not as clean as it should be. I ran out of time, but if anyone wants to refactor / improve, please let me know."
As with the previous book, this book would have benefited from a good editorial review, and a thorough technical review. True, the author does present errata on his Web site (as with the previous book), but most Arduino books do not require online errata, and the errata so far does not include a mention of the required MeetAndroid library.
The photos vary in quality. They are low-quality black and white. Some are clear enough; others are hard to figure out. For example, it is nearly impossible to distinguish between the breadboard and a socket that has been inserted in Chapter 3 photos. Some of the hand-wiring is very messy, though I suppose appearance is second to function.
As a Benign Subgenius, I tire quickly of the Evil Genius theme, and there is even more than in the first book, but perhaps you will be amused by it. I want to know what the project does, but this is mixed in with the fluff I want to skip, and that annoys me.
I wish all of the components of the design (hardware, Arduino source, Android source) were thoroughly explained, along with by a system perspective of how it works - who does what, and how components interact when it's not obvious. Some projects have some of this, some don't. In my opinion, the book would be more useful if it either was considerably longer (to explain the missing details), or had far fewer projects, to allow for more explanation.
I wanted to give this book a 4 rating ("I like it") for the interesting projects, but by the time I compiled a list of problems, it brought my opinion down to 3 ("It's ok"). The book does provide very useful information, but it is also missing critical information, and is not as clear as it could be. In sum, I like the content, but not the style or organization, and that comes down to a matter of personal taste. YMMV.
Please note that this book focuses almost entirely on the Arduino side of things. It shows wiring it up, sketches, electronics,etc, in great detail.
For the android ... it does not teach you any programming. It just shows to download .apk to interface with projects.
So for me, (A complete Android beginner) (Lots experience with Arduino) - this book was a mixed bag. They are great projects, but focus on showing the arduino, not the android side of things.
For instance -- the temp reading gauge. Building a temp reading for arduino is trivial... which is what is documented in the book. The slick output to read on the phone is downloadable .apk, with no discussion of gui building,etc.
This is a great arduino book, but don't expect it to teach many specifics about android.
Its a serious disapointment. There is very little about Android in this book. It covers the Adruino side fairly well, but each project is a combination of part Android and part Arduino, and the Android side is essentially missing.
The book stated repeatidly that covering Android is too complex and would take its own book. OK, but why then does this book's title claim to do exactly this? The body does not deliver. A typical project will show 30 lines of Java/Dalvik and say "download the rest" with little to no explaination as to what the code does.
The author makes some strange engineering decisions, such as using an encoded audio format to transfer data between the Android and Arduino, but does not explain why this choice was made. The very first project uses Bluetooth to transmit data, and both the Andriod phone/table and Adruino boards have USB. One might expect a simple USB data connection rather than the strange audio encoding.
The book appears to have been quickly written and sloppily edited. For example, the section about "temperature logger" talks about the IC for the ultrasonic range finder, which is the topic of the next chapter. Clearly a bit too much copy and paste of the text.
The theory sections of each project, which is often a key part of each chapter in other books in this series, are very thin and don't discuss either theory or the rationale behind the engineering decisions in the book.
The book contains only a small number of projects, and four of them use exactly the same Arduino controller board. This might be a good engineering decision, but the board, the "home automation controller" is an ugly circuit with all sorts of hand wiring. If you are going to reuse a basic circuit, how about laying out a PCB and maybe selling the board through a distributor such as SparkFun or AdaFruit.
The home automation section is somewhat interesting, but does require the user to have some basic knowledge of AC circuits and electrical safety. One wonders why he doesn't advocate using the internet shield with the Arduino, design a web page to be hosted on the Arduino, and then use the Android device to access the IP address of the Arduino and change things accordingly. No Android programming required.
I may tackle one or two projects in this book, but I doubt that I'm going to do a lot with it...sorry if I have spoiled anyone's fun.
The heart of this book (besides the wryly written references to evil geniuses and their minions) is learning to use the (FREE!) Android Open Accessory Development Kit. While this may be be daunting to absolute beginners, the author's clear and friendly style is an eye-opener for electronic hobbyists who want to use their Android phones as a simple user interface to home made electronic wizardry.
In fact beginners can use this book, as long as they can solder and have some experience building kits, because every project is completely described and clearly documented. Parts are not hard to find or expensive, thanks to online auction and supply sites. And programming is not a problem because all the code can be downloaded from the book's companion web site.
Speaking of the book's web site, remember to check for any errors in your copy of the book by visiting the web -- no matter how fine you make the sieve, some glitches are bound to creep into a book of this nature -- better to know about any typos or component errors before you begin.
One of the clever approaches to Arduino circuitry in the book is the "Droid Accessory Base" -- this is a repurposed standard Arduino "shield" (accessory circuit board). It enables you to program the microcontroller chip on your normal Arduino Development Board, and then move the chip to the Droid Accessory Base which can be used in most of the Android Peripheral projects.
The second half of the book is dedicated to a handful of home automation projects using a low-cost Android tablet. Mainly because this type of tablet does not support the Android Open Accessory standard, the author has come up with a special audio link module, essentially a low speed modem. This uses the tablet headphone jack to send serial messages to the Arduino.
The best thing about this book is the author's realistic and encouraging discussions of how to build each project -- this is an author who really seems to care about your experience and who earnestly wants you to succeed. In fact you can even contact the author through the official Arduino discussion boards as well as through the book's associated web site.
Look for similar items by category
- Books > Computers & Technology > Computer Science > Artificial Intelligence > Robotics
- Books > Computers & Technology > Computer Science > Circuitry > Microelectronic Devices
- Books > Computers & Technology > Hardware > Microprocessors & System Design > Microprocessor Design
- Books > Computers & Technology > Mobile Phones, Tablets & E-Readers > Handheld & Mobile Devices
- Books > Computers & Technology > Mobile Phones, Tablets & E-Readers > Programming & App Development
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Professional & Technical > Engineering > Computer Technology > Robotics & Automation
- Books > Professional & Technical > Engineering > Electrical & Electronics > Digital Design
- Books > Professional & Technical > Engineering > Electrical & Electronics > Electronics
- Books > Professional & Technical > Engineering > Mechanical > Robotics
- Books > Science & Math
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Electronics > Computers & Accessories > Cables & Accessories > Projector Accessories