Blinky Fish - Kickstarter Project

by marc.cryan in Circuits > Arduino

5578 Views, 9 Favorites, 0 Comments

Blinky Fish - Kickstarter Project

DSCF0490.JPG
DSCF0492.JPG
kickstarterShot.jpg
Instructions and documentation for the Blinky Fish Kit from March 2013 Kickstarter project.

A PDF copy is attached to this step.
  • Step-by-step assembly instructions
  • Code example
  • Eagle files
  • Fabrication files
  • Invoices
Note: I didn't include instructions for soldering or installing the Arduino software.  Let me know if you have any trouble.

***

The Parts

DSCF0465.JPG
DSCF0461.JPG
Here are the parts to make one blinky fish.
1 - Blinky Fish board
3 -  Red LEDs
3 -  220ohm resistors
1 - 10Kohm resistor
1 - right angle header with 6 pins
1 - push button
Some solder

Here is the soldering iron I am using:  Hakko FX888D-23BY Digital Soldering Station FX-888D FX-888

Large Images

DSCF0450.JPG
DSCF0452.JPG
DSCF0457.JPG
Here are the large images that shipped with the class room  kits.

LEDs

DSCF0467.JPG
DSCF0469.JPG
DSCF0474.JPG
DSCF0475.JPG
DSCF0477.JPG
LEDs have to go in like this, or they will not work.

Resistors: 220ohm

DSCF0478.JPG
DSCF0481.JPG

Resistor: 10K

DSCF0485.JPG

Button

DSCF0486.JPG
DSCF0487.JPG

Header

DSCF0488.JPG
DSCF0490.JPG

Connect to Arduino

DSCF0492.JPG
DSCF0493.JPG
DSCF0491.JPG

Arduino Code


Here is the code shown in the Kickstarter video.   Hold the button down and the LEDs light up one at a time, release the button and they go off one at a time.


You can copy and paste the code below into the Arduino program, get it here --  http://arduino.cc/en/Main/Software



//****ARDUINO CODE *******

// blinky_1  
//LED'S on one at a time
// LED'S OFF one at a time

//Pins
int Led1 = 11;
int Led2 = 10;
int Led3 = 9;
int Button = 12;
int PullUp = 13;

int ButtonState = 0;
int oldButtonState = 0;

void setup() {
  pinMode(Led1, OUTPUT);
  pinMode(Led2, OUTPUT);
  pinMode(Led3, OUTPUT);
  pinMode(Button, INPUT);
  pinMode(PullUp,OUTPUT);
  digitalWrite(PullUp, HIGH);
}

void loop() {

  ButtonState = digitalRead(Button);

  if (ButtonState != oldButtonState){
    if (ButtonState == HIGH){
      digitalWrite(Led1, HIGH);
      delay(300);
      digitalWrite(Led2,HIGH);
      delay(300);
      digitalWrite(Led3,HIGH);
      delay(300);
    }
    else{
      digitalWrite(Led3,LOW);
      delay(300);
      digitalWrite(Led2,LOW);
      delay(300);
      digitalWrite(Led1,LOW);
      delay(300);
    }
    oldButtonState = ButtonState;
  }
}

More Code - Larsen Scanner

Here is a fun sketch from Kathy, who is a Kickstarter backer --- Thanks Kathy!!

when the button is pressed, it will turn the leds on and blink them like a Larsen Scanner. And if you hold down the button for a few seconds, it'll turn it off.

/////////////////////  ARDUINO CODE //////////////////////////////////////
/*Combines code from "Getting Started with Arduino" by Massimo Banzi
http://shop.oreilly.com/product/9780596155520.do */
/*
from Kathy on Kickstarter - 4/7/2013

when the button is pressed, it will turn the leds on and blink them like a Larsen Scanner. And if you hold down the button for a few seconds, it'll turn it off.
*/

int button = 12; //button on pin 12
int pullup = 13; // use pullup on pin 13

int button_state = 0; // see if button has been pressed
int val = 0; // used to store the state of the input pin
int old_val = 0; // previous value of "val"
int delay_time = 250; // how fast or slow the leds blink

