Muutke küpsiste eelistusi

Exploring Arduino: Tools and Techniques for Engineering Wizardry 2nd edition [Pehme köide]

  • Formaat: Paperback / softback, 512 pages, kõrgus x laius x paksus: 234x188x28 mm, kaal: 975 g
  • Ilmumisaeg: 05-Dec-2019
  • Kirjastus: John Wiley & Sons Inc
  • ISBN-10: 1119405378
  • ISBN-13: 9781119405375
  • Pehme köide
  • Hind: 37,95 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 44,65 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Raamatukogudele
  • Formaat: Paperback / softback, 512 pages, kõrgus x laius x paksus: 234x188x28 mm, kaal: 975 g
  • Ilmumisaeg: 05-Dec-2019
  • Kirjastus: John Wiley & Sons Inc
  • ISBN-10: 1119405378
  • ISBN-13: 9781119405375
The bestselling beginner Arduino guide, updated with new projects!

Exploring Arduino makes electrical engineering and embedded software accessible. Learn step by step everything you need to know about electrical engineering, programming, and human-computer interaction through a series of increasingly complex projects. Arduino guru Jeremy Blum walks you through each build, providing code snippets and schematics that will remain useful for future projects. Projects are accompanied by downloadable source code, tips and tricks, and video tutorials to help you master Arduino. You'll gain the skills you need to develop your own microcontroller projects!

This new 2nd edition has been updated to cover the rapidly-expanding Arduino ecosystem, and includes new full-color graphics for easier reference. Servo motors and stepper motors are covered in richer detail, and you'll find more excerpts about technical details behind the topics covered in the book. Wireless connectivity and the Internet-of-Things are now more prominently featured in the advanced projects to reflect Arduino's growing capabilities. You'll learn how Arduino compares to its competition, and how to determine which board is right for your project. If you're ready to start creating, this book is your ultimate guide!

  • Get up to date on the evolving Arduino hardware, software, and capabilities
  • Build projects that interface with other devices—wirelessly!
  • Learn the basics of electrical engineering and programming
  • Access downloadable materials and source code for every project

Whether you're a first-timer just starting out in electronics, or a pro looking to mock-up more complex builds, Arduino is a fantastic tool for building a variety of devices. This book offers a comprehensive tour of the hardware itself, plus in-depth introduction to the various peripherals, tools, and techniques used to turn your little Arduino device into something useful, artistic, and educational. Exploring Arduino is your roadmap to adventure—start your journey today!

