Difference between revisions of "Lightswitch"
(Created page with "{{Project |ProjectSkills=soldering, lasercutting, insanity, programming |ProjectStatus=Active |ProjectNiche=Electronics |ProjectPurpose=World domination }} The most complex li...") |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Project | {{Project | ||
|ProjectSkills=soldering, lasercutting, insanity, programming | |ProjectSkills=soldering, lasercutting, insanity, programming | ||
− | |ProjectStatus= | + | |ProjectStatus=Getting parts |
|ProjectNiche=Electronics | |ProjectNiche=Electronics | ||
|ProjectPurpose=World domination | |ProjectPurpose=World domination | ||
}} | }} | ||
The most complex lightswitch we can think of, well almost. | The most complex lightswitch we can think of, well almost. | ||
+ | |||
+ | |||
+ | Code is work in progress: | ||
+ | https://github.com/MerlijnWajer/powerbars/blob/hardware_interface/spacebar.py | ||
* upper-binary: diameter = 12mm | * upper-binary: diameter = 12mm | ||
Line 11: | Line 15: | ||
* mode-switch: diameter = 6mm (screw distance= 32mm) | * mode-switch: diameter = 6mm (screw distance= 32mm) | ||
* info-request: diameter = 15mm | * info-request: diameter = 15mm | ||
+ | |||
+ | * [[File:Lightswitch-panel0.svg|200px]] | ||
+ | * [[File:Lightswitch-panel1.svg|200px]] | ||
+ | |||
+ | <gallery widths=350px heights=150px> | ||
+ | File:Lightswitch 0000.jpg | ||
+ | File:Lightswitch 0001.jpg | ||
+ | File:Lightswitch 0002.jpg | ||
+ | File:Lightswitch 0003.jpg | ||
+ | File:Lightswitch 0004.jpg | ||
+ | File:Lightswitch 0005.jpg | ||
+ | </gallery> | ||
+ | |||
+ | <pre> | ||
+ | There are 8 switches used to turn certain devices On and Off. So naively, we can | ||
+ | have at least 8 "presets". I have a few down already: | ||
+ | |||
+ | 0: Turn Off/On everything | ||
+ | 1: Turn Off/On (all) lights | ||
+ | 2: Turn Off/On audio | ||
+ | 3: Turn Off/On west space (power, light) | ||
+ | 4: ... | ||
+ | 5: ... | ||
+ | 6: ... | ||
+ | 7: ... | ||
+ | |||
+ | Input on other groups/presets/things to add to this list is very welcome. | ||
+ | |||
+ | Of course, we added some extra switches and it's possible to add a lot more | ||
+ | options. We can add a single switch that allows up to 16 options. | ||
+ | |||
+ | The extreme example is the expert mode, where the 8 switches will act | ||
+ | as "bits" of a single byte. That already gives one 255 possible options for | ||
+ | configuration. We added another switch, to allow one to 'stack' said byte | ||
+ | configuration to add another byte. I expect we don't need more than 65536 | ||
+ | options, but it's possible. And the input will be in little endian. | ||
+ | |||
+ | Eventually, it will also feature LEDs to indicate the state of each individual | ||
+ | socket. Other planned "add-ons" are: | ||
+ | * Small display + a two buttons to "scroll" through different options, with two | ||
+ | buttons to turn said options on and/or off. | ||
+ | * Possibly using a speaker for feedback | ||
+ | |||
+ | This is the layout, in plaintext (design is modular and allows adding more | ||
+ | buttons, etc) | ||
+ | |||
+ | +------------------------------------------------------------+ | ||
+ | - - | ||
+ | - LED Switch [0] [Mode: Normal/Expert] [Show Status] - | ||
+ | - - | ||
+ | - LED Switch [1] LED LED LED LED LED LED LED LED LED - | ||
+ | - - | ||
+ | - LED Switch [2] LED LED LED LED LED LED LED LED LED - | ||
+ | - - | ||
+ | - LED Switch [3] LED LED LED LED LED LED LED LED LED - | ||
+ | - - | ||
+ | - LED Switch [4] LED LED LED LED LED LED LED LED LED - | ||
+ | - - | ||
+ | - LED Switch [5] LED LED LED LED LED LED LED LED LED - | ||
+ | - - | ||
+ | - LED Switch [6] LED LED LED LED LED LED LED LED LED - | ||
+ | - - | ||
+ | - LED Switch [7] [ Act/Enf ] [ Stack ] [ Mode??? ] - | ||
+ | - - | ||
+ | +------------------------------------------------------------+ | ||
+ | |||
+ | Act(ivate) and Stack work in expert mode, respectively taking the current | ||
+ | bytes as a number and add a byte to the stack. | ||
+ | |||
+ | Enf(orce) will, in normal mode, enforce all the current settings of all the | ||
+ | switches, whereas they will normally only change when turned. | ||
+ | |||
+ | "Mode???" is a switch that can take several different states. These will be used | ||
+ | for possible addons (such as switching endianness), but probably only in | ||
+ | expert mode -- to keep the basic usage sane. | ||
+ | |||
+ | LEDs won't be there for some time. | ||
+ | |||
+ | We'll need an embedded device to control all of this - costs about 40 euro. | ||
+ | </pre> |
Latest revision as of 01:51, 15 February 2017
Projects | |
---|---|
Participants | Wizzup |
Skills | soldering, lasercutting, insanity, programming |
Status | Getting parts |
Niche | Electronics |
Purpose | World domination |
The most complex lightswitch we can think of, well almost.
Code is work in progress:
https://github.com/MerlijnWajer/powerbars/blob/hardware_interface/spacebar.py
- upper-binary: diameter = 12mm
- lower-binary: width x height = 24x25mm
- mode-switch: diameter = 6mm (screw distance= 32mm)
- info-request: diameter = 15mm
There are 8 switches used to turn certain devices On and Off. So naively, we can have at least 8 "presets". I have a few down already: 0: Turn Off/On everything 1: Turn Off/On (all) lights 2: Turn Off/On audio 3: Turn Off/On west space (power, light) 4: ... 5: ... 6: ... 7: ... Input on other groups/presets/things to add to this list is very welcome. Of course, we added some extra switches and it's possible to add a lot more options. We can add a single switch that allows up to 16 options. The extreme example is the expert mode, where the 8 switches will act as "bits" of a single byte. That already gives one 255 possible options for configuration. We added another switch, to allow one to 'stack' said byte configuration to add another byte. I expect we don't need more than 65536 options, but it's possible. And the input will be in little endian. Eventually, it will also feature LEDs to indicate the state of each individual socket. Other planned "add-ons" are: * Small display + a two buttons to "scroll" through different options, with two buttons to turn said options on and/or off. * Possibly using a speaker for feedback This is the layout, in plaintext (design is modular and allows adding more buttons, etc) +------------------------------------------------------------+ - - - LED Switch [0] [Mode: Normal/Expert] [Show Status] - - - - LED Switch [1] LED LED LED LED LED LED LED LED LED - - - - LED Switch [2] LED LED LED LED LED LED LED LED LED - - - - LED Switch [3] LED LED LED LED LED LED LED LED LED - - - - LED Switch [4] LED LED LED LED LED LED LED LED LED - - - - LED Switch [5] LED LED LED LED LED LED LED LED LED - - - - LED Switch [6] LED LED LED LED LED LED LED LED LED - - - - LED Switch [7] [ Act/Enf ] [ Stack ] [ Mode??? ] - - - +------------------------------------------------------------+ Act(ivate) and Stack work in expert mode, respectively taking the current bytes as a number and add a byte to the stack. Enf(orce) will, in normal mode, enforce all the current settings of all the switches, whereas they will normally only change when turned. "Mode???" is a switch that can take several different states. These will be used for possible addons (such as switching endianness), but probably only in expert mode -- to keep the basic usage sane. LEDs won't be there for some time. We'll need an embedded device to control all of this - costs about 40 euro.