Project:BinaryClock: Difference between revisions
From London Hackspace Wiki
(Created page with "==What== A binary clock that Ciarán made after the Arduino Workshop. http://farm6.static.flickr.com/5219/5385317677_a3657003cd_m.jpg ==Code== ==Circuit…") |
mNo edit summary |
||
(13 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
==What== | ==What== | ||
An extension of the binary clock that [[user:ciaran.mooney|Ciarán]] made after the Arduino Workshop. | |||
http://farm6.static.flickr.com/5219/5385317677_a3657003cd_m.jpg | http://farm6.static.flickr.com/5219/5385317677_a3657003cd_m.jpg | ||
===Design Criteria=== | |||
* Must have a nice case. | |||
* Must have a time display (duh). | |||
* Must have a minimum of buttons, preferably two | |||
* Will use GPS time/date to be semi-accurate. | |||
* Must be able to change between GMT/BST | |||
* Must be as low power, long life as possible. | |||
** By default time display will be off. | |||
Non-essentials | |||
* Nice to have a external output, ie when alarm goes off a pin goes high. So alarm can be hacked to trigger other events. | |||
==How== | |||
===Logic=== | |||
====Button Logic==== | |||
Buttons need to snooze, set alarm, show date, show time, show alarm. | |||
The following is based on two buttons | |||
* Either button will snooze the alarm, if alarm is sounding. | |||
* Holding button 1 will turn alarm off. | |||
* Button 1 will show time (when no time or date is displayed). | |||
* Button 2 will show date. | |||
* Holding button 2 will show alarm. | |||
* Holding Button 1+2 will put clock into set alarm mode. | |||
** Button 1 will increase the hour, button 2 will set the hour. | |||
** Button 1 will increase minute, button 2 will set the minute. | |||
** Clock will go back to displaying the time. | |||
====State Logic==== | |||
{| class="wikitable" | |||
|- | |||
! State | |||
! Description | |||
! Actions | |||
|- | |||
| 1 | |||
| Display off. | |||
| Click 1 > 6, Click 2 > 5 | |||
|- | |||
| 2 | |||
| Alarm On. | |||
| Click 1 or 2 > 3, Hold 1 > 4 | |||
|- | |||
| 3 | |||
| Snoozed | |||
| Hold 1 > 4 | |||
|- | |||
| 4 | |||
| Showing Time | |||
| Hold 1+2 > 7 | |||
|- | |||
| 5 | |||
| Showing Date | |||
| None | |||
|- | |||
| 6 | |||
| Show Alarm | |||
| Hold 1+2 > 7 | |||
|- | |||
| 7 | |||
| Set Alarm | |||
| Button 1 or 2 | |||
|- | |||
|} | |||
====Display Feedback==== | |||
====Sound Feedback==== | |||
===Code=== | |||
Get it [https://github.com/ciaranmooney/Binary-Arduino-Alarm-Clock here]! - Note: There is no code yet, really. | |||
===Hardware=== | |||
Laser cutter designs for enclosure. | |||
===TODO=== | |||
* Get accurate time measurement | |||
* Add buttons | |||
* Add ability to set an alarm | |||
* Add a piezo | |||
* Make battery supply | |||
* Make it "radio-controlled" | |||
* Make a box | |||
{| class="wikitable" | |||
|- | |||
! Task | |||
! Date Completed | |||
|- | |||
| Prototype Display | |||
| | |||
|- | |||
| Display PCB | |||
| | |||
|- | |||
| Prototype Buttons | |||
| | |||
|- | |||
| PCB Buttons | |||
| | |||
|- | |||
| Prototype Alarm | |||
| | |||
|- | |||
| PCB Alarm | |||
| | |||
|- | |||
| Prototype Time | |||
| | |||
|- | |||
| PCB Time | |||
| | |||
|- | |||
| Prototype Combined Clock | |||
| | |||
|- | |||
| PCB Combined Clock | |||
| | |||
|} | |||
==Code== | ==Code== | ||
==Circuit== | ==Circuit== | ||
===Rev 1=== | |||
Designed PCB for shift registers, and LEDs. This board will become the "Display" | |||
[[File:BinaryClockDisplayPCB.png|250px]] | |||
===Rev 2=== | |||
Gave up trying to design a PCB. Decided to go back to using veroboard. Circuit has been designed on graph a paper | |||
[[Category:Projects]] |
Latest revision as of 00:02, 29 May 2013
What
An extension of the binary clock that Ciarán made after the Arduino Workshop.
Design Criteria
- Must have a nice case.
- Must have a time display (duh).
- Must have a minimum of buttons, preferably two
- Will use GPS time/date to be semi-accurate.
- Must be able to change between GMT/BST
- Must be as low power, long life as possible.
- By default time display will be off.
Non-essentials
- Nice to have a external output, ie when alarm goes off a pin goes high. So alarm can be hacked to trigger other events.
How
Logic
Button Logic
Buttons need to snooze, set alarm, show date, show time, show alarm.
The following is based on two buttons
- Either button will snooze the alarm, if alarm is sounding.
- Holding button 1 will turn alarm off.
- Button 1 will show time (when no time or date is displayed).
- Button 2 will show date.
- Holding button 2 will show alarm.
- Holding Button 1+2 will put clock into set alarm mode.
- Button 1 will increase the hour, button 2 will set the hour.
- Button 1 will increase minute, button 2 will set the minute.
- Clock will go back to displaying the time.
State Logic
State | Description | Actions |
---|---|---|
1 | Display off. | Click 1 > 6, Click 2 > 5 |
2 | Alarm On. | Click 1 or 2 > 3, Hold 1 > 4 |
3 | Snoozed | Hold 1 > 4 |
4 | Showing Time | Hold 1+2 > 7 |
5 | Showing Date | None |
6 | Show Alarm | Hold 1+2 > 7 |
7 | Set Alarm | Button 1 or 2 |
Display Feedback
Sound Feedback
Code
Get it here! - Note: There is no code yet, really.
Hardware
Laser cutter designs for enclosure.
TODO
- Get accurate time measurement
- Add buttons
- Add ability to set an alarm
- Add a piezo
- Make battery supply
- Make it "radio-controlled"
- Make a box
Task | Date Completed |
---|---|
Prototype Display | |
Display PCB | |
Prototype Buttons | |
PCB Buttons | |
Prototype Alarm | |
PCB Alarm | |
Prototype Time | |
PCB Time | |
Prototype Combined Clock | |
PCB Combined Clock |
Code
Circuit
Rev 1
Designed PCB for shift registers, and LEDs. This board will become the "Display"
Rev 2
Gave up trying to design a PCB. Decided to go back to using veroboard. Circuit has been designed on graph a paper