LumiNet: Prototyping Organic Physical Networks (and hacking Arduino in the process)

Similar documents
APDS-9960 RGB and Gesture Sensor Hookup Guide

FABO ACADEMY X ELECTRONIC DESIGN

ZX Distance and Gesture Sensor Hookup Guide

WifiBotics. An Arduino Based Robotics Workshop

Arduino STEAM Academy Arduino STEM Academy Art without Engineering is dreaming. Engineering without Art is calculating. - Steven K.

Arduino Uno Pinout Book

ASCOM EF Lens Controller

Embedded Systems & Robotics (Winter Training Program) 6 Weeks/45 Days

Bill of Materials: PWM Stepper Motor Driver PART NO

Workshops Elisava Introduction to programming and electronics (Scratch & Arduino)

UNIT 4 VOCABULARY SKILLS WORK FUNCTIONS QUIZ. A detailed explanation about Arduino. What is Arduino? Listening

LoRa Quick Start Guide

ARDUINO BASED DC MOTOR SPEED CONTROL

HC-SR501 Passive Infrared (PIR) Motion Sensor

Ardweeny 1.60" 0.54" Simple construction - only 7 parts plus pins & PCB! Ideal for breadboard applications

Congratulations on your purchase of the SparkFun Arduino ProtoShield Kit!

Training Schedule. Robotic System Design using Arduino Platform

occam on the Arduino Adam T. Sampson School of Computing, University of Kent Matt C. Jadud Department of Computer Science, Allegheny College

3.3V regulator. JA H-bridge. Doc: page 1 of 7

ArduCAM USB Camera Shield

Doesn t something like this exist already? What is this project trying to achieve? What is this document?

Arduino Platform Capabilities in Multitasking. environment.

APIX Video Interface configuration

Introduction to the Arduino Kit

Robotics & Embedded Systems (Summer Training Program) 4 Weeks/30 Days

The µbotino Microcontroller Board

1 Introduction. 2 Embedded Electronics Primer. 2.1 The Arduino

Internet of Things Student STEM Project Jackson High School. Lesson 2: Arduino and LED

TLE5014 Programmer. About this document. Application Note

ARDUINO BASED CALIBRATION OF AN INERTIAL SENSOR IN VIEW OF A GNSS/IMU INTEGRATION

Getting Started with the micro:bit

MAKEVMA502 BASIC DIY KIT WITH ATMEGA2560 FOR ARDUINO USER MANUAL

10 Zone RGB-W LED Controller

Knight Light. LED Chess. Nick DeSantis Alex Haas Bryan Salicco. Senior Design Group 16 Spring 2013

Internet of Things (Winter Training Program) 6 Weeks/45 Days

Robotic Development Kit. Powered using ATMEL technology

nrf24l01+ Transceiver Hookup Guide

micro:bit Basics The basic programming interface, utilizes Block Programming and Javascript2. It can be found at

Arduino Workshop 01. AD32600 Physical Computing Prof. Fabian Winkler Fall 2014

Smart RFDuino. Alexander Baldamus Dominik Schlütter Hinrikus Wolf. Sommersemester 2014

Tangible Interaction AVANCERAD INTERAKTIONSDESIGN. Héctor Caltenco Certec, Inst. för Designvetenskaper, LTH

Baroesque Barometric Skirt

An IoT Based Real-Time Environmental Monitoring System Using Arduino and Cloud Service

Getting started with the SparkFun Inventor's Kit for Google's Science Journal App

16 Bit Micro Experimenter Assembly and Check out Instructions

Breadboard Arduino Compatible Assembly Guide

Lab 1: Testing and Measurement on the r-one

Module: Arduino as Signal Generator

TRDB_DC2 TRDB_DC2. 1.3Mega Pixel Digital Camera Development Kit

Touch Potentiometer Hookup Guide

UTILIZATION OF ROBOTICS AS CONTEMPORARY TECHNOLOGY AND AN EFFECTIVE TOOL IN TEACHING COMPUTER PROGRAMMING

Low-Cost hardware connectivity with Simulink MATLAB-Day RWTH Aachen Sebastian Groß October 24th, 2013

