Five Minutes of Fame

From Noisebridge
Revision as of 08:45, 10 March 2019 by Rando (talk | contribs) (adding a template)
Jump to navigation Jump to search


5MoF
8:00pm Third Thursdays of every month!

3rd Floor 2169 Mission Street, ring the bell to enter the space!

January 17 2019

Next: January 17 5MoF

Prev: February 21 5MoF

5 MoF Template

2019

January 17th -- 5MoF 2019

February 21st --

March 21st --

April 18th --

May 16th --

June 20th --

July 18th --

August 15th --

September 19th --

October 17th --

November 21st --

December 19th --

What is Five Minutes of Fame?

Five Minutes of Fame (5MoF) is ten five minute talks in an hour, with a short intermission so you can get another beer. Talks tend to be ad-hoc, poorly-planned, and awe-inspiring.

How do I sign up to give a talk?

Sign up to speak by following the link above, clicking "edit", and adding yourself to the list.

When and Where?

5MoF happens at Noisebridge, 2169 Mission St, San Francisco every 3rd Thursday of the month at 8pm.

Questions, comments, and more info

Interested in Past 5mofs? Or the meetup page?

Past 5MoFs

2018


2017

2016

2015

2014

2013

2012

2011

2010

2009

CODE

/*
   _  _   _____ __  __  ____  ______
 _| || |_| ____|  \/  |/ __ \|  ____| Noisebridge 8PM third Thursdays
|_  __  _| |__ | \  / | |  | | |__    Years & years of Childlike Wonder &
 _| || |_|___ \| |\/| | |  | |  __|   Adult Technological Themes in
|_  __  _|___) | |  | | |__| | |      San Francisco's XXXth Finest
  |_||_| |____/|_|  |_|\____/|_|      Hacker Show and Tell.


 _    _            _      _   _            _____  _                  _   _ 
| |  | |          | |    | | | |          |  __ \| |                | | | |
| |__| | __ _  ___| | __ | |_| |__   ___  | |__) | | __ _ _ __   ___| |_| |
|  __  |/ _` |/ __| |/ / | __| '_ \ / _ \ |  ___/| |/ _` | '_ \ / _ \ __| |
| |  | | (_| | (__|   <  | |_| | | |  __/ | |    | | (_| | | | |  __/ |_|_|
|_|  |_|\__,_|\___|_|\_\  \__|_| |_|\___| |_|    |_|\__,_|_| |_|\___|\__(_)
                                                                           

Third Thurs, 8PM, Noisebridge, 2169 Mission St, SF, CA, Earth Prime

More info: http://nburl.net/5mof
Get here: http://nburl.net/gethere

Submit your talk now! http://5mof.net/signup/

                                                            1/13/14
                                                              -thex
                                                              #fort
                                                              
        Hardware h4x0r extradonaire, the hilaire.

     Send b33r or b!tcoin to noisebridge, c/o #fort

*/

// Number of segments (Shift Register * 8)
#define numOfRegisterPins 24

int SER_Pin = 8;   //pin 14 on the 75HC595
int RCLK_Pin = 9;  //pin 12 on the 75HC595
int SRCLK_Pin = 10; //pin 11 on the 75HC595

// Number of seconds to count from (5 minutes)
int counter = 301;

boolean registers[numOfRegisterPins];

// Time has expired, count up
boolean timeUp = false;

int segments[] = {1, 2, 4, 5, 6, 7, 0, // 0
                  2, 4, 0, 0, 0, 0 ,0, // 1
                  1, 2, 3, 6, 7, 0, 0, // 2
                  1, 2, 3, 4 ,7, 0, 0, // 3
                  2, 3, 4, 5, 0, 0, 0, // 4
                  1, 3, 4, 5, 7, 0, 0, // 5
                  3, 4, 5, 6, 7, 0, 0, // 6
                  1, 2, 4, 0, 0, 0, 0, // 7
                  1, 2, 3, 4, 5, 6, 7, // 8 
                  1, 2, 3, 4, 5, 7, 0  // 9
                                       // A
                                       // B
                                       // C
                                       // D
                                       // E
                                     };// F

void setup()
{
  pinMode(SER_Pin, OUTPUT);
  pinMode(RCLK_Pin, OUTPUT);
  pinMode(SRCLK_Pin, OUTPUT);
}               

void loop()
{
  int minutes, seconds;
  
  if (!timeUp)
  {  
    if(--counter < 0)
    {
      counter = 1;
      timeUp = true;
    }
  } else {
   
    if (++counter > 599)
    {
       n0153();
    }
  }
   
  minutes = floor(counter / 60);
 
  seconds = counter - (minutes * 60);

  setDigits(minutes * 100 + seconds);

  delay(1000);
}

void setDigits(int num)
{
  int digit0, digit1, digit2;
  
  clearRegisters();
  writeRegisters();
  
  digit0 = num;
  while(digit0 >= 10)
    digit0 -= 10;
  
  digit1 = (num - digit0) / 10;
  while(digit1 >= 10)
    digit1 -= 10;
    
  digit2 = (num - digit0 - digit1 * 10) / 100;
 
  setDigit(0, digit0);
  setDigit(1, digit1);
  setDigit(2, digit2);
  
  writeRegisters();
}

// Update individual digit with number
void setDigit(int digit, int num)
{
  // Determine register offset
  int offset = digit * 8;
  
  // Determine num offset
  int numOff = num * 7;
  
  // Set on segments HIGH
  for (int i = 0; i < 7; i++)
  {
    if (segments[i + numOff] > 0)
      registers[segments[i + numOff] + offset] = HIGH;
  }
}

//set all register pins to LOW
void clearRegisters()
{
  for(int i = 0; i < numOfRegisterPins; i++)
    registers[i] = LOW;
} 


//Set and display registers
//Only call AFTER all values are set how you would like (slow otherwise)
void writeRegisters()
{
  digitalWrite(RCLK_Pin, LOW);
  
  for(int i = 0; i < numOfRegisterPins; i++)
  {
    digitalWrite(SRCLK_Pin, LOW);
    
    digitalWrite(SER_Pin, registers[i]);
    
    digitalWrite(SRCLK_Pin, HIGH);
  }
 
  digitalWrite(RCLK_Pin, HIGH);
}

void n0153()
{
  while(true)
  {
    for (int i = 0; i < numOfRegisterPins; i++)
      registers[i] = random(2) > 0.5 ? HIGH : LOW;
    writeRegisters();
    delay(round(random(314)));
  }
}