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

Arrow left icon
Profile Icon Kassandra Perch
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3 (6 Ratings)
Paperback Nov 2015 160 pages 1st Edition
eBook
$9.99 $25.99
Paperback
$32.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Kassandra Perch
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3 (6 Ratings)
Paperback Nov 2015 160 pages 1st Edition
eBook
$9.99 $25.99
Paperback
$32.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$9.99 $25.99
Paperback
$32.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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 : 9781785883347
Vendor :
Netscape
Category :
Languages :
Concepts :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Nov 25, 2015
Length: 160 pages
Edition : 1st
Language : English
ISBN-13 : 9781785883347
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

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.