pdf

Raspberry Pi Development in Action (2nd Edition) ([UK] Simon Monk)

  • 2024-07-22
  • 17.66MB
  • Points it Requires : 1

Raspberry Pi is a card-type computer based on Linux system, which is only the size of a credit card. The original purpose of developing Raspberry Pi was to promote basic computer education in schools through low-cost hardware and free software, but Raspberry Pi soon gained favor among computer and hardware enthusiasts; they used it to learn programming and create a variety of novel and popular software and hardware applications. This book, written by prolific writer Simon Monk, is the second edition after a comprehensive upgrade of the content. It includes rich practical examples and explains in detail the configuration and management of Raspberry Pi, network connection, operating system and software. In addition, this book also introduces various techniques for using Python to develop Raspberry Pi. The book introduces the basics of Python programming, lists and dictionaries, and advanced features of Python. At the same time, this book also introduces relevant knowledge about machine vision, hardware foundation, control hardware, motors, digital input, sensors, display devices, Internet of Things and Arduino. This book is suitable for programmers and computer software and hardware enthusiasts, as well as readers who are interested in Raspberry Pi. It is also suitable as a guide book for practical courses related to Raspberry Pi. Chapter 1 Configuration and Management 1 1.0 Introduction 1 1.1 Selecting a Raspberry Pi Model 1 1.2 Encapsulating the Raspberry Pi 3 1.3 Selecting a Power Supply 4 1.4 Selecting an Operating System Distribution 6 1.5 Flashing a microSD Card with NOOBS 7 1.6 Assembling the System 9 1.7 Connecting to a DVI or VGA Monitor 10 1.8 Using a Composite Video Monitor/TV 10 1.9 Adjusting the Image Size on the Monitor 12 1.10 Optimizing Performance 13 1.11 Changing Passwords 15 1.12 Booting the Raspberry Pi Directly into a Windowing System 16 1.13 Shutting Down the Raspberry Pi 17 1.14 Installing the Raspberry Pi Camera Module 18 1.15 Using Bluetooth Devices 21 Chapter 2 Network Connections 23 2.0 Introduction 23 2.1 Connecting to a Wired Network 23 2.2 Viewing Your IP Address 25 2.3 Configuring a Static IP Address 26 2.5 Configuring a Network Name for the Raspberry Pi 28 2.6 Configuring a Wireless Network Connection 29 2.7 Remotely Controlling the Raspberry Pi Using SSH 33 2.8 Remotely Controlling the Raspberry Pi Using VNC 35 2.9 Remotely Controlling the Raspberry Pi Using RDP 36 2.10 Sharing Files on a Mac Network 38 2.11 Sharing the Raspberry Pi Screen on a Mac 39 2.12 Using the Raspberry Pi as a Network Storage Server 41 2.13 Printing over a Network 44 Chapter 3 Operating Systems 47 3.0 Introduction 47 3.1 Moving Files Using a Graphical Interface 47 3.2 Starting a Terminal Session 49 3.3 Navigating the File System Using a Terminal 50 3.4 Copying Files or Folders 52 3.5 Renaming Files and Folders 53 3.6 Editing Files 54 3.7 Viewing the Contents of a File 56 3.8 Creating Files Without an Editor 57 3.9 Creating 57 3.10 3.10 Delete a file or 58 3.11 Perform tasks as superuser 59 3.12 Understanding file permissions 60 3.13 Modify file permissions 61 3.14 Change the owner of a file 62 3.15 Screen capture 63 3.16 Install software with apt-get 64 3.17 Removing software installed with apt-get 65 3.18 Installing Python packages with Pip 65 3.19 Obtaining files from the command line 66 3.20 Obtaining source code with Git 67 3.21 Automatically running a program or script at system startup 67 3.22 Automatically running a program or script as a service 68 3.23 Automatically running a program or script at regular intervals 70 3.24 The search function 71 3.25 Using the command line history function 72 3.26 Monitoring processor activity 73 3.27 File compression 75 3.28 Listing connected USB devices 76 3.29 Redirecting output from the command line to a file 76 3.30 Concatenating Files 77 3.31 Using Pipes 78 3.32 Hiding Output to a Terminal 78 3.33 Running Programs in the Background 79 3.34 Creating Command Aliases 80 3.35 Setting the Date and Time 80 3.36 Viewing the Remaining Space on an SD Card 81 Chapter 4 Software 83 4.0 Introduction 83 4.1 Building a Media Center 83 4.2 Installing Applet 84 4.3 Installing Other Browsers 86 4.4 Using the Raspberry Pi Store 87 4.5 Building a Webcam Server 88 4.6 Running an Old Game Console Emulator 90 4.7 Running Minecraft on the Raspberry Pi 92 4.8 Running a Minecraft Server 93 4.9 Running Open Arena 95 4.10 The Raspberry Pi Radio Transmitter 96 4.11 Running GIMP 98 4.12 Internet Radio 99 Chapter 5 Getting Started with Python 101 5.0 Introduction 101 5.1 Choosing between Python 2 and Python 3 101 5.2 Editing Python Programs with IDLE 102 5.3 Using the Python Console 104 5.4 Running Python Programs with the Terminal 105 5.5 Variables 106 5.6 Displaying Output 107 5.7 Reading User Input 107 5.8 Arithmetic Operations 108 5.9 Creating Strings 109 5.10 Concatenating (Joining) Strings 110 5.11 Converting Numbers to Strings 111 5.12 Converting Strings to Numbers 111 5.13 Determining the Length of a String 112 5.14 Determining the Position of a String Within Another String 113 5.15 Extracting Parts of a String 113 5.16 Replacing a String with a String 114 5.17 Converting Strings to Upper and Lower Case 115 5.18 Conditionally Running Commands 116 5.19 Comparing Values ​​117 5.20 5.21 Repeating an Instruction a Specific Number of Times 119 5.22 Repeating an Instruction Until a Certain Condition Changes 120 5.23 Breaking Out of a Loop Statement 120 5.24 Defining Python Functions 121 Chapter 6 Lists and Dictionaries in Python 123 6.0 Introduction 123 6.1 Creating Lists 123 6.2 Accessing List Elements 124 6.3 Determining the Length of a List 125 6.4 Adding Elements to a List 125 6.5 Removing Elements from a List 126 6.6 Creating Lists by Parsing Strings 127 6.7 Iterating Over a List 127 6.8 Enumerating a List 128 6.9 Sorting a List 129 6.10 Splitting a List 130 6.11 Applying Functions to a List 131 6.12 Creating a Dictionary 131 6.13 Accessing a Dictionary 133 6.14 Removing Dictionary Elements 134 6.15 7.0 Introduction 137 7.1 Formatting Numbers 137 7.2 Formatting Times and Dates 138 7.3 Returning Multiple Values ​​139 7.4 Defining Classes 140 7.5 Defining Methods 141 7.6 Inheritance 142 7.7 Writing to Files 143 7.8 Reading Files 144 7.9 Pickling 145 7.10 Exception Handling 146 7.11 Using Modules 147 7.12 Random Numbers 148 7.13 Making Web Requests with Python 149 7.14 Command-line Arguments for Python 150 7.15 Running Linux Commands from Python 151 7.16 Sending Email from Python 152 7.17 Writing a Simple Web Server with Python 153 7.18 Doing Multiple Things at Once 154 7.19 7.20 Using Python with Minecraft on the Raspberry Pi 156 Chapter 8 Machine Vision 159 8.0 Introduction 159 8.1 Installing SimpleCV 159 8.2 Configuring a USB Camera for Machine Vision 160 8.3 Using the Raspberry Pi Camera Module for Machine Vision 162 8.4 Counting Coins 163 8.5 Face Detection 166 8.6 Motion Detection 168 8.7 Optical Character Recognition 170 Chapter 9 Hardware Basics 173 9.0 Introduction 173 9.1 GPIO Connector Usage Notes 173 9.2 Securing the Raspberry Pi When Using the GPIO Interface 176 9.3 Configuring I2C 176 9.4 Using the I2C Tool 178 9.5 Configuring SPI 179 9.6 Installing PySerial to Access Serial Ports from Python 180 9.7 Installing Minicom to Detect Serial Ports 181 9.8 Using a Breadboard with Jumper Wires 182 9.9 Connecting a Breadboard Using the Raspberry Pi’s Wires 183 9.10 Using the Raspberry Pi Squid 184 9.11 Using the Raspberry Squid Button 186 9.12 Converting 5V to 3.3V Using Two Resistors 187 9.13 Converting 5V to 3.3V Using a Level Shifter 189 9.14 Powering the Raspberry Pi with a Battery 190 9.15 Powering the Raspberry Pi with a LiPo Battery 192 9.16 Getting Started with the Sense HAT 193 9.17 Getting Started with the Explorer HAT Pro 194 9.18 Getting Started with the RaspiRobot Board 196 9.19 Prototyping with the Pi Plate 198 9.20 Building a Raspberry Pi HAT 201 9.21 The Raspberry Pi Compute Module 204 9.22 The Pi Zero 205 Chapter 10 Controlling Hardware 207 10.0 Introduction 207 10.1 Connecting LEDs 207 10.2 10.3 Controlling the Brightness of an LED 210 10.4 Making a Buzzer 213 10.5 Using a Transistor to Switch High-Power DC Devices 214 10.6 Using a Relay to Switch High-Power Devices 216 10.7 Controlling High-Voltage AC Devices 219 10.8 Writing a User Interface to Control Switches 220 10.9 Writing a User Interface to Control PWM Power to LEDs and Motors 221 10.10 Changing the Color of an RGB LED 223 10.11 Using Large Numbers of LEDs (Charlieplexing) 225 10.12 Using an Analog Meter as a Display 228 10.13 Programming Interrupts 230 Chapter 11 Motors 233 11.0 Introduction 233 11.1 Controlling a Servo Motor 233 11.2 Precisely Controlling a Servo Motor 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with a Stepper Motor HAT 253 11.9 Driving Bipolar Stepper Motors with the RaspiRobot Board 256 11.10 Building a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Switching Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle or Slide Switches 265 12.4 Using Three-Position Toggle or Slide Switches 266 12.5 Debouncing a Button 269 12.6 Using External Pull-Up Resistors 271 12.7 Using a Rotary (Quadrature) Encoder 272 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movements 285 12.13 Using the Real Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 Measuring Temperature Using a Thermistor 298 13.4 Detecting Methane 301 13.5 Measuring Voltage 304 13.6 Reducing Voltage for Measurement 306 13.7 Using Resistive Sensors with an ADC 309 13.8 Measuring Temperature with an ADC 310 13.9 Measuring the CPU Temperature of a Raspberry Pi 312 13.10 Measuring Temperature, Humidity, and Barometric Pressure with the Sense HAT 313 13.11 Measuring Temperature with a Digital Sensor 315 13.12 Measuring Acceleration with the MCP3008 Module 318 13.13 Inertial Management Unit (IMU) Using the Sense HAT 321 13.14 Finding Magnetic North Using the Sense HAT 323 13.15 Detecting Magnets Using Reed Switches 323 13.16 Sensing Magnetic Fields Using the Sense HAT 325 13.17 Measuring Distance 325 13.18 Capacitive Touch Sensing Technology 328 13.19 Displaying Sensor Values ​​331 13.20 Logging Using a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Displaying Messages on the Alphanumeric LCD HAT 341 14.5 Displaying Messages on the Alphanumeric LCD Module 343 14.6 Using an OLED Graphic Display 347 14.7 Using Addressable RGB LED Strips 349 Chapter 15 The Internet of Things 355 15.0 Introduction 355 15.1 Using a Web Interface to Control GPIO Outputs 355 15.2 Displaying Sensor Readings on a Web Page 360 ​​15.3 Using IFTTT to Send Emails and Other Notifications 363 15.4 Using ThingSpeak to Send Tweets 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets Using Dweet and IFTTT 373 Chapter 16 Arduino and the Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino Using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino from a Raspberry Pi 382 16.4 16.5 Writing to Arduino Digital Outputs with a Raspberry Pi 384 16.6 Using PyFirmata with TTL Serial 386 16.7 Reading Arduino Digital Inputs with PyFirmata 388 16.8 Analog Output (PWM) with PyFirmata 390 16.9 Controlling Servo Motors with PyFirmata 393 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with Arduino over I2C 399 16.12 Using a Mini Arduino with a Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 4151 GPIO Connector Instructions 173 9.2 Securing the Raspberry Pi When Using the GPIO Interface 176 9.3 Configuring I2C 176 9.4 Using the I2C Tool 178 9.5 Configuring SPI 179 9.6 Installing PySerial to Access the Serial Port from Python 180 9.7 Installing Minicom to Detect the Serial Port 181 9.8 Using a Breadboard with Jumper Wires 182 9.9 Connecting the Breadboard Using the Raspberry Pi\'s Wires 183 9.10 Using the Raspberry Pi Squid 184 9.11 Using the Raspberry Squid Button 186 9.12 Converting 5V to 3.3V Using Two Resistors 187 9.13 Converting 5V to 3.3V Using a Level Shifter 189 9.14 Powering the Raspberry Pi with a Battery 190 9.15 Powering the Raspberry Pi with a LiPo Battery 192 9.16 Sense 9.19 Prototyping with the Pi Plate 198 9.20 Building a Raspberry Pi HAT 201 9.21 The Raspberry Pi Compute Module 204 9.22 The Pi Zero 205 Chapter 10 Controlling Hardware 207 10.0 Introduction 207 10.1 Connecting LEDs 207 10.2 Making GPIO Pins Safe 209 10.3 Controlling the Brightness of an LED 210 10.4 Making a Buzzer 213 10.5 Switching High-Power DC Devices on and off with Transistors 214 10.6 Using Relays to Switch High-Power Devices on and off 216 10.7 Controlling High-Voltage AC Devices 219 10.8 Writing a User Interface to Control Switches 220 10.9 10.10 Changing the Color of an RGB LED 223 10.11 Using Large Numbers of LEDs (Charlieplexing) 225 10.12 Using Analog Meters as Displays 228 10.13 Programming Interrupts 230 Chapter 11 Motors 233 11.0 Introduction 233 11.1 Controlling Servo Motors 233 11.2 Precisely Controlling Servo Motors 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with the Stepper Motor HAT 253 11.9 Driving Bipolar Stepper Motors with the RaspiRobot Board 256 11.10 Building a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Switching Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle or Slide Switches 265 12.4 Using Three-Position Toggle or Slide Switches 266 12.5 Debouncing Buttons 269 12.6 Using External Pull-Up Resistors 271 12.7 Using a Rotary (Quadrature) Encoder 272 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 Adding GPS to the Raspberry Pi 280 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movements 285 12.13 Using the Real-Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 3.14 Using the Sense HAT to Detect Magnetism 321 13.15 Detecting Magnets with Reed Switches 323 13.16 Sensing Magnetic Fields with the Sense HAT 325 13.17 Measuring Distance 325 13.18 Using the Sense HAT to Detect Magnetism 326 13.19 Using the Sense HAT to Detect Magnetism 330 13.20 Using the Sense HAT to Detect Magnetism 331 13.21 Using the Sense HAT to Detect Magnetism 332 13.22 Using the Sense HAT to Detect Magnetism 333 13.23 Using the Sense HAT to Detect Magnetism 334 13.24 Using the Sense HAT to Detect Magnetism 335 13.25 Using the Sense HAT to Detect Magnetism 336 13.26 Using the Sense HAT to Detect Magnetism 337 13.19 Displaying Sensor Values ​​331 13.20 Logging with a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Displaying Messages on an Alphanumeric LCD HAT 341 14.5 Displaying Messages on an Alphanumeric LCD Module 343 14.6 Using an OLED Graphic Display 347 14.7 Using an Addressable RGB LED Strip 349 Chapter 15 Internet of Things 355 15.0 Introduction 355 15.1 Using a Web Interface to Control GPIO Outputs 355 15.2 Displaying Sensor Readings on a Web Page 360 ​​15.3 Using IFTTT to Send Email and Other Notifications 363 15.4 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets with Dweet and IFTTT 373 Chapter 16 Arduino and Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino with a Raspberry Pi 382 16.4 Writing to an Arduino’s Digital Outputs with a Raspberry Pi 384 16.5 Using PyFirmata with a TTL Serial Port 386 16.6 Reading an Arduino’s Digital Inputs with PyFirmata 388 16.7 Reading an Arduino’s Analog Inputs with PyFirmata 390 16.8 Analog Output (PWM) and PyFirmata 391 16.9 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with Arduino over I2C 399 16.12 Using a Mini Arduino with the Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and the Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 4151 GPIO Connector Instructions 173 9.2 Securing the Raspberry Pi When Using the GPIO Interface 176 9.3 Configuring I2C 176 9.4 Using the I2C Tool 178 9.5 Configuring SPI 179 9.6 Installing PySerial to Access the Serial Port from Python 180 9.7 Installing Minicom to Detect the Serial Port 181 9.8 Using a Breadboard with Jumper Wires 182 9.9 Connecting the Breadboard Using the Raspberry Pi\'s Wires 183 9.10 Using the Raspberry Pi Squid 184 9.11 Using the Raspberry Squid Button 186 9.12 Converting 5V to 3.3V Using Two Resistors 187 9.13 Converting 5V to 3.3V Using a Level Shifter 189 9.14 Powering the Raspberry Pi with a Battery 190 9.15 Powering the Raspberry Pi with a LiPo Battery 192 9.16 Sense 9.19 Prototyping with the Pi Plate 198 9.20 Building a Raspberry Pi HAT 201 9.21 The Raspberry Pi Compute Module 204 9.22 The Pi Zero 205 Chapter 10 Controlling Hardware 207 10.0 Introduction 207 10.1 Connecting LEDs 207 10.2 Making GPIO Pins Safe 209 10.3 Controlling the Brightness of an LED 210 10.4 Making a Buzzer 213 10.5 Switching High-Power DC Devices on and off with Transistors 214 10.6 Using Relays to Switch High-Power Devices on and off 216 10.7 Controlling High-Voltage AC Devices 219 10.8 Writing a User Interface to Control Switches 220 10.9 10.10 Changing the Color of an RGB LED 223 10.11 Using Large Numbers of LEDs (Charlieplexing) 225 10.12 Using Analog Meters as Displays 228 10.13 Programming Interrupts 230 Chapter 11 Motors 233 11.0 Introduction 233 11.1 Controlling Servo Motors 233 11.2 Precisely Controlling Servo Motors 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with the Stepper Motor HAT 253 11.9 Driving Bipolar Stepper Motors with the RaspiRobot Board 256 11.10 Building a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Switching Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle or Slide Switches 265 12.4 Using Three-Position Toggle or Slide Switches 266 12.5 Debouncing Buttons 269 12.6 Using External Pull-Up Resistors 271 12.7 Using a Rotary (Quadrature) Encoder 272 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 Adding GPS to the Raspberry Pi 280 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movements 285 12.13 Using the Real-Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 3.14 Using the Sense HAT to Detect Magnetism 321 13.15 Detecting Magnets with Reed Switches 323 13.16 Sensing Magnetic Fields with the Sense HAT 325 13.17 Measuring Distance 325 13.18 Using the Sense HAT to Detect Magnetism 326 13.19 Using the Sense HAT to Detect Magnetism 330 13.20 Using the Sense HAT to Detect Magnetism 331 13.21 Using the Sense HAT to Detect Magnetism 332 13.22 Using the Sense HAT to Detect Magnetism 333 13.23 Using the Sense HAT to Detect Magnetism 334 13.24 Using the Sense HAT to Detect Magnetism 335 13.25 Using the Sense HAT to Detect Magnetism 336 13.26 Using the Sense HAT to Detect Magnetism 337 13.19 Displaying Sensor Values ​​331 13.20 Logging with a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Displaying Messages on an Alphanumeric LCD HAT 341 14.5 Displaying Messages on an Alphanumeric LCD Module 343 14.6 Using an OLED Graphic Display 347 14.7 Using an Addressable RGB LED Strip 349 Chapter 15 Internet of Things 355 15.0 Introduction 355 15.1 Using a Web Interface to Control GPIO Outputs 355 15.2 Displaying Sensor Readings on a Web Page 360 ​​15.3 Using IFTTT to Send Email and Other Notifications 363 15.4 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets with Dweet and IFTTT 373 Chapter 16 Arduino and Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino with a Raspberry Pi 382 16.4 Writing to an Arduino’s Digital Outputs with a Raspberry Pi 384 16.5 Using PyFirmata with a TTL Serial Port 386 16.6 Reading an Arduino’s Digital Inputs with PyFirmata 388 16.7 Reading an Arduino’s Analog Inputs with PyFirmata 390 16.8 Analog Output (PWM) and PyFirmata 391 16.9 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with Arduino over I2C 399 16.12 Using a Mini Arduino with the Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and the Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 41514 Powering the Raspberry Pi with Batteries 190 9.15 Powering the Raspberry Pi with a LiPo Battery 192 9.16 Getting Started with the Sense HAT 193 9.17 Getting Started with the Explorer HAT Pro 194 9.18 Getting Started with the RaspiRobot Board 196 9.19 Prototyping with the Pi Plate 198 9.20 Building a Raspberry Pi HAT 201 9.21 The Raspberry Pi Compute Module 204 9.22 The Pi Zero 205 Chapter 10 Controlling Hardware 207 10.0 Introduction 207 10.1 Connecting LEDs 207 10.2 Making GPIO Pins Safe 209 10.3 Controlling the Brightness of an LED 210 10.4 Making a Buzzer 213 10.5 Using a Transistor to Switch High-Power DC Devices 214 10.6 Using a Relay to Switch High-Power Devices On and Off 216 10.7 Controlling High Voltage AC Devices 219 10.8 Writing a User Interface for Controlling Switches 220 10.9 Writing a User Interface for Controlling PWM Power to LEDs and Motors 221 10.10 Changing the Color of an RGB LED 223 10.11 Using Large Numbers of LEDs (Charlieplexing) 225 10.12 Using Analog Meters as Displays 228 10.13 Programming Interrupts 230 Chapter 11 Motors 233 11.0 Introduction 233 11.1 Controlling Servo Motors 233 11.2 Precisely Controlling Servo Motors 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with a Stepper Motor HAT 253 11.9 11.10 Build a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Toggling Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle or Slide Switches 265 12.4 Using Three-Position Toggle or Slide Switches 266 12.5 Debouncing Buttons 269 12.6 Using External Pull-up Resistors 271 12.7 Using a Rotary (Quadrature) Encoder 272 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 Adding GPS to the Raspberry Pi 280 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movements 285 12.13 Using the Real-Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 Measuring Temperature Using a Thermistor 298 13.4 Detecting Methane 301 13.5 Measuring Voltage 304 13.6 Reducing Voltage for Measurement 306 13.7 Using Resistive Sensors with an ADC 309 13.8 Measuring Temperature Using an ADC 310 13.9 Measuring the CPU Temperature of a Raspberry Pi 312 13.10 Measuring Temperature, Humidity, and Barometric Pressure Using the Sense HAT 313 13.11 Measuring Temperature Using a Digital Sensor 315 13.12 Measuring Acceleration Using the MCP3008 Module 318 13.13 Using the Inertial Management Unit (IMU) with the Sense HAT 321 13.14 Finding Magnetic North Using the Sense HAT 323 13.15 Detecting Magnets Using a Reed Switch 323 13.16 Using the Sense 13.17 Measuring Distance 325 13.18 Capacitive Touch Sensing 328 13.19 Displaying Sensor Values ​​331 13.20 Logging with a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Displaying Messages on an Alphanumeric LCD HAT 341 14.5 Displaying Messages on an Alphanumeric LCD Module 343 14.6 Using an OLED Graphic Display 347 14.7 Using an Addressable RGB LED Strip 349 Chapter 15 Internet of Things 355 15.0 Introduction 355 15.1 Using a Web Interface to Control GPIO Outputs 355 15.2 Displaying Sensor Readings on a Web Page 360 15.3 Sending Emails and Other Notifications with IFTTT 363 15.4 Sending Tweets with ThingSpeak 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets with Dweet and IFTTT 373 Chapter 16 Arduino and Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino Using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino with a Raspberry Pi 382 16.4 Writing to an Arduino’s Digital Outputs with a Raspberry Pi 384 16.5 Using PyFirmata with a TTL Serial Port 386 16.6 Reading an Arduino’s Digital Inputs with PyFirmata 388 16.7 Reading an Arduino’s Analog Inputs with PyFirmata 390 16.8 16.14 Using Arduino Shields with the Raspberry Pi and aLaMode 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 41514 Powering the Raspberry Pi with Batteries 190 9.15 Powering the Raspberry Pi with a LiPo Battery 192 9.16 Getting Started with the Sense HAT 193 9.17 Getting Started with the Explorer HAT Pro 194 9.18 Getting Started with the RaspiRobot Board 196 9.19 Prototyping with the Pi Plate 198 9.20 Building a Raspberry Pi HAT 201 9.21 The Raspberry Pi Compute Module 204 9.22 The Pi Zero 205 Chapter 10 Controlling Hardware 207 10.0 Introduction 207 10.1 Connecting LEDs 207 10.2 Making GPIO Pins Safe 209 10.3 Controlling the Brightness of an LED 210 10.4 Making a Buzzer 213 10.5 Using a Transistor to Switch High-Power DC Devices 214 10.6 Using a Relay to Switch High-Power Devices On and Off 216 10.7 Controlling High Voltage AC Devices 219 10.8 Writing a User Interface for Controlling Switches 220 10.9 Writing a User Interface for Controlling PWM Power to LEDs and Motors 221 10.10 Changing the Color of an RGB LED 223 10.11 Using Large Numbers of LEDs (Charlieplexing) 225 10.12 Using Analog Meters as Displays 228 10.13 Programming Interrupts 230 Chapter 11 Motors 233 11.0 Introduction 233 11.1 Controlling Servo Motors 233 11.2 Precisely Controlling Servo Motors 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with a Stepper Motor HAT 253 11.9 11.10 Build a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Toggling Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle or Slide Switches 265 12.4 Using Three-Position Toggle or Slide Switches 266 12.5 Debouncing Buttons 269 12.6 Using External Pull-up Resistors 271 12.7 Using a Rotary (Quadrature) Encoder 272 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 Adding GPS to the Raspberry Pi 280 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movements 285 12.13 Using the Real-Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 Measuring Temperature Using a Thermistor 298 13.4 Detecting Methane 301 13.5 Measuring Voltage 304 13.6 Reducing Voltage for Measurement 306 13.7 Using Resistive Sensors with an ADC 309 13.8 Measuring Temperature Using an ADC 310 13.9 Measuring the CPU Temperature of a Raspberry Pi 312 13.10 Measuring Temperature, Humidity, and Barometric Pressure Using the Sense HAT 313 13.11 Measuring Temperature Using a Digital Sensor 315 13.12 Measuring Acceleration Using the MCP3008 Module 318 13.13 Using the Inertial Management Unit (IMU) with the Sense HAT 321 13.14 Finding Magnetic North Using the Sense HAT 323 13.15 Detecting Magnets Using a Reed Switch 323 13.16 Using the Sense 13.17 Measuring Distance 325 13.18 Capacitive Touch Sensing 328 13.19 Displaying Sensor Values ​​331 13.20 Logging with a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Displaying Messages on an Alphanumeric LCD HAT 341 14.5 Displaying Messages on an Alphanumeric LCD Module 343 14.6 Using an OLED Graphic Display 347 14.7 Using an Addressable RGB LED Strip 349 Chapter 15 Internet of Things 355 15.0 Introduction 355 15.1 Using a Web Interface to Control GPIO Outputs 355 15.2 Displaying Sensor Readings on a Web Page 360 15.3 Sending Emails and Other Notifications with IFTTT 363 15.4 Sending Tweets with ThingSpeak 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets with Dweet and IFTTT 373 Chapter 16 Arduino and Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino Using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino with a Raspberry Pi 382 16.4 Writing to an Arduino’s Digital Outputs with a Raspberry Pi 384 16.5 Using PyFirmata with a TTL Serial Port 386 16.6 Reading an Arduino’s Digital Inputs with PyFirmata 388 16.7 Reading an Arduino’s Analog Inputs with PyFirmata 390 16.8 16.14 Using Arduino Shields with the Raspberry Pi and aLaMode 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 4152 Precise Control of Servo Motors 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with a Stepper Motor HAT 253 11.9 Driving Bipolar Stepper Motors with the RaspiRobot Board 256 11.10 Building a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Switching Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle Switches or Slide Switches 265 12.4 Using Three-Position Toggle Switches or Slide Switches 266 12.5 Debouncing Pushbuttons 269 12.6 Using External Pull-Up Resistors 271 12.7 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 Adding GPS to the Raspberry Pi 280 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movement 285 12.13 Using the Real Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 Measuring Temperature with a Thermistor 298 13.4 Detecting Methane 301 13.5 Measuring Voltage 304 13.6 Reducing Voltage for Measurement 306 13.7 Using Resistive Sensors with an ADC 309 13.8 Measuring Temperature with an ADC 310 13.9 Measuring the CPU Temperature of the Raspberry Pi 312 13.10 Measuring Temperature, Humidity, and Air Pressure with the Sense HAT 313 13.11 Measuring Temperature with Digital Sensors 315 13.12 Measuring Acceleration with the MCP3008 Module 318 13.13 Inertial Management Unit (IMU) Using the Sense HAT 321 13.14 Finding Magnetic North with the Sense HAT 323 13.15 Detecting Magnets with Reed Switches 323 13.16 Sensing Magnetic Fields with the Sense HAT 325 13.17 Measuring Distance 325 13.18 Capacitive Touch Sensing Technology 328 13.19 Displaying Sensor Values ​​331 13.20 Logging with a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Using an Alphanumeric LCD 14.5 Displaying Messages on the Alphanumeric LCD Module 342 14.6 Using an OLED Graphic Display 344 14.7 Using an Addressable RGB LED Strip 345 Chapter 15 The Internet of Things 353 15.0 Introduction 353 15.1 Using a Web Interface to Control GPIO Outputs 353 15.2 Displaying Sensor Readings on a Web Page 356 15.3 Using IFTTT to Send Emails and Other Notifications 358 15.4 Using ThingSpeak to Send Tweets 360 15.5 CheerLights 365 15.6 Sending Sensor Data to ThingSpeak 366 15.7 Responding to Tweets Using Dweet and IFTTT 368 Chapter 16 Arduino and the Raspberry Pi 371 16.0 Introduction 371 16.1 Programming an Arduino with a Raspberry Pi 372 16.2 Communicating with an Arduino Using the Serial Monitor 374 16.3 Configuring PyFirmata to Control an Arduino from a Raspberry Pi 382 16.4 Writing to an Arduino\'s Digital Outputs from a Raspberry Pi 384 16.5 Using PyFirmata with TTL Serial 386 16.6 Reading an Arduino\'s Digital Inputs with PyFirmata 388 16.7 Reading an Arduino\'s Analog Inputs with PyFirmata 390 16.8 Analog Output (PWM) with PyFirmata 391 16.9 Controlling a Servo Motors with PyFirmata 393 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with an Arduino over I2C 399 16.12 Using a Mini Arduino with a Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and the Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi pin 4152 Precise Control of Servo Motors 237 11.3 Controlling Multiple Servo Motors 239 11.4 Controlling the Speed ​​of a DC Motor 242 11.5 Controlling the Direction of a DC Motor 244 11.6 Using Unipolar Stepper Motors 248 11.7 Using Bipolar Stepper Motors 252 11.8 Driving Bipolar Stepper Motors with a Stepper Motor HAT 253 11.9 Driving Bipolar Stepper Motors with the RaspiRobot Board 256 11.10 Building a Simple Robot Car 257 Chapter 12 Digital Input 261 12.0 Introduction 261 12.1 Connecting Pushbutton Switches 261 12.2 Switching Switches with Pushbutton Switches 264 12.3 Using Two-Position Toggle Switches or Slide Switches 265 12.4 Using Three-Position Toggle Switches or Slide Switches 266 12.5 Debouncing Pushbuttons 269 12.6 Using External Pull-Up Resistors 271 12.7 12.8 Using a Numeric Keypad 275 12.9 Detecting Movement 278 12.10 Adding GPS to the Raspberry Pi 280 12.11 Intercepting Keystrokes 283 12.12 Intercepting Mouse Movement 285 12.13 Using the Real Time Clock Module 286 Chapter 13 Sensors 291 13.0 Introduction 291 13.1 Using Resistive Sensors 291 13.2 Measuring Brightness 296 13.3 Measuring Temperature with a Thermistor 298 13.4 Detecting Methane 301 13.5 Measuring Voltage 304 13.6 Reducing Voltage for Measurement 306 13.7 Using Resistive Sensors with an ADC 309 13.8 Measuring Temperature with an ADC 310 13.9 Measuring the CPU Temperature of the Raspberry Pi 312 13.10 Measuring Temperature, Humidity, and Air Pressure with the Sense HAT 313 13.11 Measuring Temperature with Digital Sensors 315 13.12 Measuring Acceleration with the MCP3008 Module 318 13.13 Inertial Management Unit (IMU) Using the Sense HAT 321 13.14 Finding Magnetic North with the Sense HAT 323 13.15 Detecting Magnets with Reed Switches 323 13.16 Sensing Magnetic Fields with the Sense HAT 325 13.17 Measuring Distance 325 13.18 Capacitive Touch Sensing Technology 328 13.19 Displaying Sensor Values ​​331 13.20 Logging with a USB Flash Drive 332 Chapter 14 Display Devices 335 14.0 Introduction 335 14.1 Using a Four-Digit LED Display Device 335 14.2 Displaying Messages on an I2C LED Matrix 337 14.3 Using the Sense HAT LED Rectangle Display 339 14.4 Using an Alphanumeric LCD 14.5 Displaying Messages on the Alphanumeric LCD Module 342 14.6 Using an OLED Graphic Display 344 14.7 Using an Addressable RGB LED Strip 345 Chapter 15 The Internet of Things 353 15.0 Introduction 353 15.1 Using a Web Interface to Control GPIO Outputs 353 15.2 Displaying Sensor Readings on a Web Page 356 15.3 Using IFTTT to Send Emails and Other Notifications 358 15.4 Using ThingSpeak to Send Tweets 360 15.5 CheerLights 365 15.6 Sending Sensor Data to ThingSpeak 366 15.7 Responding to Tweets Using Dweet and IFTTT 368 Chapter 16 Arduino and the Raspberry Pi 371 16.0 Introduction 371 16.1 Programming an Arduino with a Raspberry Pi 372 16.2 Communicating with an Arduino Using the Serial Monitor 374 16.3 Configuring PyFirmata to Control an Arduino from a Raspberry Pi 382 16.4 Writing to an Arduino\'s Digital Outputs from a Raspberry Pi 384 16.5 Using PyFirmata with TTL Serial 386 16.6 Reading an Arduino\'s Digital Inputs with PyFirmata 388 16.7 Reading an Arduino\'s Analog Inputs with PyFirmata 390 16.8 Analog Output (PWM) with PyFirmata 391 16.9 Controlling a Servo Motors with PyFirmata 393 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with an Arduino over I2C 399 16.12 Using a Mini Arduino with a Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and the Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi pin 4150 Introduction 355 15.1 Controlling GPIO Outputs with a Web Interface 355 15.2 Displaying Sensor Readings on a Web Page 360 ​​15.3 Using IFTTT to Send Emails and Other Notifications 363 15.4 Sending Tweets with ThingSpeak 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets with Dweet and IFTTT 373 Chapter 16 Arduino and Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino Using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino from a Raspberry Pi 382 16.4 Writing to an Arduino’s Digital Outputs with a Raspberry Pi 384 16.5 Using PyFirmata with a TTL Serial Port 386 16.6 16.7 Reading Arduino Digital Inputs with PyFirmata 388 16.8 Analog Output (PWM) with PyFirmata 391 16.9 Controlling Servo Motors with PyFirmata 393 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with Arduino over I2C 399 16.12 Using a Mini Arduino with the Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and the Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 4150 Introduction 355 15.1 Controlling GPIO Outputs with a Web Interface 355 15.2 Displaying Sensor Readings on a Web Page 360 ​​15.3 Using IFTTT to Send Emails and Other Notifications 363 15.4 Sending Tweets with ThingSpeak 367 15.5 CheerLights 369 15.6 Sending Sensor Data to ThingSpeak 370 15.7 Responding to Tweets with Dweet and IFTTT 373 Chapter 16 Arduino and Raspberry Pi 377 16.0 Introduction 377 16.1 Programming an Arduino with a Raspberry Pi 378 16.2 Communicating with an Arduino Using Serial Monitor 380 16.3 Configuring PyFirmata to Control an Arduino from a Raspberry Pi 382 16.4 Writing to an Arduino’s Digital Outputs with a Raspberry Pi 384 16.5 Using PyFirmata with a TTL Serial Port 386 16.6 16.7 Reading Arduino Digital Inputs with PyFirmata 388 16.8 Analog Output (PWM) with PyFirmata 391 16.9 Controlling Servo Motors with PyFirmata 393 16.10 Customizing Arduino Communication over TTL Serial 395 16.11 Customizing Communication with Arduino over I2C 399 16.12 Using a Mini Arduino with the Raspberry Pi 402 16.13 Getting Started with the aLaMode Board and the Raspberry Pi 403 16.14 Using an Arduino Shield with the Raspberry Pi and aLaMode Board 406 Appendix A Accessories and Suppliers 409 Appendix B Raspberry Pi Pinouts 415

unfold

You Might Like

Uploader
MartinFowler
 

Recommended ContentMore

Popular Components

Just Take a LookMore

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
×