Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Learning Javascript Robotics

You're reading from   Learning Javascript Robotics Design, build, and program your own remarkable robots with JavaScript and open source hardware

Arrow left icon
Product type Paperback
Published in Nov 2015
Publisher
ISBN-13 9781785883347
Length 160 pages
Edition 1st Edition
Languages
Tools
Concepts
Arrow right icon
Author (1):
Arrow left icon
Kassandra Perch Kassandra Perch
Author Profile Icon Kassandra Perch
Kassandra Perch
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Learning JavaScript Robotics
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
1. Getting Started with JS Robotics FREE CHAPTER 2. Working with Johnny-Five 3. Using Digital and PWM Output Pins 4. Using Specialized Output Devices 5. Using Input Devices and Sensors 6. Moving Your Bot 7. Advanced Movement with the Animation Library 8. Advanced Components – SPI, I2C, and Other Devices 9. Connecting NodeBots to the World, and Where to Go Next Index

Index

A

  • accelerometer
    • building, with I2C devices / Building with an I2C device – Accelerometer
    • wiring up / Wiring up our accelerometer
    • example, coding / Coding up our example
  • Adafruit
    • URL / What we'll be using in this book
  • analog input pins
    • working / How analog input pins work
  • animation
    • need for / Why animation?
  • Animation API
    • about / What is the Animation API?
    • need for / Why do we need an Animation API?
    • animation / Why animation?
    • observing / Looking at the Animation API
    • terminology / Learning the terminology
    • target / Learning the terminology
    • segment / Learning the terminology
    • keyframe / Learning the terminology
    • cue points / Learning the terminology
    • duration / Learning the terminology
    • and .to() method, differentiating between / The difference between .to() and the Animation API
    • ServoArray object / Using the ServoArray object
    • three servos, wiring / Project – wiring up three servos and creating an array
    • array, creating / Project – wiring up three servos and creating an array
  • animation events
    • about / Animation events
    • onstart callback / Animation events
    • onstop callback / Animation events
    • onpause callback / Animation events
    • oncomplete callback / Animation events
    • onloop callback / Animation events
    • servo array, building with informative LCD readout / Building a servo array with an informative LCD readout
  • Animation object
    • about / The Animation object
    • functions / The Animation object
    • .enqueue() function / The Animation object
    • .play() function / The Animation object
    • pause() function / The Animation object
    • .stop() function / The Animation object
    • .next() function / The Animation object
    • .speed([speed]) function / The Animation object
  • Arduino
    • URL / Connecting your Microcontroller and installing Firmata
  • Arduino Uno
    • about / Connecting your Microcontroller and installing Firmata
  • Arduino Uno board
    • using / What we'll be using in this book
  • AVRGirl
    • about / Connecting your Microcontroller and installing Firmata
    • URL / Connecting your Microcontroller and installing Firmata

B

  • barcli
    • URL / barcli
  • basic inputs
    • using / Using basic inputs – buttons and potentiometers
    • buttons / Using basic inputs – buttons and potentiometers
    • potentiometers / Using basic inputs – buttons and potentiometers
    • button-led.js, coding / Coding button-led.js
  • benefits
    • of SPI device / Benefits and drawbacks of SPI
    • of I2C device / Benefits
  • button
    • and LED, wiring / Wiring up our button and LED
  • button-led.js
    • coding / Coding button-led.js

C

  • character LCD
    • connecting, to Arduino Uno board / Project – character LCD display
    • i2c LCDs, wiring / Wiring up – I2C LCDs
    • code, writing / The code
    • code, i2c version / The I2C version
    • code, non-i2c version / The non-I2C version
    • code, running / Running the code
  • character LCD without i2c interface
    • example, URL / What you'll need for this chapter
  • Chip Select (CS) / How SPI works
  • Cylon.js
    • about / Cylon.js
    • URL / Cylon.js

D

  • development environment, for JavaScript robotics
    • setting up / Setting up your development environment
    • Node.js, installing / Installing Node.JS
    • project, setting up / Setting up your project and installing Johnny-Five
    • Johnny-Five, installing / Setting up your project and installing Johnny-Five
    • Microcontroller, connecting / Connecting your Microcontroller and installing Firmata
    • Firmata, installing / Connecting your Microcontroller and installing Firmata
  • digital output pins
    • and PWM pins, differentiating between / How to tell the difference between Digital and PWM pins
  • documentation
    • obtaining / Obtaining documentation, wiring diagrams, and so on
  • Donovan Buck’s tharp project / The keyframe object
  • drawbacks
    • of SPI device / Benefits and drawbacks of SPI
    • of I2C device / Drawbacks
  • drawing functions, LED matrix
    • .row([index], row, value); / The Drawing functions
    • .column([index], col, value); / The Drawing functions
    • .draw([index], character); / The Drawing functions

