Let's investigate the inner-workings of your Arduino. It appears to be a simple machine, but it is not.
Much effort has been invested to make it easy to learn and use. Unfortunately, these good intentions can
mask some of the Arduino's underlying capabilities. You suspected that there was more, much more,
under the simplistic veneer.
You were right.
This book is about how Arduino actually works. The Arduino is a successful composite of design
decisions that has evolved over time. By giving you a more in-depth understanding of the complex
technologies involved, you will see the Arduino "internals" as elements to be changed and re-arranged
to suit your design goals.
This book explains how to build and operate a powerful eight or 16-node Pi2 or Pi3
supercomputer. You will be provided detailed systematic instructions on installing the
Linux/Ubuntu operating system on your PC, and its use in configuring, communicating
with, and ultimately operating your Pi supercomputer.
Initially, you will learn how to write and run a serial and a Message Passing Interface
(MPI) π code on your PC, which is then used as a one-node supercomputer. Armed with
this knowledge, you will then configure a Pi one-node, 4-core supercomputer on which you
subsequently run the previous mentioned MPI π code. Next, you will assemble a two-node,
8-core Pi supercomputer on which, again, you will execute said MPI π code, and finally,
you will construct an eight or 16-node Pi supercomputer, which you will employ to solve
complex calculations incorporating the MPI construct.
This is a book about “hacking” electronics. It is not a formal, theory-based book about electronics.
Its sole aim is to equip the reader with the skills he or she needs to use electronics to make
something, whether it’s starting from scratch, connecting together modules, or adapting existing
electronic devices for some new use.
You will learn how to experiment and get your ideas into some kind of order, so that what
you make will work. Along the way, you’ll gain an appreciation for why things work and the
limits of what they can do, and learn how to make prototypes on solderless breadboard, how
to solder components directly to each other, and how to use protoboard to make more complex
soldered circuits.
You will also learn how to use the popular Arduino microcontroller board, which has become
one of the most important tools available to the electronics hacker. There are over 20 examples of
how to use an Arduino with electronics in this book.
You will also learn how to use the Raspberry Pi (a tiny Linux computer) as a tool for
electronics hacking.
Electronics has changed. This is a modern book that avoids theory you will likely never use
and instead concentrates on how you can build things using readymade modules when they are
available. There is, after all, no point in reinventing the wheel.
Mention FPGAs to most people, and they will either give you a blank stare or think you are
talking about some kind of golf league. To most of us Makers, the term conjures up
thoughts of hardware creativity, exploration, and discovery, but many of you may have
written it off as being way too complicated to even consider for your next project. This
book is for you! It’s all about learning what amazing, easy, and affordable projects you can
construct with field programmable gate array (FPGA) technology. We will be doing this
with hands-on experiments, in a fun and practical way.
This book is not a university textbook providing in-depth studies on hardware description
languages (HDLs), HDL coding techniques, digital logic design theory, or validation methods.
There are many very good resources both online and in textbook form that accomplish
this goal. This will be more a learn-as-you-go experience. You can think of the book as
a road map to a journey of design discovery, and I’ll be your guide. But before we jump in, I
want to give you a little background on the history of FPGAs.
Microcontroller projects are ubiquitous in the hobbyist/hacker/Maker world, and
with good reason. Microcontrollers stand directly in the middle ground between
the hardware world of buttons, motors, and lights and the software world of algorithms,
connectivity, and infinite possibility. Microcontrollers are part computer
and part electrical component. They can also be the metaphorical glue between
the real world and the virtual world.
WHEN I WAS 10 years old, one of my teachers sat me down in front of a computer at
school. Now, this isn’t what you think. I wasn’t about to be inducted into the mysteries of
computer programming, even though it was a BBC Micro (the most programmable and arguably
the most architecturally sophisticated of the British 8-bit microcomputers, on which I
would subsequently cut my teeth in BASIC and assembly language). Instead, I was faced with
a half-hour barrage of multiple choice questions about my academic interests, hobbies and
ambitions, after which the miraculous machine spat out a diagnosis of my ideal future career:
microelectronic chip designer.
This was a bit of a puzzler, not least because what I really wanted to be was a computer game
programmer (okay, okay, astronaut) and there was nobody in my immediate environment
who had any idea what a 10-year-old should do to set him on the path to the sunlit uplands
of microelectronic chip design. Over the next few years, I studied a lot of maths and science
at school, learned to program (games) at home, first on the BBC Micro and then the
Commodore Amiga, and made repeated, not particularly successful, forays into electronics.
As it turned out, and more by luck than judgment, I’d happened on a plausible road to my
destination, but it wasn’t until I arrived at Cambridge at the age of 18 that I started to figure
out where the gaps were in my understanding.
Traditional wisdom requires people using electronics to have at least an EE degree
before they can do anything useful, but in this book the whole subject of electronics is
given the highly respected O’Reilly Cookbook treatment and is broken down into recipes.
These recipes make it possible for the reader to access the book at random, following
the recipe that solves their problem and learning as much or as little about the
theory as they are comfortable with.
While it is impossible to cover in one volume everything in a complex and wideranging
subject like electronics, I have tried to select recipes that seem to come up
most frequently when I talk to other makers, hobbyists, and inventors.
This book was written by Michael Margolis with Nick Weldin to help you explore the
amazing things you can do with Arduino.
Arduino is a family of microcontrollers (tiny computers) and a software creation environment
that makes it easy for you to create programs (called sketches) that can interact
with the physical world. Things you make with Arduino can sense and respond to
touch, sound, position, heat, and light. This type of technology, often referred to as
physical computing, is used in all kinds of things from the iPhone to automobile electronics
systems. Arduino makes it possible for anyone with an interest—even people
with no programming or electronics experience—to use this rich and complex
technology.
Machine learning is an integral part of many commercial applications and research
projects today, in areas ranging from medical diagnosis and treatment to finding your
friends on social networks. Many people think that machine learning can only be
applied by large companies with extensive research teams. In this book, we want to
show you how easy it can be to build machine learning solutions yourself, and how to
best go about it. With the knowledge in this book, you can build your own system for
finding out how people feel on Twitter, or making predictions about global warming.
The applications of machine learning are endless and, with the amount of data available
today, mostly limited by your imagination
This book is about data science: a field that uses results from statistics, machine learning,
and computer science to create predictive models. Because of the broad nature of
data science, it’s important to discuss it a bit and to outline the approach we take in
this book.