Muutke küpsiste eelistusi

Programming Interactivity 2nd edition [Pehme köide]

  • Formaat: Paperback / softback, 678 pages
  • Ilmumisaeg: 28-Feb-2012
  • Kirjastus: O'Reilly Media
  • ISBN-10: 144931144X
  • ISBN-13: 9781449311445
Teised raamatud teemal:
  • Pehme köide
  • Hind: 48,27 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 56,79 €
  • 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
  • Formaat: Paperback / softback, 678 pages
  • Ilmumisaeg: 28-Feb-2012
  • Kirjastus: O'Reilly Media
  • ISBN-10: 144931144X
  • ISBN-13: 9781449311445
Teised raamatud teemal:
Looks at the techniques of interactive design, covering such topics as 2D and 3D graphics, sound, computer vision, and geolocation.

Ready to create rich interactive experiences with your artwork, designs, or prototypes? This is the ideal place to start. With this hands-on guide, you'll explore several themes in interactive art and design—including 3D graphics, sound, physical interaction, computer vision, and geolocation—and learn the basic programming and electronics concepts you need to implement them. No previous experience is necessary.

You'll get a complete introduction to three free tools created specifically for artists and designers: the Processing programming language, the Arduino microcontroller, and the openFrameworks toolkit. You'll also find working code samples you can use right away, along with the background and technical information you need to design, program, and build your own projects.

  • Learn cutting-edge techniques for interaction design from leading artists and designers
  • Let users provide input through buttons, dials, and other physical controls
  • Produce graphics and animation, including 3D images with OpenGL
  • Use sounds to interact with users by providing feedback, input, or an element they can control
  • Work with motors, servos, and appliances to provide physical feedback
  • Turn a user's gestures and movements into meaningful input, using Open CV
