Muutke küpsiste eelistusi

Arduino Projects for Amateur Radio [Pehme köide]

  • Formaat: Paperback / softback, 464 pages, kõrgus x laius x paksus: 231x185x23 mm, kaal: 798 g, 50 Illustrations
  • Ilmumisaeg: 16-Dec-2014
  • Kirjastus: McGraw-Hill Professional
  • ISBN-10: 0071834052
  • ISBN-13: 9780071834056
  • Formaat: Paperback / softback, 464 pages, kõrgus x laius x paksus: 231x185x23 mm, kaal: 798 g, 50 Illustrations
  • Ilmumisaeg: 16-Dec-2014
  • Kirjastus: McGraw-Hill Professional
  • ISBN-10: 0071834052
  • ISBN-13: 9780071834056
Gives amateur radio hobbyists with no programming experience access to tips, techniques and do-it-yourself projects to expand their capabilities and add value, range and functionality to existing equipment without spending extra money. Original.

BOOST YOUR HAM RADIO'S CAPABILITIES USING LOW-COST ARDUINO MICROCONTROLLER BOARDS!

Do you want to increase the functionality and value of your ham radio without spending a lot of money? This book will show you how!Arduino Projects for Amateur Radio is filled with step-by-step microcontroller projects you can accomplish on your own--no programming experience necessary.

After getting you set up on an Arduino board, veteran ham radio operators Jack Purdum (W8TEE) and Dennis Kidder (W6DQ) start with a simple LCD display and move up to projects that can add hundreds of dollars' worth of upgrades to existing equipment. This practical guide provides detailed instructions, helpful diagrams, lists of low-cost parts and suppliers, and hardware and software tips that make building your own equipment even more enjoyable. Downloadable code for all of the projects in the book is also available.

Do-it-yourself projects include:

  • LCD shield
  • Station timer
  • General purpose panel meter
  • Dummy load and watt meter
  • CW automatic keyer
  • Morse code decoder
  • PS2 keyboard CW encoder
  • Universal relay shield
  • Flexible sequencer
  • Rotator controller
  • Directional watt and SWR meter
  • Simple frequency counter
  • DDS VFO
  • Portable solar power source