Introduction xxv
PART I Arduino Engineering Basics
1(66)
1 Getting Started and Understanding the Arduino Landscape
3(20)
Exploring the Arduino Ecosystem
4(11)
Arduino Functionality
5(2)
The Microcontroller
7(1)
Programming Interfaces
8(1)
Input/Output: GPIO, ADCs, and Communication Busses
9(1)
Power
9(2)
Arduino Boards
11(4)
Creating Your First Program
15(6)
Downloading and Installing the Arduino IDE
16(1)
Running the IDE and Connecting to the Arduino
17(1)
Breaking Down Your First Program
18(3)
Summary
21(2)
2 Digital Inputs, Outputs, and Pulse-Width Modulation
23(24)
Digital Outputs
24(7)
Wiring Up an LED and Using Breadboards
24(1)
Working with Breadboards
24(1)
Wiring LEDs
25(4)
Programming Digital Outputs
29(1)
Using For Loops
30(1)
Pulse-Width Modulation with analogWrite()
31(4)
Reading Digital Inputs
35(7)
Reading Digital Inputs with Pull-Down Resistors
35(3)
Working with "Bouncy" Buttons
38(4)
Building a Controllable RGB LED Nightlight
42(4)
Summary
46(1)
3 Interfacing with Analog Sensors
47(20)
Understanding Analog and Digital Signals
48(3)
Comparing Analog and Digital Signals
48(1)
Converting an Analog Signal to Digital
49(2)
Reading Analog Sensors with the Arduino: analogRead()
51(9)
Reading a Potentiometer
51(5)
Using Analog Sensors
56(4)
Using Variable Resistors to Make Your Own Analog Sensors
60(6)
Using Resistive Voltage Dividers
61(3)
Using Analog Inputs to Control Analog Outputs
64(2)
Summary
66(1)
PART II Interfacing with Your Environment
67(132)
4 Using Transistors and Driving DC Motors
69(30)
Driving DC Motors
70(16)
Handling High-Current Inductive Loads
71(1)
Using Transistors as Switches
72(1)
Using Protection Diodes
73(1)
Using a Secondary Power Source
74(1)
Wiring the Motor
74(2)
Controlling Motor Speed with PWM
76(2)
Using an H-Bridge to Control DC Motor Direction
78(2)
Building an H-Bridge Circuit
80(2)
Operating an H-Bridge Circuit
82(4)
Building a Roving Robot
86(11)
Choosing the Robot Parts
87(1)
Selecting a Motor and Gearbox
87(1)
Powering Your Robot
87(2)
Constructing the Robot
89(3)
Writing the Robot Software
92(4)
Bringing It Together
96(1)
Summary
97(2)
5 Driving Stepper and Servo Motors
99(26)
Driving Servo Motors
100(5)
Understanding the Difference between Continuous Rotation and Standard Servos
100(1)
Understanding Servo Control
101(3)
Controlling a Servo
104(1)
Building a Sweeping Distance Sensor
105(4)
Understanding and Driving Stepper Motors
109(8)
How Bipolar Stepper Motors Work
111(2)
Making Your Stepper Move
113(4)
Building a "One-Minute Chronograph"
117(7)
Wiring and Building the Chronograph
117(2)
Programming the Chronograph
119(5)
Summary
124(1)
6 Making Sounds and Music
125(16)
Understanding How Speakers Work
126(3)
The Properties of Sound
126(2)
How a Speaker Produces Sound
128(1)
Using tone() to Make Sounds
129(7)
Including a Definition File
129(1)
Wiring the Speaker
130(3)
Making Sound Sequences
133(1)
Using Arrays
133(1)
Making Note and Duration Arrays
134(1)
Completing the Program
134(2)
Understanding the Limitations of the tone() Function
136(1)
Building a Micro Piano
136(3)
Summary
139(2)
7 USB Serial Communication
141(30)
Understanding the Arduino's Serial Communication Capabilities
142(6)
Arduino Boards with an Internal or External FTDI or Silicon Labs USB-to-Serial Converter
143(3)
Arduino Boards with a Secondary USB-Capable ATmega MCU Emulating a Serial Converter
146(1)
Arduino Boards with a Single USB-Capable MCU
147(1)
Arduino Boards with USB-Host Capabilities
147(1)
Listening to the Arduino
148(4)
Using print Statements
148(2)
Using Special Characters
150(2)
Changing Data Type Representations
152(1)
Talking to the Arduino
152(9)
Configuring the Arduino IDE's Serial Monitor to Send Command Strings
152(1)
Reading Incoming Data from a Computer or Other Serial Device
153(1)
Telling the Arduino to Echo Incoming Data
153(1)
Understanding the Differences between Chars and Ints
154(2)
Sending Single Characters to Control an LED
156(2)
Sending Lists of Values to Control an RGB LED
158(3)
Talking to a Desktop App
161(8)
Installing Processing
162(1)
Controlling a Processing Sketch from Your Arduino
163(3)
Sending Data from Processing to Your Arduino
166(3)
Summary
169(2)
8 Emulating USB Devices
171(12)
Emulating a Keyboard
173(5)
Typing Data into the Computer
173(4)
Commanding Your Computer to Do Your Bidding
177(1)
Emulating a Mouse
178(4)
Summary
182(1)
9 Shift Registers
183(16)
Understanding Shift Registers
184(8)
Sending Parallel and Serial Data
185(1)
Working with the 74HC595 Shift Register
186(1)
Understanding the Shift Register pin Functions
186(1)
Understanding How the Shift Register Works
187(2)
Shifting Serial Data from the Arduino
189(3)
Converting Between Binary and Decimal Formats
192(1)
Controlling Light Animations with a Shift Register
192(5)
Building a "Light Rider"
192(2)
Responding to Inputs with an LED Bar Graph
194(3)
Summary
197(2)
PART III Communication Interfaces
199(74)
10 The PC Bus
201(22)
History of the PC Bus
202(1)
I2C Hardware Design
203(5)
Communication Scheme and ID Numbers
203(3)
Hardware Requirements and Pull-Up Resistors
206(2)
Communicating with an PC Temperature Probe
208(6)
Setting Up the Hardware
208(2)
Referencing the Datasheet
210(2)
Writing the Software
212(2)
Combining Shift Registers, Serial Communication, and PC Communications
214(7)
Building the Hardware for a Temperature Monitoring System
214(1)
Modifying the Embedded Program
215(3)
Writing the Processing Sketch
218(3)
Summary
221(2)
11 The SPI Bus and Third-Party Libraries
223(24)
Overview of the SPI Bus
224(1)
SPI Hardware and Communication Design
225(2)
Hardware Configuration
225(2)
Communication Scheme
227(1)
Comparing SPI to PC and UART
227(1)
Communicating with an SPI Accelerometer
228(13)
What Is an Accelerometer?
229(2)
Gathering Information from the Datasheet
231(2)
Setting Up the Hardware
233(2)
Writing the Software
235(1)
Installing the Adafruit Sensor Libraries
236(1)
Leveraging the Library
237(4)
Creating an Audiovisual Instrument Using a 3-Axis Accelerometer
241(5)
Setting Up the Hardware
242(1)
Modifying the Software
242(4)
Summary
246(1)
12 Interfacing with Liquid Crystal Displays
247(26)
Setting Up the LCD
248(3)
Using the LiquidCrystal Library to Write to the LCD
251(7)
Adding Text to the Display
252(2)
Creating Special Characters and Animations
254(4)
Building a Personal Thermostat
258(13)
Setting Up the Hardware
258(3)
Displaying Data on the LCD
261(3)
Adjusting the Set Point with a Button
264(1)
Adding an Audible Warning and a Fan
265(1)
Bringing It All Together: The Complete Program
266(4)
Taking This Project to the Next Level
270(1)
Summary
271(2)
PART IV Digging Deeper and Combining Functions
273(64)
13 Interrupts and Other Special Functions
275(20)
Using Hardware Interrupts
276(12)
Knowing the Tradeoffs Between Polling and Interrupting
277(1)
Ease of Implementation (Software)
277(1)
Ease of Implementation (Hardware)
277(1)
Multitasking
278(1)
Acquisition Accuracy
278(1)
Understanding the Arduino Hardware Interrupt Capabilities
278(1)
Building and Testing a Hardware-Debounced Button Interrupt Circuit
279(1)
Creating a Hardware-Debouncing Circuit
280(4)
Assembling the Complete Test Circuit
284(1)
Writing the Software
285(3)
Using Timer Interrupts
288(2)
Understanding Timer Interrupts
288(1)
Getting the Library
289(1)
Executing Two Tasks Simultaneously(ish)
289(1)
Building an Interrupt-Driven Sound Machine
290(4)
Sound Machine Hardware
291(1)
Sound Machine Software
291(3)
Summary
294(1)
14 Data Logging with SD Cards
295(42)
Getting Ready for Data Logging
296(8)
Formatting Data with CSV Files
297(1)
Preparing an SD Card for Data Logging
297(1)
Formatting Your SD Card Using a Windows PC
298(2)
Formatting Your SD Card Using Mac OS
300(2)
Formatting Your SD Card Using Linux
302(2)
Interfacing the Arduino with an SD Card
304(13)
SD Card Shields
304(3)
SD Card SPI Interface
307(1)
Writing to an SD Card
307(5)
Reading from an SD Card
312(5)
Real-Time Clocks
317(10)
Understanding Real-Time Clocks
317(1)
Communicating with a Real-Time Clock
317(1)
Using the RTC Arduino Third-Party Library
318(1)
Using a Real-Time Clock
319(1)
Installing the RTC and SD Card Modules
319(1)
Updating the Software
320(7)
Building an Entrance Logger
327(8)
Logger Hardware
328(1)
Logger Software
329(5)
Data Analysis
334(1)
Summary
335(2)
PART V Going Wireless
337(114)
15 Wireless RF Communications
339(24)
The Electromagnetic Spectrum
340(6)
The Spectrum
342(1)
How Your RF Link Will Send and Receive Data
343(3)
Receiving Key Presses with the RF Link
346(5)
Connecting Your Receiver
346(1)
Programming Your Receiver
347(4)
Making a Wireless Doorbell
351(3)
Wiring the Receiver
351(1)
Programming the Receiver
351(3)
The Start of Your Smart Home---Controlling a Lamp
354(7)
Your Home's AC Power
356(1)
How a Relay Works
356(2)
Programming the Relay Control
358(2)
Hooking up Your Lamp and Relay to the Arduino
360(1)
Summary
361(2)
16 Bluetooth Connectivity
363(36)
Demystifying Bluetooth
364(2)
Bluetooth Standards and Versions
364(1)
Bluetooth Profiles and BTLE GATT Services
365(1)
Communication between Your Arduino and Your Phone
366(23)
Reading a Sensor over BTLE
366(1)
Adding Support for Third-Party Boards to the Arduino IDE
367(2)
Installing the BTLE Module Library
369(1)
Programming the Feather Board
369(8)
Connecting Your Smartphone to Your BTLE Transmitter
377(2)
Sending Commands from Your Phone over BTLE
379(1)
Parsing Command Strings
380(4)
Commanding Your BTLE Device with Natural Language
384(5)
Controlling an AC Lamp with Bluetooth
389(8)
How Your Phone "Pairs" to BTLE Devices
389(1)
Writing the Proximity Control Software
390(4)
Pairing Your Phone
394(1)
Pairing an Android Phone
394(1)
Pairing an iPhone
395(1)
Make Your Lamp React to Your Presence
396(1)
Summary
397(2)
17 Wi-Fi and the Cloud
399(52)
The Web, the Arduino, and You
400(4)
Networking Lingo
401(1)
The Internet vs. the World Wide Web vs. the Cloud
401(1)
IP Address
401(1)
Network Address Translation
402(1)
MAC Address
402(1)
HTML
402(1)
HTTP and HTTPS
402(1)
GET/POST
403(1)
DHCP
403(1)
DNS
403(1)
Clients and Servers
403(1)
Your Wi-Fi-Enabled Arduino
404(1)
Controlling Your Arduino from the Web
404(23)
Setting Up the I/O Control Hardware
404(2)
Preparing the Arduino IDE for Use with the Feather Board
406(1)
Ensuring the Wi-Fi Library Is Matched to the Wi-Fi Module's Firmware
407(1)
Checking the WINC1500's Firmware Version
408(1)
Updating the WINC1500's Firmware
408(1)
Writing an Arduino Server Sketch
408(1)
Connecting to the Network and Retrieving an IP Address via DHCP
409(3)
Writing the Code for a Bare-Minimum Web Server
412(11)
Controlling Your Arduino from Inside and Outside Your Local Network
423(1)
Controlling Your Arduino over the Local Network
423(2)
Using Port Forwarding to Control Your Arduino from Anywhere
425(2)
Interfacing with Web APIs
427(22)
Using a Weather API
428(1)
Creating an Account with the API Service Provider
429(1)
Understanding How APIs Are Structured
430(1)
JSON-Formatted Data and Your Arduino
430(1)
Fetching and Parsing Weather Data
431(2)
Getting the Local Temperature from the Web on Your Arduino
433(7)
Completing the Live Temperature Display
440(1)
Wiring up the LED Readout Display
440(3)
Driving the Display with Temperature Data
443(6)
Summary
449(2)
Appendix A: Deciphering Datasheets and Schematics 451(10)
Index 461
Jeremy Blum is an electrical engineer known for his series of educational YouTube videos that have taught engineering concepts to millions of people around the world. Previously as a hardware engineer at Google [ X] and currently as director of engineering at Shaper Tools, he spends every day creating complex electromechanical products. He has designed and built solar trackers, prosthetic arms, truss-traversing robots, musical theremins, gesture controllers, home automation systems, augmented reality hardware, and more.