Make – JavaScript Robotics – Building NodeBots with Johnny
شارك
اسم المؤلف
With Donovan Buck, Bryan Hughes, Pawel Szymczykowski, Raquel Velez, Kassandra Perch, Susan Hinton, Julian David Duque, Andrew Fisher, David Resseguie, Jonathan Beri, Emily Rose, Anna Gerber, Sara Gorecki & Lyza Danger Gardner
التاريخ
التصنيف
المشاهدات
221
التقييم
التحميل
Make – JavaScript Robotics – Building NodeBots with Johnny
Five, Raspberry Pi, Arduino, and BeagleBone
Rick Waldron& Backstop Media
With Donovan Buck, Bryan Hughes, Pawel Szymczykowski, Raquel
Velez, Kassandra Perch, Susan Hinton, Julian David Duque, Andrew
Fisher, David Resseguie, Jonathan Beri, Emily Rose, Anna Gerber,
Sara Gorecki & Lyza Danger Gardner
Table of contents
Preface
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
Julián Duque
- Building Robots with Lo-tech Materials
Building the SimpleBot
Bill of Materials
Build Steps
Installing Node.js Packages
Testing the Build with a Basic Program
Troubleshooting
A Simple Driving Program
Troubleshooting
Cutting the Cord
Building a Wireless SimpleBot
Wiring Up
Controlling the SimpleBot
Troubleshooting
Whatâs Next? - TypeBot
Bill of Materials
Understanding Your Servomotors
Anatomy of a Robot Arm
Arm Layout
Arm Constraints
Building the Hardware
The Base and Shoulder
The Elbow
The Wrist
The Finger
The Brains
Writing the Software
Creating the Project Files
Controlling the Servos
Initialization
Sequencing a Key Press
Running for the First Time
Fine-Tuning the Arm
Whatâs Next? - Getting Started with NodeBoats
Bill of Materials
Tools
The Submarine Motor Pod
Why Use a Motor Driver?
Motor Pod Components
Modifying the Motor
Testing the Motor
Finishing the Motor
Inserting the Motor
Drilling into the Motor Pod
Closing the Motor Pod
Waterproofing Your Wires
Setting Up Your Spark
Testing the Spark
Your First Spark Program
Soldering the Motor Driver
Wiring Up Your Boat
Powering the Motor Driver
Connecting the Spark and the Motor Driver
Connecting the Motor
Controlling Your Motor: The Code
Adding Keypress Events
Storing Keypress State
Floating the Boat
Steering with Servos
Programming Servo Control
Assembling the Rudder
Setting Sail
Whatâs Next? - piDuino5 Mobile Robot Platform
Bill of Materials
Tools
Setting Up the Boards and Installing Software
Installing Node.js on the Raspberry Pi
Downloading the piDuino5 Code and Dependencies
Plug in the Arduino
Test Johnny-Five over WebSockets
Walk Through app.js
Initializing Johnny-Five
Controlling the Hardware
Low-Latency Control with WebSockets
Connect from Anywhere
Assemble the Hardware
Controlling with a Smartphone
Downloading the piDuino5 Web App
Post localtunnel to the Web App
Try the Web App on a Phone
Walk Through app.js and index.html
Storing the localtunnel Address and Frontend
Serving the UI
Touchscreen Joystick
Establishing a Connection
Sending Commands
Whatâs Next? - Controlling a Hexapod with Johnny-Five
Bill of Materials
Controlling the Robot from the Command Line
An Introduction to phoenix.js
Assembling the Robot
Prepare the Chassis
Mount the Electronics
Prepare the Servos
Installing the coxae
Installing the Femurs
Installing the Tibias
The Coordinate System
Trim the Servos
Trim the coxae
Trim the Femurs
Trim the Tibias
Add Ranges to the Servos
Walking Is Hard!
Meet the Animation Class
An Array of Servos as the Target
A Servo.Array as the Target
An Array of Servo.Arrays as the Target
The First Animation Segment
Walking
The Row Gait
The Walk Gait
The Run Gait
Turning
Command Reference
Whatâs Next? - Building Voice-Controlled NodeBots
Bill of Materials
BeagleBone Black
Building Our Project
Building a Relay Circuit
Controlling the Relay Circuit from Johnny-Five
Building a Microphone Preamplifier Circuit
Connecting the Microphone to the Relay from Johnny-Five
Building the Commands Server
Simple Voice Control Using the Web Speech API
Integrate the Commands Server with the Relay Circuit
Advanced Voice Control Using an Android Wearable
Android Mobile Application
Android Wear Application
Whatâs Next? - An Indoor Sundial
Bill of Materials
Foam Core Structural Pieces
Building Our Sundial
Cutting and Assembling the Core Structure
Assemble the Mounting Board
Wiring and Configuring the Servos
Wiring the Servos
Configuring the Servos
Building the Lower Base
Making the Disks
Build the Base Walls and Base Disk Support
Build the Base Walls
Position the Disks
Build the Disk Support
Finish Parts and Construction
Build the Azimuth Arm
Construct the Elevation Arc
Cut a Gnomon
Wire Up the Sun
Code to Make It Go
Understanding sundial.js
Set Up Some Configuration in sundial.js
sundial.js Details
Putting It All Together!
Making It Go!
Whatâs Next? - Spooky Lights
Bill of Materials
Choosing a Controller Board
Background
Whatâs an LED Matrix?
Assembling the Lights
Tools Required
Preparing the Matrices
Constructing a Cable Assembly
Decorating the Lights
Troubleshooting
Controlling an LED matrix
Preparing the Arduino
Running a Test Program
Matrix Constructor Options
Drawing to the Matrix
Developing a Web Application
Development Tools
Using the Express Generator
Developing an API
Adding a User Interface
Extending the Application
Whatâs Next? - CheerfulJ5
Bill of Materials
Wiring the Circuit
The CheerfulJ5 code
Connecting to the Arduino
Controlling an RGB
Using the Node.js Read-Eval-Print Loop
Defining the CheerLights Color Map
Accessing the CheerLights ThingSpeak API
Using the Twitter Streaming API
Going Wireless with the Spark WiFi Development Kit
Adding the Spark to Your Circuit
Using the Spark-io IO Plugin
Switching to Battery Power
Packaging It Up
Whatâs Next? - Interactive RGB LED Display with BeagleBone Black
Bill of Materials
BeagleBone Black
WiFi USB Adapter (optional)
External 5V Power Supply (Semi-Optional)
RGB LEDs
Sensors
Miscellaneous
Getting Ready: Software
LEDScape
Wiring Your LEDs
Wiring Up Your RGB LEDs
Code Time! Letâs Bring in the JavaScript
Running a Test Script
Adding in Johnny-Five/Beaglebone-io
Adding a Photoresistor
Changing Colors with an Accelerometer
Whatâs Next? - Physical Security, JavaScript, and You
Simple Ultrasonic Sensor Project: Experimental Control Test (SUSPECT)
Implementation
SMS Augmented Ultrasonic Sensor Application: General Experimentation (SAUSAGE)
Implementation
Point-of-Entry Monitoring System (PoEMS)
Implementation
Lasers Impress Both Enemies and Relatives, Thank You (LIBERTY)
Implementation
Status Indicator Necessary, Buttons and Diodes (SINBaD)
Implementation
Whatâs Next? - Artificial Intelligence: BatBot
Artificial Intelligence: The Basics
Remote-Controlled Robots
Semi-Autonomous Robots
Autonomous Robots
BatBot
Bill of Materials
Some Notes About the Materials
Assembly
Step 1: Remote Control
Moving the Robot
Controlling the Robot
Pointing and Reading from the Sonar
Step 2: Autonomy
Implementing the Algorithm
Troubleshooting
Whatâs Next? - Delta Robots and Kinematics
Bill of Materials
Delta Anatomy
Building Junky Delta
Making It Move
Predictable Positioning Through Kinematics
More Sophisticated Delta Options
TapsterBot
Robot Army
Whatâs Next? - Meow Shoes
Bill of Materials
Parts Explained
Making the Sensor Inserts
Solder the Sensors to the Wiring
Install Sensors into the Shoes
Tunnel the Wiring out of the Shoe
Connecting the Shoes
Prepare the Coiled Connector Cord
Connect the Shoes to an Arduino
Prepare Wiring
Arduino Soldering
Attach the Arduino to the Right Shoe
Running the Code with Johnny-Five
Connecting to Johnny-Five
Setting up Sensors
Logging Output of Sensors
Example Behavior
Whatâs Next?
A. Appendix
Installing Node.js
Installing Johnny-Five
Troubleshooting
More Information
Configuring Your Hardware
Arduino
BeagleBone Black
Raspberry Pi
Spark WiFi Development Kit
Android Development
Installing Android Studio
Creating an Android Project
Installing Volley
Index
Symbols
3D Hubs printing service, Parts Explained
3D printers, Parts Explained
hiring/borrowing, Parts Explained
8×8 LED matrix boards, Choosing a Controller Board
A
a priori data, Step 2: Autonomy
accelerometers, Changing Colors with an Accelerometer-Changing
Colors with an Accelerometer
wiring, Changing Colors with an Accelerometer
Access Token/Access Token Secret (Twitter), Using the Twitter
Streaming API
saving as environment variables, Using the Twitter Streaming API
active area (FSR), Parts Explained
actuator (delta robot), Delta Anatomy
Adafruit, Bill of Materials, RGB LEDs
Neopixels, RGB LEDs
power guide for, Wiring Up Your RGB LEDs
Adafruit mini LED backpacks, Preparing the Matrices
MatrixView class and, Adding a User Interface
wire order for, Connecting a matrix
Amazon, sourcing materials from, Bill of MaterialsAnalog Input pin, Connecting the Microphone to the Relay from
Johnny-Five
Android browser, Simple Voice Control Using the Web Speech API
Android development, Android Development
Android projects, creating, Creating an Android Project
Android Studio, Advanced Voice Control Using an Android Wearable
installing, Installing Android Studio
Android Wear, Building a Microphone Preamplifier Circuit, Advanced
Voice Control Using an Android Wearable-Android Wear Application
Ångström, BeagleBone Black and Johnny-Five
animation class
enqueueing animation segments, The First Animation Segment-The
First Animation Segment
joint coordinate system and, The Coordinate System
Animation.Class, Meet the Animation Class-An Array of Servo.Arrays
as the Target
array of Servo.Arrays as target, An Array of Servo.Arrays as the
Target
array of servos, targeting, An Array of Servos as the Target
Servo.Array as target, An Array of Servos as the Target
turning, Turning
Arduinos, piDuino5 Mobile Robot Platform, Parts Explained
configuring, Arduino
connecting to, Connecting to the Arduino
controlling LED matrix with, What’s an LED Matrix?
delta robots and, Making It MoveFirmata version for HT16K33 devices, Preparing the Arduino
flashing, wireless modules and, Arduino setup
FSRs, connecting, Connect the Shoes to an Arduino-Attach the
Arduino to the Right Shoe
Mega, Prepare the Chassis
Micro, Connect the Shoes to an Arduino
Motor Shield, Bill of Materials
motors and, Why Use a Motor Driver?
Nano, Constructing a Cable Assembly
power pin for, Implementation
powering servos from, Wiring and Configuring the Servos
PWM support on, Wiring the Circuit
soldering, Arduino Soldering
ultrasonic sensors, connecting, Implementation
Uno, TypeBot, Connect the Shoes to an Arduino
artificial intelligence, Artificial Intelligence: The Basics
Asimo, Building Robots with Lo-tech Materials
Atlas, Building Robots with Lo-tech Materials
autopilot (on commercial aircraft), Autonomous Robots
azimuth disk, Assemble the Mounting Board
arm, building, Build the Azimuth Arm
making, Making the Disks
positioning, Position the Disks
support, building, Build the Disk Support
wiring light for, Wire Up the Sun
wiring servo for, Wiring the standard (azimuth) servoB
BatBot project, Artificial Intelligence: BatBot-What’s Next?
algorithm for, implementing, Implementing the AlgorithmImplementing the Algorithm
artificial intelligence, Artificial Intelligence: The Basics
autonomy, Step 2: Autonomy-Implementing the Algorithm
electromagnetic interference, Assembly
remote control, implementing, Step 1: Remote Control-Pointing and
Reading from the Sonar
troubleshooting, Troubleshooting
battery packs
CheerfulJ5 project, Switching to Battery Power
for Interactive RGB LED Display, External 5V Power Supply (SemiOptional)
for Spark Cores, Wiring Up Your Boat
BeagleBone Black, Building Voice-Controlled NodeBots, BeagleBone
Black
configuring, BeagleBone Black
GPIO power output of, Building a Relay Circuit
Interactive RGB LED Display and, Interactive RGB LED Display
with BeagleBone Black-What’s Next?
Johnny-Five framework and, BeagleBone Black and Johnny-Five
LEDScape, LEDScape
powering with USB, BeagleBone Black and Johnny-Five
Rev C model, BeagleBone Black
web apps on, Developing an APIwiring buttons into, Adding in Johnny-Five/Beaglebone-io
beaglebone-io I/O plugin, BeagleBone Black and Johnny-Five
wrapper, adding, Adding in Johnny-Five/Beaglebone-io-Adding in
Johnny-Five/Beaglebone-io
blink method (led), Using the Node.js Read-Eval-Print Loop
Bluetooth, BatBot
Board object (Johnny-Five), Connecting to the Arduino
BOE Bot Robotics Kit, Some Notes About the Materials
bonescript package (Node.js), BeagleBone Black and Johnny-Five
BotBoarduino, Prepare the Chassis
Bower, Downloading the piDuino5 Web App
breadboard wiring
Arduino servo shield vs., Bill of Materials
for motor drivers, Soldering the Motor Driver
for NodeBoats, Wiring Up Your Boat-Powering the Motor Driver
for piDuino project, Assemble the Hardware
for servos, Steering with Servos
for SimpleBot project, Build Steps
for wireless projects, Wiring Up
FSRs for, Connect the Shoes to an Arduino
C
cable assembly, Constructing a Cable Assembly-Troubleshooting
branches, making, Connecting a matrix
troubleshooting, Troubleshooting
cable ties and cardboard, Build Stepscapacitors, Assembly
cardboard, Build Steps
Cartesian robots, Delta Robots and Kinematics
Cascades, Haar, Artificial Intelligence: The Basics
ceramic capacitors, Wiring Up Your Boat
chassis, printing, What’s Next?
CheerfulJ5 project, CheerfulJ5-What’s Next?
batteries, powering with, Switching to Battery Power
code for, The CheerfulJ5 code
extracting colors from tweets, Accessing the CheerLights
ThingSpeak API
packaging, Packaging It Up
power for, Adding the Spark to Your Circuit
Spark WiFi Development Kit, Going Wireless with the Spark WiFi
Development Kit-Switching to Battery Power
Spark-IO module and, Using the Spark-io IO Plugin
Twitter Streaming API, Using the Twitter Streaming API-Using the
Twitter Streaming API
wiring, Wiring the Circuit
CheerLights service, CheerfulJ5, Accessing the CheerLights
ThingSpeak API-Accessing the CheerLights ThingSpeak API
CheerLights ThingSpeak channel, Accessing the CheerLights
ThingSpeak API
Chip Antenna, Setting Up Your Spark
Chrome, Simple Voice Control Using the Web Speech API
circuit controller, Integrate the Commands Server with the Relay
CircuitClavel, Reymond, Delta Robots and Kinematics, Predictable
Positioning Through Kinematics
closed control loop, Step 2: Autonomy
Cloud9 IDE, BeagleBone Black and Johnny-Five
CNC machines, Remote-Controlled Robots
color maps, defining, Defining the CheerLights Color Map
command line, controlling from, Controlling the Robot from the
Command Line
commands server, Building the Commands Server-Building the
Commands Server
EventEmitter pattern and, Integrate the Commands Server with the
Relay Circuit
common anode RGB LEDs, Wiring the Circuit, Controlling an RGB
common cathode RGB LEDs, Wiring the Circuit, Implementation
conductive layer (FSR), Parts Explained
constraint programming, Arm Constraints
Consumer Key/Consumer Secret (Twitter), Using the Twitter
Streaming API
saving as environment variables, Using the Twitter Streaming API
continuous rotation servos, Understanding Your Servomotors
in BatBot project, Moving the Robot-Moving the Robot
modding standard servos into, Bill of Materials
troubleshooting, Troubleshooting, Troubleshooting
controller boards, Choosing a Controller Board
soldering, Preparing the Matrices
controllers, What’s Next?crimping wires, practicing, Connecting a matrix
soldering vs., Connecting the Shoes
cURL, Test Johnny-Five over WebSockets
D
DaVinci surgical robots, Semi-Autonomous Robots
Debian, BeagleBone Black and Johnny-Five
delta robots, Delta Robots and Kinematics-What’s Next?
3D printing parts for, More Sophisticated Delta Options
actuator, Delta Anatomy
anatomy of, Delta Anatomy-Delta Anatomy
defined, Delta Robots and Kinematics
end effector, Delta Anatomy
Junky Delta project, Building Junky Delta-Predictable Positioning
Through Kinematics
kinematics and, Predictable Positioning Through KinematicsPredictable Positioning Through Kinematics
kits for, More Sophisticated Delta Options
lower arm, Delta Anatomy
measuring for kinematics, Predictable Positioning Through
Kinematics
powering, Building Junky Delta
Robot Army, Robot Army
TapsterBot, TapsterBot
universal joint, Delta Anatomy
upper arm, Delta Anatomy
wiring, Building Junky DeltaDescriptive Geometric Kinematic Analysis of Clavels Delta Robot
(Zsombor-Murray), Predictable Positioning Through Kinematics
DFRobot shield, An Introduction to phoenix.js
differential drive, Troubleshooting
Digital Output pin, Connecting the Microphone to the Relay from
Johnny-Five
diode, Background
drilling clean holes, Building Junky Delta
driver IC (to control LED matrices), What’s an LED Matrix?
dualshock-controller module, Controlling the Robot
dynamic walking gait, Walking
E
E6000 QuickHold Contact Adhesive, Getting Started with NodeBoats
electromagnetic interference, Assembly
elevation disk, Construct the Elevation Arc
wiring servos for, Wiring the sub-micro (elevation) servo
enclosures, creating, Connecting the Arduino
end effector (delta robots), Delta Anatomy
positioning, Predictable Positioning Through Kinematics
Ethernet, connecting BeagleBone Black, BeagleBone Black and
Johnny-Five
EventEmitter pattern, Integrate the Commands Server with the Relay
Circuit
events, Johnny-Five, Implementation
express generator, Using the Express Generator
routes, replacing, Developing an APIexpress REST API, Building the Commands Server
Express server, Walk Through app.js and index.html
F
Firmata protocol, Preface, Arduino
configuring for wireless modules, Arduino setup
controlling HT16K33 devices, Preparing the Arduino
Force Sensitive Resistor (FSR)
connecting to Arduinos, Connect the Shoes to an Arduino-Attach the
Arduino to the Right Shoe
soldering, Solder the Sensors to the Wiring
Force-sensitive resistor (FSR), Parts Explained
forever module, Code Time! Let’s Bring in the JavaScript
FTDI Console cables, Bill of Materials
FTDI USB cable, Robot Army
fully autonomous robots, Artificial Intelligence: BatBot, Autonomous
Robots
G
Gaultier, Julian, Preface
Getting Started with Arduino kit, Bill of Materials
gnomon, An Indoor Sundial
building, Cut a Gnomon
disk, making, Making the Disks
positioning, Position the Disks
support, building, Build the Disk Support
H
H-Bridge chip, Why Use a Motor Driver?, Initializing Johnny-Fivehackerspace, Parts Explained
HC-SR04 ultrasonic sensor, Simple Ultrasonic Sensor Project:
Experimental Control Test (SUSPECT)
heat shrink tubing, Connecting the Arduino
Hexapod project, Controlling a Hexapod with Johnny-Five-What’s
Next?
assembling, Assembling the Robot-Installing the Tibias
command reference, Command Reference
coordinate system for, The Coordinate System
coxae, installing, Installing the coxae
femurs, installing, Installing the Femurs
rear legs, controlling, An Introduction to phoenix.js
testing safely, Installing the Tibias
tibiae, installing, Installing the Tibias
trimming servos, Trim the Servos-Trim the Tibias
turning, Turning
walking with Animation.Class, Walking
Homebrew, Controlling the SimpleBot wirelessly
house lights, controlling, Building a Relay Circuit
HT16K33 based I2C 8×8 LED matrix boards, Choosing a Controller
Board
controller board for, Preparing the Matrices
controller driver, What’s an LED Matrix?
HTTP client libraries, Android Mobile Application
I
indoor sundial project, An Indoor Sundial-What’s Next?Arduino, mounting, Assemble the Mounting Board
base walls, building, Build the Base Walls
base, building, Building the Lower Base
code for, Code to Make It Go-The tick function
core structure, building, Cutting and Assembling the Core Structure
daylight saving time and, Making It Go!
disk support, building, Build the Disk Support
making disks, Making the Disks
servos, code for, servos.js-Running the code
servos, configuring, Configuring the Servos
servos, wiring, Wiring and Configuring the Servos-Running the code
tick function, The tick function
Intel Galileo, web apps on, Developing an API
Inter-integrated circuit (I2C), What’s an LED Matrix?
Adafruit mini LED backpacks and, Preparing the Matrices
addresses, Preparing the Matrices
Interactive RGB LED Display, Interactive RGB LED Display with
BeagleBone Black-What’s Next?
accelerometers, adding, Changing Colors with an AccelerometerChanging Colors with an Accelerometer
animation, adding, Running a Test Script
BeagleBone Black board, BeagleBone Black
code for, Getting Ready: Software
photoresistors, adding, Adding a Photoresistor-Adding a
Photoresistor
power for, External 5V Power Supply (Semi-Optional)sensors, Sensors
testing, Running a Test Script
Internet of Things, Accessing the CheerLights ThingSpeak API
inverse kinematics, Predictable Positioning Through Kinematics
J
JavaScript
forcing synchronous operation of, Implementing the Algorithm
IDE for, Development Tools
sketches, Arduino vs., Preface
temporal library, Implementing the Algorithm, Making It Move
Johnny-Five framework, Preface, piDuino5 Mobile Robot Platform
BeagleBone Black and, BeagleBone Black and Johnny-Five
Board object, Connecting to the Arduino
connecting microphone to relay in, Connecting the Microphone to
the Relay from Johnny-Five-Connecting the Microphone to the
Relay from Johnny-Five
controlling motors with, Controlling the Hardware
controlling relay circuits with, Controlling the Relay Circuit from
Johnny-Five
developing APIs for hardware, Spooky Lights
initializing, Initializing Johnny-Five
installing, Installing Johnny-Five
Led.Matrix class, Matrix Constructor Options
Led.RGB class, Controlling an RGB
listeners, Implementation
Ping object, Implementationsensors, setting up, Setting up Sensors
Servo API, Moving the Robot
Sonar API, Pointing and Reading from the Sonar
sonar sensors and, Some Notes About the Materials
Spark-IO module, Your First Spark Program
testing Arduino connection for, Connecting to Johnny-Five
testing over WebSockets, Test Johnny-Five over WebSockets
joint coordinate system, The Coordinate System
JSConf 2013, TypeBot
JST connectors, Connecting the Shoes
Junky Delta project, Building Junky Delta-Predictable Positioning
Through Kinematics
Arduino, connecting, Making It Move
kinematics and, Predictable Positioning Through KinematicsPredictable Positioning Through Kinematics
powering, Building Junky Delta
wiring, Building Junky Delta
K
keypress events, Adding Keypress Events
Kinect, What’s Next?
kinematic chains, Predictable Positioning Through Kinematics
kinematics, Predictable Positioning Through Kinematics-Predictable
Positioning Through Kinematics
inverse, Predictable Positioning Through Kinematics
L
Lasers Impress Both Enemies & Relatives, Thank You (LIBERTY)code for, Implementation
trigger for, Implementation
wiring for, Implementation-Implementation
Lasers Impress Both Enemies and Relatives, Thank You (LIBERTY),
Lasers Impress Both Enemies and Relatives, Thank You (LIBERTY)-
Implementation
Leap Motion Controller, What’s Next?
Led class (Johnny-Five), Initializing Johnny-Five
LED Matrix (Adafruit), Choosing a Controller Board
Led.Matrix class (Johnny-Five), Matrix Constructor Options
API for, Drawing to the Matrix
Led.RGB class (Johnny-Five), Controlling an RGB
LEDs, Spooky Lights-What’s Next?
matrices, connecting to cable assembly, Connecting a matrix
matrices, specifying number of, Matrix Constructor Options
matrix, defined, What’s an LED Matrix?
powering many, Wiring Up Your RGB LEDs
preparing matrices, Preparing the Matrices
securing, Decorating the Lights
specifying type of, Matrix Constructor Options
testing, Running a Test Program
LEDscape, LEDScape
demo code for, Wiring Up Your RGB LEDs
Linux, Controlling the SimpleBot wirelessly
localtunnel service, Connect from Anywhereaddress, storing, Storing the localtunnel Address and Frontend
posting to web app, Post localtunnel to the Web App
lower arm (delta robots), Delta Anatomy
Lynxmotion, Bill of Materials
Phoenix 3DOF Hexapod chassis, Prepare the Chassis
M
machine learning, Artificial Intelligence: The Basics
Magician Chassis, Bill of Materials, Assemble the Hardware
magnetic contact switch, Point-of-Entry Monitoring System (PoEMS)
wiring, Implementation
Maker Shed, Bill of Materials, RGB LEDs
Mars rovers, Semi-Autonomous Robots
MatrixView class, Adding a User Interface
MaxBotix sensor, Pointing and Reading from the Sonar
quirks of, Pointing and Reading from the Sonar
maze solving algorithms, Step 2: Autonomy
meow shoes project, Meow Shoes
behaviors, sample, Example Behavior-Example Behavior
code for, Running the Code with Johnny-Five-What’s Next?
connecting the shoes, Prepare the Coiled Connector Cord
connecting to Arduino, Connecting the Shoes
sensor inserts, Making the Sensor Inserts
Messages API (Google Play Services), Android Wear Application
micro USB cable, Parts Explained
microphone circuit, Bill of Materialspreamplifier, building, Building a Microphone Preamplifier CircuitConnecting the Microphone to the Relay from Johnny-Five
testing, Connecting the Microphone to the Relay from Johnny-Five
microUSB breakout board, Assemble the Hardware
momentary push buttons, Implementation-Implementation
moondial, The tick function
motor driver, The Submarine Motor Pod
controlling speed with, Why Use a Motor Driver?
powering, Powering the Motor Driver
soldering headers on, Soldering the Motor Driver
STBY pin, Connecting the Motor
motors
controlling with Johnny-Five, Controlling the Hardware
troubleshooting, Assemble the Hardware
N
Nest thermostat, Autonomous Robots
neural networks, Artificial Intelligence: The Basics
ngrok service, Connect from Anywhere
node-serialport module, Preface
node-tesseract NPM module, What’s Next?
node-tweet-stream module, Using the Twitter Streaming API
Node.js
installing, Installing Node.js
installing on Raspberry Pi, Installing Node.js on the Raspberry Pi
NodeBoats, Getting Started with NodeBoats-What’s Next?building the hull, Floating the Boat-Floating the Boat
coding for, Controlling Your Motor: The Code-Storing Keypress
State
keypress events for, Adding Keypress Events
rudders, adding, Steering with Servos
NodeConf 2012, piDuino5 Mobile Robot Platform
NOOBS, Raspberry Pi
O
OCROBOT matrices (AliExpress), Choosing a Controller Board
wire order for, Connecting a matrix
offset option (servo), Trim the Servos
open control loops, Step 2: Autonomy
Open Pixel Control, LEDScape
OpenCV, What’s Next?
delta robots and, What’s Next?
optical character recognition (OCR), What’s Next?
P
Parrot AR drones, Semi-Autonomous Robots
Pedersen, Cam, Preface
Phoenix 3DOF Hexapod chassis (Lynxmotion)
attaching servos, Prepare the Servos
mounting Arduino Mega, Prepare the Chassis
mounting electronics on, Mount the Electronics
phoenix.js, Controlling the Robot from the Command Line-An
Introduction to phoenix.jsAnimation.Class and, The First Animation Segment-The First
Animation Segment
centering servos with, Prepare the Servos
joint coordinate system in, The Coordinate System
servos, adding ranges to, Add Ranges to the Servos
servos, trimming, Trim the Servos-Trim the Tibias
photoresistors, Adding a Photoresistor-Adding a Photoresistor
wiring, Adding a Photoresistor
photovoltaic sensors, Implementation
physical security projects, Physical Security, JavaScript, and YouWhat’s Next?
LIBERTY project, Lasers Impress Both Enemies and Relatives,
Thank You (LIBERTY)-Implementation
PoEMS project, Point-of-Entry Monitoring System (PoEMS)-
Implementation
SAUSAGE project, SMS Augmented Ultrasonic Sensor Application:
General Experimentation (SAUSAGE)-Implementation
SINBaD project, Status Indicator Necessary, Buttons and Diodes
(SINBaD)-Implementation
SUSPECT project, Simple Ultrasonic Sensor Project: Experimental
Control Test (SUSPECT)-Implementation
pick and place machines, Delta Robots and Kinematics
piDuino5 project, piDuino5 Mobile Robot Platform-What’s Next?
code and dependencies, downloading, Downloading the piDuino5
Code and Dependencies
hardware, assembling, Assemble the Hardware-Assemble the
Hardwareweb app, downloading, Downloading the piDuino5 Web App
wiring breadboard for, Assemble the Hardware
Ping object (Johnny-Five), Implementation
pixel photo booth, What’s Next?
Playstation DualShock Controller, BatBot
dualshock-controller module, Controlling the Robot
mapping servo movement to, Pointing and Reading from the Sonar
Playstation Dualshock Controller
troubleshooting, Troubleshooting
Point-of-Entry Monitoring System (PoEMS), Point-of-Entry
Monitoring System (PoEMS)-Implementation
Popsicle sticks, drilling, Building Junky Delta
Primus abstraction layer, Building the Commands Server-Building the
Commands Server
pulse width modulation (PWM), Understanding Your Servomotors
pins, Connecting the Spark and the Motor Driver
pulse-width modulation (PWM), Wiring the Circuit
R
RaphaelJS, Adding a User Interface
Raspberry Pi, piDuino5 Mobile Robot Platform
configuring, Raspberry Pi
FTDI Console cables and, Bill of Materials
installing Node.js, Installing Node.js on the Raspberry Pi
web apps on, Developing an API
WebSockets and, Low-Latency Control with WebSocketsWiFi adapter, configuring, Configuring a WiFi adapter
ready callback handler, Initializing Johnny-Five
relay abstraction (Johnny-Five abstraction), Connecting the
Microphone to the Relay from Johnny-Five
relay circuit, Bill of Materials
building, Building a Relay Circuit
controlling, Controlling the Relay Circuit from Johnny-Five
powering, Building a Relay Circuit
remote controlled robots, Artificial Intelligence: BatBot
remote-controlled (RC) cars, Remote-Controlled Robots
remote-controlled robots, Remote-Controlled Robots
REPL (read-eval-print loop), Controlling the Robot from the
Command Line, Moving the Robot
REPL (Read-Eval-Print-Loop)
using, Using the Node.js Read-Eval-Print Loop
resistors, Parts Explained
electromagnetic interference and, Assembly
for RGB LEDs, Wiring the Circuit
LEDs and, What’s an LED Matrix?
RGB LEDs, Implementation
testing, Wiring Up Your RGB LEDs
wiring, Wiring Up Your RGB LEDs-Wiring Up Your RGB LEDs
RGB-123 panels, RGB LEDs
powering, Wiring Up Your RGB LEDs
Robot Army delta, Robot ArmyS
Safari, Simple Voice Control Using the Web Speech API
SainSmart Uno R3, Some Notes About the Materials
Samsung Galaxy Gear Live, Bill of Materials
SCL line on I2C, What’s an LED Matrix?
SDA line on I2C, What’s an LED Matrix?
self-driving car (Google), Autonomous Robots
semi-autonomous robots, Artificial Intelligence: BatBot, SemiAutonomous Robots
algorithm for, implementing, Implementing the AlgorithmImplementing the Algorithm
closed control loops, Step 2: Autonomy
maze solving algorithms for, Step 2: Autonomy
open control loops, Step 2: Autonomy
sensor abstraction (Johnny-Five abstraction), Connecting the
Microphone to the Relay from Johnny-Five
sensors, Sensors
adding to Hexapod, What’s Next?
logging output of, Logging Output of Sensors
serial terminals, faking for wireless communication, Controlling the
SimpleBot wirelessly
Servo API (Johnny-Five), Moving the Robot
servo cozy, Assemble the Mounting Board
servo shield, Arduino, Bill of Materials
Servo.Array object (phoenix.js), An Introduction to phoenix.jsarray of, targeting with Animation.Class, An Array of Servo.Arrays
as the Target
targeting with Animation.Class, A Servo.Array as the Target
servos, standard, Understanding Your Servomotors
adding ranges to, Add Ranges to the Servos
aligning/initializing, Prepare the Servos
array of, targeting with Animation.Class, An Array of Servos as the
Target
attaching to Phoenix chassis, Prepare the Servos
centering, The Elbow
centering shaft of, Assemble the Mounting Board
clearance for, Building Junky Delta
controlling, Controlling the Servos-Controlling the Servos,
Programming Servo Control
converting into CR servos, Bill of Materials
cozy for, Assemble the Mounting Board
gluing to wood, The Base and Shoulder
on boats, Steering with Servos
range of, finding, Running the code, Building Junky Delta
trimming, Trim the Servos-Trim the Tibias
troubleshooting, Troubleshooting, Troubleshooting, Making It Move
wiring, Steering with Servos
Shapeways 3D printing service, Parts Explained
silicone, Getting Started with NodeBoats
simple circuits, Remote-Controlled RobotsSimple Ultrasonic Sensor Project: Experimental Control Test
(SUSPECT), Simple Ultrasonic Sensor Project: Experimental Control
Test (SUSPECT)-Implementation
code for, Implementation-Implementation
wiring for, Implementation
SimpleBot project, Building Robots with Lo-tech Materials-What’s
Next?
breadboard wiring for, Build Steps
drive considerations, Troubleshooting
making semi-autonomous, Some Notes About the Materials
materials for, Bill of Materials
testing, Testing the Build with a Basic Program
troubleshooting, Troubleshooting, Troubleshooting
wireless, Building a Wireless SimpleBot-Troubleshooting
sketches, Arduino vs. JavaScript, Preface
smartphone, interfacing with, Controlling with a Smartphone-Try the
Web App on a Phone
SMS Augmented Ultrasonic Sensor Application: General
Experimentation (SAUSAGE), SMS Augmented Ultrasonic Sensor
Application: General Experimentation (SAUSAGE)-Implementation
Socat, Controlling the SimpleBot wirelessly
solderable boards, Building a Relay Circuit, Preparing the Matrices
heat damage, avoiding, Preparing the Matrices
soldering
Arduinos, Arduino Soldering
crimping wires vs., Connecting the Shoessoldering wires together, Constructing a Cable Assembly
Sonar API (Johnny-Five API), Pointing and Reading from the Sonar
sonar sensors, Some Notes About the Materials
pointing, Pointing and Reading from the Sonar-Pointing and
Reading from the Sonar
reading, Pointing and Reading from the Sonar-Pointing and Reading
from the Sonar
spacer layer (FSR), Parts Explained
Spark CLI command-line tool, Setting Up Your Spark
access credentials, storing, Spark WiFi Development Kit
installing, Spark WiFi Development Kit
Spark Cloud, Using the Spark-io IO Plugin
Spark Core, Getting Started with NodeBoats, Setting Up Your SparkSoldering the Motor Driver
claiming, Spark WiFi Development Kit
development kit, Spark WiFi Development Kit
identifying in code, Your First Spark Program
motors and, Why Use a Motor Driver?
setting up, Setting Up Your Spark
testing, Testing the Spark
troubleshooting, Setting Up Your Spark
voltage requirements for, Wiring Up Your Boat, Powering the Motor
Driver
VoodooSpark firmware, installing, Spark WiFi Development Kit
wiring, Adding the Spark to Your Circuit
Spark Fun, Bill of Materials, RGB LEDsdriver for, Why Use a Motor Driver?
Joystick shield, What’s Next?
Spark Maker Kit, Bill of Materials
Spark Photon, Spark WiFi Development Kit
claiming, Spark WiFi Development Kit
Spark WiFi Development Kit, CheerfulJ5, Going Wireless with the
Spark WiFi Development Kit-Switching to Battery Power
Spark-IO module, Your First Spark Program
CheerfulJ5 project and, Using the Spark-io IO Plugin
Sphero, What’s Next?
spooky lights project, Spooky Lights-What’s Next?
cable assembly, constructing, Constructing a Cable AssemblyTroubleshooting
lights, assembling, Assembling the Lights-Troubleshooting
lights, decorating, Decorating the Lights
user interfacing, adding, Adding a User Interface
web application for, Developing a Web Application-Adding a User
Interface
Standard Firmata library, Plug in the Arduino
state machines, Sequencing a Key Press-Sequencing a Key Press
state, of robots, Step 2: Autonomy
static walking gait, Walking
Status Indicator Necessary, Buttons and Diodes (SINBaD), Status
Indicator Necessary, Buttons and Diodes (SINBaD)-Implementation
code for, Implementation
wiring, Implementation-ImplementationSTBY pin on motor board, Connecting the Motor
stk_500 sync error, Arduino setup
Styrofoam, Some Notes About the Materials
SublimeText, Development Tools
submarine motor pod, The Submarine Motor Pod-Waterproofing Your
Wires
SumoBot Jr., Some Notes About the Materials
SunCalc npm package, Code to Make It Go
T T
amiya Submarine Motor, The Submarine Motor Pod-Waterproofing
Your Wires
closing/sealing, Closing the Motor Pod
components of, Motor Pod Components
connecting to breadboard, Connecting the Motor
drilling holes into, Drilling into the Motor Pod
inserting motor, Inserting the Motor
positioning in the hull, Floating the Boat
soldering and, Modifying the Motor
testing, Testing the Motor
variants of, Motor Pod Components
TapsterBot, TapsterBot
Telnet, Network test
temporal library (JavaScript), Implementing the Algorithm, Making It
Move
Temporal module, Programming Servo Control
Tessel, What’s Next?testing
Hexapod project, Installing the Tibias
Interactive RGB LED Display, Running a Test Script
LEDs, Running a Test Program
microphone circuit, Connecting the Microphone to the Relay from
Johnny-Five
RGB LEDs, Wiring Up Your RGB LEDs
SimpleBot project, Testing the Build with a Basic Program
Spark Core, Testing the Spark
Tamiya Submarine Motor, Testing the Motor
WebSockets, Test Johnny-Five over WebSockets
WiFi module, Test and configure the module
ThingSpeak, CheerfulJ5
Trossen Robotics, Predictable Positioning Through Kinematics
troubleshooting
servos, Troubleshooting, Troubleshooting
Spark Core, Setting Up Your Spark
TweetControl App, Accessing the CheerLights ThingSpeak API
Twilio API, SMS Augmented Ultrasonic Sensor Application: General
Experimentation (SAUSAGE)-Implementation
installing, Implementation
number formatting for, Implementation
Sandbox, Implementation
Twitter Application Manager, Using the Twitter Streaming API
access credentials, generating, Using the Twitter Streaming APITwitter Developer account, Using the Twitter Streaming API
Twitter Streaming API, CheerfulJ5, Using the Twitter Streaming APIUsing the Twitter Streaming API
TypeBot project, TypeBot-What’s Next?
arm anatomy, Anatomy of a Robot Arm-Arm Constraints
initializing, Initialization
software, writing, Writing the Software-Fine-Tuning the Arm
wiring, The Brains
U
uFL Connector, Setting Up Your Spark
ultrasonic sensor, Simple Ultrasonic Sensor Project: Experimental
Control Test (SUSPECT)
quirks of, Pointing and Reading from the Sonar
threshold, finding, Implementation
universal joint (delta robot), Delta Anatomy
building, Building Junky Delta
upper arm (delta robots), Delta Anatomy
UPS, 3D printers and, Parts Explained
V V
elcro, Assemble the Hardware
Velez, Raquel, TypeBot
Virtual Serial Ports Emulator (VSPE), Controlling the SimpleBot
wirelessly
virtualjoystick.js library, Touchscreen Joystick
voice control, Building Voice-Controlled NodeBots-What’s Next?Android Wear for, Advanced Voice Control Using an Android
Wearable-Android Wear Application
commands server for, Building the Commands Server-Building the
Commands Server
mobile application for, Android Mobile Application-Android Wear
Application
Web Speech API, Simple Voice Control Using the Web Speech API
Volley HTTP client library, Android Mobile Application
installing, Installing Volley
VoodooSpark firmware, Setting Up Your Spark, Using the Spark-io IO
Plugin
installing, Spark WiFi Development Kit
W
walking
row gait, The Row Gait
run gait, The Run Gait
tripod gait, The Run Gait
walk gait, The Walk Gait
wave gait, The Row Gait
with Animation.Class, Meet the Animation Class-An Array of
Servo.Arrays as the Target, Walking
without animation class, Walking Is Hard!
wall-follower algorithm, Step 2: Autonomy
waterproof construction, Getting Started with NodeBoats
servos and, Assembling the Rudder
wires, Waterproofing Your Wiresweb apps, troubleshooting, Try the Web App on a Phone
Web Speech API, What’s Next?, Simple Voice Control Using the Web
Speech API
limitations of, Simple Voice Control Using the Web Speech API
WebSockets
establishing connections with, Establishing a Connection
low-latency control with, Low-Latency Control with WebSockets
Primus and, Building the Commands Server-Building the
Commands Server
testing Johnny-Five framework with, Test Johnny-Five over
WebSockets
WebSocketServer, Low-Latency Control with WebSockets
WiFi
connecting BeagleBone Black, BeagleBone Black and Johnny-Five
usb adapter for, WiFi USB Adapter (optional)
Wii Motion Controller, What’s Next?
Williams, Chris, Preface
Windows
Telnet client, installing, Network test
VSPE for, Controlling the SimpleBot wirelessly
wireless modules, Building a Wireless SimpleBot
configuring, Test and configure the module
connecting over serial, Test and configure the module
Firmata and, Arduino setup
power and, Wiring Uptypes of, Wiring Up
wires
soldering, Modifying the Motor
waterproofing, Waterproofing Your Wires
wiring
accelerometers, Changing Colors with an Accelerometer
buttons into BeagleBone Black, Adding in Johnny-Five/Beagleboneio
magnetic contact switch, Implementation
momentary push buttons, Implementation-Implementation
photovoltaic sensors, Implementation
RGB LEDs, Wiring Up Your RGB LEDs-Wiring Up Your RGB
LEDs
servos, standard, Steering with Servos
Spark Core, Adding the Spark to Your Circuit
ws package (Node.js), Low-Latency Control with WebSockets
wscat library, Test Johnny-Five over WebSockets
X
XBee radios, BatBot
troubleshooting, Troubleshooting
Z
Zsombor-Murray, Paul, Predictable Positioning Through KinematicsAbout the Authors
Jonathan Beri is a Maker of all sorts, with an affinity for APIs, robots, and
obscure JavaScript frameworks. He currently works at Google as a
Developer Advocate, making the lives of developers easier, one day at a
time. As a Developer Advocate, he’s helped launch the Google+ Hangout
Apps Platform, Google+ Sign-In, and the Google Apps Marketplace. He
can be found on Google+ as JonathanBeri.
Donovan Buck is an aspiring roboticist and a contributor to Johnny-Five —
the open source, JavaScript, and Arduino programming framework. He is a
strong believer in the value of continuing education in computer science.
His own CS education began at age 5, ferrying punch cards around the data
center for his dad and swapping out magnetic tapes while perched atop
boxes of printer paper. He can be found on Twitter and GitHub as @dtex.
Kassandra Perch is an Open Web Engineer and Educator at Bocoup. She’s
been a JavaScript addict for her entire career as a programmer, and enjoys
JavaScript in browsers, on the server, and of course on robots! When she’s
not trying new robotics platforms, she’s working on crafting, or enjoying
her evenings in Austin, Texas. She can be found on Twitter, GitHub, and
most places as @nodebotanist.
Bryan Hughes is a frontend developer at Rdio and the lead organizer for
the NodeBots SF meetup group. Bryan also created the Raspi-IO library
which provides Raspberry Pi support for the Johnny-Five robotics
framework. Bryan received his Ph.D. in Electrical Engineering and
Computer Science from Texas Tech University in 2010. When not coding,
he can be found spending time with his amazing partner and going wine
tasting, attempting to become a photographer, or hiking. He can be found on
Twitter at @nebrius and on GitHub as @bryan-m-hughes.
Raquel Vélez has been a core member of the NodeBots movement since - Prior to becoming a web developer, she was a full-time roboticist,
having studied Mechanical Engineering at the California Institute of
Technology and completed some masters work in robotics engineering at
the University of Genoa, Italy. She has worked at a variety of universities
and laboratories around the globe, including the NASA Jet PropulsionLaboratory, the MIT Lincoln Laboratory, and Applied Minds, Inc. She can
be found on Twitter and GitHub as @rockbot.
Lyza Danger Gardner is a dev. Since cofounding Portland, Oregon–based
mobile web startup Cloud Four in 2007, Lyza has tortured and thrilled
herself with the intricate ins and outs of the bazillion devices and browsers
now accessing the web globally. Lyza is also coauthor of Head First Mobile
Web (O’Reilly). She can be found on Twitter and GitHub as @lyzadanger.
Susan Hinton is a JavaScript developer who likes to tinker with hardware.
A Maker at heart, she’s no stranger to minor burns from soldering irons and
3D printers. She’s a regular contributor to the open source Node.js
electronics scene, and enjoys teaching others how to immerse themselves in
the nerdiverse. Suz can be found on Twitter and GitHub as @noopkat.
Rick Waldron is an Open Web Engineer at Bocoup and the creator of
Johnny-Five, a JavaScript framework for hardware programming on the
Node.js platform, and is working towards establishing standards for general
hardware APIs. Currently supporting Arduino, BeagleBone, Raspberry Pi,
Linino One, Pinoccio, Spark-Core, Light Blue Bean, pcDuino, Intel Galileo
and Intel Edison, his work was recently highlighted at Intel’s IDF2014. As a
jQuery Core committer and former board member of the jQuery
Foundation, Rick serves on Ecma TC39 as a representative of jQuery,
channeling the project’s vast real-world experience into contributions to the
design of the next version of JavaScript. He can be found on both Twitter
and GitHub as @rwaldron.
Sara Gorecki first discovered her love of code through hardware hacking
and experimenting with Johnny-Five. An alum of both Cornell University
and the Flatiron school, she’s currently working as a Node Engineer at
Penton Media. In her quest to strengthen her local JavaScript community
she cofounded NYC’s Queens JS meetup. She can be found on Twitter and
GitHub as @opheliasdaisies.
Julián Duque is a developer and educator by passion currently working as
software engineer at NodeSource. He organises multiple community events
in Colombia like MedellinJS, NodeBots Day and JSConf Colombia. Heloves sharing knowledge and is currently collaborating as evangelist in the
io.js project and teaching programming fundamentals and JavaScript
through NodeSchool and NodeBots events in Colombia and Latin America.
He can be found on Twitter at @julian_duque and on GitHub as
@julianduque.
David Resseguie began his programming journey at the age of 5 when his
dad bought an Apple IIe computer. Instead of just playing Stickybear
Numbers, he wanted to know how it worked. He’s enjoyed making and
developing things with technology ever since. David is an avid collector of
toy robots and loves the opportunity to combine that interest with software
development through hardware hacking, Internet of Things, and NodeBots.
He also has a passion for STEAM education and enjoys speaking at
schools, using robotics to get kids excited about careers in science and
technology. He can be found on Twitter and GitHub as @Resseguie.
Andrew Fisher is a creator of things that combine web tech, physical
computing, and lots of data. He is an interaction researcher and developer,
exploring how behaviour influences and is influenced by technology and
machines. Andrew is the lead organizer of NodeBots Melbourne and is a
strong evangelist on the use of web technologies with hardware. He can be
found on Twitter and GitHub @ajfisher.
Pawel Szymczykowski is a software engineer at Wedgies and an
enthusiastic maker of various things both physical and code-based. He
discovered his passion for both hardware and JavaScript as a result of the
NodeBots movement at JSConf 2013. He came up with a simple open
source laser cut sumo bot kit for the NodeBots Day event in Las Vegas
which ended up making appearances at similar events around the world.
You can find it online at sumobotkit.com. He can be found on Twitter
@makenai.
Anna Gerber is a core member of NodeBotsAU. She is also a technical
project manager with the ITEE eResearch Group at the University of
Queensland, Australia. She can be found on Twitter @annagerber.Emily Rose is a transhumanist with a passion for queer cyborg artistry.
They are currently experimenting with ambient intelligence, adaptive
automation, and evolving interfaces. Emily is a world-class speaker who
has brought humor and enlightenment to audiences across the globe.
Original NodeBots curator, founder of DanceJS, and one of the most
interesting individuals in the known universe; Emily is an unnatural force of
pure unbridled creativity. They can be reached via Twitter or via GitHub.Colophon
The cover photo of a modified Robot Army Delta Bot is by Pawel
Szymczykowski. Special thanks to Mark and Sarah for letting Pawel
borrow it for the photo shoot.
The cover fonts for Make: JavaScript Robotics are URW Typewriter and
Guardian Sans. The text font is Adobe Minion Pro; the heading font is
Adobe Myriad Condensed; and the code font is Dalton Maag’s Ubuntu
Mono.Preface
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
Julián Duque - Building Robots with Lo-tech Materials
Building the SimpleBot
Bill of Materials
Build Steps
Installing Node.js Packages
Testing the Build with a Basic Program
Troubleshooting
A Simple Driving Program
Troubleshooting
Cutting the Cord
Building a Wireless SimpleBot
Wiring Up
Controlling the SimpleBot
Troubleshooting
What’s Next? - TypeBot
Bill of Materials
Understanding Your Servomotors
Anatomy of a Robot Arm
Arm Layout
Arm Constraints
Building the HardwareThe Base and Shoulder
The Elbow
The Wrist
The Finger
The Brains
Writing the Software
Creating the Project Files
Controlling the Servos
Initialization
Sequencing a Key Press
Running for the First Time
Fine-Tuning the Arm
What’s Next? - Getting Started with NodeBoats
Bill of Materials
Tools
The Submarine Motor Pod
Why Use a Motor Driver?
Motor Pod Components
Modifying the Motor
Testing the Motor
Finishing the Motor
Inserting the Motor
Drilling into the Motor Pod
Closing the Motor Pod
Waterproofing Your Wires
Setting Up Your Spark
Testing the Spark
Your First Spark ProgramSoldering the Motor Driver
Wiring Up Your Boat
Powering the Motor Driver
Connecting the Spark and the Motor Driver
Connecting the Motor
Controlling Your Motor: The Code
Adding Keypress Events
Storing Keypress State
Floating the Boat
Steering with Servos
Programming Servo Control
Assembling the Rudder
Setting Sail
What’s Next? - piDuino5 Mobile Robot Platform
Bill of Materials
Tools
Setting Up the Boards and Installing Software
Installing Node.js on the Raspberry Pi
Downloading the piDuino5 Code and Dependencies
Plug in the Arduino
Test Johnny-Five over WebSockets
Walk Through app.js
Initializing Johnny-Five
Controlling the Hardware
Low-Latency Control with WebSockets
Connect from Anywhere
Assemble the Hardware
Controlling with a SmartphoneDownloading the piDuino5 Web App
Post localtunnel to the Web App
Try the Web App on a Phone
Walk Through app.js and index.html
Storing the localtunnel Address and Frontend
Serving the UI
Touchscreen Joystick
Establishing a Connection
Sending Commands
What’s Next? - Controlling a Hexapod with Johnny-Five
Bill of Materials
Controlling the Robot from the Command Line
An Introduction to phoenix.js
Assembling the Robot
Prepare the Chassis
Mount the Electronics
Prepare the Servos
Installing the coxae
Installing the Femurs
Installing the Tibias
The Coordinate System
Trim the Servos
Trim the coxae
Trim the Femurs
Trim the Tibias
Add Ranges to the Servos
Walking Is Hard!
Meet the Animation ClassAn Array of Servos as the Target
A Servo.Array as the Target
An Array of Servo.Arrays as the Target
The First Animation Segment
Walking
The Row Gait
The Walk Gait
The Run Gait
Turning
Command Reference
What’s Next? - Building Voice-Controlled NodeBots
Bill of Materials
BeagleBone Black
Building Our Project
Building a Relay Circuit
Controlling the Relay Circuit from Johnny-Five
Building a Microphone Preamplifier Circuit
Connecting the Microphone to the Relay from Johnny-Five
Building the Commands Server
Simple Voice Control Using the Web Speech API
Integrate the Commands Server with the Relay Circuit
Advanced Voice Control Using an Android Wearable
Android Mobile Application
Android Wear Application
What’s Next? - An Indoor Sundial
Bill of Materials
Foam Core Structural PiecesBuilding Our Sundial
Cutting and Assembling the Core Structure
Assemble the Mounting Board
Wiring and Configuring the Servos
Wiring the Servos
Configuring the Servos
Building the Lower Base
Making the Disks
Build the Base Walls and Base Disk Support
Build the Base Walls
Position the Disks
Build the Disk Support
Finish Parts and Construction
Build the Azimuth Arm
Construct the Elevation Arc
Cut a Gnomon
Wire Up the Sun
Code to Make It Go
Understanding sundial.js
Set Up Some Configuration in sundial.js
sundial.js Details
Putting It All Together!
Making It Go!
What’s Next? - Spooky Lights
Bill of Materials
Choosing a Controller Board
Background
What’s an LED Matrix?Assembling the Lights
Tools Required
Preparing the Matrices
Constructing a Cable Assembly
Decorating the Lights
Troubleshooting
Controlling an LED matrix
Preparing the Arduino
Running a Test Program
Matrix Constructor Options
Drawing to the Matrix
Developing a Web Application
Development Tools
Using the Express Generator
Developing an API
Adding a User Interface
Extending the Application
What’s Next? - CheerfulJ5
Bill of Materials
Wiring the Circuit
The CheerfulJ5 code
Connecting to the Arduino
Controlling an RGB
Using the Node.js Read-Eval-Print Loop
Defining the CheerLights Color Map
Accessing the CheerLights ThingSpeak API
Using the Twitter Streaming API
Going Wireless with the Spark WiFi Development KitAdding the Spark to Your Circuit
Using the Spark-io IO Plugin
Switching to Battery Power
Packaging It Up
What’s Next? - Interactive RGB LED Display with BeagleBone Black
Bill of Materials
BeagleBone Black
WiFi USB Adapter (optional)
External 5V Power Supply (Semi-Optional)
RGB LEDs
Sensors
Miscellaneous
Getting Ready: Software
LEDScape
Wiring Your LEDs
Wiring Up Your RGB LEDs
Code Time! Let’s Bring in the JavaScript
Running a Test Script
Adding in Johnny-Five/Beaglebone-io
Adding a Photoresistor
Changing Colors with an Accelerometer
What’s Next? - Physical Security, JavaScript, and You
Simple Ultrasonic Sensor Project: Experimental Control Test
(SUSPECT)
Implementation
SMS Augmented Ultrasonic Sensor Application: General
Experimentation (SAUSAGE)Implementation
Point-of-Entry Monitoring System (PoEMS)
Implementation
Lasers Impress Both Enemies and Relatives, Thank You
(LIBERTY)
Implementation
Status Indicator Necessary, Buttons and Diodes (SINBaD)
Implementation
What’s Next? - Artificial Intelligence: BatBot
Artificial Intelligence: The Basics
Remote-Controlled Robots
Semi-Autonomous Robots
Autonomous Robots
BatBot
Bill of Materials
Some Notes About the Materials
Assembly
Step 1: Remote Control
Moving the Robot
Controlling the Robot
Pointing and Reading from the Sonar
Step 2: Autonomy
Implementing the Algorithm
Troubleshooting
What’s Next? - Delta Robots and Kinematics
Bill of Materials
Delta AnatomyBuilding Junky Delta
Making It Move
Predictable Positioning Through Kinematics
More Sophisticated Delta Options
TapsterBot
Robot Army
What’s Next? - Meow Shoes
Bill of Materials
Parts Explained
Making the Sensor Inserts
Solder the Sensors to the Wiring
Install Sensors into the Shoes
Tunnel the Wiring out of the Shoe
Connecting the Shoes
Prepare the Coiled Connector Cord
Connect the Shoes to an Arduino
Prepare Wiring
Arduino Soldering
Attach the Arduino to the Right Shoe
Running the Code with Johnny-Five
Connecting to Johnny-Five
Setting up Sensors
Logging Output of Sensors
Example Behavior
What’s Next?
A. Appendix
Installing Node.js
Installing Johnny-FiveTroubleshooting
More Information
Configuring Your Hardware
Arduino
BeagleBone Black
Raspberry Pi
Spark WiFi Development Kit
Android Development
Installing Android Studio
Creating an Android Project
Installing Volley
Index
كلمة سر فك الضغط : books-world.net
The Unzip Password : books-world.net
تحميل
شارك
تعليقات