E

  • Espruino
    • about / Espruino
    • URL / Espruino
  • events, Johnny-Five program
    • about / Understanding events in Johnny-Five
    • importance / Why events?
  • external devices
    • about / External Devices
    • importance / Why External Devices?
    • node-serialport library / node-serialport
    • node-hid library / node-hid
    • USB gamepad, building / Building a USB gamepad
  • external LED
    • wiring / Wiring up an external LED
    • importance / Wiring up an external LED
    • hardware, setting up / Setting up the hardware

F

  • Firmata
    • installing / Connecting your Microcontroller and installing Firmata
  • functions, Johnny-Five program / Objects, functions, and events

G

  • GitHub
    • URL / Obtaining documentation, wiring diagrams, and so on
  • GPIO pins
    • working / How GPIO pins work
    • digital output pins / Digital output pins
    • PWM output pins / PWM output pins

H

  • Hello, World!
    • onboard LED, blinking / Hello, World! – Blinking an onboard LED
  • Human Interface Device (HID) devices / node-hid

I

  • I2C devices
    • exploring / Exploring I2C devices
    • working / How I2C works
    • pins / Pins used by I2C
    • data, sending / How I2C devices send and receive data
    • data, receiving / How I2C devices send and receive data
    • drawbacks / Benefits and drawbacks of I2C, Benefits, Drawbacks
    • benefits / Benefits
    • used, for building accelerometer / Building with an I2C device – Accelerometer
  • I2C interface
    • URL / What you'll need for this chapter
  • I2C protocol
    • need for / Why do we need the I2C and SPI protocols?
  • inject method / Making components available to the REPL
  • Inter-Integrated Circuits (i2c)
    • about / Inter-Integrated Circuits (I2C)
  • Inverse Kinematic (IK) / The keyframe object

J

  • JavaScript robotics
    • about / Understanding JS Robotics, NodeBots, and Johnny-Five
    • development environment / Setting up your development environment
  • JerryScript
    • about / JerryScript
    • URL / JerryScript
  • Johnny-Five
    • about / Understanding JS Robotics, NodeBots, and Johnny-Five, Johnny-Five and the NodeBot revolution
    • URL / Johnny-Five and the NodeBot revolution, Running the script, Checking compatibility with Johnny-Five, Obtaining documentation, wiring diagrams, and so on, What you'll need for this chapter, Servo and motor controllers, Motor and servo shields
    • and NodeBot / Johnny-Five and the NodeBot revolution
    • installing / Setting up your project and installing Johnny-Five
    • requisites / What you'll need for this chapter
    • abstraction / Multiple pins with several LEDs
    • Led objects, exploring / Exploring more about LED objects in Johnny-Five
    • compatibility, checking with / Checking compatibility with Johnny-Five
    • documentation, URL / What you'll need for this chapter
    • sensor events / Johnny-Five sensor events
    • SPI device, using / How Johnny-Five does SPI
    • microcontrollers / Johnny-Five and the wide world of microcontrollers
    • tethering / Tethering and Johnny-Five
  • Johnny-Five program
    • working / How a Johnny-Five program works
    • objects / Objects, functions, and events
    • events / Objects, functions, and events, Understanding events in Johnny-Five
    • functions / Objects, functions, and events
    • blink-LED script / Going over our blink-LED script
  • JS libraries and platforms
    • about / Other JS libraries and platforms
    • Espruino / Espruino
    • Tessel / Tessel
    • Cylon.js / Cylon.js
    • JerryScript / JerryScript
    • tiny Linux computers / Tiny Linux computers
    • vendor libraries / Vendor libraries

K

  • key frames, servo animations
    • writing / Writing keyframes, The keyframe object
    • degrees / The keyframe object
    • step / The keyframe object
    • easing / The keyframe object
    • copyDegrees / The keyframe object
    • copyFrame / The keyframe object
    • position / The keyframe object
    • shorthand / Keyframe shorthand
    • non-integer values / Keyframe shorthand
    • writing, examples / Examples of writing keyframes