Preface xvii
Acknowledgments xix
1 Introduction 1(16)
Which Microcontroller to Use?
1(5)
We Chose Arduino, So Now What?
3(2)
Interpreting Table 1-1
5(1)
Making the Choice
5(1)
What Else Do You Need?
6(1)
Software
7(10)
Downloading and Installing the Arduino Integrated Development Environment
8(1)
Installing the Software
9(2)
Running Your First Program
11(6)
2 I Don't Know How to Program 17(18)
I Don't Need No Stinkin' CW!
17(1)
Like CW, Like Programming
18(1)
The Five Program Steps
18(2)
Step
1. Initialization
18(1)
Step
2. Input
19(1)
Step
3. Processing
19(1)
Step
4. Output
19(1)
Step
5. Termination
19(1)
Arduino Programming Essentials
20(12)
The Blink Program
20(2)
Data Definitions
22(1)
Where's the main() Function?
22(2)
The setup() Function
24(1)
The loop() Function
25(1)
I Thought There Were Five Program Steps?
26(1)
Modifying the Blink Sketch
26(6)
Saving Memory
32(2)
Remove Unused Variables
32(1)
Use a Different Data Type
32(1)
Avoid Using the String Class
33(1)
The F() Macro
33(1)
The freeRam() Function
34(1)
Conclusion
34(1)
3 The LCD Shield Project 35(32)
Libraries: Lessening the Software Burden
36(1)
Not All LCDs Are the Same
36(1)
LCD Shield Parts List
37(2)
Assembling the LCD Shield
39(7)
Breakaway Header Pins
40(2)
Soldering Components to the Shield
42(4)
Adding Components Using a Schematic
46(5)
An Alternative Design
51(1)
Loading the Example Software and Testing
52(4)
A "Code Walk-Through" of the "HelloWorld" Sketch
56(3)
Explore the Other Examples
59(1)
Using Your LCD Display with the TEN-TEC Rebel
59(6)
Under the Rebel Hood
60(1)
Software Modifications
61(4)
Conclusion
65(2)
4 Station Timer 67(34)
Software Version of ID Timer
68(2)
Magic Numbers
70(1)
Preprocessor Directives
71(2)
Fixing Bad Magic Numbers: #define
71(2)
A Second Way to Remove Magic Numbers: const
73(1)
Fixing Flat Forehead Mistakes
73(1)
Encapsulation and Scope
74(4)
Fixing Our Program Bug
75(1)
The static Data Type Specifier
76(2)
Using a Real Time Clock (RTC) Instead of a Software Clock
78(1)
The Inter-Integrated Circuit (PC or I2C) Interface
78(1)
The I2C and the DS1307 RTC Chip
79(2)
BCD and the DS1307 Registers
80(1)
Constructing the RTC/Timer Shield
81(8)
The Adafruit RTClib Library
85(4)
Initializing the RTC
89(9)
Running the Program
97(1)
The RTC Timer Program
98(1)
The loop() Function
98(1)
A Software Hiccup
99(1)
Conclusion
100(1)
5 A General Purpose Panel Meter 101(18)
Circuit Description
102(2)
Construction
104(6)
An Alternate Design Layout
106(4)
Loading the Example Software and Testing
110(5)
Code Walk-Through
113(1)
Instantiating the lcd and lbg Objects
113(1)
The loop() Code
114(1)
Testing and Calibration of the Meter
115(1)
Changing the Meter Range and Scale
116(1)
Voltmeter
116(1)
Ammeter
117(1)
Changing the Scale
117(1)
Conclusion
117(2)
6 Dummy Load 119(12)
Mechanical Construction
120(4)
Resistor Pack Spacing
121(1)
Fabricating the Lid Connections
122(1)
Attaching the Lid to the Resistor Pack
123(1)
Electronic Construction
124(1)
Doing the Math
124(2)
Software
126(4)
Conclusion
130(1)
7 A CW Automatic Keyer 131(24)
Required Software to Program an ATtiny85
133(1)
Connecting the ATtiny85 to Your Arduino
134(3)
The Proper Programming Sequence
137(1)
Some Things to Check If Things Go South
137(1)
Using the Digispark
138(5)
Compiling and Uploading Programs with Digispark
140(3)
The CW Keyer
143(8)
Adjusting Code Speed
144(1)
Capacitance Sensors
144(6)
The volatile Keyword
150(1)
Construction
151(2)
Conclusion
153(2)
8 A Morse Code Decoder 155(18)
Hardware Design Considerations
155(5)
Signal Preprocessing Circuit Description
157(2)
Notes When Using the Decoder with the TEN-TEC Rebel
159(1)
Decoder Software
160(11)
Search a Binary Tree of ASCII Characters
160(2)
Morse Decode Program
162(7)
Farnsworth Timing
169(2)
Conclusion
171(2)
9 A PS2 Keyboard CW Encoder 173(26)
The PS2 Keyboard
173(3)
Testing the PS2 Connector
175(1)
The PS2 Keyboard Encoder Software
176(18)
Adding the PS2 Library Code to Your IDE
176(13)
Code Walk-Through on Listing 9-1
189(1)
Overloaded Methods
190(1)
The sendcode() Method
190(2)
Some Bit-Fiddling
192(2)
Isolating the Arduino from the Transmitter
194(2)
Testing
196(1)
Other Features
197(1)
Change Code Speed
197(1)
Sidetone
198(1)
Long Messages
198(1)
Conclusion
198(1)
10 Project Integration 199(20)
Integration Issues
200(1)
The Real Time Clock (RTC) Shield
201(1)
CW Decoder Shield
202(1)
PS2 Keyboard Keyer
202(1)
The Expansion Board
203(2)
Software Project Preparation
205(1)
C++, OOP, and Some Software Conventions
206(3)
C++ Header Files
207(2)
Class Declaration
209(1)
public and private Members of a Class
209(1)
Function Prototypes
209(1)
cpp Files
210(1)
Class Constructor Method
211(1)
IntegrationCode.ino
211(6)
Header Files
212(2)
Constructors
214(1)
How the Terms Class, Instantiation, and Object Relate to One Another
214(1)
The Dot Operator (.)
215(2)
The loop() Function
217(1)
Conclusion
218(1)
11 Universal Relay Shield 219(8)
Construction
221(3)
Circuit Description
221(1)
Construction of the Relay Shield
222(2)
Testing the Relay Shield
224(2)
Test Sketch "Walk-Through"
225(1)
Conclusion
226(1)
12 A Flexible Sequencer 227(18)
Just What Is a Sequencer?
228(1)
The Sequencer Design
228(1)
Timing
228(1)
Constructing the Sequencer
229(5)
A Purpose-Built Sequencer
230(4)
Programming and Testing the Sequencer
234(1)
Initial Testing of the Sequencer
234(1)
Loading the Sequencer Program and Testing
235(5)
Sequencer Code "Walk-Through"
238(1)
Modifying the Sequence Order and Delay Time
239(1)
Configuring the Jumpers for Different Situations
239(1)
Modifying the Relay Shield from
Chapter 11
240(4)
Alternate Listing for the Relay Shield Sequencer
241(3)
Conclusion
244(1)
13 Rotator Controller 245(38)
The Arduino Antenna Rotator Controller
246(10)
Supported Rotators
246(1)
Relay Shield
247(1)
Panel Meter Shield
248(5)
The Control Panel
253(3)
Adding the I2C Interface to the Relay Shield from
Chapter 11
256(1)
Connecting the Rotator Controller
256(4)
Early Cornell-Dublier Electronics (CDE) Models
257(1)
Later Models from HyGain, Telex, and MFJ
258(1)
Yaesu Models G-800SDX/DXA, G-1000SDX/DXA, and G-2800DXA
259(1)
Software
260(19)
Arduino Beam Heading Software
260(17)
Moving the Beam
277(2)
Setting a New Heading
279(1)
Storing a New Heading in EEPROM
279(1)
World Beam Headings
279(3)
Finding the Coordinates for a QTH
279(1)
Finding a Beam Heading
280(2)
Conclusion
282(1)
14 A Directional Watt and SWR Meter 283(48)
SWR and How It Is Measured
284(1)
Obtaining the Antenna System SWR
284(2)
Detectors
286(1)
Constructing the Directional Watt/SWR Meter
286(18)
Design and Construction of the Directional Coupler/Remote Sensor
288(4)
The Sensor Board
292(4)
Final Assembly of the Coupler/Sensor
296(2)
Interface Shield Construction
298(1)
LCD Shield Options
299(2)
Final Assembly
301(3)
Testing the Directional Wattmeter/SWR Indicator
304(3)
Calibrating the Directional Wattmeter
304(3)
Software Walk-Through
307(22)
Definitions and Variables
324(1)
setup()
325(1)
loop()
326(3)
Further Enhancements to the Directional Wattmeter/SWR Indicator
329(1)
Conclusion
329(2)
15 A Simple Frequency Counter 331(18)
Circuit Description
333(1)
Constructing the Shield
334(4)
An Alternate Design for Higher Frequencies
337(1)
Code Walk-Through for Frequency Counter
338(4)
Displaying the Tuned Frequency of Your Display-less QRP Rig
342(5)
Double Conversion Applications
342(1)
Adding a Frequency Display to the MFJ Cub QRP Transceiver
343(2)
Adding a Frequency Display to a NorCal 40
345(1)
Direct Conversion Applications
346(1)
Other Radio Applications
347(1)
Conclusion
347(2)
16 A DDS VFO 349(30)
Direct Digital Synthesis
350(1)
The DDS VFO Project
350(2)
DDS VFO Circuit Description
352(5)
The Analog Devices AD9850 Breakout Module
352(1)
Constructing the DDS VFO Shield
353(1)
Adding an Output Buffer Amplifier for the DDS VFO
353(3)
The Front Panel and Interconnection
356(1)
DDS VFO Functional Description
357(4)
Overview
357(1)
EEPROM Memory Map
357(1)
SW1, the User Frequency Selection Switch (UFSS)
358(2)
SW2, the Band-Up Switch (BUS)
360(1)
SW3, the Band-Down Switch (BDS)
360(1)
SW4, Plus Step Switch (PSS)
361(1)
SW5, Minus Step Switch (MSS)
361(1)
SW6, the Encoder Control
361(1)
The DDS VFO Software
361(1)
EEPROM Initialization Program
362(4)
The KP VFO Software (VFOControlProgram.ino)
366(3)
setup()
367(1)
loop()
368(1)
Testing the DDS VFO
369(2)
Calibrating the DDS VFO
370(1)
Using the DDS VFO with Your Radio
371(5)
The Pixie QRP Radio
372(2)
Blekok Micro 40SC
374(1)
CRKits CRK 10A 40 meter QRP Transceiver
374(2)
Other Applications of the DDS VFO and Additional Enhancements
376(1)
Conclusion
377(2)
17 A Portable Solar Power Source 379(26)
The Solar Sensor
381(3)
Solar Charger Controller
384(1)
Panel Positioning and Stepper Motor
385(4)
Stepper Wiring
385(1)
Stepper Motor Driver
386(2)
Control Inputs
388(1)
Solar Panel Support Structure
389(1)
Stepper Motor Details
390(1)
Mounting the Stepper Motor
391(4)
Solar Panel Connections
395(1)
Placing the Quick Connectors
396(1)
The Motor Controller Shield
396(2)
Routing Power Cables
397(1)
Motor Controller Shield Wiring
397(1)
Altitude Positioning
398(1)
The Software
399(4)
Final Assembly
403(1)
Assembly and Disassembly
403(1)
Conclusion
404(1)
A Suppliers and Sources 405(14)
B Substituting Parts 419(4)
C Arduino Pin Mapping 423(6)
Index 429
Dr. Jack Purdum, W8TEE (Cincinnati, OH) has been a licensed ham since 1954 and is the author of 17 programming books. He retired from Purdue University's College of Technology where he taught various programming languages.



Dennis Kidder (Inyokern, CA) has been a licensed ham since 1969. He is also an electrical engineer with a distinguished career in major engineering projects throughout the world, working for companies such as Raytheon and Hughes.