HB-25 Motor Controller (#29144)

Capacitive Touch with Conductive Fabric & Flora

IMU: Get started with Arduino and the MPU 6050 Sensor!

Attribution Thank you to Arduino and SparkFun for open source access to reference materials.

DESCRIPTION DOCUMENT FOR WiFi <-> RS485 <-> LoRa DEVICE BOARD HARDWARE REVISION 0.1

mclr boot 3R GND stat chg pwr GND 3.3V GND 5V GND VIN 5-15V SIKIO GUIDE Your guide to the SparkFun Inventor s Kit for IOIO-OTG

Hands on Practice in Arduino Board

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

AVR42778: Core Independent Brushless DC Fan Control Using Configurable Custom Logic on ATtiny817. Features. Introduction. AVR 8-bit Microcontroller

ESE 350 Microcontroller Laboratory Lab 5: Sensor-Actuator Lab

Built-in soft-start feature. Up-Slope and Down-Slope. Power-Up safe start feature. Motor will only start if pulse of 1.5ms is detected.

Logistics. Kinetic Art. Embedded Systems. Embedded Systems and Kinetic Art. Jim Campbell s Algorithm

Embedded Systems and Kinetic Art. CS5968: Erik Brunvand School of Computing. Art4455: Paul Stout Department of Art and Art History.

PCB & Circuit Designing (Summer Training Program) 6 Weeks/ 45 Days PRESENTED BY

9DoF Sensor Stick Hookup Guide

Pin Symbol Wire Colour Connect To. 1 Vcc Red + 5 V DC. 2 GND Black Ground. Table 1 - GP2Y0A02YK0F Pinout

ESP32 Utility Driver

Arduino

DESCRIPTION DOCUMENT FOR WIFI/BT QUAD RELAY BOARD HARDWARE REVISION 0.1

On the front of the board there are a number of components that are pretty visible right off the bat!

Embedded Systems and Software

USER MANUAL SERIAL IR SENSOR ARRAY5

Home CSP Inc. Trackers and electronics for home solar energy

MULTI ROBOT COMMUNICATION AND TARGET TRACKING SYSTEM AND IMPLEMENTATION OF ROBOT USING ARDUINO

Light Emitting Diode IV Characterization

Grove - Infrared Temperature Sensor

the Arduino Introducing The advantage of the Arduino in its

Demon Pumpkin APPROXIMATE TIME (EXCLUDING PREPARATION WORK): 1 HOUR PREREQUISITES: PART LIST:

Lesson 3: Arduino. Goals

AN797 WDS USER S GUIDE FOR EZRADIO DEVICES. 1. Introduction. 2. EZRadio Device Applications Radio Configuration Application

The USELESS BOX. Procedure:

Chroma. Bluetooth Servo Board

GESTUR. Sensing & Feedback Glove for interfacing with Virtual Reality

Probabilistic Robotics Course. Robots and Sensors Orazio

AP CANmotion. Evaluation Platform with BLDC Motor featuring XC886CM Flash Microcontroller Version 2007/10. Microcontrollers

Coding with Arduino to operate the prosthetic arm

Sensors and Motor Control Lab Individual lab report #1 October 16, 2015

Optimal Clock Synchronization in Networks. Christoph Lenzen Philipp Sommer Roger Wattenhofer

RGB strips.

SPY ROBOT CONTROLLING THROUGH ZIGBEE USING MATLAB

AVANCERAD INTERAKTIONSDESIGN. Héctor Caltenco Certec, Inst. för Designvetenskaper, LTH

I2C Demonstration Board LED Dimmers and Blinkers PCA9531 and PCA9551

INTRODUCTION. What is the LSN50

DESCRIPTION DOCUMENT FOR WIFI SINGLE DIMMER ONE AMPERE BOARD HARDWARE REVISION 0.3

5 Channel Multifunctional PWM Controller. HomLiCon LCH5T. Technical Specifications

Preliminary. 4-Channel RTD/4-20 ma Wireless Sensor Node SN24R420-4

Dynamic Wireless Decorative Lights

Simon Tilts Assembly Guide

Transcription:

LumiNet: Prototyping Organic Physical Networks (and hacking Arduino in the process) Jan Borchers and René Bohne Media Computing Group RWTH Aachen University, Germany Sketching in Hardware London, July 17, 2009 www.luminet.cc Computing and networking have been inspired by biology Natural user interfaces have been a good choice in the past Can we directly use more organic concepts in the UI? Physicality (BumpTop,...), Continuity (iphoto), Humane presentation forms (associations)? but still all virtual/on-screen We want physical organic interface, and a networked one 1

Arduino limits: Project with 100s of units? Create emergent swarming behavior? Lightup clothing with independent nodes? Give away to people for studies, at events? Arduino is too expensive and too large for these ideas More importantly: Arduino supports centralized architecture one central controller, many sensors and actuators (like LEDs) This makes developing complex, high-performance networked projects hard 2

ThingM s BlinkM Smart LED: - right hardware - but missing communication links - and: still designed for central control (e.g., through an Arduino) 3

Our goal: - Wired network of intelligent pixels - under $10 - Organic network - No central control - Naturally highly parallel & robust - Reconfigurable - Supports decentralized stimuli from sensors at any node E.g., this jacket contains 80 LumiNet nodes (two of these were made in 2008) 4

1.2 PCBs ATtiny84 The LumiNet design (board revision 3.6): - Bright OSRAM RGB SMD LED - 4 bidirectional communication lines (numbers are Arduino-like pins) - Separate one-time ISP connectors - Separate one-time programming connectors - Sensor dongles can inject data anywhere into network - E.g., the LightRing program (see video) for the jacket has pushbuttons attached to nodes near the wrists for input grounding one of that node s data inputs - Jumper disconnects LED to make sure ISP programming works for initial bootloader programming (a hack) 5 Ideas for using LumiNet: - Tangible Education & Simulation of tree algorithms and swarm behavior - Wearable Computing projects (lightup clothing)

Programming by Infection Problem: Individually reprogramming every single node for new behavior is tedious 6 Solution: - Physical dongle (also LumiNet board) inserts program anywhere as viral vector - Bootloaders on nodes self-modify themselves and spread vector Issues with this: Fully meshed networks require sending priorities; developed software serial protocol in assembler for performance and robustness

BYNASE Jan Borchers How should nodes communicate once an app is running? 7 Goals: Make noise your friend, no precise syncing between nodes required Solution: Cunningham s BYNASE (great for LumiNet LED brightness and color) - Sender puts pin high statistically depending on value to send - Receiver samples pin statistically (should happen more often than sender frequency) - Missing quartz actually helps because it avoids synchronicity between nodes!

From Zero to Hero At factory: Put bootloaders on nodes and vectors (with any ISP programmer, even Arduino with our hack) Upload your payload sketch to vector (via serial connection, e.g., using an Arduino board) Connect network, add vector, power up, watch infection Remove vector, power cycle network, go How to use LumiNet if you know Arduino Hints: - Remove jumper on LumiNet board while ISP programming the bootloaders - Add North_RX (pin 1) to GND jumper while uploading new payload sketches to vector 8

I/O LumiNet Sensor Nodes: 9 - Specially programmed nodes - Don t participate in infection - Like constant periphery - Inject sensory stimuli into network Send/Receive Nodes - Also constant periphery - Connect multiple people wearing LumiNet networks - Bridge the air, e.g., using infrared LEDs and IR sensors

Demo! Showing jacket running LightRing code, pressing buttons to trigger ripples - Nicely shows advantages of separate CPUs on each node (long ripple signals propagate naturally, with very simple code) - IR sender & receiver on each index finger for propagating the signal down one arm and from the hand across to the other hand and back up the other arm 10 4x4 node network on the wall: - Initally runs blue fading pattern > shows time drift w/o crystal - Reprogram by infection, by attaching a viral vector infecting the net with Ant code Additional demos if time: - Accelerometer (injects SparkFun accelerometer data into LumiNet network) - Light Sensor (which uses the LumiNet LED in reverse mode to detect ambient light and thus touch)

Our changes to Arduino: 11

Jan Borchers New board definitions in IDE - to put bootloader onto normal LumiNet node or vector node (usually only needed at factory) - to upload your viral LumiNet sketch to a vector node - to program new LumiNet sensor nodes 12

Jan Borchers 13 Included an option in the IDE to use your Arduino board as your ISP programmer (for LumiNet bootloaders) if you don t have one

14 This option makes it easier to just press Cmd-B to put bootloaders on a lot of blank LumiNet nodes (at factory)

Assembler support for Arduino cores (and limited for sketches) 15

Borchers JanJanBorchers 16 Added ATtiny support to Arduino, including ATtiny84, ATtiny2313; others easy to add Had to change AVR uploader (avrdude) Included sensible mappings of Arduino pinouts and features to these less powerful chips

Jan Jan Borchers Also new: An empty template is automatically created for new sketches. :) 17

Jan Jan Borchers 5 GOLD Sale! The non-capitalist approach: - Initial production run (400 boards) was around 8.50 per node incl. cables - Rerun would be around 6 - Selling them at this conference at 5 / $ / / whatever to keep things simple - Selling below cost to get the word out and get people interested, rather than keep them to ourselves 18

Next? Next steps: - Write more cool vector code samples with interesting emerging behavior - Make workflow easier, removing need for jumpers - Maybe add on-screen simulation to preview parallel behavior of code 19 Hardware evolution: - maybe add a crystal for easier deterministic communication - But then ATtiny runs out of pins - So move to ATmega (if it doesn t make it too expensive) - maybe ATmega88 - Reduce to BlinkM board size, use both sides for components, maybe multilayer PCB - Add a transistor to replace LED jumper - Use built-in hardware PWM for all 3 LED colors

luminet.cc Check out this URL for - free download of our modified Arduino IDE - Information on the hardware design - Look for info on buying nodes coming up, or email René 20