L

  • LED
    • and button, wiring / Wiring up our button and LED
    • and potentiometer, wiring / Wiring the potentiometer and the LED, Coding our dimmer switch
  • Led.RGB class / Obtaining documentation, wiring diagrams, and so on
  • LED matrix
    • building, with SPI device / Building with an SPI device – an LED matrix
    • pin matchup / The build
    • API / The API
    • .on([index]) method / The API
    • .off([index]) method / The API
    • .clear([index]) method / The API
    • .brightness([index], brightness) method / The API
    • .led([index], row, col, state) method / The API
  • LED matrix API
    • about / The API
    • data, formatting / Formatting data for the LED matrix
    • drawing functions / The Drawing functions
    • code / The Code
  • Led object API / Multiple pins with several LEDs

M

  • Master In Slave Out (MISO) / How SPI works
  • Master Out Slave In (MOSI) / How SPI works
  • methods, project
    • on() / Multiple pins with several LEDs
    • off() / Multiple pins with several LEDs
    • blink(time) / Multiple pins with several LEDs
    • pulse(time) / Multiple pins with several LEDs
    • fade(brightness, ms) / Multiple pins with several LEDs
    • stop() / Multiple pins with several LEDs
  • microcontroller
    • about / What a NodeBot is, and other basic vocabulary
    • connecting / Connecting your Microcontroller and installing Firmata
  • motors
    • types / The different kinds of servos and motors, Types of motors
    • defining / Defining motors and servos
    • considerations / Things to keep in mind
    • selecting / Do I use a servo or a motor?
    • controllers / Servo and motor controllers
    • shields / Motor and servo shields
    • using, concerns / Special concerns when using motors and servos
    • power concerns / Power concerns
    • tethering / Tethering and cables
    • cables / Tethering and cables
    • wiring up / Wiring up servos and motors, Wiring up motors
    • used, for creating project / Creating a project with a motor and using the REPL
    • REPL, using / Creating a project with a motor and using the REPL
    • motor API, exploring / Exploring the motor API

N

  • node-serialport / Understanding JS Robotics, NodeBots, and Johnny-Five
  • Node.js
    • URL / Installing Node.JS
  • NodeBot
    • about / What a NodeBot is, and other basic vocabulary
  • NodeBots
    • connecting, to Web / Connecting NodeBots to the Web
    • Node Server / It's just a Node Server!
    • Twilio, using / Using Twilio
    • WeatherBot, building / Building the WeatherBot
    • TextBot, using / Using the TextBot
    • used, for fixing issues / Where to go from here
  • Node Package Manager (NPM) / Installing Node.JS
  • non-integer values
    • null / Keyframe shorthand
    • false / Keyframe shorthand

O

  • objects, Johnny-Five program / Objects, functions, and events
  • onboard LED
    • blinking / Hello, World! – Blinking an onboard LED
    • Johnny-Five script, writing / Writing the Johnny-Five script
    • Johnny-Five script, running / Running the script
  • outputs devices
    • multiple pins, requiring / Outputs that require multiple pins

P

  • Particle Photon
    • URL / What you'll need for this chapter
    • WeatherBot, moving to / Moving our WeatherBot to the Particle Photon
  • photocell
    • about / Using sensors – Light and Temperature
    • wiring / Wiring up our photocell
    • example, coding / Coding our photocell example
    • barcli / barcli
    • summarizing / Coding everything together
  • piezo.off() method / Exploring the Piezo API
  • Piezo element
    • PWM pins, using with / Using PWM pins with the Piezo element
  • potentiometer
    • and LED, wiring / Wiring the potentiometer and the LED, Coding our dimmer switch
  • prerequisites / What you'll need for this chapter, What you'll need for this chapter
    • about / What you'll need for this chapter, What you'll need for this chapter, What you'll need for this chapter
    • button / What you'll need for this chapter
    • rotating potentiometer / What you'll need for this chapter
    • light sensor / What you'll need for this chapter
    • temperature sensor / What you'll need for this chapter
    • LM35 / What you'll need for this chapter
    • microcontroller / What you'll need for this chapter
    • for creating complex movements / What you'll need for this chapter
    • Particle Photon / What you'll need for this chapter
  • project
    • methods / Multiple pins with several LEDs
    • hardware, setting up / Setting up the hardware for the project
    • script, writing / Writing the script for the project
    • Led objects, in Johnny-Five / Exploring more about LED objects in Johnny-Five
    • creating, with servo and sensor / Creating a project with a servo and a sensor
  • pulse() method / Digital output pins
  • PWM pins
    • about / PWM output pins
    • and digital output pins, differentiating between / How to tell the difference between Digital and PWM pins
    • using, with Piezo element / Using PWM pins with the Piezo element
  • PWM pins, using with Piezo element
    • about / Using PWM pins with the Piezo element
    • hardware, setting up / Setting up the hardware
    • script, writing / Writing the script
    • working / What's going on with the pin?
    • Piezo API, exploring / Exploring the Piezo API

