Wall of Faces

From Nottinghack Wiki
Jump to navigation Jump to search
Wall of Faces
[[{{{image}}}|border|frameless|220px|center]]
Primary Contact {{{primary}}}
Created 01/04/2012
Completed {{{completeddate}}}
Dormant {{{dormantdate}}}
Version {{{version}}}
Members {{{members}}}
Manufacturer {{{manufacturer}}}
Model {{{model}}}
Location [[{{{location}}}]]
Status Dormant
Type Hackspace Infrastructure
Live Status {{{livestatus}}}
QR code

Overview

The wall of faces will have members' photos and names on it. They will light up if a member is within the space.
This was started as we grew and people could not put names to faces of members.
This is an opt-in idea, people only make their unit if they would like to.
Obviously a high-tech touch has been added.

The wall will comprise of a number of boxes. Each box will have the members photo and name.
The boxes will be laser cut and all fit together to build a whole wall.
Each box will also contain a circuit board. This will have LED backlighting and a microcontroller (probably an ATtiny48/85).
When a member is in the space (via their RFID tag) then their image will light up.

Members do not swipe out, so at the end of every day then all the backlighting will reset. This will give a record of who was in the space that day.
An alternative of the above, of staying on till midnight, is that each box stay's lit for an amount of time (1 Hour?) after there last card swipe

This will probably be in the form of a kit which members get the chance to build - including laser cut pieces and soldering the board.

Boxes

The boxes will be 60(h) x 60(l) x 30mm(w).
The design was created using BoxMaker.
More on making project boxes is here http://support.ponoko.com/entries/20344437-laser-cut-project-box-tutorial.
The initial prototype is here:
Walloffaces1.jpeg Walloffaces2.jpeg

Walloffaces3.jpeg Walloffaces4.jpeg

Circuit

Pins Outs

ATtiny*5 1: N/C (ISP Reset)
2: LED Red
3: LED Green
4: GND
5: I2C SDA (ISP MOSI)
6: LED BLU (ISP MISO)
7: I2C SCL (ISP SCK)
8: VCC

Useful info on programming ATtiny's with ArduinoISP
http://provideyourown.com/2011/arduino-program-attiny/
Command to use
avrdude -P /dev/tty.usbserial-A600bN04 -b 19200 -c avrisp -p t85 -v -e -U flash:w:slave-attiny85.hex -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m
Add 120ohm resistor between arduino rest and 5v

Code

Simple code - when a command comes through (a unique identifier) then the light swicthes ON (also can send an OFF command).

Firmware available here
https://github.com/NottingHack/Wall-of-Faces

Found this that might just work for us, maybe with a tweak to 10bit address
http://code.google.com/p/codalyze/wiki/CyzRgb

I2C Command structure

Need to define the command system for turning on and off the RGB led's
Needs to be simple so that changes down the line to add more functionality are only needed at the Main Controller rather than re-flashing every module
May follow BlinkM command structure http://thingm.com

Using the 10bit addressing with I2C
http://www.i2c-bus.org/addressing/10-bit-addressing/
Standard TWI/I2C on avr uses 7 bit address space this allows for 0-127 devices on a single bus, its possible to use a 10 bit address space but its going to need some custom code for both the ATmega328 and the ATtiny85 :(

I2C command table copied from CZY_RGB docs [2] and modified for 10bit address changes

command name cmd char cmd byte # args # ret vals format implemented
Go to RGB Color Now n 0x6e 3 0 {‘n’,R,G,B} yes
Fade to RGB Color c 0x63 3 0 {‘c’,R,G,B} yes
Fade to HSB Color h 0x68 3 0 {‘h’,H,S,B} yes
Fade to Random RGB Color C 0x43 3 0 {‘C’,R,G,B} yes
Fade to Random HSB Color H 0x48 3 0 {‘H’,H,S,B} yes
Play Light Script p 0x70 3 0 {‘p’,n,r,p} yes
Stop Script o 0x6f 0 0 {‘o’} yes
Set Fade Speed f 0x66 1 0 {‘f’,f} yes
Set Time Adjust t 0x74 1 0 {‘t’,t} yes
Get Current RGB Color g 0x67 0 3 {‘g’} yes
Write Script Line W 0x57 7 0 {‘W’,n,p,d,c,a1,a2,a3} yes2
Read Script Line R 0x52 2 5 {‘R’,n,p} yes1
Set Script Length & Repeats L 0x4c 3 0 {‘L’,n,l,r} yes
Set BlinkM Address A 0x41 6 0 {‘A’,aH,aL,0xd0,0x0d,aH,aL} yes
Get BlinkM Address a 0x61 0 2 {‘a’} yes
Get BlinkM Firmware Version Z 0x5a 0 1 {‘z’} yes4
Set Startup Parameters B 0x42 5 0 {‘B’,m,n,r,f,t} yes
Pre-defined light scripts yes 5

x Only available in subversion head.
2 Max 10 lines. Only valid commands are go and fade to RGB. Script number 'n' is ignored, can only write script 0
4 current head version returns 0.1
5 only script 1. no predenfined script 0.

Main Controller

A controller will be required to take the info from gatekeeper (which knows when an RFID tag has been read) and output a command to turn on the correct box.

The Gatekeeper process on Holly will send ON commands with unique member id's
Posible a nanode with NanodeMQTT to decode the MQTT and then send commands out via the I2C bus.

Cost

  • ATtiny85 from RS ATTINY85V-10PU 696-2339P
    • 10+ £1.74
    • 25+ £1.59
  • ATtiny45 from RS ATTINY45V-10PU 696-2320P
    • 10+ £1.38
    • 25+ £1.26
  • RGB led's
  • Headers
  • PCB
  • Capacitor
  • Transistor
  • Wood
    • 2 per box's per A4 sheet aprox
  • Laser time

Strong objections

I have moved this to the Talk page, as the page is for technical details of the project. James 09:09, 4 April 2012 (EST)