Preface xiii
1 Introducing Interaction Design
1(22)
What This Book Is For
1(1)
Programming for Interactivity
2(13)
The Nature of Interaction
3(2)
Messages and Interaction
5(1)
Interfaces and Interaction
6(1)
Languages of Interaction
7(8)
Design and Interaction
15(1)
Art and Interaction
16(1)
Data Exchange and Exploration
17(4)
Working Process
21(2)
2 Programming Basics
23(32)
Why You'll Read This
Chapter More Than Once
24(1)
The Nature of Code
24(1)
Variables
25(14)
Simple Types
26(5)
Arrays
31(4)
Casting
35(1)
Operators
35(4)
Control Statements
39(4)
If/Then
39(1)
For Loop
40(1)
While Loop
41(1)
Continue
42(1)
Break
42(1)
Functions
43(5)
Defining a Function
43(1)
Passing Parameters to a Function
44(1)
Some Suggestions on Writing Functions
45(1)
Overloading Functions
46(2)
Objects and Properties
48(3)
Scope
51(1)
Review
52(3)
3 Processing
55(38)
Downloading and Installing Processing
56(1)
Exploring the Processing IDE
56(2)
The Basics of a Processing Application
58(5)
The setup() Method
58(2)
The draw() Method
60(3)
The Basics of Drawing with Processing
63(7)
The rect(), ellipse(), and line() Methods
63(1)
RGB Versus Hexadecimal
64(2)
The fill() Method
66(1)
The background() Method
67(1)
The line() Method
67(1)
The stroke() and stroke Weight() Methods
68(1)
The curve() Method
68(1)
The vertex() and curveVertex() Methods
69(1)
Capturing Simple User Interaction
70(10)
The mouseX and mouseY Variables
71(1)
The mousePressed() Method
71(1)
The mouseReleased() and mouseDragged() Methods
72(3)
The keyPressed and key Variables
75(5)
Importing Libraries
80(1)
Downloading Libraries
80(1)
Loading External Data into Processing
81(6)
Loading and Displaying Images
81(2)
Displaying Videos in the Processing Environment
83(1)
Using the Movie Class
83(2)
Reading and Writing Files
85(2)
Running and Debugging Applications
87(1)
Exporting Processing Applications
88(3)
Conclusion
91(1)
Review
91(2)
4 Arduino
93(40)
Starting with Arduino
94(5)
Installing the IDE
95(2)
Configuring the IDE
97(2)
Touring an Arduino Board
99(6)
The Controller
99(1)
Uno Versus Mini Versus Mega
99(6)
Touring the Arduino IDE
105(3)
The Basics of an Arduino Application
108(2)
The setup Statement
108(1)
The loop Method
108(2)
Features of the Arduino Language
110(8)
Constants
112(1)
Methods
112(2)
Arrays
114(1)
Strings
114(4)
How to Connect Things to Your Board
118(3)
Resistors
120(1)
Hello World
121(3)
Debugging Your Application
124(3)
Importing Libraries
127(3)
Running Your Code
130(1)
Running Your Board Without a USB Connection
130(1)
Review
130(3)
5 Programming Revisited
133(26)
Object-Oriented Programming
133(1)
Classes
134(3)
The Basics of a Class
135(1)
Class Rules
136(1)
Public and Private Properties
137(2)
Inheritance
139(2)
Processing: Classes and Files
141(2)
C++: Classes and Files
143(5)
.cpp and .h
144(2)
A Simple C++ Application
146(2)
Pointers and References
148(10)
Pointer
150(1)
Reference
151(2)
When to Use Pointers
153(1)
When to Use References
154(1)
Some Rules for Pointers
154(1)
Some Rules for References
155(1)
Pointers and Arrays
156(1)
When Are You Going to Use This?
157(1)
Review
158(1)
6 openFrameworks
159(40)
Your IDE and Computer
160(2)
Windows
160(1)
Mac OS X
161(1)
Linux
161(1)
Taking Another Quick Tour of C++
162(4)
Basic Variable Types
163(1)
Arrays
163(1)
Methods
164(1)
Classes and Objects in C++
165(1)
Getting Started with oF
166(6)
Touring an oF Application
172(2)
Methods
172(2)
Variables
174(1)
Creating "Hello, World"
174(2)
Drawing in 2-D
176(6)
Setting Drawing Modes
179(1)
Drawing Polygons
179(3)
Displaying Video Files and Images
182(4)
Images
182(2)
Video
184(2)
Compiling an oF Program
186(2)
Compiling in Xcode
186(2)
Compiling in Code::Blocks
188(1)
Debugging an oF Application
188(5)
Using the cout Statement
189(1)
Using the GNU Debugger
190(1)
Using the Debugger in Xcode
190(2)
Using the Debugger in Code::Blocks
192(1)
Importing Libraries
193(3)
ofxOpenCv
195(1)
ofxVectorGraphics
195(1)
ofxAssimpModelLoader
195(1)
ofxNetwork
195(1)
ofxOsc
196(1)
Review
196(3)
7 Physical Input
199(48)
Interacting with Physical Controls
199(1)
Thinking About Kinetics
200(1)
Getting Gear for This
Chapter
201(1)
Controlling Controls
202(1)
The Button As an Electrical Object
202(1)
The Button As an Interactive Object
202(1)
Reading the Value of a Button
202(1)
Turning Knobs
203(3)
The Dial As an Interactive Object
203(1)
Potentiometers
203(3)
Using Lights
206(2)
Wiring an LED
206(2)
Detecting Touch and Vibration
208(2)
Reading a Piezo Sensor
209(1)
Getting Piezo Sensors
210(1)
Detecting Proximity
210(6)
Proximity Through Capacitance
210(6)
Detecting Motion
216(2)
PIR Motion Sensor
216(2)
Reading Distance
218(4)
Reading Input from an Infrared Sensor
220(2)
Understanding Binary Numbers
222(3)
Binary Numbers
222(1)
Bits and Bit Operations
222(3)
Why Do You Need to Know Any of This?
225(1)
Communicating with Other Applications
225(3)
Sending Messages from the Arduino
228(4)
openFrameworks
229(3)
Detecting Forces and Tilt
232(5)
Introducing I2C
237(6)
Gyroscopes
240(3)
What's Next
243(1)
Review
244(3)
8 Programming Graphics
247(50)
The Screen and Graphics
248(2)
Seeing Is Thinking, Looking Is Reading
250(1)
Math, Graphics, and Coordinate Systems
251(3)
Drawing Strategies
254(9)
Use Loops to Draw
254(2)
Use Vectors to Draw
256(6)
Draw Only What You Need
262(1)
Use Sprites
263(1)
Transformation Matrices
263(4)
Creating Motion
267(9)
Shaping the Gaze
268(1)
Setting the Mood
268(2)
Creating Tweens
270(6)
Using Vectors
276(9)
Using Graphical Controls
285(3)
ControlP5 Library
286(1)
Event Handling
286(2)
Importing and Exporting Graphics
288(6)
Using PostScript in Processing
289(1)
Using PostScript Files in oF
290(4)
What's Next
294(1)
Review
294(3)
9 Bitmaps and Pixels
297(44)
Using Pixels As Data
298(2)
Using Pixels and Bitmaps As Input
300(1)
Providing Feedback with Bitmaps
301(1)
Looping Through Pixels
302(4)
ofPixels
303(3)
Manipulating Bitmaps
306(5)
Manipulating Color Bytes
309(1)
Using Convolution in Full Color
310(1)
Analyzing Bitmaps in oF
311(10)
Analyzing Color
312(2)
Analyzing Brightness
314(1)
Detecting Motion
315(6)
Using Edge Detection
321(7)
Using Pixel Data
328(3)
Using Textures
331(7)
Textures in oF
332(3)
Textures in Processing
335(3)
Saving a Bitmap
338(1)
What's Next
339(1)
Review
339(2)
10 Sound and Audio
341(48)
Sound As Feedback
342(3)
Sound and Interaction
345(2)
How Sound Works on a Computer
347(3)
Audio in Processing
350(12)
Instantiating the Minim Library
350(2)
Generating Sounds with Minim
352(4)
Filtering Sounds with Minim
356(6)
Sound in openFrameworks
362(2)
openFrameworks and the FMOD Ex Library
364(7)
Maximilian
371(10)
Physical Manipulation of Sound with Arduino
381(1)
A Quick Note on PWM
382(3)
Creating Interactions with Sound
385(1)
Further Resources
385(1)
Review
386(3)
11 Arduino and Feedback
389(46)
Using Motors
390(7)
DC Motors
391(3)
Stepper Motors
394(2)
Motor Shields
396(1)
Smart Feedback
397(2)
Using Servos
399(6)
Connecting a Servo
400(1)
Communicating with the Servo
400(1)
Wiring a Servo
401(4)
Using Household Currents
405(3)
Working with Appliances
408(6)
Introducing the LilyPad Board
414(2)
Using Vibration
416(3)
Nano, Fio, and Mini
419(1)
Using an LED Matrix
419(3)
Using the LED Control Library
419(3)
Using the SPI Protocol
422(1)
Serial LED Matrix
423(2)
Using LCDs
425(4)
Using Solenoids for Movement
429(3)
What's Next
432(1)
Review
432(3)
12 Protocols and Communication
435(54)
Communicating over Networks
436(2)
Using XML
438(3)
Understanding Networks and the Internet
441(2)
Network Organization
441(1)
Network Identification
442(1)
Network Data Flow
443(1)
Handling Network Communication in Processing
443(10)
Client Class
444(1)
Server Class
445(3)
Sharing Data Across Applications
448(5)
Understanding Protocols in Networking
453(1)
Using the ofxNetwork Add-on
454(15)
Creating Networks with the Arduino
469(6)
Initializing the Ethernet Library
470(1)
Creating a Client Connection
470(2)
Creating a Server Connection
472(3)
Wireless Internet on the Arduino
475(4)
Communicating with Bluetooth
479(3)
Using Bluetooth in Processing
479(1)
Using the bluetoothDesktop Library
480(2)
Communicating Using MIDI
482(4)
Review
486(3)
13 Graphics and OpenGL
489(46)
What Does 3-D Have to Do with Interaction?
489(1)
Understanding 3-D
490(1)
What Is OpenGL?
491(1)
Working with 3-D in Processing
492(8)
OpenGL in Processing
493(1)
Lighting in Processing
494(2)
Controlling the Viewer's Perspective
496(4)
Making Custom Shapes in Processing
500(3)
Using Coordinates and Transforms in Processing
503(3)
Transformations
506(1)
3-D in openFrameworks
506(3)
Drawing in 3-D
508(1)
Transformations in openFrameworks
509(1)
Lighting in OpenGL
509(2)
Blending Modes in OpenGL
511(4)
Creating 3-D Objects in oF
515(4)
Using Textures and Shading in Processing
519(1)
Using Another Way of Shading
520(4)
What Does GLSL Look Like?
520(1)
Vertex Shaders
521(1)
Geometry Shader
522(1)
Fragment Shader
522(1)
Variables Inside Shaders
523(1)
Using ofShader
524(6)
Using Shaders in Processing
530(1)
What to Do Next
531(1)
Review
532(3)
14 Motion and Gestures
535(48)
Computer Vision
536(3)
Interfaces Without Controls
537(1)
Example CV Projects
538(1)
OpenCV
539(1)
Using Blobs and Tracking
539(6)
Starting with ofxOpenCV
540(5)
Detecting Features with oF
545(4)
Using OpenCV in Processing
549(5)
Feature Tracking in Processing
554(5)
Using Blob Tracking with Physics
559(6)
Exploring Further in OpenCV
565(1)
Detecting Gestures
566(8)
Using ezGestures in Processing
567(3)
Using Gestures in oF
570(4)
Capturing iOS gestures with oF
574(3)
Touch with oF
577(1)
Tuio
577(1)
reacTIVision
578(1)
CCV
578(1)
What's Next
578(1)
Using the Microsoft Kinect
579(1)
Processing
579(1)
openFrameworks
580(1)
Review
580(3)
15 Movement and Location
583(30)
Using Movement As and In Interaction
583(2)
Using Software-Based Serial Ports
585(2)
Understanding and Using GPS
587(12)
Storing Data
599(3)
Logging GPS Data to an Arduino
602(4)
Using the breadcrumbs Library
602(1)
Implementing Hardware-Based Logging
603(3)
Sending GPS Data
606(2)
Getting Location on a Mobile Device
608(2)
On the iPhone
608(1)
On an Android Phone
609(1)
What to Do Next
610(1)
Review
610(3)
16 Spaces and Environments
613(44)
Using Architecture and Space
613(1)
Sensing Environmental Data
614(1)
Using an XBee with Arduino
615(12)
Creating a Simple Test
618(2)
Configuring the XBee Module
620(2)
Addressing in the XBee
622(1)
XBee Library for Processing
623(4)
Placing Objects in 2-D
627(7)
Using the X10 Protocol
634(3)
Setting Up an RFID Sensor
637(6)
Reading Heat and Humidity
643(5)
Determine Position of an Object
648(7)
What's Next
655(1)
Review
655(2)
17 Further Resources
657(18)
What's Next?
657(13)
Software Tools
657(3)
Construction Processes
660(1)
Artificial Intelligence
661(1)
Physics
662(6)
Hardware Platforms
668(2)
Bibliography
670(3)
Interaction Design
670(1)
Programming
671(1)
Hardware
672(1)
Art
672(1)
Conclusion
673(2)
Index 675
Joshua Noble is an interaction designer and developer. He's the lead author of the Flex 4 Cookbook (O'Reilly, May 2010) and Programming Interactivity (July 2009). He's interested in designing humane objects and services for the intersection of public spaces, technology, and micro-computing, and exploring how people can participate in their physical and virtual communities.