Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Learning Javascript Robotics
Learning Javascript Robotics

Learning Javascript Robotics: Design, build, and program your own remarkable robots with JavaScript and open source hardware

eBook
$9.99 $25.99
Paperback
$32.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Learning Javascript Robotics

Chapter 2. Working with Johnny-Five

In this chapter, we'll begin working with Johnny-Five to build our own robotics projects. We'll cover what makes Johnny-Five a great library for starting with robotics, and we will build our first robot. We'll learn how we can manipulate this robot in real time from the command line—a feat not easily replicated on other platforms! By the end of this chapter, you'll have an open understanding of the software involved, which will serve as a great foundation for more complicated hardware builds.

This chapter will cover the following topics:

  • How a Johnny-Five program works
  • Understanding events in Johnny-Five
  • Wiring an LED and making it blink
  • Using Read-Eval-Print-Loop (REPL)

What you'll need for this chapter

All you'll need for this chapter is your microcontroller (the examples here still use an Arduino Uno) and a small handful of LEDs—we'll be wiring only one LED, but you may want a couple of spares, in case one burns out.

How a Johnny-Five program works

In this section, we'll take a look at the internals of a Johnny-Five program in more detail, so we can start building more complex applications.

Objects, functions, and events

Johnny-Five programs work using an event-based structure, and there are three concepts to keep in mind: objects, functions, and events.

Objects tend to programmatically represent our physical electronic components and are usually constructed using the new keyword. A few examples of objects in Johnny-Five include the five object, which represents the Johnny-Five library, the Board object, which represents our microcontroller; and the LED object, which will programmatically represent our LED:

var led = new five.Led(11);

Functions are available for the objects we create and usually represent the actions that our robots can do. For instance, the LED object has an on() and off() function that turns the LED on and off:

led.on();
led.off();
led.blink();
led.stop();

Events are fired on objects...

Understanding events in Johnny-Five

The events in Johnny-Five are a very important concept—this is also a new concept, especially if you are used to low-level language programming. It's very similar to the idea of interrupts, but definitely strays away from the traditional robotics programming paradigm of an event loop. While you can create timers and loops in Johnny-Five, it highly encourages an event-based programming approach, which can need some practice.

Why events?

A question that gets asked a lot is, "Why event-based? Why not loop-based and interrupt-based as in previous methods?".

A lot of this has to do with the way robots work and the way we think about how we program robots. When you think about what you want a robot to do, you're less likely to think "Every X seconds, I want to check for A and start task B..." and you are more likely to think "When Y happens, I want to start event C...".

The event-based system in Johnny-Five works really...

Wiring up an external LED

For our first hardware project, we're going to wire an LED to the Arduino. An LED, or a Light Emitting Diode, is a component that lights up when electric current is passed through it. They come in many colors and sizes and are one of the most easy-to-use and versatile components in hobbyist robotics.

Setting up the hardware

First, take an LED. We'll determine the positive and negative leads of the LED—for this component, it's straightforward: the positive lead is longer than the negative lead.

Setting up the hardware

Determining the positive and negative ends of an LED

To wire the LED to an Arduino, place the positive lead on pin 11 and the negative lead on the pin marked GND, just like in the following diagram:

Setting up the hardware

Wiring up our LED

You can also use a breadboard if you wish to—it will look like the following:

Setting up the hardware

Wiring an LED with a breadboard

Now that we've wired up the LED, we're going to make it blink as we did in the last chapter. The script looks very familiar...

Using the Read-Eval-Print-Loop (REPL)

The Read, Eval, Print Loop, or REPL, is a concept relative to many scripting languages, but it is new to libraries, and definitely new to robotics. Think about how you alter the state in a typical Arduino program: you modify the source code, re-load it onto the board, and wait for it to run.

However, due to the way Johnny-Five works, we can modify the state of our robot code while the code is running. This is because we use Firmata—the board is just a thin client that reacts to instructions from our node program, so if we let our Node programs send different instructions, we can change how our robot works in real time.

The way to do this in a Johnny-Five program is by injecting components into the REPL, which allows us to use them.

Making components available to the REPL

We're going to modify our script from the previous section in order to manipulate our LED. To do this, we're going to use the this.repl.inject() function. The this keyword...

What you'll need for this chapter


All you'll need for this chapter is your microcontroller (the examples here still use an Arduino Uno) and a small handful of LEDs—we'll be wiring only one LED, but you may want a couple of spares, in case one burns out.

Left arrow icon Right arrow icon

Description

