Cover image for C Programming for Arduino.
C Programming for Arduino.
Title:
C Programming for Arduino.
Author:
Bayle, Julien.
ISBN:
9781849517591
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (610 pages)
Contents:
C Programming for Arduino -- Table of Contents -- C Programming for Arduino -- Credits -- About the Author -- Acknowledgement -- About the Reviewers -- www.PacktPub.com -- Support files, eBooks, discount offers and more -- Why Subscribe? -- Free Access for Packt account holders -- Preface -- What this book covers -- What you need for this book -- Who this book is for -- Conventions -- Reader feedback -- Customer support -- Downloading the example code -- Errata -- Piracy -- Questions -- 1. Let's Plug Things -- What is a microcontroller? -- Presenting the big Arduino family -- About hardware prototyping -- Understanding Arduino software architecture -- Installing Arduino development environment (IDE) -- Installing the IDE -- How to launch the environment? -- What does the IDE look like? -- Installing Arduino drivers -- Installing drivers for Arduino Uno R3 -- Installing drivers for Arduino Duemilanove, Nano, or Diecimilla -- What is electricity? -- Voltage -- Current and power -- And what are resistors, capacitors, and so on? -- Wiring things and Fritzing -- What is Fritzing? -- Power supply fundamentals -- Hello LED! -- What do we want to do exactly? -- How can I do that using C code? -- Start with a new blank page -- Setting up the environment according the board we are using -- Let's write the code -- Let's upload the code, at last! -- Summary -- 2. First Contact with C -- An introduction to programming -- Different programming paradigms -- Programming style -- C and C++? -- C is used everywhere -- Arduino is programmed with C and C++ -- The Arduino native library and other libraries -- Discovering the Arduino native library -- Other libraries included and not directly provided -- Some very useful included libraries -- Some external libraries -- Checking all basic development steps -- Using the serial monitor -- Baud rate.

Serial communication with Arduino -- Serial monitoring -- Making the Arduino talk to us -- Adding serial communication to Blink250ms -- Serial functions in more detail -- Serial.begin() -- Serial.print() and Serial.println() -- Digging a bit… -- Talking to the board from the computer -- Summary -- 3. C Basics - Making You Stronger -- Approaching variables and types of data -- What is a variable? -- What is a type? -- The roll over/wrap concept -- Declaring and defining variables -- Declaring variables -- Defining variables -- String -- String definition is a construction -- Using indexes and search inside String -- charAt() -- indexOf() and lastIndexOf() -- startsWith() and endsWith() -- Concatenation, extraction, and replacement -- Concatenation -- Concat() -- Using the + operator on strings -- Extract and replace -- substring() is the extractor -- Splitting a string using a separator -- Replacement -- Other string functions -- toCharArray() -- toLowerCase() and toUpperCase() -- trim() -- length() -- Testing variables on the board -- Some explanations -- The scope concept -- static, volatile, and const qualifiers -- static -- volatile -- const -- Operators, operator structures, and precedence -- Arithmetic operators and types -- Character types -- Numerical types -- Condensed notations and precedence -- Increment and decrement operators -- Types manipulations -- Choosing the right type -- Implicit and explicit types conversions -- Implicit type conversion -- Explicit type conversion -- Comparing values and Boolean operators -- Comparison expressions -- Combining comparisons with Boolean operators -- Combining negation and comparisons -- Adding conditions in the code -- if and else conditional structure -- Chaining an if…else structure to another if…else structure -- if…else structure with combined comparisons expressions.

Finding all cases for a conditional structure -- switch…case…break conditional structure -- Ternary operator -- Making smart loops for repetitive tasks -- for loop structure -- Playing with increment -- More complex increments -- Decrements are negative increments -- Using imbricated for loops or two indexes -- while loop structure -- do…while loop structure -- Breaking the loops -- Infinite loops are not your friends -- Summary -- 4. Improve Programming with Functions, Math, and Timing -- Introducing functions -- Structure of a function -- Creating function prototypes using the Arduino IDE -- Header and name of functions -- Body and statements of functions -- Benefits of using functions -- Easier coding and debugging -- Better modularity helps reusability -- Better readability -- C standard mathematical functions and Arduino -- Trigonometric C functions in the Arduino core -- Some prerequisites -- Difference between radians and degrees -- Cosine, sine, and tangent -- Arccosine, arcsine, and arctangent -- Trigonometry functions -- Exponential functions and some others -- Approaching calculation optimization -- The power of the bit shift operation -- What are bit operations? -- Binary numeral system -- Easily converting a binary number to a decimal number -- AND, OR, XOR, and NOT operators -- AND -- OR -- XOR -- NOT -- Bit shift operations -- It is all about performance -- The switch case labels optimization techniques -- Optimizing the range of cases -- Optimizing cases according to their frequency -- Smaller the scope, the better the board -- The Tao of returns -- Direct returns concept -- Use void if you don't need return -- Secrets of lookup tables -- Table initialization -- Replacing pure calculation with array index operations -- Taylor series expansion trick -- The Arduino core even provides pointers -- Time measure.

