Slide 1

Slide 1 text

JavaScript Makers: How JS is Helping Drive the Maker Movement 28 SEPT 2013 - 200ok Saturday, September 28, 13

Slide 2

Slide 2 text

9 28 2013 200ok 2013 200ok 2013 If it can be imagined it can be made. 2 Saturday, September 28, 13

Slide 3

Slide 3 text

@jdcravens github.com/jessecravens html5hacks.com frog Saturday, September 28, 13

Slide 4

Slide 4 text

9 28 2013 200ok 2013 4 Saturday, September 28, 13

Slide 5

Slide 5 text

JavaScript Makers How JS is helping drive the Maker Movement Saturday, September 28, 13

Slide 6

Slide 6 text

9 28 2013 200ok 2013 200ok 2013 Capabilities Overview Prototyping Boards Sensors and WebSocket Actuators Peripherals Leap Drones AR Drone WiFli Virtual Worlds scriptCraft voxel.js JS Makers 6 Saturday, September 28, 13

Slide 7

Slide 7 text

9 28 2013 200ok 2013 200ok 2013 Educational/Fun Beginner Programming Beginner Robotics Beginner Open Hardware/Electronics JS Makers 7 Saturday, September 28, 13

Slide 8

Slide 8 text

9 28 2013 200ok 2013 200ok 2013 Making things always combines form with function, the art of making should be appreciated and celebrated 8 Saturday, September 28, 13

Slide 9

Slide 9 text

9 28 2013 200ok 2013 200ok 2013 JS Makers 9 Saturday, September 28, 13

Slide 10

Slide 10 text

9 28 2013 200ok 2013 200ok 2013 12 - open hardware/software demos 3- prototyping boards 1 - drone 1 - dissected chopper 1 - virtual world 1 - 6 year old son as my co-presenter 100’s - packets over the network What could possibly go wrong? JS Makers 10 Saturday, September 28, 13

Slide 11

Slide 11 text

9 28 2013 200ok 2013 200ok 2013 @nonken @bassistance @voodootikigod @rwaldron @walter @maxogden ...and many more Path Pavers 11 Saturday, September 28, 13

Slide 12

Slide 12 text

9 28 2013 200ok 2013 JavaScript Makers Arduino Uno 12 Microcontroller board based on the ATmega328 Flash Memory 32 KB (ATmega328) SRAM 2 KB (ATmega328) Clock Speed 16 MHz Operating Voltage 5V 14 digital input/output pins 6 analog inputs USB connection Saturday, September 28, 13

Slide 13

Slide 13 text

9 28 2013 200ok 2013 JavaScript Makers BeagleBone by TI 13 Processor 720MHz super-scalar ARM Cortex-A8 (armv7a) 3D graphics accelerator ARM Cortex-M3 for power management Connectivity USB client USB host Ethernet 2x 46 pin headers 2x I2C, 5x UART, I2S, SPI, CAN, 66x 3.3V GPIO, 7x ADC Software 4GB microSD card with Angstrom Distribution Cloud9 IDE on Node.JS with Bonescript library Saturday, September 28, 13

Slide 14

Slide 14 text

9 28 2013 200ok 2013 JavaScript Makers Raspberry Pi 14 Processor 700MHz ARM1176 JZF-S (armv6k) - overclock at 800MHz Broadcam VideoCore IV Connectivity USB client USB host Ethernet 17 GPIOs pins Software Debian as default WebIDE with Python Library Saturday, September 28, 13

Slide 15

Slide 15 text

9 28 2013 200ok 2013 200ok 2013 matrix prototyping boards 15 Saturday, September 28, 13

Slide 16

Slide 16 text

9 28 2013 200ok 2013 JavaScript Makers 16 serialPort.on("open", function () { console.log('open'); serialPort.on('data', function(data) { console.log('data received: ' + data); }); serialPort.write("ls\n", function(err, results) { console.log('err ' + err); console.log('results ' + results); }); }); node-serialport Saturday, September 28, 13

Slide 17

Slide 17 text

9 28 2013 200ok 2013 JavaScript Makers Arduino Interfacing with Beaglebone 17 Node.js HTTP / WEB SOCKET SERVER Serial node-serialport firmata HTTP johnny-five firmata.js Node.js HTTP / WEB SOCKET SERVER Saturday, September 28, 13

Slide 18

Slide 18 text

9 28 2013 200ok 2013 200ok 2013 demo: Johnny2Beagle 18 Saturday, September 28, 13

Slide 19

Slide 19 text

9 28 2013 200ok 2013 JavaScript Makers trailr 19 Node.js HTTP / WEB SOCKET SERVER Node.js HTTP / WEB SOCKET SERVER Node.js HTTP / WEB SOCKET SERVER Saturday, September 28, 13

Slide 20

Slide 20 text