There has been a rapid rise in the use of JavaScript in recent times in a variety of applications, and JavaScript robotics has seen a rise in popularity too. Johnny-Five is a framework that gives NodeBots a consistent API and platform across several hardware systems. This book walks you through basic robotics projects including the physical hardware builds and the JavaScript code for them. You'll delve into the concepts of Johnny-Five and JS robotics. You'll learn about various components such as Digital GPIO pins, PWM output pins, Sensors, servos, and motors to be used with Johnny-Five along with some advanced components such as I2C, and SPI. You will learn to connect your Johnny-Five robots to internet services and other NodeBots to form networks. By the end of this book, you will have explored the benefits of the Johnny-Five framework and the many devices it unlocks.

What you will learn

  • Familiarise yourself with JohnnyFive Read, Eval, and Print Loop (REPL) to modify and debug robotics code in real time
  • Build robots with basic output devices to create projects that light up, make noise, and more
  • Create projects with complex output devices, and employ the JohnnyFive API to simplify the use of components that require complex interfaces, such as I2C
  • Make use of sensors and input devices to allow your robotics projects to survey the world around them and accept input from users
  • Use the Sensor and Motor objects to make it much easier to move your robotics projects
  • Learn about the Animation API that will allow you to program complex movements using timing and key frames
  • Bring in other devices to your JohnnyFive projects, such as USB devices and remotes
  • Connect your JohnnyFive projects to external APIs and create your own Internet of Things!

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Nov 25, 2015
Length: 160 pages
Edition : 1st
Language : English
ISBN-13 : 9781785880872
Vendor :
Netscape
Category :
Languages :
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Nov 25, 2015
Length: 160 pages
Edition : 1st
Language : English
ISBN-13 : 9781785880872
Vendor :
Netscape
Category :
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 115.97
Javascript Unlocked
$32.99
Raspberry Pi Robotic Blueprints
$49.99
Learning Javascript Robotics
$32.99
Total $ 115.97 Stars icon
Banner background image

Table of Contents

10 Chapters
1. Getting Started with JS Robotics Chevron down icon Chevron up icon
2. Working with Johnny-Five Chevron down icon Chevron up icon
3. Using Digital and PWM Output Pins Chevron down icon Chevron up icon
4. Using Specialized Output Devices Chevron down icon Chevron up icon
5. Using Input Devices and Sensors Chevron down icon Chevron up icon
6. Moving Your Bot Chevron down icon Chevron up icon
7. Advanced Movement with the Animation Library Chevron down icon Chevron up icon
8. Advanced Components – SPI, I2C, and Other Devices Chevron down icon Chevron up icon
9. Connecting NodeBots to the World, and Where to Go Next Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3
(6 Ratings)
5 star 83.3%
4 star 0%
3 star 0%
2 star 0%
1 star 16.7%
Filter icon Filter
Top Reviews

Filter reviews by




Andrew Connell Dec 18, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I'm a seasoned JavaScript developer and aspiring hardware guy for my own personal projects. Having heard Kassandra on a podcast episode or two, I wanted to pick this book up. I found it very easy to grok and pickup the concepts. I am more of a Raspberry Pi guy and all the projects used the Arduino Uno - my only "complaint" that it should have been more visible in the marketing / cover - however I walked away placing an order for the Uno, something I've wanted to learn! All the projects were super simple to understand and implement... as a tech author I know how much work goes into this, but hoping for something that goes even deeper for her next work!
Amazon Verified review Amazon
Rick Waldron Nov 30, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is a great way to "break in" to JavaScript Robotics with Johnny-Five. Each chapter walks you through the basics and then illustrates how to build something with with what you've learned—which is a great strategy!
Amazon Verified review Amazon
Roberto M. Pensotti Apr 19, 2017
Full star icon Full star icon Full star icon Full star icon Full star icon 5
If you want to learn programming for robots, or micro controllers in general, this is the book.JavaScript on NodeJS is the best language for this type of application.Well illustrated, well documented..Excellent!
Amazon Verified review Amazon
K Feb 11, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book assumes quite a bit less of your robotics experience than it does of your experience with JavaScript. It focuses a great deal on the excellent Johnny Five library for Raspberry Pi and Arduino. It helps you to learn the basics of motor control as well as sensor information through GPIO. If you already have JavaScript experience, this is definitely the best foray into extending your ability into the world of robotics.
Amazon Verified review Amazon
Grayson Nov 30, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The animation chapter alone makes this a great book. Great introduction to nodebots and generally working with electronics + javascript. Presented in an approachable manner with clear explanations.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.