Does the Arduino board own a watch? -- The millis() function -- The micros() function -- Delay concept and the program flow -- What does the program do during the delay? -- The polling concept - a special interrupt case -- The interrupt handler concept -- What is a thread? -- A real-life polling library example -- Installing an external library -- Let's test the code -- Summary -- 5. Sensing with Digital Inputs -- Sensing the world -- Sensors provide new capacities -- Some types of sensors -- Quantity is converted to data -- Data has to be perceived -- What does digital mean? -- Digital and analog concepts -- Inputs and outputs of Arduino -- Introducing a new friend - Processing -- Is Processing a language? -- Let's install and launch it -- A very familiar IDE -- Alternative IDEs and versioning -- Checking an example -- Processing and Arduino -- Pushing the button -- What is a button, a switch? -- Different types of switches -- A basic circuit -- Wires -- The circuit in the real world -- The pull-up and pull-down concept -- The pseudocode -- The code -- Making Arduino and Processing talk -- The communication protocol -- Protocol requirements -- Protocol design -- The Processing code -- Sketching a pseudocode -- Let's write that code -- Variable definitions -- setup() -- draw() -- The serialEvent() callback -- The new Arduino firmware talk-ready -- Playing with multiple buttons -- The circuit -- The Arduino code -- The Processing code -- Understanding the debounce concept -- What? Who is bouncing? -- How to debounce -- Summary -- 6. Sensing the World - Feeling with Analog Inputs -- Sensing analog inputs and continuous values -- How many values can we distinguish? -- Reading analog inputs -- The real purpose of the potentiometer -- Changing the blinking delay of an LED with a potentiometer -- How to turn the Arduino into a low voltage voltmeter?.

Calculating the precision -- Introducing Max 6, the graphical programming framework -- A brief history of Max/MSP -- Global concepts -- What is a graphical programming framework? -- Max, for the playground -- MSP, for sound -- Jitter, for visuals -- Gen, for a new approach to code generation -- Summarizing everything in one table -- Installing Max 6 -- The very first patch -- Playing sounds with the patch -- Controlling software using hardware -- Improving the sequencer and connecting the Arduino -- Let's connect the Arduino to Max 6 -- The serial object in Max 6 -- Tracing and Debugging easily in Max 6 -- Understanding Arduino messages in Max 6 -- What is really sent on the wire? -- Extracting only the payload? -- ASCII conversions and symbols -- Playing with sensors -- Measuring distances -- Reading a datasheet? -- Let's wire things -- Coding the firmware -- Reading the distance in Max 6 -- Measuring flexion -- Resistance calculations -- Sensing almost everything -- Multiplexing with a CD4051 multiplexer/demultiplexer -- Multiplexing concepts -- Multiple multiplexing/demultiplexing techniques -- Space-division multiplexing -- Frequency-division multiplexing -- Time-division multiplexing -- The CD4051B analog multiplexer -- What is an integrated circuit? -- Wiring the CD4051B IC? -- Identifying pin number 1 -- Supplying the IC -- Analog I/O series and the common O/I -- Selecting the digital pin -- Summary -- 7. Talking over Serial -- Serial communication -- Serial and parallel communication -- Types and characteristics of serial communications -- Synchronous or asynchronous -- Duplex mode -- Peering and bus -- Master and slave buses -- Data encoding -- Multiple serial interfaces -- The powerful Morse code telegraphy ancestor -- The famous RS-232 -- From 25 wires to 3 -- The elegant I2C -- The synchronous SPI -- The omnipresent USB.

USB system design.
Abstract:
Written as a practical Packt book brimming with engaging examples, C Programming for Arduino will help those new to the amazing open source electronic platform so that they can start developing some great projects from the very start.This book is great for people who want to learn how to design & build their own electronic devices. From interaction design art school students to the do-it-yourself hobbyist, or even simply people who want to learn electronics, this book will help by adding a new way to design autonomous but connected devices.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: