Skip to content

Layers of a Nodebot

Chris Williams edited this page Jan 7, 2014 · 1 revision

In order to make your learning more enjoyable, we wanted to start out with a shared frame of knowledge about the various layers that you will be working with. These terms and their working definitions are presented to familiarize you with some of the basic lingo that you will see throughout this book. Eventually the details of each layer will become clear, but for now, just to you how each layer

[Layer Diagram Needed]
Diagram of layers in a typical nodebot project
**Components** - Any from a wide array of physical items that either provide or respond to changes in electrical current in a discrete manner. Examples of components can include sensors (IR, Electromagnetic field), relays (power switches), servos (fine-grain rotation), and electrical building blocks (resistors, capacitors, wires, etc.).
**Pin** - A named (normally numerical or alphabetically) connection point on a component or microcontroller used to wire them together.
**Arduino** - The microcontroller that is the processes input and output electrical currents as defined by on and off in the case of a digital signal and voltage variance in the case of an analog signal. For more information about Arduino (and it actually is incredibly fascinating), please [review their site](http://arduino.cc).
**Serial Port** - The conduit between which the higher level language talks to outlying devices. While it is true that RS232 ports are rare on modern computers, USB _can_ present as an RS232 or serial port device and many external devices do in fact present in this manner (other option would be as a Human Interface Device or HID). For Node.js, this library was authored by Chris Williams.
**Firmata** - A standard protocol used for conveying state change information between two different controller devices. In our case, firmata is the communication channel between the controlling JS code and the executing low level microcontroller. For Node.js, this library was authored by Julian Gauthier.
**Johnny-Five** - An abstraction layer that makes controlling the low level hardware components of a project as simple and obvious as manipulating a web page's DOM. Johnny-five is the layer upon which most of your Nodebot code will be built. For node.js, this library was authored by Rick Waldron.

From the rise of readily available and widely accepted open source hardware, specifically the Arduino family of chips, people have been looking for a great overlap between hardware and software, something that C and processing really are not great at. The availability of the serial port to a language and culture like javascript opens up many doors and ideas to flow into the otherwise confined and limited worldof hardware, but bridged with firmata, it becomes a powerhouse where developers can use the best of their preferred language and the benefit of hardware - creating the perfect balance for nodebots (and rubybots and pybots, etc). Layer Cake Image from nodebots day is perfect expansion here.

Clone this wiki locally