Introduction: Felted BMO

About: Nothing Much

It could be an easy one but I would recommend some basic knowledge.

Step 1: Find a Foam

Find a form to be your base ready for felting. It has 2 parts, one is the front part which cut through the foam. The second one is just for the back side of the BMO.

Step 2: Test Your Matrix LEDs 8 by 8

Then, try to test your Matrix 8 by 8 on your breadboard first.

5v/3v -> VCC (Number 8)

GND -> GND (Number 4)

PB0 -> DIN

PB1 -> CS

PB2 -> CLK

Thanks to this website for the ATtiny Diagram https://wiki.modellbahn-anlage.de/ATtiny13

#include <LedControl.h>

int DIN = 1; int CS = 2; int CLK = 3; int pin = 4;

bool isTouch;

long previousMillis = 0; long interval = 500;

int Step = 0; int Face = 0;

LedControl lc = LedControl(DIN, CLK, CS, 0);

void setup() { lc.shutdown(0, false); //The MAX72XX is in power-saving mode on startup // lc.setIntensity(0, 15); // Set the brightness to maximum value lc.clearDisplay(0); // and clear the display pinMode(pin, INPUT_PULLUP); }

void loop() {

unsigned long currentMillis = millis();

//TOUCH if (digitalRead(pin) == 0) { // isTouch = !isTouch; Face++; delay(500); }

if (currentMillis - previousMillis > interval) { // save the last time you blinked the LED previousMillis = currentMillis; Step++; }

if (Step > 2) { Step = 0; }

if (Face > 2) Face = 0;

byte Blank[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

byte Sleep0[8] = {0x00, 0x00, 0x00, 0xE7, 0x00, 0x24, 0x18, 0x00}; byte Sleep1[8] = {0x00, 0x00, 0x42, 0xA5, 0x00, 0x24, 0x18, 0x00}; byte Sleep2[8] = {0x00, 0x00, 0x00, 0xE7, 0x00, 0x24, 0x18, 0x00};

byte Awake0[8] = {0x00, 0x00, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00}; byte Awake1[8] = {0x00, 0x00, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00}; byte Awake2[8] = {0x00, 0x00, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00};

if (Step == 0) { switch (Face) { case 0: printByte(Blank); break; case 1: printByte(Sleep0); break; case 2: printByte(Awake0); break; } } if (Step == 1) { switch (Face) { case 0: printByte(Blank); break; case 1: printByte(Sleep1); break; case 2: printByte(Awake1); break; } } if (Step == 2) { switch (Face) { case 0: printByte(Blank); break; case 1: printByte(Sleep2); break; case 2: printByte(Awake2); break; } }

}

void printByte(byte character []) { int i = 0; for (i = 0; i < 8; i++) { lc.setRow(0, i, character[i]); } }


Step 3: Wiring

I use the conductive thread for this project. It quite weak so please be careful of the thread. I use a needle to put through the foam and tie with the legs around. you can make a bridge in case you need to jump to the other connection.

IMPORTANT

You also need to connect Power (VCC) and Ground (GND) to a coin cell battery in order to get it to work.

Step 4: Soft Button

This is how to make a soft button

https://www.instructables.com/id/Soft-button/

I followed this one and it's really easy to make one by yourself!

Step 5: Voila !

Have fun petting your BMO!