R

  • REPL
    • about / Using the Read-Eval-Print-Loop (REPL)
    • components, making available / Making components available to the REPL
    • using / Using the REPL
    • using, with motor / Creating a project with a motor and using the REPL
    • using, with sensor / Exploring the servo API with the REPL

S

  • SainSmart / What we'll be using in this book
  • segment options, servo animations
    • target / Segment options
    • easing / Segment options
    • loop / Segment options
    • metronomic / Segment options
    • progress / Segment options
    • currentSpeed / Segment options
    • fps / Segment options
    • multiple servos, in one segment / Multiple servos in one segment
  • segments, servo animations
    • writing / Writing segments
    • options / Segment options
    • writing, examples / Examples of writing segments
  • sensor events, Johnny-Five / Johnny-Five sensor events
  • Serial Clock Line (SCL) / Inter-Integrated Circuits (I2C)
  • Serial Data Line (SDA) / Inter-Integrated Circuits (I2C)
  • servo animations
    • writing / Writing Servo Animations
    • key frames, writing / Writing keyframes, The keyframe object
    • segments, writing / Writing segments
    • animation object / The Animation object
    • servo array, animating / Project – animating our servo array
  • servo array
    • building, with informative LCD readout / Building a servo array with an informative LCD readout
  • servos
    • about / The different kinds of servos and motors
    • defining / Defining motors and servos
    • considerations / Things to keep in mind
    • types / Types of servos
    • selecting / Do I use a servo or a motor?
    • controllers / Servo and motor controllers
    • shields / Motor and servo shields
    • using, concerns / Special concerns when using motors and servos
    • power concerns / Power concerns
    • tethering / Tethering and cables
    • cables / Tethering and cables
    • wiring up / Wiring up servos
    • and sensor, used for creating project / Creating a project with a servo and a sensor
    • servo API, exploring with sensor / Exploring the servo API with the REPL
  • Slave Select (SS) / How SPI works
  • SparkFun
    • URL / Power concerns
  • Sparkfun
    • URL / What we'll be using in this book
  • SPI device
    • exploring / Exploring SPI (Serial Peripheral Interface) devices
    • working / How SPI works
    • features / How SPI works
    • used, by Johnny-Five / How Johnny-Five does SPI
    • benefits / Benefits and drawbacks of SPI
    • drawbacks / Benefits and drawbacks of SPI
    • used, for building LED matrix / Building with an SPI device – an LED matrix
  • SPI protocol
    • need for / Why do we need the I2C and SPI protocols?

T

  • .to() method
    • and Animation API, differentiating between / The difference between .to() and the Animation API
  • temperature sensor
    • using / Using sensors – Light and Temperature
    • wiring / Wiring up the temperature sensor
    • example, coding / Coding our temperature example
  • Tessel
    • about / Tessel
  • Tessel 2 / Tessel
  • TextBot
    • using / Using the TextBot
  • this.repl.inject() function / Making components available to the REPL
  • Twilio
    • URL / Using Twilio
    • using / Using Twilio

U

  • USB gamepad
    • building / Building a USB gamepad
    • hardware / The hardware
    • node-gamepad API / The node-gamepad API
    • code, adding to controller.js file / The code

V

  • VoodooSpark
    • URL / Johnny-Five and the wide world of microcontrollers

W

  • WeatherBot
    • building / Building the WeatherBot
    • moving, to Particle Photon / Moving our WeatherBot to the Particle Photon
  • Web
    • NodeBots, connecting to / Connecting NodeBots to the Web
  • wiring diagrams
    • obtaining / Obtaining documentation, wiring diagrams, and so on
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at £13.99/month. Cancel anytime
Visually different images