void setup(){
// set up leds as output
for (int i = 11; i > 8; i--){
pinMode(i, OUTPUT);
}
pinMode(button, INPUT); //set up button as input
digitalWrite(pullup, HIGH); // set up the pullup to be on
}

void loop(){
{
val = digitalRead(button); //read if the button is pressed

//check to see if there is a change
if ((val == HIGH) && (old_val == LOW)) {
button_state = 1 - button_state;
delay(10);
}
old_val = val;
if (button_state == 1){
for (int i = 11; i > 8; i--){
digitalWrite(i, LOW); // if the leds are on and the button is pressed, turn them off
}
}
else {
blinky_fish(); // if the leds are off and the button is pressed, turn them on
}
}
}

void blinky_fish(){
//blink the leds on and off in sequence like KITT in Knight Rider (aka Larsen

for (int i = 11; i > 8; i--){
digitalWrite(i, HIGH);
delay(delay_time);
digitalWrite(i, LOW);
}
for (int i = 9; i < 11; i++){
digitalWrite(i, HIGH);
delay(delay_time);
digitalWrite(i, LOW);
}
}

Eagle Files That You Can Change

blinky_PCB.jpg
schemShot.jpg
Here are the designs in a format that you can can open and change.

A sample version can be downloaded here http://www.cadsoftusa.com/download-eagle/

The schematic is Blinky_2.sch
The board design is Blinky_2.brd


Fabrication Files

gerbersShot.jpg
outlineShot.jpg
topOverlayShot.jpg
topShot.jpg
bottomoLayerShot.jpg
bottomOverlay.jpg
These are the file that you send to the manufacturer when you order printed circuit boards.

Each file shows a layer of the circuit board.

You can view the actual files with a gerber viewer, but they are difficult to change correctly -- I am using GerbV Gerber File Viewer http://gerbv.gpleda.org/

Downloads

Parts




Here is a large order of parts from DigiKey -
This table does NOT include the 10K resistor and the circuit boards.

                     

Index

Quantity

Part Number

Description

Customer Reference

Unit Price USD

Extended Price USD

       

1

1000

160-1853-ND

LED RED 5MM RND  DIF

RED LED

0.05711

$57.11

       

2

2500

CF14JT220RCT-ND

RES 220 OHM 1/4W 5% CARBON FILM

220 RES

0.00675

$16.88

       

3

100

952-2328-ND

36 POS SIL VERT PIN HDR

RA HEADER

0.7425

$74.25

       

4

300

450-1804-ND

SWITCH TACTILE SPST-NO 0.05A 12V

BUTTON

0.07584

$22.75

       

5

1

KE1132-ND

SOLDER NO-CLEAN .025" 23AWG 1LB

SOLDER

123.61

$123.61

       

6

1

SMDSWLF.020 4OZ-ND

SLD WIRE NO-CLEAN 96.5/3/.5 4OZ.

1

$21.75

$21.75

       
         

Subtotal

$316.35

       
         

Shipping

unknown

       
         

Estimated Sales Tax

$19.77

       
         

Total

unknown

       
                     

Order Printed Circuit Boards From China

pcborderShot.jpg
Here are the details of the PCB order.

This is from Golden Phonix PCB  -- they have 'quick quotes' here.

This is the manufacturer used by the SparkFun company BatchPCB -- they are good for small orders especially if you are ordering multiple designs.

To Buy One Now...


A few people have asked about buying this, the Kickstarter project is over.  I thought I would try selling them right in the instructable... but that didn't work.

So, here is link that goes to a webpage, that only has the paypal button to buy the kits.

https://sites.google.com/site/shopmarcnow/


You can get either the Blinky Fish Kit alone, the FishBowl "Fish Out of Water" kit alone, or get both.  Shipping is $2.  If you are not in the USA.... I'm not sure what will happen....

Each kit is to make ONE thing (the kickstarter rewards included parts to make a whole bunch, that is why the price here is a little lower)


You can get either the Blinky Fish Kit alone, the FishBowl "Fish Out of Water" kit alone, or get both.  Shipping is $2.  If you are not in the USA.... I'm not sure what will happen....

Each kit is to make ONE thing (the kickstarter rewards included parts to make a whole bunch, that is why the price here is a little lower)