9 28 2013 200ok 2013 200ok 2013 lookin’ good: extend with modules tessel 20 var  tessel  =  require('tessel'); var  servos  =  require('servo-­‐pca9685')    .connect(tessel.port('A'));     var  degrees  =  0; setInterval(function  ()  {    servos.moveServo(1,  degrees);    degrees  =  degrees  ==  0  ?  180  :  0; },  500); var  rfid  =  require('rfid-­‐pn532')    .connect(tessel.port('b'),  function  ()  {        rfid.on('read',  function  (err,  data)  {            //  Read  data  whenever  a  card  is  read.            console.log('Read  a  card:',  data);        });    }); Saturday, September 28, 13

Slide 21

Slide 21 text

9 28 2013 200ok 2013 200ok 2013 interactive JS interpreter for Micro-controllers plug/play - no software to install can be installed on other boards espruino 21 Saturday, September 28, 13

Slide 22

Slide 22 text

9 28 2013 200ok 2013 200ok 2013 A most effective step in refining/ developing a thing is collaborating with others on it. 22 Saturday, September 28, 13

Slide 23

Slide 23 text

9 28 2013 200ok 2013 200ok 2013 trailr-remote push sketches over WebSocket trailr-mesh R24 mesh network and node.js based server trailr-admin app running on a central hub (Beaglebone) ‘Floor Plan View’ with HTML5 Canvas trailr-solar solar charge voltage divider trailr 23 Saturday, September 28, 13

Slide 24

Slide 24 text

9 28 2013 200ok 2013 HTML5 and the Internet of Things 24 Solar Charge ACS715 Hall Effect sensor Grape Solar 100-Watt Monocrystalline Off-Grid PV Solar Panel void loop() { // read the input on analog pin 0: int sensor0Value = analogRead(A0); float pinVoltage = sensor0Value * 0.00488; float battVoltage = pinVoltage * ((10+20)/10); // Vout = (R2/(R1+R2)) //float solarPower = solarPanelVoltage * solarPanelCurrent; // P = V*I , power = voltage * current , measured in W i.e. 79% of 100W MAX capacity Serial.print(battVoltage); Serial.println(" V - battery"); } Saturday, September 28, 13

Slide 25

Slide 25 text

9 28 2013 200ok 2013 HTML5 and the Internet of Things 25 Solar Charge Grape Solar 100-Watt Monocrystalline Off-Grid PV Solar Panel 12V 10Amp Charge Controlller Saturday, September 28, 13

Slide 26

Slide 26 text

9 28 2013 200ok 2013 HTML5 and the Internet of Things 26 Solar Charge Voltage Divider Saturday, September 28, 13

Slide 27

Slide 27 text

9 28 2013 200ok 2013 200ok 2013 onboard, live HD video streaming auto stabilizers wifi enabled nodecopter 27 Saturday, September 28, 13

Slide 28

Slide 28 text

9 28 2013 200ok 2013 200ok 2013 demo: AR-Drone Basics 28 Saturday, September 28, 13

Slide 29

Slide 29 text

9 28 2013 200ok 2013 200ok 2013 demo: AR-Drone WebFlight 29 Saturday, September 28, 13

Slide 30

Slide 30 text

9 28 2013 200ok 2013 200ok 2013 Begin with the end in mind. 30 Saturday, September 28, 13

Slide 31

Slide 31 text

9 28 2013 200ok 2013 200ok 2013 from wiFli to wiRide 31 node-wiFli Interactive Toy Concepts Amazon refurb - $15 Saturday, September 28, 13

Slide 32

Slide 32 text

9 28 2013 200ok 2013 200ok 2013 demo: wiRide 32 Saturday, September 28, 13

Slide 33

Slide 33 text

9 28 2013 200ok 2013 200ok 2013 airspace - overview of the leap WebSocket server JSON data format leapjs 33 Saturday, September 28, 13

Slide 34

Slide 34 text

9 28 2013 200ok 2013 200ok 2013 demo: leapjs, console 34 Saturday, September 28, 13

Slide 35

Slide 35 text

9 28 2013 200ok 2013 200ok 2013 demo: web based visualizer 35 Saturday, September 28, 13

Slide 36

Slide 36 text

9 28 2013 200ok 2013 200ok 2013 demo: nodecopter-leap 36 Saturday, September 28, 13

Slide 37

Slide 37 text

9 28 2013 200ok 2013 200ok 2013 The first step in making a thing, is visualizing it. 37 Saturday, September 28, 13

Slide 38

Slide 38 text

9 28 2013 200ok 2013 200ok 2013 3D modeling - basics, building Objects parent/child - workflow reading/phonics - signs, menus math - repl JS programming patterns - modular, async scriptcraft 38 Saturday, September 28, 13

Slide 39

Slide 39 text

9 28 2013 200ok 2013 200ok 2013 demo: scriptCraft building blocks 39 Saturday, September 28, 13

Slide 40

Slide 40 text

9 28 2013 200ok 2013 200ok 2013 demo: math repl 40 Saturday, September 28, 13

Slide 41

Slide 41 text

9 28 2013 200ok 2013 200ok 2013 demo: reading sight words 41 Saturday, September 28, 13

Slide 42

Slide 42 text

9 28 2013 200ok 2013 200ok 2013 Create 3d voxel games like Minecraft in the browser with WebGL/JS voxel.js 42 Saturday, September 28, 13

Slide 43

Slide 43 text

9 28 2013 200ok 2013 200ok 2013 demo: voxel creator 43 Saturday, September 28, 13

Slide 44

Slide 44 text

9 28 2013 200ok 2013 200ok 2013 More than any other programming language JavaScript is helping drive the Maker movement. As open hardware lowers the barrier of entry to electronics... As 3D printing lowers the barrier of entry to manufacturing... JavaScript lowers the barrier of entry to programming. JavaScript Makers 44 Saturday, September 28, 13

Slide 45

Slide 45 text

© 2012 frog. All rights reserved. Saturday, September 28, 13