JavaScript Robotics: An Introduction to Cylon JS

Interacting with the Arduino using the JavaScript framework, Cylon JS.
4.4 (21 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
2,315 students enrolled
$19
$25
24% off
Take This Course
  • Lectures 17
  • Length 2 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2015 English

Course Description

This course is intended for anyone who would love to get introduced to controlling electronic components with JavaScript for IoT, robotics or even home automation projects.

This course will give an introduction on how to control components connected to an Arduino with a JavaScript framework called Cylon JS.

I will start off by taking you through an overview as to why I picked JavaScript as the language of choice, as well as some of the tools you will see throughout the course.

I will then guide you through the basics of the Arduino microcontroller and how you can get set up to develop with it using JavaScript.

The Cylon JS framework will then be introduced, and sample circuits will be constructed to demonstrate how to interact with them using Cylon.

All of the code from the demos I show, slideshows, circuit diagrams, and necessary links will be added as resources that can be accessed and/or downloaded at any point.

The development is done on a Windows platform, though only minimal code demonstrated is Windows-specific. I will point out where you might need to veer off if you're using a different OS.

What are the requirements?

  • A basic understanding of JavaScript is preferred.
  • A basic understanding of electronics & circuitry is recommended, but not necessary.
  • You'll need a basic text editor and internet access for the coding demos, and that's it. We'll download things as we go. You're not required to purchase any hardware, though this course is going to focus heavily on developing against things like the Arduino, so access to platforms like this is preferred to completely follow along with the demos.

What am I going to get from this course?

  • Install and configure the Cylon.js framework
  • Develop simple applications to control physical devices and electronic components
  • Learn how to incorporate fun things like an Xbox 360 or DualShock controller into your JavaScript applications

What is the target audience?

  • This course is intended for students interested in using JavaScript to control physical devices (e.g. microcontrollers). This is not a course strictly on JavaScript development, so the basics of the language will not be covered. This really isn't a course on electronics basics, though we'll cover quite a bit of the introductory material necessary to follow along.
  • This course is also intended for those of you who don't mind a bad pun or cheesy joke here and there.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Overview
05:04

I will give you a brief introduction as to who I am, and why I feel certified to teach this course. I will also give a overview of what you can expect to learn in this course, as well as why I chose JavaScript as the language of choice for the development.

Article

This lecture covers most of the tools you will see throughout the course. Some will be downloaded and configured along the way as part of the demos, but there will be some more common tools that I will use regularly throughout the course.

I compiled a list to give to you ahead of time, so that you have a "one-stop shop" where you can reference the tools used, instead of sprinkling the information throughout the course. I have provided external links where you can download (and purchase, if need be) the various tools.

03:44

This lecture covers the Fritzing application, which was not listed in the 'Tools' lecture. We won't be actively using this application throughout the course, but I will be showing circuit diagrams in some of the demos that I created using this application. This lecture will show you where you can find the application and how to get going with it, so that you, too, can easily create your own circuit diagrams.

02:37

As we wrap up this section of the course, I will be highlighting the key takeaway points from this introductory section.

Section 2: Getting Started
08:38

This lecture will introduce the Arduino microcontroller in its various forms, the development choices available to you on this platform, and where you can pick one up for yourself.

08:07

This lecture introduces the firmata protocol, as well as how it applies to the development we will be doing throughout this section.

09:39

This lecture covers the basics of Node JS and NPM: what they are, where to find them, how to get them set up, as well as a couple of small demos on how to actually use them.

Summary
Article
3 questions

This quiz covers the introductory lectures on the Arduino platform, as well as the introductory JavaScript lectures.

Section 3: Cylon.js
10:57

This lecture gives an introduction to the Cylon.js framework, as well as a command-line tool, Gort, that will be used for communication with the Arduino microcontroller. A demonstration is given on how to get both of these set up and running.

Section 4: Working with LEDs
12:25

Here, I introduce the Cylon JS framework with a basic LED circuit.

09:50

Expanding on demo #1, this lecture demonstrates how to change the brightness of an LED using Pulse Width Modulation and the "brightness" function in Cylon.

08:35

The last of the LED demos, this lecture really "shines" with the introduction of the RGB LED.

4 questions

Just a quick quiz to asses what we've learned thus far about developing with LEDs using Cylon JS.

Section 5: Relays & Switches
16:39

Back to LEDs again, but this time we're going to add an extra component to switch them on and off: a relay.

07:22

I will be demonstrating how to read input on the digital pins using a momentary switch and pull-down resistor.

4 questions

This quiz will address points made in the lecture on relays.

Section 6: Beyond the Basics: Using an Xbox 360 Controller with Cylon.js
08:17

This lecture introduces you to the circuit diagram and necessary components. It also guides you through installing the necessary NPM packages, and helps ensure that your host machine is properly communicating with your controller.

12:40

This lecture finalizes the configuration for the Xbox controller, in order for Cylon to properly work with it. The various event handlers for the controller's buttons and joysticks are discussed and demonstrated, as well.

06:54

This lecture builds upon the last one and does something a little more meaningful with the buttons' event handlers. We'll use the A, B, and X buttons to light up the RGB LED, and then we'll use the left and right bumper buttons to toggle two LEDs wired to a relay on and off.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Tony Thorsen, Developer, Maker, Home Automation Tinkerer, LEGO Fanatic

I am the owner, a developer and a teacher at Mark 8 Technologies. I'm very passionate about technology and mentoring others. My goal is to show that passion through teaching these courses in hopes of helping you grow as a developer.

I have close to 10 years of development experience. I love tinkering with technologies of any kind and try to remain platform agnostic. I'm not a die-hard Mac, Linux or Windows guy, and use all of them on a semi-regular basis, though most of my experience has come on the Windows platform.

In terms of development, most of my experience has been with .NET, namely C#. I have done projects in Java, as well, and have some experience with C/C++. I have also worked with web technologies, such as Angular, HTML, CSS and a host of other JS libraries. REST & SOAP technologies like WCF and WebAPI, as well as in Node JS and Golang, round out most of my server-side/backend technology experiences. In terms of database management systems, I have worked with Oracle, MySQL and SQL Server (2000, 2005, 2008) over the years. I have created a couple of iOS and Windows Phone apps, so I have a bit of experience with Objective-C and XAML/Silverlight, as well.

Ready to start learning?
Take This Course