Harold Pulcher (Microsoft MVP)
Published © GPL3+

You are the ultimate bounty hunter

As a bounty hunter you have to to change you allegiance to meet the situation. Build this project to help you get the job done!

BeginnerFull instructions provided2 hours1,485
You are the ultimate bounty hunter

Things used in this project

Hardware components

Photon
Particle Photon
The "Header" is needed for this project.
×1
Adafruit DotStar Matrix 8x8 - 64 RGB LED Pixels
×1
Adafruit 4-channel I2C-safe Bi-directional Logic Level Converter - BSS138
×1
Solderless Breadboard Half Size
Solderless Breadboard Half Size
×1
Adafruit 4-pin JST SM Plug + Receptacle Cable Set
They didn't have these when I was building it, so I winged it. You should really have one of these to make sure everything is always oriented correctly.
×1
USB cell phone charger
I used a 2200 mAh capacity.
×1
4" x 4" 1/4" Baltic Birch Plywood
×1
7" x 12" 1/4" Baltic Brich Plywood
×1
Handfull of connecting wires
×1
4-40 3/4" Nylon bolts
×1
1" tall 4-40 threaded standoffs
×1
Repositionable Double Sided Tape
×1
Tie Wraps
×1

Software apps and online services

Microsoft Azure
Microsoft Azure
The free website tier
Postman

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Electric Drill
Hot glue gun (generic)
Hot glue gun (generic)

Story

Read more

Schematics

BountyHunter.png

Code

IotBountyHunter.ino

C/C++
I built this on the web, and this is the only way I have found to show the code.
You will need to include the DotStar library.
// This #include statement was automatically added by the Particle IDE.
#include "dotstar/dotstar.h"

#define NUMPIXELS 64
#define DATAPIN   D4
#define CLOCKPIN  D5
Adafruit_DotStar strip = Adafruit_DotStar(NUMPIXELS, DATAPIN, CLOCKPIN);

int rebelImage[] = { 0x000000, 0x000000, 0x000000, 0x770000, 0x000000, 0x000000, 0x000000, 0x000000,
                     0x000000, 0x000000, 0x000000, 0x770000, 0x770000, 0x770000, 0x000000, 0x000000,
                     0x000000, 0x000000, 0x000000, 0x770000, 0x000000, 0x000000, 0x000000, 0x000000,
                     0x000000, 0x000000, 0x770000, 0x000000, 0x770000, 0x000000, 0x770000, 0x000000,
                     0x770000, 0x000000, 0x000000, 0x770000, 0x000000, 0x000000, 0x770000, 0x000000,
                     0x000000, 0x770000, 0x000000, 0x000000, 0x770000, 0x000000, 0x000000, 0x770000,
                     0x770000, 0x000000, 0x000000, 0x770000, 0x000000, 0x000000, 0x770000, 0x000000,
                     0x000000, 0x000000, 0x770000, 0x770000, 0x770000, 0x770000, 0x770000, 0x000000
};

int empireImage[] = { 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
                      0x000000, 0x000000, 0x000000, 0x008800, 0x008800, 0x008800, 0x000000, 0x000000,
                      0x000000, 0x008800, 0x000000, 0x000000, 0x000000, 0x088000, 0x000000, 0x000000,
                      0x000000, 0x008800, 0x000000, 0x008800, 0x000000, 0x008800, 0x000000, 0x008800,
                      0x008800, 0x000000, 0x000000, 0x008800, 0x000000, 0x000000, 0x008800, 0x000000,
                      0x000000, 0x008800, 0x000000, 0x008800, 0x000000, 0x008800, 0x000000, 0x008800,
                      0x000000, 0x008800, 0x000000, 0x000000, 0x000000, 0x008800, 0x000000, 0x000000,
                      0x000000, 0x000000, 0x000000, 0x008800, 0x008800, 0x008800, 0x000000, 0x000000
};

int mandalorianImage[] = { 0x000000, 0x000088, 0x000088, 0x000088, 0x000088, 0x000088, 0x000000, 0x000000,
                           0x000000, 0x000000, 0x000088, 0x000000, 0x000088, 0x000000, 0x000088, 0x000000,
                           0x000000, 0x000000, 0x000088, 0x000088, 0x000088, 0x000000, 0x000000, 0x000000,
                           0x000000, 0x000000, 0x000000, 0x000088, 0x000000, 0x000088, 0x000000, 0x000000,
                           0x000000, 0x000088, 0x000000, 0x000088, 0x000000, 0x000088, 0x000000, 0x000000,
                           0x000000, 0x000088, 0x000000, 0x000000, 0x000088, 0x000000, 0x000000, 0x000088,
                           0x000000, 0x000000, 0x000000, 0x000088, 0x000000, 0x000000, 0x000000, 0x000000,
                           0x000000, 0x000000, 0x000000, 0x000000, 0x000088, 0x000000, 0x000000, 0x000000
};

void setup() {
  strip.begin();
  strip.show();
  
  Particle.publish("IoTJedi.bounty", "starting");
  Particle.function("rebel", rebel);
  Particle.function("empire", empire);
  Particle.function("mandalorian", mandalorian);
  Particle.function("clearbadge", clearbadge);

}

void loop() {
}

int rebel(String stuff) {
    Particle.publish("IoTJedi.bounty", "rebel hit");
    fillItUp( rebelImage);
    
    return 0;
}

int empire(String stuff) {
    Particle.publish("IoTJedi.bounty", "empire hit");
    fillItUp( empireImage);
    
    return 0;
}

int mandalorian(String stuff) {
    Particle.publish("IoTJedi.bounty", "mandalorian hit");
    fillItUp( mandalorianImage);
    
    return 0;
}

int clearbadge(String stuff) {
    Particle.publish("IoTJedi.bounty", "clear badge");
    
    for( int i = 0; i < NUMPIXELS; i++) {
        strip.setPixelColor(i, 0x0);
    }
    
    strip.show();
    
    return 0;
}

int fillItUp( int *img) {
    
    for( int i = 0; i < NUMPIXELS; i++) {
        strip.setPixelColor(i, img[i]);
    }
    
    strip.show();
    
    return 0;
}

IotJedi

Credits

Harold Pulcher (Microsoft MVP)

Harold Pulcher (Microsoft MVP)

7 projects • 62 followers
My biggest thrill is seeing my work in use. Seeing a project being used, and the users are happy is just awesome.

Comments