Warren / Adams / Molle Arduino Robotics
1. Auflage 2011
ISBN: 978-1-4302-3184-4
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 621 Seiten, eBook
ISBN: 978-1-4302-3184-4
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark
Zielgruppe
Popular/general
Autoren/Hrsg.
Weitere Infos & Material
1;Title Page;2
2;Copyright Page;3
3;Dedication Page;4
4;Contents at a Glance;5
5;Table of Contents;6
6;About the Authors;20
7;About the Technical Reviewers;22
8;Acknowledgments;23
9;Introduction;25
9.1;Prerequisites;25
10;CHAPTER 1 The Basics;26
10.1;Electricity;27
10.1.1;Electrical Analogy;28
10.1.2;Electrical Basics;29
10.1.3;Circuits;31
10.1.4;Measuring Electricity;32
10.1.5;Multi-Meters;32
10.1.6;Measuring Voltage;33
10.1.7;Measuring Amperage;34
10.1.8;Measuring Capacitance;34
10.1.9;Measuring Resistance;35
10.1.10;Calculating Resistor Power Using Ohm’s Law;36
10.1.11;Oscilloscope;37
10.1.12;Loads;38
10.1.12.1;Inductive Loads;38
10.1.12.2;Resistive Loads;38
10.1.13;Electrical Connections;39
10.1.13.1;Series Connections;39
10.1.13.2;Parallel Connections;39
10.1.13.3;Series and Parallel Connection;40
10.2;Electronics;40
10.2.1;Semi-Conductors;41
10.2.2;Datasheets;41
10.2.3;Integrated Circuits;42
10.2.3.1;Packages;43
10.2.4;Through-Hole Components;43
10.2.4.1;IC Sockets;44
10.2.4.2;Surface-Mount Components (SMT or SMD);44
10.3;Arduino Primer;45
10.3.1;Arduino Variants;45
10.3.1.1;Standard Arduino;46
10.3.1.2;Arduino Mega;47
10.3.1.3;Clones;47
10.3.2;Arduino IDE;48
10.3.3;The Sketch;49
10.3.3.1;Variable Declaration;49
10.3.3.2;The Setup Function;49
10.3.3.3;The Loop Function;50
10.3.4;Signals;51
10.3.4.1;Digital Signals;52
10.3.4.1.1;Digital Inputs;52
10.3.4.1.2;Digital Outputs;52
10.3.4.1.3;Special Case: External Interrupts;53
10.3.4.2;Analog Signals;55
10.3.4.2.1;Analog Inputs;55
10.3.4.2.2;Analog Outputs (PWM);56
10.3.4.2.3;Duty-Cycle;57
10.3.4.2.4;Frequency;58
10.3.4.2.5;Homemade PWM Example;59
10.4;Building Circuits;60
10.4.1;Circuit Design;60
10.4.2;Schematics;61
10.4.3;Prototyping;65
10.4.3.1;Breadboard;65
10.4.3.2;Perforated Prototyping Board (Perf-Board);66
10.4.3.3;Printed Circuit Boards;67
10.4.3.4;Soldering;68
10.4.3.4.1;Soldering Shortcuts;70
10.5;Building a Robot;71
10.5.1;Hardware;71
10.5.1.1;Basic Building Tools;71
10.5.2;Materials;73
10.5.3;Work Area;73
10.6;Summary;74
11;CHAPTER 2 Arduino for Robotics;75
11.1;Interfacing Arduino;75
11.1.1;Relays;76
11.1.1.1;Types of Relays;76
11.1.1.2;Relay Configurations;77
11.1.1.3;Uses;79
11.1.1.4;Calculating Current Draw;79
11.1.1.5;Back-EMF Considerations;81
11.1.1.6;Solid-State switches;81
11.1.2;Transistors;82
11.1.2.1;Bipolar Junction Transistor (BJT);82
11.1.2.1.1;Mosfets;84
11.1.2.1.1.1;Logic-Level vs. Standard;85
11.1.2.1.1.2;Mosfet Capacitance;85
11.1.2.1.1.3;On-State Resistance—Rds(On);86
11.1.2.1.1.4;Calculating heat using Rds(On) and amperage of DC motor;86
11.1.2.1.1.5;Parallel Mosfets;87
11.1.2.1.2;Photo-Transistors;88
11.1.3;Interfacing a Motor-Controller;89
11.1.3.1;Motor-controller ICs;89
11.1.3.1.1;Electronic Speed Controllers (ESCs);90
11.2;User Control;92
11.2.1;Tethered (Wired) Control;92
11.2.2;Infrared Control (IR);92
11.2.3;Radio Control Systems;93
11.2.3.1;Amplitude Modulation (AM);94
11.2.3.2;Frequency Modulation (FM);94
11.2.3.3;Spread Spectrum 2.4gHz;95
11.2.3.4;Xbee;95
11.3;Sensor Navigation;96
11.3.1;Contact Sensing;96
11.3.1.1;Bump Switch;96
11.3.2;Distance and Reflection Sensing;97
11.3.2.1;IR Sensor;97
11.3.2.2;Ultrasonic Range Finder;99
11.3.2.3;Laser Range Finder;99
11.3.3;Orientation (Positioning);100
11.3.3.1;Accelerometer;100
11.3.3.2;Gyroscope;101
11.3.3.3;Inertial Measurement Unit (IMU);101
11.3.3.4;Global Positioning Satellite (GPS);102
11.3.3.4.1;Real Time Kinetic (RTK) GPS;102
11.3.4;Non-Autonomous Sensors;103
11.3.4.1;Camera;103
11.3.4.2;Current Sensor;104
11.4;Summary;105
12;CHAPTER 3 Let’s Get Moving;107
12.1;Electric Motors;107
12.1.1;Brushed DC Motor (Permanent Magnet Type);108
12.1.2;Brushless Motors;109
12.1.3;Stepper Motors;110
12.1.4;Gear Motors;112
12.1.5;Servo Motors;112
12.1.5.1;Continuous Rotation;114
12.1.6;Linear Actuators;114
12.1.7;Calculating Power;115
12.1.8;Driving;115
12.1.9;Finding the Right Motor;116
12.2;The H-Bridge;116
12.2.1;Generating a Brake;117
12.2.2;Implementation;118
12.2.2.1;Method 1: Simple Switches;119
12.2.2.2;Method 2: DPDT Relay with Simple;120
12.2.2.3;Method 3: P-Channel and N-Channel Mosfets;121
12.2.2.4;Method 4: N-Channel H-Bridge;122
12.2.3;H-Bridge ICs;122
12.2.4;Changing PWM Frequencies;123
12.2.5;Back EMF;125
12.2.6;Current Sensing;127
12.2.7;Commercial H-Bridges (Motor-Controllers);128
12.2.7.1;Small (Up to 3amps);128
12.2.7.2;Medium (Up to 10amps);129
12.2.7.3;Large (Over 10amps);130
12.2.7.3.1;The Open Source Motor Controller (OSMC);130
12.3;Batteries;131
12.3.1;Nickel Cadmium (NiCad);131
12.3.2;Nickel Metal Hydride (NiMH);132
12.3.3;Lithium Polymer (LiPo);133
12.3.4;Lead-Acid;134
12.3.5;Charging;137
12.4;Materials;138
12.4.1;Wood;138
12.4.2;Metals;138
12.4.3;Nuts and Bolts;139
12.4.4;Plastics;140
12.4.5;Chain and Sprockets;140
12.4.6;Wheels;140
12.5;Summary;140
13;Chapter 4 Linus the Line-Bot;142
13.1;Parts List for Linus;143
13.2;How Linus Works;145
13.2.1;The Track;146
13.3;Building the IR Sensor Board;146
13.4;Modifying a Servo for Continuous Rotation;155
13.4.1;Method 1: Direct DC Drive with External Speed Controller;156
13.4.2;Method 2: Servo Pulse Drive with Internal Motor Driving Circuitry;158
13.5;Fitting the Drive wheels;160
13.6;Making a Frame;164
13.7;Making Connections;171
13.8;Installing Batteries;173
13.8.1;Install Power Switch;173
13.9;Loading the Code;173
13.10;Making the Track;179
13.11;Testing;180
13.12;Add-ons;181
13.12.1;LED Lights;181
13.12.2;Painting;183
13.12.3;Adding Speed Regulator (Potentiometer);187
13.13;Summary;190
14;CHAPTER 5 Wally the Wall-Bot;191
14.1;How Wally Works;192
14.2;Parts List for Wally;194
14.3;The Motor-Controller;195
14.3.1;The High-Side Switches;196
14.3.2;The Low-Side Switches;196
14.3.3;Building the Circuit;198
14.4;Building the Frame;204
14.5;Installing the Sensors;209
14.6;Installing the Battery and Power Switch;212
14.6.1;Installing a Power Switch;213
14.7;The Code;214
14.7.1;Code Objectives;215
14.8;Summary;223
15;CHAPTER 6 Making PCBs;224
15.1;PCB Basics;224
15.2;What You Need to Get Started;225
15.3;Circuit Design;227
15.3.1;Searching for Open-Source Designs;228
15.3.2;Making Your Own Designs;229
15.3.2.1;Schematics;229
15.3.2.2;Board Layouts;229
15.3.3;Working with the Schematic Editor;232
15.3.4;Working with the Board Editor;237
15.4;Transferring the Design;247
15.4.1;Let’s Make an Arduino Clone: the Jduino;248
15.4.2;Making the Transfer;249
15.5;Etching;257
15.5.1;Measuring the Solution;258
15.5.2;Etching: Method 1;259
15.5.3;Etching: Method 2;260
15.5.4;Removing the Toner;263
15.6;Drilling;266
15.7;Soldering;267
15.7.1;Building the Arduino Clone;268
15.7.2;Building the BJT H-Bridge;271
15.8;Testing;274
15.9;Summary;277
16;CHAPTER 7 The Bug-Bot;278
16.1;Reading a Switch with Arduino;279
16.2;How the Bug-bot Works;280
16.2.1;Antennae Sensors;280
16.2.2;Bumper Sensors;281
16.3;Parts List for the Bug-bot;281
16.4;The Motors;282
16.4.1;Modifying the Servo Motors;282
16.4.2;Controlling the Servo Motors;285
16.4.3;Converting the Pulse Value to Degrees;286
16.4.4;Mounting the Wheels to the Servos;287
16.5;Building the Frame;288
16.5.1;Marking the PlexiGlass;288
16.5.2;Cutting the PlexiGlass;290
16.5.3;Mounting the Motors;292
16.5.4;Mounting the Caster Wheels;293
16.5.5;Mounting the Arduino;295
16.5.6;Installing the Battery;296
16.6;Making the Sensors;298
16.6.1;The Front Antennae Sensors;298
16.6.2;The Rear Bump Sensors;299
16.7;Making Wire Connections;302
16.8;Loading the Code;304
16.8.1;Creating a Delay;304
16.8.2;Variables;305
16.8.3;The Code;306
16.9;Making a Top Hat;313
16.10;Summary;315
17;CHAPTER 8 Explorer-Bot;316
17.1;How the Explorer-Bot Works;317
17.1.1;R/C Control;317
17.1.2;Powerful Motors;318
17.1.3;Current Sensing;318
17.1.4;Video-Enabled;318
17.1.5;Xbee-Enabled;318
17.2;Parts List for the Explorer-Bot;319
17.3;Building the Frame;321
17.3.1;Specs;321
17.3.2;Adding Battery Bracket;322
17.3.3;Cut Top Frame Brackets;324
17.3.4;Cut Top Frame Braces;324
17.3.5;Cut and Bend Main Frame Piece;325
17.3.6;Add Crossbar and Mount Caster Wheel;327
17.3.6.1;Plexiglass Deck (Optional);329
17.4;Building the Motor Controller;329
17.4.1;Current Sensing and Limiting;330
17.4.2;H-bridge Design;330
17.5;Setting Up the Arduino;334
17.5.1;Connecting the H-Bridges;335
17.6;Setting Up Xbee;336
17.6.1;Testing the Xbees;338
17.7;Adding a Camera;339
17.7.1;Pan and Tilt;340
17.7.2;Make First Bracket;340
17.7.3;Make Second Bracket;342
17.8;Loading the Code;342
17.9;Summary;350
18;CHAPTER 9 RoboBoat;352
18.1;Some Words in Advance;353
18.2;Parts List for the RoboBoat;353
18.2.1;Polystyrene Foam;356
18.2.2;Epoxy Resin;357
18.2.3;Gloves;357
18.2.4;Fiberglass Fabric;357
18.2.5;Glue;359
18.2.6;Styrofoam Cutter and Razor Knife;359
18.2.7;Miscellaneous;359
18.3;The RoboBoat Design;359
18.4;Assembling the Boat;361
18.4.1;The Templates;361
18.4.2;Gluing the Templates on the EPS/XPS Board;363
18.4.3;Cutting Out the Segments;364
18.4.4;Gluing the Segments Together;367
18.4.5;Inserting the Foam Anchors;368
18.4.6;The Coating;369
18.4.7;Applying the Finish;371
18.4.8;The Fins;371
18.4.9;Painting;372
18.4.10;The Deck;372
18.4.11;Completing the Assembly;373
18.5;The Propulsion Assembly;377
18.5.1;The Baseplate;378
18.5.2;The Pivot;379
18.5.3;The Tube;380
18.5.4;The Rudder Horns;381
18.5.5;The Motor;381
18.5.6;The Servo;382
18.5.7;The Pushrods;382
18.6;Electronics;382
18.6.1;The Heart of the System: The ArduPilot PCB;383
18.6.2;The GPS Module;384
18.6.3;The Electronic Speed Controller (ESC);385
18.6.4;The Motor;386
18.6.5;The Rudder Servo;386
18.6.6;The Battery Pack;386
18.6.7;Assembling the Electronics;386
18.6.7.1;The Programming Adapter;388
18.7;Software and Mission Planning;389
18.7.1;GPS Receivers;389
18.7.2;The Software;390
18.7.2.1;AP_RoboBoat Module;391
18.7.2.2;Debug Module;393
18.7.2.3;Init Module;395
18.7.2.4;Navigation Module;396
18.7.2.5;PID_control Module;403
18.7.2.6;Servo_control Module;405
18.7.2.7;Header Files;407
18.7.3;Installing the Software;408
18.7.3.1;Installing the Arduino IDE;408
18.7.3.2;Configuring the Arduino IDE;409
18.7.3.3;Compiling and Uploading the Code;410
18.7.3.4;Customizing the Code;411
18.7.3.4.1;Customizing the Rudder Control;412
18.7.3.4.2;Customizing the PID Constants;412
18.7.3.4.3;Customizing the Motor Speed;412
18.7.3.4.4;Customizing the Waypoint Timeout;413
18.7.3.4.5;Customizing the Waypoint Radius;413
18.7.3.4.6;Customizing the Rudder Extents;413
18.7.4;Mission Planning;413
18.7.4.1;Employing Google Earth for the Coordinates;414
18.8;Putting It All Together;417
18.8.1;Integrating the System;418
18.8.2;Ships Ahoy!;420
18.9;Troubleshooting;421
18.9.1;The Thrust of the Motor/Propeller Is Not Sufficient;421
18.9.2;The Motor Does Not Start;422
18.10;Summary;423
19;CHAPTER 10 Lawn-Bot 400;424
19.1;How the Lawn-bot 400 Works;425
19.1.1;Lawn Mower Deck;426
19.1.2;High-Capacity Batteries;427
19.1.3;Steel Frame;427
19.1.4;Dump-Bucket;427
19.1.5;Pneumatic Tires;427
19.1.6;Headlights;427
19.1.7;Failsafe;428
19.2;Tools and Parts List;428
19.2.1;Lawnmower;428
19.2.2;Parts Lists;428
19.3;The Wheels;429
19.3.1;Front Caster Wheels;430
19.3.2;Rear Drive Wheels;430
19.3.3;Installing Sprockets;431
19.4;The Frame;433
19.5;The Drive-Train;441
19.5.1;Motor Mount Brackets;441
19.5.2;Installing the Chain;445
19.6;The Motor Controller;448
19.6.1;Buying a Motor Controller;448
19.6.1.1;Sabertooth 2x25;448
19.6.2;Cooling Fans;450
19.6.3;Motor Controller feedback;450
19.6.3.1;Current sensor IC;451
19.7;The Arduino;451
19.7.1;Securing Connections for a Bumpy Ride;452
19.7.1.1;Building a Breakout Board;452
19.8;The Failsafe;456
19.8.1;R/C Toggle Switch;457
19.8.2;Power Relays;460
19.8.3;Avoiding an R/C Failsafe;461
19.9;Making Connections;462
19.10;The Code;463
19.11;Adding Cosmetics and Accessories;468
19.11.1;Painting;468
19.11.2;Headlights;469
19.11.3;Dump Bucket;470
19.11.4;Lawnmower Kill-Switch;472
19.12;Summary;472
20;CHAPTER 11 The Seg-Bot;474
20.1;How the Seg-Bot Works;476
20.1.1;Inertial Measurement Unit;476
20.1.2;Steering and Gain;476
20.1.3;Engage Switch;476
20.2;Parts List for the Seg-Bot;477
20.3;Selecting the Right Sensors;478
20.3.1;3.3v Power;480
20.3.2;Accelerometer;480
20.3.3;Gyroscope;482
20.3.3.1;Cycle Time;483
20.3.3.2;Gyro Starting Point;483
20.3.3.3;Gyroscope Drift;483
20.3.4;Gyroscope Versus Accelerometer Summary;484
20.3.5;Filtering the Angle;484
20.3.5.1;Weighted Average;484
20.4;Making the IMU Adapter Board;485
20.5;Selecting the Motors;486
20.5.1;Electric Brake Removal;488
20.5.2;Motor Mounting Position;492
20.6;Selecting the Motor Controller;493
20.6.1;SoftwareSerial Library;494
20.6.2;Sabertooth Simplified Serial;495
20.7;The Batteries;496
20.7.1;Sealed Lead-Acid;496
20.7.2;Charging;497
20.7.3;12v Supply;497
20.8;The Frame;498
20.8.1;Frame Design;499
20.8.2;Building the Frame;500
20.9;Inputs;504
20.9.1;Steering;504
20.9.2;Gain;504
20.9.3;Engage Switch;504
20.9.4;Level-Start;504
20.9.5;Mounting the Inputs to the Frame;505
20.10;Installing the Electronics;509
20.10.1;Soldering the Inputs;512
20.10.2;Wiring the Connections;513
20.11;Reviewing the Code;514
20.11.1;Checking the Angle Readings;517
20.11.2;The read_pots() Function;518
20.11.3;The auto_level() Function;519
20.11.4;The update_motor_speed() Function;520
20.11.5;The time_stamp() Function;522
20.11.6;The serial_print_stuff() Function;523
20.11.7;The Full Code;524
20.12;Testing;530
20.13;Summary;532
20.14;References;532
21;CHAPTER 12 The Battle-Bot;533
21.1;Robotic Combat Is Born;535
21.1.1;Battle-Bot Rules and Regulations;535
21.1.2;No Price Limit!;536
21.1.2.1;Is This Going to Be Expensive?;537
21.2;Parts List for the Battle-Bot;537
21.3;Input Control;540
21.3.1;Fly Sky CT-6: The $32, 5-ch*, 2.4GHz Radio Alternative;540
21.3.1.1;Attention Hackers;543
21.4;The Electronics;543
21.4.1;The Arduino;543
21.4.2;The Motor Controllers;544
21.5;The Frame;545
21.5.1;To Buy or Build?;546
21.5.2;Modifying the Wheels;547
21.5.3;Building the Frame;548
21.6;The Drive Train;552
21.6.1;Gearing;553
21.6.1.1;Calculating Gear Ratio;553
21.6.1.2;Modifications;553
21.6.2;Chain Tensioning Nut;554
21.6.2.1;Threading Sequence;555
21.6.2.2;Measuring the Chain;556
21.6.2.3;Adding Spacers;557
21.7;Batteries;558
21.8;Securing Electronics;560
21.8.1;Protecting Your Brains;561
21.8.2;Making Connections;562
21.9;The Code;565
21.10;Armor;570
21.11;Weapons;572
21.12;Additional Information;581
21.13;Summary;582
22;CHAPTER 13 Alternate Control;583
22.1;Using Processing to Decode the Signals;583
22.2;Parts List for Alternate Control;584
22.3;Selecting the Input;585
22.4;Processing Prerequisites;586
22.5;Following Protocol;586
22.6;Examining the Processing Sketch;587
22.6.1;Explanation;590
22.6.2;Testing Processing;592
22.7;Examining the Arduino Sketch;594
22.8;Summary;599
23;Index;601