Five Minutes of Fame

From Noisebridge
Revision as of 18:53, 30 December 2017 by 192.195.83.130 (talk)
Jump to navigation Jump to search


5MoF

3rd Thursday

January 2018 5MoF

10 Years of noisebridge

August 5MoF

July 5MoF


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 Thursday at 8pm when there's interest, and definitely every third Thursday of the month.

Questions, comments, and more info

Interested in Past 5mofs? Or the meetup.com page?


Past 5MoFs

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)));
  }
}